Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

pierwsze kroki problem z obrazkami

Ostatnio zmodyfikowano 2020-08-24 19:15
Autor Wiadomość
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 :(
P-177476
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..?
P-177477
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 :(
P-177478
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.
P-177479
dzikigon
Temat założony przez niniejszego użytkownika
» 2020-08-24 18:54:16
C/C++
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; //wyłączenie p1
            PictureBox2->Visible = false; //wyłączenie p2
            punkty++
           
        }
    }
}
niestety ten if mi nie działa i nie wiem czy dobrze go opisałem :( opisałem to tak jak ja rozumiem
P-177480
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
C/C++
System::Void graj( System::Object ^ sender, System::EventArgs ^ e )
{
    if(( PictureBox1->Image == imagelist1->Images[ 0 ] ) &&( PictureBox2->Image == imagelist1->Images[ 0 ] ) )
    {
        PictureBox1->Visible = false; //wyłączenie p1
        PictureBox2->Visible = false; //wyłączenie p2
        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.
P-177481
« 1 »
  Strona 1 z 1