hit Temat założony przez niniejszego użytkownika |
» 2013-09-23 15:11:23 A delikatnie jaśniej? Czytam, że za pomocą tego mogę określić liczbę cykli zegara na sekundę, ale jak to zastosować przy tym podkładaniu bomby żeby program działał nieprzerwanie? |
|
pekfos |
» 2013-09-23 15:24:54 clock() nie zwraca czasu w milisekundach. Poza tym, kod jest bez sensu: czas = clock(); { if( clock() - czas > 3000 ) { mapa[ bomber_y / 40 ][ bomber_x / 40 ] = 3; } }
|
|
hit Temat założony przez niniejszego użytkownika |
» 2013-09-23 15:29:41 Ok rozumiem, więc czas powinienem mieć jeszcze dzielony, jak pokazał kolega ison w innym wątku: textprintf_ex( bufor, font, 0, 0, makecol( 0, 0, 0 ), - 1, "czas gry: %d sekund",( clock() - startTime ) / CLOCKS_PER_SEC );
Na tej zasadzie, ok. No, a co do tego, że jest bez sensu to cały problem tkwi w tym, żeby ten sens nabrało i właśnie nie mam pojęcia jak ma licznik odliczać te kilka sekund w tle a potem wykonać jakieś działanie. Chodzi mi o to, aby po wciśnięciu klawisza 'A' zmienił się kafelek na mapie na teksturke z bombą, i tak się dzieje, a potem, żeby po kilku sekundach zamienić to na kafelek 'pusty' no i te w boki również ale to już będzie najmniejszy problem. I dlatego założyłem ten wątek, ponieważ jak już napisałem, nie wiem jak odliczać ten czas w tle. Pomożesz? :) |
|
pekfos |
» 2013-09-23 15:39:03 Najwyraźniej nie rozumiesz swojego kodu. Skoro, po kilku sekundach od puszczenia klawisza A, ma coś się stać, to dlaczego umieściłeś ten kod w warunku, który spełnia się tylko wtedy, gdy klawisz A jest wciśnięty? Przecież cały czas to robię :> |
|
hit Temat założony przez niniejszego użytkownika |
» 2013-09-23 15:47:51 No tak, pomagasz ale wiesz o co mi chodziło. Zrozumiałem to co mi napisałeś i już jest zasadniczo ok. Chciałem jeszcze o coś zapytać ale zanim to zrobię to spróbuję sam, może się uda :) Wielkie dzięki pekfos. Edit: No więc póki świeży temat. Działa mi to poprawnie, ale pojawia się taki problem, że: if( key[ KEY_A ] ) { if( ile_bomb > 0 ) { mapa[ bomber_y / 40 ][ bomber_x / 40 ] = 2; ile_bomb--; czas = clock(); bx =( bomber_x / 40 ); by =( bomber_y / 40 ); }
Jak mam dekrementację zmiennej ile_bomb w tym miejscu, no to jak się domyślasz podczas wciśnięcia klawisza wykonuje się to kilkukrotnie, jak temu zapobiec? Podobnie jest jak w dalszej części: if( clock() - czas > 3000 ) { mapa[ by ][ bx ] = 3; ile_bomb++; }
Inkrementuję tą zmienną i ma wartość większą niż powinna. |
|
pekfos |
» 2013-09-23 16:14:32 |
|
hit Temat założony przez niniejszego użytkownika |
» 2013-09-23 18:14:44 Ale jak takiego boola użyć dla x bomb? Bo jak mam jedną to fajnie działa, ale jeśli dam więcej to musiałbym mieć albo kilka booli ( dla każdej bomby ) albo nie wiem jak to rozwiązać za pomocą jednego. |
|
pekfos |
» 2013-09-23 18:22:28 To użyj x booli. Tak samo, jak musisz użyć x czasów. |
|
1 « 2 » 3 |