.[ ČeskéHry.cz ].
DelphiX - DXInput a Keyboard

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Delphi / Pascal
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Folkow



Založen: 29. 07. 2007
Příspěvky: 61

PříspěvekZaslal: 25. červenec 2008, 13:35:41    Předmět: DelphiX - DXInput a Keyboard Odpovědět s citátem

Čus chlapy,
potřeboval bych pomoct s jedním malým problémem. Mám objekt, který chci posouvat o určitou vzdálenost při stistku jedné z šipek, ale v následujícím kódu se děje to, že se neposune o část při jednom stisknutí, ale posouvá se furt, jelikož je to v cyklu Timeru.

kód:

  if isDown in input.Keyboard.States then inc(player_y);
  if isUp in input.Keyboard.States then dec(player_y);
  if isLeft in input.Keyboard.States then dec(player_x);
  if isright in input.Keyboard.States then inc(player_x);

  input.Update;


Nevím jestli existuje přímo nějaká funkce na Hit, ale to cyklování je šílené. Přemýšlel jsem, že bych si udělal nějakou proměnnou, do níž bych zapsal hodnotu 1, když je stisknuto a pak dle podmínky incrementoval nebo neicrementoval pozice, pokud by tlačítko nebylo stisknuto, hodnota proměnné by se změnila na hodnotu, který by říkala, že klávesa stisknutá není.

Nepřijde mi to jako nejlepší nápad, tak jsem se chtěl zeptat, jak to řeší jiní, doufám, že s DelphiX má někdo zkušenosti a poradí.

Děkuji
_________________
http://www.e-telka.cz | http://www.iphonethemeszone.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Hardwire



Založen: 04. 09. 2007
Příspěvky: 117

PříspěvekZaslal: 26. červenec 2008, 08:16:40    Předmět: Odpovědět s citátem

Buď se to řeší událostma, to si ale už nepamatuju, jak ty v DelphiX fungovaly - pokud DXDraw bude mít pořád focus (tzn. na formuláři nebudou žádný další tlačítka, textboxy, atd.), tak by to mělo jít udělat v události DXDraw.OnKeyDown.
Nevím už, jak je to v Delphi s vláknama, ale možná se může stát, že by se ta událost OnKeyDown vyvolala v průběhu herního cyklu, a pak by to mohlo nadělat neplechu, tak na to pozor.

Druhá možnost, pro hry možná lepší, je pamatovat si Keyboard.States z předchozího framu. Potom pokud v předchozím framu nebyla nějaká klávesa stisknutá a v tomhle framu je, tak to vezmeš jako událost zmáčknutí týhle klávesy a zpracuješ ji. Výhodu to má v tom, že nemůže nastat problém se synchronizací jako u předchozího řešení.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
posila



Založen: 29. 07. 2007
Příspěvky: 201

PříspěvekZaslal: 26. červenec 2008, 10:28:34    Předmět: Odpovědět s citátem

anebo se muzes na DelphiX input vykaslat a chytat udalot OnKeyDown formularem...

nicmene, DelphiX je, mam takovy pocit, dost stara komponenta, ktera uz neni ve vyvoji. Doporucil bych spis prejit na neco, co se porad aktualizuje - treba Asphyre. Kdysi davno se to jmenovalo PowerDraw a uz tenkrat to bylo imho lepsi nez DelphiX
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
franz



Založen: 30. 07. 2007
Příspěvky: 1325

PříspěvekZaslal: 27. červenec 2008, 18:52:45    Předmět: Odpovědět s citátem

Folkow: Objekt se ti posouvá tak dlouho, dokud držíš klávesu
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Folkow



Založen: 29. 07. 2007
Příspěvky: 61

PříspěvekZaslal: 28. červenec 2008, 11:49:56    Předmět: Odpovědět s citátem

franz napsal:
Folkow: Objekt se ti posouvá tak dlouho, dokud držíš klávesu


yes...
_________________
http://www.e-telka.cz | http://www.iphonethemeszone.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Delphi / Pascal Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna