Anonymní profil Tomas – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Tomas – Programujte.comAnonymní profil Tomas – Programujte.com

 

Příspěvky odeslané z IP adresy 60.50.68.–

Tomas
Python › Pygame - stisk vice klaves
26. 4. 2009   #99967

To Koumes21 :
Jo, myslel sem si, ze to bude ve zpusobu zpracovani eventu, ale nenapadlo me na to jit takhle jednoduse. Dik moc :)

Tomas
Python › Pygame - stisk vice klaves
26. 4. 2009   #99958

To Koumes21 :
Diky, takhle je to o moc lepsi, ale zase z nejakeho duvodu nemuzu odchytavat stisk vice klaves najednou. Napr.:



while 1:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
elif event.type==KEYDOWN:
if event.key==K_ESCAPE:
sys.exit()
if event.key==K_LEFT:
k_left=True
if event.key==K_RIGHT:
k_right=True
if event.key==K_RIGHT and event.key==K_SPACE:
k_jumpr=True
if event.key==K_LEFT and event.key==K_SPACE:
k_jumpl=True
elif event.type==KEYUP:
if event.key==K_LEFT:
k_left=False
if event.key==K_RIGHT:
k_right=False
if event.key==K_RIGHT and event.key==K_SPACE:
k_jumpr=False
print "FF"
if event.key==K_LEFT and event.key==K_SPACE:
k_jumpl=False

if k_left==True:
objekt.posunl()
if k_right==True:
objekt.posunp()
if k_jumpr==True:
objekt.jumpr()
if k_jumpl:
objekt.jumpl()


Nemas i na toto nejaky tip?

Zkousel sem i podminky:
if event.key==(K_RIGHT and K_SPACE):
ale to mi odchyti i v pripade, ze zmacknu jen space (tzn i v pripade, ze drzim sipku do leva a space)

Dik

Tomas
Python › Pygame - stisk vice klaves
25. 4. 2009   #99875

Zdravim,
zkousim si hrat s pygame a jednu vec nemuzu rozchodit. Hraju si s pohybem a celkem to funguje i plynule. Pomoci pygame.key.set_repeat(1,0) mam nastaveno, aby se pohyb provadel i v pripade, ze je klavesa celou dobu stisknuta. Ale co nejde je stisk vice klaves. Konkretne bych chtel nasledujici:
- drzim sipku do prava a panacek bezi (mam)
- k drzene sipce primacknu mezernik a panacek tim smerem skoci (mam)
- pustim mezernik a cekam, ze panacek bude pokracovat v behu (a to mi nejde.....panacek se po pusteni druhe klavesy zastavi a ceka, az pustim sipku a znovu neco zmacknu). Nemate nejaky hint jak na to? Zde je kus kodu popisujici input:



pygame.key.set_repeat(1,0)
while 1:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
key_pressed = pygame.key.get_pressed()
if key_pressed[K_LEFT]:
objekt.posunl()
pygame.event.clear
if key_pressed[K_RIGHT]:
objekt.posunp()
pygame.event.clear
if key_pressed[K_RIGHT] and key_pressed[K_SPACE]:
objekt.jumpr()
pygame.event.clear(KEYDOWN)
if key_pressed[K_LEFT] and key_pressed[K_SPACE]:
objekt.jumpl()
pygame.event.clear(KEYDOWN)


Pouzivam po kazde akci pygame.event.clear protoze jinak se mi casto stalo, ze se panacek odmital zastavit i v pripade, ze uz sem vsechny klavesy pustil.

Diky,

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý