Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Python:Pygame:Hiire koordinaadid märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
armido15
HV kasutaja
armido15

liitunud: 24.12.2010




sõnum 31.03.2012 17:11:05 Python:Pygame:Hiire koordinaadid vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 31.03.2012 17:21:19 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
armido15
HV kasutaja
armido15

liitunud: 24.12.2010




sõnum 31.03.2012 20:41:41 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 31.03.2012 21:02:18 vasta tsitaadiga

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.. icon_smile.gif
_________________
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
vaata kasutaja infot saada privaatsõnum
armido15
HV kasutaja
armido15

liitunud: 24.12.2010




sõnum 31.03.2012 21:45:31 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 02.04.2012 00:08:10 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 02.04.2012 11:25:46 vasta tsitaadiga

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. icon_smile.gif

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
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 02.04.2012 14:26:05 vasta tsitaadiga

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. icon_smile.gif

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
vaata kasutaja infot saada privaatsõnum
armido15
HV kasutaja
armido15

liitunud: 24.12.2010




sõnum 04.04.2012 22:21:25 vasta tsitaadiga

Natuke teemast välja kaldunud aga sain kursuse juhendajalt alternatiiviga programmi korralikult jooksma.
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Python:Pygame:Hiire koordinaadid
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.