Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
armido15
HV kasutaja

liitunud: 24.12.2010
|
31.03.2012 17:11:05
Python:Pygame:Hiire koordinaadid |
|
|
def kohavalik():
global x
global y
for i in pygame.event.get():
if i.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif i.type == pygame.MOUSEBUTTONDOWN:
x,y = i.pos
positsioonikontroll() |
Jupp siis lõputööst,mis on paaride otsimine 4x4 piirkondadega aknast.Konkreetne kood ei taha aga mul koordinaate anda.
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
Fukiku
Kreisi kasutaja

liitunud: 06.11.2003
|
31.03.2012 17:21:19
|
|
|
Milles väljendub koordinaatide mitteandmine? Mingi viga programmi jooksutamisel? Lihtsalt tühjad väärtused?
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
armido15
HV kasutaja

liitunud: 24.12.2010
|
31.03.2012 20:41:41
|
|
|
Ei anna mulle x ega y väärtust.
Terves koodis on järgmine funktsioon kuhu ta läheb peale koordinaatide saamist "positsioonikontroll" ja seal kontrollin "if" tingimusega mis piirkonnas pilt avaneb.
Kui kasutan konkreetset koodijuppi siis ei ava ta midagi ja lihtsalt seisab tühjalt aga kui panin x ja y väärtuseks suvalise arvu 1-400 siis avanesid küll pildid.
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
Fukiku
Kreisi kasutaja

liitunud: 06.11.2003
|
31.03.2012 21:02:18
|
|
|
Aga alusta sellest - trüki välja i.pos .. saad teada, mis ja kus ta on. Ilmselt kasutad sa seda mingil moel valesti hetkel. Üldiselt .. igasuguste murede korral tuleb programmi senikaua printimise käske juurde toppida ja kõik võimalik kuni köögi kraanikausini välja trükkida .. küll siis saabub ka selgus, et mis ja kus toimub. Hetkel tundub, et sa üritad ainult lõpptulemuse järgi diagnoosida, et mis vahepealses sammus valesti läheb..
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
armido15
HV kasutaja

liitunud: 24.12.2010
|
31.03.2012 21:45:31
|
|
|
Kusjuures ma juba testisin print funktsiooniga ja ta ei väljasta mulle midagi kusjuures sama rida kasutati meil kursusel ühel näiteülessandel ja seal asi töötas.
import pygame, sys
pygame.init()
lava = pygame.display.set_mode([640,480])
lind = pygame.image.load("sinine_lind.png")
x,y = 0,0#algkoordinaadid
lava.fill([255,255,255])
lava.blit(lind,(x,y))
pygame.display.flip()
lohista = False
while True:
for i in pygame.event.get():
if i.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif i.type == pygame.MOUSEBUTTONDOWN:
mx,my = i.pos
if abs(mx-(x+25))<50 and abs(my-(y+25))<50:
lohista = True
#nende kahe reaga kontrollitakse
#ks hiir on linnu objekti peal või mitte
#kui on,antakse lohistamiseks luba
elif i.type == pygame.MOUSEBUTTONUP:
lohista = False
elif lohista and i.type == pygame.MOUSEMOTION:
x,y = i.pos #annab hiie koordinaadid
lava.fill([255,255,255])
lava.blit(lind,(x,y))
pygame.display.flip()
# on luba lohistamiseks,kontrollitakse
# kas ka hiir liigub ja vastavalt hiire asukohale
# uuendatakse pidevalt ekraani pilti
|
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
DoS
HV veteran

liitunud: 19.08.2002
|
02.04.2012 00:08:10
|
|
|
ilma koodi nägemata on suht võimatu öelda, aga paar asja küll:
1) global muutujaid ei ole pythonis 99.999%'l vaja. ja tegelikult ei ole neid üldse vaja. antud juhul võid ilmselt südamerahuga teha a la positisioonikontroll(x,y) või midagi sarnast
2) print'ga debugimine ei vii eriti kaugele (ja seda teistes keeltes ka). pdb ja näiteks selle set_trace() meetod on palju parem.
|
|
Kommentaarid: 50 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
47 |
|
tagasi üles |
|
 |
Fukiku
Kreisi kasutaja

liitunud: 06.11.2003
|
02.04.2012 11:25:46
|
|
|
DoS kirjutas: |
2) print'ga debugimine ei vii eriti kaugele (ja seda teistes keeltes ka). pdb ja näiteks selle set_trace() meetod on palju parem. |
Tahaks vastu vaielda - 99% probleemidest saab ära lahendada igasuguse jama välja printimisega oma koodist. Enda kogemuses on debuggerit vaja läinud eelkõige neil juhtudel, kui tekib kahtlus, et kuskil mingis kasutatavas teegis tehakse kuskil kapoti all mingit ebavajalikku keemiat ja sinna lihtsalt ei õnnestu ise print lauseid enam juurde kirjutada.
Rääkimata sellest, et enamasti on debuggeri kasutamine algajale oluliselt keerulisem .. kuigi kahtlemata oskus, mis tuleb omandada, kui on vähegi soovi rohkem programmeerimisega tegeleda.
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
DoS
HV veteran

liitunud: 19.08.2002
|
02.04.2012 14:26:05
|
|
|
Fukiku kirjutas: |
DoS kirjutas: |
2) print'ga debugimine ei vii eriti kaugele (ja seda teistes keeltes ka). pdb ja näiteks selle set_trace() meetod on palju parem. |
Tahaks vastu vaielda - 99% probleemidest saab ära lahendada igasuguse jama välja printimisega oma koodist. Enda kogemuses on debuggerit vaja läinud eelkõige neil juhtudel, kui tekib kahtlus, et kuskil mingis kasutatavas teegis tehakse kuskil kapoti all mingit ebavajalikku keemiat ja sinna lihtsalt ei õnnestu ise print lauseid enam juurde kirjutada.
Rääkimata sellest, et enamasti on debuggeri kasutamine algajale oluliselt keerulisem .. kuigi kahtlemata oskus, mis tuleb omandada, kui on vähegi soovi rohkem programmeerimisega tegeleda. |
Üldiselt nõus. Debuggeri ja prinditud logi kasutamine sõltub suuresti probleemist. Kui on vaja palju andmeid välja pritsida ja neid hiljem analüüsida, graafikuid joonestada jms, siis kindlasti print, aga kui on vaja otsida kindlat kohta, kus näiteks midagi valesti arvutatakse, siis kasutan üldiselt debuggerit.
Heaks näiteks on segfault (mis enamasti küll Pythonisse ei puutu), mille põhjuse/asukoha leiab prindiga ka üles, aga palju efektiivsem on lihtsalt core dump lasta ja lahendus on kiirelt käes.
|
|
Kommentaarid: 50 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
47 |
|
tagasi üles |
|
 |
armido15
HV kasutaja

liitunud: 24.12.2010
|
04.04.2012 22:21:25
|
|
|
Natuke teemast välja kaldunud aga sain kursuse juhendajalt alternatiiviga programmi korralikult jooksma.
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
|