2011-06-12, 17:10
#1
Tja håller på med en "läxa", igen, som jag inte förstår mig riktigt på O.o
kan någon kolla vad som fattas här?
b.la box2 är en del av uppgiften att sätta till en box som går i Y led medan den första boxen går i X led, men när jag får in min andra box att röra sig så blir min X-box osynlig?
sedan en annan grej är:
koden där nere som är:
det är för att kolla ifall den håller på gå utanför fönstret, hur får jag den att fungera? :S testat slå in allt möjligt där men den fortsätter ut som om koden inte fanns alls, fått till det så att if satsen under denna, If checkBounds > 0: box_x=0 men då rör inte boxen sig alls? hmm
Uppgiften är alltså:
Lägg till en box som går i Y-LED -> Gjort men min X-Box blir då osynlig?
Stoppa den så att den inte går utanför rutan och kommer till början igen, hur gör man detta?
btw om ni undrar varför det står :
if box_x.rect.top <= 0:
self.dy = 0
*self*.dy
det är för att koden är kopierad från en annan uppgift (färdig exempel) och har bytt ut, IF *self* mot IF box_x , ihopp om att det ska fungera men de gör de inte :/
kan någon kolla vad som fattas här?
b.la box2 är en del av uppgiften att sätta till en box som går i Y led medan den första boxen går i X led, men när jag får in min andra box att röra sig så blir min X-box osynlig?
sedan en annan grej är:
koden där nere som är:
Kod:
#lagg till en if-sats som kollar om box_x ar pa vag ut fran fonstret def checkBounds():
det är för att kolla ifall den håller på gå utanför fönstret, hur får jag den att fungera? :S testat slå in allt möjligt där men den fortsätter ut som om koden inte fanns alls, fått till det så att if satsen under denna, If checkBounds > 0: box_x=0 men då rör inte boxen sig alls? hmm
Kod:
""" moveBox.py illustrates basic motion in the IDEA/ALTER framework moves a rect across the screen """ #Initialize import pygame pygame.init() #Display screen = pygame.display.set_mode((640, 480)) pygame.display.set_caption("move a box") #Entities #yellow background background = pygame.Surface(screen.get_size()) background = background.convert() background.fill((255, 255, 0)) #make a red 25 x 25 box box = pygame.Surface((25, 25)) box = box.convert() box.fill((255, 0, 0)) box2 = pygame.Surface((35, 35)) box2 = box2.convert() box2.fill((255, 0, 0)) # set up some box variables box_x = 0 box_y = 200 box2_x = 200 box2_y = 0 #ACTION #Assign clock = pygame.time.Clock() keepGoing = True #Loop while keepGoing: #Time clock.tick(30) #Events for event in pygame.event.get(): if event.type == pygame.QUIT: keepGoing = False #modify box value #lagg till en rad sa att box_x okar med 5 box_x=box_x+5 box2_y=box2_y+5 #check boundaries #lagg till en if-sats som kollar om box_x ar pa vag ut fran fonstret def checkBounds(): if box_x.rect.right >= get_width(): self.dx = 0 if box_x.rect.left <= 0: self.dx = 0 if box_x.rect.bottom >= get_height(): self.dy = 0 if box_x.rect.top <= 0: self.dy = 0 return checkBounds #satt box_x till 0 om sa ar fallet, d.v.s. att boxen kommer fram pa andra sidan if checkBounds == 0: box_x=0 #Refresh screen screen.blit(background, (0,0)) screen.blit(box, (box_x, box_y)) pygame.display.flip() screen.blit(background, (0,0)) screen.blit(box2, (box2_x, box2_y)) pygame.display.flip()
Uppgiften är alltså:
Lägg till en box som går i Y-LED -> Gjort men min X-Box blir då osynlig?
Stoppa den så att den inte går utanför rutan och kommer till början igen, hur gör man detta?
btw om ni undrar varför det står :
if box_x.rect.top <= 0:
self.dy = 0
*self*.dy
det är för att koden är kopierad från en annan uppgift (färdig exempel) och har bytt ut, IF *self* mot IF box_x , ihopp om att det ska fungera men de gör de inte :/
__________________
Senast redigerad av niicz 2011-06-12 kl. 17:37.
Senast redigerad av niicz 2011-06-12 kl. 17:37.