[Tutor PyCZ] Otaceni obrazkem
Roman Miklos
RMiklos na pss.sk
Úterý Říjen 24 08:47:57 CEST 2006
Tu je ten upraveny zdrojak
Roman Miklos <RMiklos na pss.sk>
Sent by: tutor-bounces na py.cz
24.10.2006 08:45
Please respond to
Konference Tutor portalu PyCZ <tutor na py.cz>
To
Konference Tutor portalu PyCZ <tutor na py.cz>
cc
Subject
Re: [Tutor PyCZ] Otaceni obrazkem
Podival som sa ti zas na to kladivo/opicku.:
Myslim, ze tvoje usilie opakobane stroskotava na tom, ze nevies jak
postupovat hladani chyby v py-programe,
resp vysetrovat beh programu.
Kedze som sa este neskamaratil s pythonovskym debuggerom zvyknem pouzivat
taky jednoduchy postup,
ze do programu na miesta ktore chcem vysetrovat domontujem par kontrolnych
vypisov,
spustim program spustit a sledujem co sa deje.
Kedze tvoj program je graficky, treba pracovat na command line konzole.
Takze zapnes si konzolu vo Windows Start/Run prikazom
cmd.
nastavis sa do adresara kde mas svoj program
cd d:\moj_adresar
a spustis program, napriklad vo Windows kde je Python asociovany s *.py
napises na command line
Editor3.py.
Teraz sa ti program spusti vo vlastnom okne a na konzole uvidis pri akcii
vypisy.
Takze podme k prikladu:
Bez toho aby som studoval manual pygame som postupoval takto:
1. Zo zdrojaku som zistil, ze udalosti sa ziskavaju z pygame.event.get()
takze som domontoval do cyklu udalosti vypis udalosti
print "udalost = %s" % udalost;
Takto som zistil, ze ked kliknem na button opicka vznikne udalost
udalost = <Event(5-MouseButtonDown {'button': 1, 'pos': (42, 83)})>
ked uvolnim tlacitko mysi
udalost = <Event(6-MouseButtonUp {'button': 1, 'pos': (42, 83)})>
a ked iba nabehnem na dany button mysi tak mi vznikne
nieco taketo
udalost = <Event(4-MouseMotion {'buttons': (0, 0, 0), 'pos': (53, 33),
'rel': (7, -28)})>
Toto posledne je to co chcem.
2. Kedze k prvym 2 udalostiam pouzivas definovane typy
udalost.type == MOUSEBUTTONDOWN
udalost.type == MOUSEBUTTONUP
predpokladal som, ze bude existovat aj typ pre udalost MouseMotion
udalost.type == MOUSEMOTION
takze skusil som zakomentovat t
elif udalost.type == MOUSEBUTTONDOWN:
a nahradit to s
elif udalost.type == MOUSEMOTION:
Teraz pri kazdej udalosti MOUSEMOTION sa ti zavola funkcia kurzor.trefa(),
ktora ti cez colliderect() vrati True ak je kurzor na danom objekte
Opicka/Kladivo vsetko funguje jak si chcel.
Tu ti pripajam upraveny zdrojak
Na zaver poznamka: Uprava tvojho programu mi zabrala len asi 10 minut, ale
mnohonasobne viac minut mi zabralo napisanie tohoto mailu.
Dufam teda, ze horeuvedeny postup ti pomoze samostatne riesit daslie
problemy s Opickou a Kladivom :-)).
"petrik" <petrik na extel.sk>
Sent by: tutor-bounces na py.cz
22.10.2006 12:56
Please respond to
Konference Tutor portalu PyCZ <tutor na py.cz>
To
"Konference Tutor portalu PyCZ" <tutor na py.cz>
cc
Subject
[Tutor PyCZ] Otaceni obrazkem
Zdravim ja bych se chtel zeptat na to ,jak udelat událost která delá
tohle:
-- Kdiž najedu na obrázek s kurzorem , obrázek se začne točit.
-- Kdiž kurzor posunu vedle(mimo obrázek) tak se prestane točit.
V mém přikladu mám u class Kurzor()
nadefinovanú funkci trefa ..
.
def trefa(self, ciel):
"vracia info,ak kurzor zasiahla ciel"
self.pohladenie = 1
zasahObd = self.rect.inflate(-45, -1)
return zasahObd.colliderect(ciel.rect)
vím že zasahObd.colliderect(ciel.rect) sleduje zda se nejaký Rect
nepřekríva.
jenže tahle funkce se využiva jen kdiž na nejaky objekt kliknu tlačítkem
myši .A ja bych chtel vědet jak udelat ze
by se udalost začala delat už tehdy kdiž je kurzor na objektu ,bez toho
abych musel na objekt kliknout..
Priložil sem taky cely prográmek v kterém to chci udelat...
Diky moc za HELP...
_______________________________________________
Tutor mailing list
Tutor na py.cz
http://www.py.cz/mailman/listinfo/tutor
Mgr. Ing. Roman MIKLÓŠ
Prvá stavebná sporiteľňa a.s.
Bajkalská 30, P. O. Box 48
829 48 Bratislava 25
Tel.: +421/ 2 / 582 31 174
Fax: +421/ 2 / 582 31 109 _______________________________________________
Tutor mailing list
Tutor na py.cz
http://www.py.cz/mailman/listinfo/tutor
Mgr. Ing. Roman MIKLÓŠ
Prvá stavebná sporiteľňa a.s.
Bajkalská 30, P. O. Box 48
829 48 Bratislava 25
Tel.: +421/ 2 / 582 31 174
Fax: +421/ 2 / 582 31 109
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://www.py.cz/pipermail/tutor/attachments/20061024/304c4c80/attachment.htm
------------- další část ---------------
Netextová příloha byla odstraněna...
Jméno: Editor WR.rar
Typ: application/octet-stream
Velikost: 38565 bytes
Popis: [žádný popis není k dispozici]
Url : http://www.py.cz/pipermail/tutor/attachments/20061024/304c4c80/attachment.obj
------------- další část ---------------
Netextová příloha byla odstraněna...
Jméno: Editor3.py
Typ: application/octet-stream
Velikost: 6765 bytes
Popis: [žádný popis není k dispozici]
Url : http://www.py.cz/pipermail/tutor/attachments/20061024/304c4c80/attachment-0001.obj
------------- další část ---------------
Netextová příloha byla odstraněna...
Jméno: Editor3.py
Typ: application/octet-stream
Velikost: 6765 bytes
Popis: [žádný popis není k dispozici]
Url : http://www.py.cz/pipermail/tutor/attachments/20061024/304c4c80/attachment-0002.obj
Další informace o konferenci Tutor