pierwsze kroki problem z obrazkami
Ostatnio zmodyfikowano 2020-08-24 19:15
dzikigon Temat założony przez niniejszego użytkownika |
pierwsze kroki problem z obrazkami » 2020-08-24 14:16:47 Witam :) Dopiero uczę się c++ i napotkałem na problem. jak sprawdzić czy wyświetlany konkretny obrazek. czyli "Jeśli wyświetla się obrazek nr 1 to możesz nacisnąć przycisk, a jeśli wyświetla się obrazek 2 to przycisk jest zablokowany" niestety nie wiem jak to obrać w kod :( |
|
pekfos |
» 2020-08-24 16:46:45 A kontekst? Gdzie masz ten obrazek? Gdzie masz ten przycisk? Chodzi w ogóle o twój program..? |
|
dzikigon Temat założony przez niniejszego użytkownika |
» 2020-08-24 17:09:54 Robię visual studio coś w rodzaju gry w memory, obrazek jest umieszczony w PictureBox i do niego jest podpięty imagelist z którego po kliknięciu w PictureBox zmienia się obrazek na znak zapytania albo pojazd. Przycisk jest umieszczony w innym PictureBox który jest obrazkiem kciuka. i potrzebuj w tym przycinku sprawdzić czy w np PictureBox1 obrazek jest równy obrazkowi z imagelist o numerze 2. Umiem to mniej więcej opisać jak ma to wyglądać ale nie wiem jak to zamienić w kod :( |
|
pekfos |
» 2020-08-24 18:24:48 Bez kodu można tylko zgadywać. Sam ustawiasz ten obrazek, więc trudno teraz żebyś nie wiedział co tam jest. Albo da się to odczytać wprost, albo użyj dodatkowej zmiennej. |
|
dzikigon Temat założony przez niniejszego użytkownika |
» 2020-08-24 18:54:16 private: System::Void graj( System::Object ^ sender, System::EventArgs ^ e ) { for each( Control ^ gra in this->Controls ) { if(( gra == p1 ) &&( PictureBox1->Image == imagelist1->Images[ 0 ] ) &&( PictureBox2->Image == imagelist1->Images[ 0 ] ) { PictureBox1->Visible = false; PictureBox2->Visible = false; punkty++ } } } niestety ten if mi nie działa i nie wiem czy dobrze go opisałem :( opisałem to tak jak ja rozumiem |
|
pekfos |
» 2020-08-24 19:15:48 Znacie się z pomoc z funkcją? Też zaczynasz z C++ i bawisz się picture boxami w wyraźnie-nie-C++. Anyway.. taki kod mało mówi, bo nie wiadomo gdzie jest wywoływany i czy w ogóle jest wywoływany. Gdy piszesz po prostu że to "nie działa", to być może niewystarczająco poklikałeś z Visualem. Z kodu też nie wynika znaczenie tych zmiennych. p1 to pewnie kontrolka, raczej obecna w this->Controls, więc kod skraca się do System::Void graj( System::Object ^ sender, System::EventArgs ^ e ) { if(( PictureBox1->Image == imagelist1->Images[ 0 ] ) &&( PictureBox2->Image == imagelist1->Images[ 0 ] ) ) { PictureBox1->Visible = false; PictureBox2->Visible = false; punkty++ } } więc jeśli ten kod się tylko wywoła, to picture boxy znikną jeśli miały przypisany obraz 0. Co miały przypisane - w ogóle nie wiadomo. Prawdę mówiąc, ten kod ma na tyle mało wspólnego z grą memory, że nie wiem czy zgadzamy się co do intencji. Nie ma to przypadkiem działać tak, że masz N odwróconych kart (tj wyświetlanych jako ten sam obrazek rewersu) i kliknięciami odwraca się dwie karty? Czemu tego jeszcze nie ma? I jak planujesz taką logiką zaimplementować odkrywanie kart? Wszystkie będą rysowane tak samo przed odwróceniem, więc nie masz tu dość informacji by wiedzieć jaki obrazek powinien być po odwróceniu. Opieranie logiki o obrazek w picture boksie wydaje się prowadzić tu donikąd. |
|
« 1 » |