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

pomoc z grą.

Ostatnio zmodyfikowano 2014-07-26 13:45
Autor Wiadomość
ziggi17
Temat założony przez niniejszego użytkownika
pomoc z grą.
» 2014-07-25 22:03:30
Witam, i od razu przepraszam że nie nazwałem tematu poprawnie ponieważ nie wiem z jakim zagadnieniem mam doczynienia. Problem polega na tym że próbuje napisać grę która polega na omijaniu przeszkód autem sterowanym klawiszami a i d. Teraz do sedna problemu

jak napisać program który jednocześnie się wykonuje i oczekuje wejścia z klawiszy.

gra ma wyglądać tak:

przeszkoda której pozycja jest trzymana w boolu
[][][]
[][][]
[][][]


ileś enterów zmniejszających się co odstęp czasu


0^0
| |
0_0
piękny samochód który jedzie po lewej albo prawej.

problemem jest zmniejszanie enterów między samochodem a przeszkodą a samochodem nie czekając na wejście, ale gdy zmiana nastąpi zmienić miejsce samochodu.

Zadowolę się każdą pomocą, wytłumaczeniem, kodem, linkiem

Z góry dziękuję
Ziggi17
P-114391
SeaMonster131
» 2014-07-25 22:43:16
Np. GetAsyncKeyState() pobiera znak z klawiatury i nie blokuje reszty programu.
P-114392
ziggi17
Temat założony przez niniejszego użytkownika
» 2014-07-25 22:58:21
Wielkie dzięki za odpowiedź. teraz program się nie blokuje, ale nie sprawdza klawiatury. powiesz co jest źle? pierwszy raz mam styczność z tą biblioteką, próbowałem patrzeć na stronie microsoftu, ale niestety przykładów jak kot napłakał.

kod zamieszczam poniżej problem jest w if'ach w linijkach 17 i 19, kompilowałem standardowym dev c++
C/C++
#include <iostream>
#include <cstdio>
#include <conio.h>
#include <ctime>
#include <cstdlib>
#include <windows.h>
int main()
{
    srand( time( NULL ) );
    char znak;
    bool wrogiicar;
    int licznik;
    bool carpoz;
    printf( "klawisz [ESC] wychodzi z programu." );
    for(;; )
    {
        if( GetAsyncKeyState( VK_LEFT ) == true )
             carpoz = 1;
       
        if( GetAsyncKeyState( VK_RIGHT ) == true )
             carpoz = 0;
       
        if( carpoz == 0 )
             printf( "\n0^0\n| |\n0_0" );
        else
             printf( "\n   0^0\n   | |\n   0_0" );
       
    }
    return( 0 );
}
P-114394
miko226
Pytanie dotyczące programowania
» 2014-07-26 02:53:23
<< removed - załóż własny temat >>
P-114395
ziggi17
Temat założony przez niniejszego użytkownika
» 2014-07-26 06:39:27
Kolego, sorry ale w tej rozmowie prosiłem ludzi o pomoc z problemem

jak napisać program który jednocześnie się wykonuje i oczekuje wejścia z klawiszy.

a nie o twoje zwierzenia z kodowania. Jeśli chcesz pomocy to napisz nowy temat, a nie tutaj
P-114398
stevy
» 2014-07-26 07:52:48
ziggi, mozesz tez uzyc _kbhit():
C/C++
if( _kbhit() ) {
    //u pobierasz klawisz i obslugujesz
   
}
else {
    //tu reszta funkcji od spadania blokow
    Itd...
   
}
P-114399
Monika90
» 2014-07-26 08:14:41
GetAsyncKeyState( VK_LEFT ) == true

Ten warunek będzie fałszywy, bo GetAsyncKeyState nie zwraca liczby 1 kiedy klawisz jest naciśnięty.
Lepiej tak jak Ci napisał stevy użyj _kbhit() i _getch() z <conio.h>
P-114400
ziggi17
Temat założony przez niniejszego użytkownika
» 2014-07-26 09:27:01
Dziękuję wam wszystkim. Naprawdę bardzo mi pomogliście. Kod gotowej gry zamieszczę w temacie żebyście mogli zobaczyć co napisałem, oczywiście nie zabraknie podziękowań dla sevyego i moniki.
P-114401
« 1 » 2
  Strona 1 z 2 Następna strona