Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[python] pygame

19 views
Skip to first unread message

Ctibor.Plasek

unread,
Sep 5, 2012, 6:12:06 AM9/5/12
to pyt...@py.cz
Ahoj.
Nemáte někdo zkušenosti s Pygame?
Mám takový problém : při stisku klávesy chci, aby 'panáček' šel tak dlouho, dokud klávesu nepustím ( což je zdá se logické).
Jenže když použiji :

stisk = pygame.key.get_pressed()
if stisk[K_UP]:
print("ahoj UP")
elif stisk[pygame.K_DOWN]:
print("ahoj DOWN")

anebo :

for event in pygame.event.get():

if event.type == QUIT or (event.type == KEYUP and event.key == K_ESCAPE):
pygame.quit()
sys.exit()

if event.type == KEYUP and event.key == K_RIGHT :
klavesa = 1

if event.type == KEYUP and event.key == K_LEFT :
klavesa = -1

Tak to vždy bere akorát jedno stisknutí. Nemůžete mi někdo poradit, jak to jednoduše vyřešit ?
Děkuji Ctibor

azurIt

unread,
Sep 5, 2012, 6:18:34 AM9/5/12
to Konference PyCZ
Ahoj,

priamo skusenosti s tym nemam avsak co tak pri stlaceni nastavit nejaky priznak (nejaku premennu na True), ze klavesa je stlacena a nasledne pri pusteni ten priznak vynulovat? Dany priznak mozes niekde inde kontrolovat a ak je True, tak sa panacik bude pohybovat.

azur


______________________________________________________________
> Od: "Ctibor.Plasek" <Ctibor...@seznam.cz>
> Komu: <pyt...@py.cz>
> Dátum: 05.09.2012 12:12
> Predmet: [python] pygame
>_______________________________________________
>Python mailing list
>Pyt...@py.cz
>http://www.py.cz/mailman/listinfo/python
>

Ctibor.Plasek

unread,
Sep 5, 2012, 6:36:11 AM9/5/12
to Konference PyCZ
Ahoj.
To jsem taky vyzkoušel akorát mi to přišlo takové kostrbaté řešení (permanentně kontrolovat, že je klávesa stisknutá a pak zas že je puštěná).
Ale asi to asi jinak nepůjde :-(


> ------------ Původní zpráva ------------
> Od: azurIt <azu...@pobox.sk>
> Předmět: Re: [python] pygame
> Datum: 05.9.2012 12:18:39
> ----------------------------------------

Hynek Fabian

unread,
Sep 5, 2012, 7:38:34 AM9/5/12
to Konference PyCZ
To IMO o moc lip vyresit nejde, pacz kdyz budes reagovat na kazdou
udalost, tak panacek pujde tak rychle jak rychle bude masina stihat
vyrabet udalosti. Cili tam stejne nekde budes muset mit casovac, v
hlavni smycce postupne sbirat udalosti vcetne klaves a az kdyz prisel
cas udelat dalsi krok tak na ne reagovat.

On 09/05/12 12:36, Ctibor.Plasek wrote:
> Ahoj. To jsem taky vyzkou�el akor�t mi to p�i�lo takov� kostrbat�
> �e�en� (permanentn� kontrolovat, �e je kl�vesa stisknut� a pak zas �e
> je pu�t�n�). Ale asi to asi jinak nep�jde :-(
>
>
>> ------------ P�vodn� zpr�va ------------ Od: azurIt
>> <azu...@pobox.sk> P�edm�t: Re: [python] pygame Datum: 05.9.2012
>> 12:18:39 ---------------------------------------- Ahoj,
>>
>> priamo skusenosti s tym nemam avsak co tak pri stlaceni nastavit
>> nejaky priznak (nejaku premennu na True), ze klavesa je stlacena a
>> nasledne pri pusteni ten priznak vynulovat? Dany priznak mozes
>> niekde inde kontrolovat a ak je True, tak sa panacik bude
>> pohybovat.
>>
>> azur
>>
>>
>> ______________________________________________________________
>>> Od: "Ctibor.Plasek" <Ctibor...@seznam.cz> Komu:
>>> <pyt...@py.cz> D�tum: 05.09.2012 12:12 Predmet: [python] pygame
>>>
>>> Ahoj. Nem�te n�kdo zku�enosti s Pygame? M�m takov� probl�m : p�i
>>> stisku kl�vesy chci, aby 'pan��ek' �el tak dlouho,
>> dokud kl�vesu nepust�m ( co� je zd� se logick�).
>>> Jen�e kdy� pou�iji :
>>>
>>> stisk = pygame.key.get_pressed() if stisk[K_UP]: print("ahoj
>>> UP") elif stisk[pygame.K_DOWN]: print("ahoj DOWN")
>>>
>>> anebo :
>>>
>>> for event in pygame.event.get():
>>>
>>> if event.type == QUIT or (event.type == KEYUP and event.key ==
>> K_ESCAPE):
>>> pygame.quit() sys.exit()
>>>
>>> if event.type == KEYUP and event.key == K_RIGHT : klavesa = 1
>>>
>>> if event.type == KEYUP and event.key == K_LEFT : klavesa = -1
>>>
>>> Tak to v�dy bere akor�t jedno stisknut�. Nem�ete mi n�kdo
>>> poradit, jak to
>> jednodu�e vy�e�it ?
>>> D�kuji Ctibor _______________________________________________

god...@seznam.cz

unread,
Sep 6, 2012, 6:26:15 AM9/6/12
to Konference PyCZ
ahoj,

tohle by melo fungovat diky pygame.key.set_repeat(delay, interval) (http://www.pygame.org/docs/ref/key.html#pygame.key.set_repeat)

import random, time, pygame, sys
from pygame.locals import *

FPS = 25
W_HEIGHT = 480
W_WIDTH = 640

pygame.init()
pygame.display.set_mode((W_WIDTH, W_HEIGHT))
pygame.key.set_repeat(1, 25)

while True:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit(0)
if event.type == KEYDOWN:
if event.key == K_LEFT:
print "go left"

pygame.dsplay.update()
FPSCLOCK.tick(FPS)

jiri

------------ Původní zpráva ------------
Od: Hynek Fabian <hynek....@firma.seznam.cz>
Předmět: Re: [python] pygame
Datum: 05.9.2012 13:43:47
----------------------------------------
To IMO o moc lip vyresit nejde, pacz kdyz budes reagovat na kazdou
udalost, tak panacek pujde tak rychle jak rychle bude masina stihat
vyrabet udalosti. Cili tam stejne nekde budes muset mit casovac, v
hlavni smycce postupne sbirat udalosti vcetne klaves a az kdyz prisel
cas udelat dalsi krok tak na ne reagovat.

On 09/05/12 12:36, Ctibor.Plasek wrote:
> Ahoj. To jsem taky vyzkoušel akorát mi to přišlo takové kostrbaté
> řešení (permanentně kontrolovat, že je klávesa stisknutá a pak zas že
> je puštěná). Ale asi to asi jinak nepůjde :-(
>
>
>> ------------ Původní zpráva ------------ Od: azurIt
>> <azu...@pobox.sk> Předmět: Re: [python] pygame Datum: 05.9.2012
>> 12:18:39 ---------------------------------------- Ahoj,
>>
>> priamo skusenosti s tym nemam avsak co tak pri stlaceni nastavit
>> nejaky priznak (nejaku premennu na True), ze klavesa je stlacena a
>> nasledne pri pusteni ten priznak vynulovat? Dany priznak mozes
>> niekde inde kontrolovat a ak je True, tak sa panacik bude
>> pohybovat.
>>
>> azur
>>
>>
>> ______________________________________________________________
>>> Od: "Ctibor.Plasek" <Ctibor...@seznam.cz> Komu:
>>> <pyt...@py.cz> Dátum: 05.09.2012 12:12 Predmet: [python] pygame
>>>
>>> Ahoj. Nemáte někdo zkušenosti s Pygame? Mám takový problém : při
>>> stisku klávesy chci, aby 'panáček' šel tak dlouho,
>> dokud klávesu nepustím ( což je zdá se logické).
>>> Jenže když použiji :
>>>
>>> stisk = pygame.key.get_pressed() if stisk[K_UP]: print("ahoj
>>> UP") elif stisk[pygame.K_DOWN]: print("ahoj DOWN")
>>>
>>> anebo :
>>>
>>> for event in pygame.event.get():
>>>
>>> if event.type == QUIT or (event.type == KEYUP and event.key ==
>> K_ESCAPE):
>>> pygame.quit() sys.exit()
>>>
>>> if event.type == KEYUP and event.key == K_RIGHT : klavesa = 1
>>>
>>> if event.type == KEYUP and event.key == K_LEFT : klavesa = -1
>>>
>>> Tak to vždy bere akorát jedno stisknutí. Nemůžete mi někdo
>>> poradit, jak to
>> jednoduše vyřešit ?
>>> Děkuji Ctibor _______________________________________________

Ctibor.Plasek

unread,
Sep 6, 2012, 4:53:39 PM9/6/12
to Konference PyCZ
No to je luxus.

Díky moc.
Ctibor


> ------------ Původní zpráva ------------
> Od: <god...@seznam.cz>
> Předmět: Re: [python] pygame
> Datum: 06.9.2012 12:27:22
> ----------------------------------------

god...@seznam.cz

unread,
Sep 6, 2012, 6:16:53 PM9/6/12
to Konference PyCZ
Neni zac :)

jiri

------------ Původní zpráva ------------
Od: Ctibor.Plasek <Ctibor...@seznam.cz>
Předmět: Re: [python] pygame
Datum: 06.9.2012 22:54:54
----------------------------------------
0 new messages