96microsoft Temat założony przez niniejszego użytkownika |
Problem z myszką » 2011-02-15 19:57:40 Witam. Mam problem z myszką. A mianowicie zrobilem tak że bufor jest tłem wszystkiego i na nim jest wstawiony inny obrazek oznaczony w kodzie "_20" ale jak wstawiałem show_mouse(bufor) przed pentlą while() to mi mrygało więć zrobiłem tak:
while( !key[ KEY_ESC ] ) { blit( _tlo, bufor, 0, 100, 0, 0, x, y ); draw_sprite( bufor, _20, 400, 500 ); myszka(); show_mouse( bufor ); textprintf_ex( bufor, font, 450, 200, makecol( 255, 0, 255 ), - 1, "Myszka x = %d, y = %d, klawisz = %d !", mx, my, pm ); blit( bufor, screen, 0, 0, 0, 0, x, y ); }
teraz już nie mryga ale czy to jest poprawne?? może tak być?? Dodam ze w tej pętli myszka będzie miała dużo do roboty hehe:) (drag and drop) itp. dodam że kursor mam własny zrobiony. |
|
szyx_yankez |
» 2011-02-15 20:24:20 teraz już nie mryga ale czy to jest poprawne?? może tak być?? |
Tak.
Jak masz własny kursor to możesz go zwyczajnie wyswietlać funkcją blit/masked_blit, na pozycij mouse_x(mx), mouse_y(my).
|
|
96microsoft Temat założony przez niniejszego użytkownika |
» 2011-02-15 20:43:45 Jeszcze jedno. Jak wstawiam _sleep(); w pętlę for bo chce żeby tzw. progress bar się przesuwał to mi jest czarne tło przez tyle czasu ile jest ustawiony na sleep a potem jak się włączy obraz to progress jest już wypełniony do końca. Jak zwolnic pętlę for |
|
SeaMonster131 |
» 2011-02-15 20:53:06 int progress = 0;
void wys_pasek_postepu( int dlugosc ) { rysuj( pasek, dlugosc ); }
while( 1 ) { progress++; wys_pasek_postepu( progress / 10 ); }
Nie musisz wstrzymywać programu :) |
|
96microsoft Temat założony przez niniejszego użytkownika |
» 2011-02-15 22:19:25 Może inne rozwiązanie najlepiej z for-em. Bo ten while to tez czarny ekran i więcej nic dodam ze on się zapętla bo cały czas jest TRUE. A powinno być po załadowaniu progressa dalsza część programu wszytko robię w pętli While(!key[KEY_ESC]) |
|
96microsoft Temat założony przez niniejszego użytkownika |
» 2011-02-16 09:51:10 Znalazłem sposób ale nie jest zbyt poprawny i nie testowałem bo jestem w szkole. zrobił bym pętlę główną i w niej tak jakby opóżnienie czyli
while( !keyKEY_ESC ] ) { for( int l = 0; l <= 10000; l++ ) { } }
mogło by być coś takiego? |
|
Drraven |
» 2011-02-17 20:13:55 Twoje rozwiązanie zależy od timera. Jeśli nie masz to na nowych maszynach przeleci to w oka mgnieniu ;) A takie paski nie robić lepiej tak:
Ładujesz grafikę: Załadujesz jeden plik pokazuję się jedna klata w pasku i tak aż załadujesz wszystkie. I do tego jeszcze co ty tam ładujesz (dźwięk, pliki) Oczywiście obraz != 1 klatka w pasku. |
|
96microsoft Temat założony przez niniejszego użytkownika |
» 2011-02-20 18:10:05 Teraz to mam inny problem. Tamten jest już ok. Teraz chodzi o to że jak chcem kliknąć w pewne miejsce to ma się wyświetlić napis "start" a jak nacisne w te same miejsce drugi raz ppm to ma to zniknąć (ma działać jak menu start w Windowsie) oto fragmenty pentli głównej i funkcji menu()
main()
while( !key[ KEY_ESC ] ) { myszka(); clear_to_color( bufor, makecol( 0, 0, 0 ) ); draw_sprite( bufor, pmenu, 0, y - 41 ); textprintf_ex( bufor, font, 810, 778, makecol( 255, 0, 255 ), - 1, " x = %d y=%d przyc=%d", mx, my, pm ); masked_blit( Kursor, bufor, 0, 0, mouse_x, mouse_y, Kursor->w, Kursor->h ); blit( bufor, screen, 0, 0, 0, 0, x, y ); if(( mx >= 6 ) &&( my >= 761 ) &&( mx <= 41 ) &&( my <= 795 ) &&( pm == 1 ) &&( prawdamenu == false ) ) { menu(); } }
menu();
void menu() { prawdamenu = true; while( prawdamenu ) { myszka(); clear_to_color( bufor, makecol( 0, 0, 0 ) ); if(( mx >= 6 ) &&( my >= 761 ) &&( mx <= 41 ) &&( my <= 795 ) &&( pm == 1 ) ) prawdamenu = false; textout_ex( bufor, font, "START", 90, 90, makecol( 255, 255, 1 ), - 1 ); draw_sprite( bufor, pmenu, 0, y - 41 ); textprintf_ex( bufor, font, 810, 778, makecol( 255, 0, 255 ), - 1, " x = %d y=%d przyc=%d", mx, my, pm ); masked_blit( Kursor, bufor, 0, 0, mouse_x, mouse_y, Kursor->w, Kursor->h ); blit( bufor, screen, 0, 0, 0, 0, x, y ); clear_keybuf(); } }
chodz o to że nie za każdym razem się ten napis "start" wyłącza i nie za każdym razem się łacz. Czasem to tylko mrygnie i zgaśnie. Co jest nie tak |
|
« 1 » 2 |