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

Allegro klik

Ostatnio zmodyfikowano 2009-05-11 16:34
Autor Wiadomość
Besemir
Temat założony przez niniejszego użytkownika
» 2009-05-09 20:41:24
C/C++
int ic_x = 75, ic_y = 75, ic_w = 75, ic_h = 75; //rozmiary przycisku
bool is_mark = false; //stan zaznaczenia
int pokaz_obrazek = 0;
if( mouse_b == 1 )
{
    if(( mouse_x >= ic_x && mouse_x <= ic_x + ic_w ) &&( mouse_y >= ic_y && mouse_y <= ic_y + ic_h ) )
    {
        if( is_mark == false ) is_mark = true;
        else if( is_mark == true ) is_mark = false;
       
        pokaz_obrazek++;
       
    }
}
if( pokaz_obrazek == 1 ) {
    masked_blit(( BITMAP * ) data[ krzyzyk_b ].dat, bufor, 0, 0, 75, 75,(( BITMAP * ) data[ krzyzyk_b ].dat )->w,(( BITMAP * ) data[ krzyzyk_b ].dat )->h );
}

Dziala tak samo :( zmienna pokaz_obrazek przyjmuje wartość 1 a jak spuszczę przycisk myszki z guzika to ta wartość się resetuje do 0, wiec obrazek wyświetla się tylko przy kliknięciu guzika a po spuszczeniu przycisku z guzika obrazek znika... :( Wie ktoś jak to rozwiązać??

@Pietrzuch masz na myśli dać sobie z tym spokój czy to jakaś nieznana mi funkcja w allegro?
P-6684
lynx
» 2009-05-09 21:04:37
<<delete>>


/edit:
@Besemir - Pisząć delete nie miałem na myśli funkcji czy niczego takiego. <<delete>> - była wiadomość ale ją skasowałem.
 Za chwilkę napiszę Ci co poprawić aby efekt był taki jaki oczekujesz. :)
Rozumiem że chcesz aby obrazek wyświetlał się od momentu klliknięcia.


//edit2:
Coś takiego mam dla Ciebie:
C/C++
//przed główną pętlą:
bool is_mark_p1 = false; //stan zaznaczenia danego pola ( pierwszego)
int ic_x = 75, ic_y = 75, ic_w = 75, ic_h = 75; //rozmiary przycisku
//______

if( mouse_b == 1 )
{
    if(( mouse_x >= ic_x && mouse_x <= ic_x + ic_w ) &&( mouse_y >= ic_y && mouse_y <= ic_y + ic_h ) && is_mark_p1 != 1 )
    {
        is_mark_p1 = true;
       
    }
}


if( is_mark_p1 == 1 ) {
    masked_blit(( BITMAP * ) data[ krzyzyk_b ].dat, bufor, 0, 0, 75, 75,(( BITMAP * ) data[ krzyzyk_b ].dat )->w,(( BITMAP * ) data[ krzyzyk_b ].dat )->h );
}

///edit3:
Zmieniłem nieco jeszcze kod. :)


////edit4:
Przydałoby się tak samo wymiary i współrzędne przycisków posegregować ( tak jak is_mark_p1), a najlepiej zrobic do nich klasę (oczywście tylko jeżeli już czytałeś o klasach w jakimś kursie/książce). Ufff... ale edytowałem ten post. :P
P-6685
Besemir
Temat założony przez niniejszego użytkownika
» 2009-05-09 21:29:37
Ooo wielkie Ci dzięki.

/edit:

Może by dodać coś takiego do kursu? Przydało by się.
P-6686
lynx
» 2009-05-09 21:36:50
Do kursu oczywiście można dodać tylko po co? Kurs powinień być kursem na dany temat, a nie zbiorem artykułów jak zrobic jedno czy drugie. Oczywiście jeżeli zostanie utworzony dział artykuły to jestem pewien, że coś w tym stylu się pojawi. :)
P-6687
Besemir
Temat założony przez niniejszego użytkownika
» 2009-05-09 22:01:19
No to pytanie do kodu:
1. Skąd wziołes zmienna "mouse_b"; ( Było wcześniej, ale chce wiedzieć)
2. Czy korzystanie ze zmiennej "mouse_b" w dalszej części kodu jest możliwe? Chodzi o to ze chce z nią zrobić 9 guzików, i czy te guziki nie będą zależne od pierwszego?
P-6688
lynx
» 2009-05-09 22:05:34
1. No jak to skąd, z allegro. mouse_b jest w Allegro i udostępnia nam informacje o myszce, a dokładniej o przyciskach. Poczytaj
2. Tak jest możliwe. Poczytaj artykuł jakie informacje zawiera ta zmienna. Nie będą zależne pod warunkiem, że zrobisz dla każdego przycisku odpowiednie zmienne ( czyli współrzędne, is_mark_X )
P-6689
Besemir
Temat założony przez niniejszego użytkownika
» 2009-05-10 08:54:15
<< duplikat >>
P-6692
Besemir
Temat założony przez niniejszego użytkownika
» 2009-05-10 08:57:17
Ehhh... Znowu mam problem :(
Przyciski juz zrobione ale cos tu jest nie tak ;/

C/C++
if( mouse_b == 1 )
{
    if(( mouse_x >= 75 && mouse_x <= 75 + 75 ) &&( mouse_y >= 75 && mouse_y <= 75 + 75 ) && pole_1 != 1 )
    {
        pole_1 = true;
    }
}
if( pole_1 == 1 ) {
    if( toczyto == 0 ) {
        masked_blit(( BITMAP * ) data[ kolko_b ].dat, bufor, 0, 0, 75, 75,(( BITMAP * ) data[ krzyzyk_b ].dat )->w,(( BITMAP * ) data[ krzyzyk_b ].dat )->h );
        toczyto = 1;
    } else {
        masked_blit(( BITMAP * ) data[ krzyzyk_b ].dat, bufor, 0, 0, 75, 75,(( BITMAP * ) data[ krzyzyk_b ].dat )->w,(( BITMAP * ) data[ krzyzyk_b ].dat )->h );
        toczyto = 0;
    }
}
Tak wyglada jeden z przyciskow.( Jak by co to "toczyto" bylo deklarowane na początku z wartoscia 0)

Teraz robie takie coś co pozwoli graczowi na granie nie tylko kółkiem:D

Coś tutaj jest nie tak ponieważ jak kliknę na guzik to zamiast pojawienia się tam obrazku "kolko", pojawia się na przemian obrazek "kolko" z "krzyzyk", jeśli później kliknę na guzik nr 2 to wszytko się uspokoi i będzie tak jak ma być, a jeśli jeszcze później kliknę na guzik nr 3 to wszystkie obrazki zwariują i będą pojawiać się na przemian tak jak po kliknięciu guzika nr 1.

http://www.youtube.com/watch?v=ZWkoPZd0EBA


PS. Filmik jest jaki jest, nie miałem za dużo czasu.
PPS. FPS jest mały wiec nie widać dokładnie ale coś tam jest :D

/edit:
pozostałe guziki nie maja tej funkcji wiec ona tylko wyświetlają krzyżyk, guzik ktore maja funkcje 1,2,3
P-6693
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona