Wpis z mikrobloga

Mirki,

Ma może ktoś pojęcie dlaczego tak się dzieje jak na filmiku?

Zacząłem się uczyć VCL i piszę prostą grę ala tank na pegasus.

Chciałbym, żeby czołg zmieniał orientację przy zmianie kierunku jazdy.

W tej funkcji odczytuję ostatnio wciśnięty przycisk:

void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key,

TShiftState Shift)

{

ostatni = Key;

if(Key == VKUP) ruchWgore->Enabled = false;

if(Key == VK
DOWN) ruchWdol->Enabled = false;

}

w tej zaś ustawiam, aby wykonał się Flip() po odpowiednim ifie:

void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,

TShiftState Shift)

{

if(Key == VKUP)

{

if(ostatni==VK
DOWN)

{

Flip(czolgPion);

}

ruchWgore->Enabled = true;

}

if(Key == VKDOWN)

{

if(ostatni==VK
UP)

{

Flip(czolgPion);

}

ruchWdol->Enabled = true;

}

}

W momencie, kiedy raz przycisnę strzałkę w górę bądź w dół i zrobię malutką przerwę w następnym naciśnięciu przycisku wszystko działa tak jak powinno, co widać w pierwszej części filmiku. Kiedy jednak wcisnę strzałkę i trzymam ją bez przerwy, to po jakimś czasie czołg wariuje i zmienia orientację ciągle, co widać na drugiej części filmiku.

Ma ktoś jakieś rady apropo tego?

#programowanie
xmaniox - Mirki,



Ma może ktoś pojęcie dlaczego tak się dzieje jak na filmiku? 

Za...
  • 22
  • Odpowiedz
@xmaniox: Jak masz zamiar uczyć się od zera to lepiej zainteresuj się czymś bardziej przyszłościowym jak np java, która jest darmowa, ma świetne środowiska programistyczne do wyboru i oferuje dostęp do ogromnej ilości książek, tutoriali, frameworków itp. VCL od czasów, kiedy nie rozwija go już borland to płacz i zgrzytanie zębów, a szkoda, bo takie Delphi 7 to było rewelacja w tamtych czasach :'(
  • Odpowiedz
@fliperro: @xmaniox:

Albo c#

W sumie cos, co w przyszlosci pozwoli programowac na urzadzenia mobilne nie jest zlym pomyslem. A opanowanie javy, c#, c++ to potem juz latwo inne rzeczy ogarnac, w miare potrzeb.
  • Odpowiedz