Okay that was kind of a stupid question, haha. Sorry. I got it. Just needed to check *before* it was moved. Duh.
On Sun, Jul 27, 2008 at 2:28 PM, Percival Kelley <[EMAIL PROTECTED]>wrote: > Alright, one more question for you guys if you don't mind. > > I got the sprites working properly, now I'm implementing collision > detection. I only want to move my sprite if it's not touching another sprite > in the enemy group. > > I am using this: > > if self.event.type == KEYDOWN: #look for key presses for > up/down/left/right arrow keys and move appropiately > n1 = self.ship.loc1 > n2 = self.ship.loc2 > if self.event.key == K_UP or self.event.key == K_w: > n2 -= 7 > if self.event.key == K_DOWN or self.event.key == K_s: > n2 += 7 > if self.event.key == K_RIGHT or self.event.key == K_d: > n1 += 7 > if self.event.key == K_LEFT or self.event.key == K_a: > n1 -= 7 > > if not pygame.sprite.spritecollide(self.ship, self.egroup, > False): > > if n1 < 475 and n1 > 5 and n2 < 475 and n2 > 5: #boundaries > > if n1 != self.ship.loc1 or n2 != self.ship.loc2: > self.ship.loc1 = n1 #set locs to n so it updates on > next move > self.ship.loc2 = n2 > self.ship.rect.center = [self.ship.loc1, > self.ship.loc2] #move the sprite > print self.ship.rect.center #print data for our cmd > prompt > self.sgroup.clear(self.screen, self.bg) #erase the > old stuff > rectlist = self.sgroup.draw(self.screen) #draw the > new stuff > pygame.display.update(rectlist) #display it > > Now, it works, but as soon as I bump into the other sprite, it locks up. > Obviously it's because by the time its getting triggered, it's already > stuck. I'm not sure how to handle this. Any ideas? > > > On Sun, Jul 27, 2008 at 1:33 PM, Paulo Silva <[EMAIL PROTECTED]>wrote: > >> you welcome! :-) - btw, i'm still trying to to on Pygame what i were >> doing on sdlBasic up to now >> (http://nitrofurano.linuxkafe.com/sdlbasic), stuff like how to get >> lots of sprites from just one picture, etc. >> >> ------ >> >> On Mon, Jul 28, 2008 at 12:19 AM, Percival Kelley >> <[EMAIL PROTECTED]> wrote: >> > Awesome. Thank you. That did the trick. >> > >> > On Sun, Jul 27, 2008 at 1:10 PM, Paulo Silva <[EMAIL PROTECTED]> >> wrote: >> >> >> >> well, for now i were enjoying these ones >> >> http://www.cs.iupui.edu/~aharris/pygame/ch04/<http://www.cs.iupui.edu/%7Eaharris/pygame/ch04/> >> >> >> >> -------- >> >> >> >> On Sun, Jul 27, 2008 at 11:38 PM, <[EMAIL PROTECTED]> wrote: >> >> > So I've read piman's tutorial and checked out a few others. I'm still >> >> > confused. I don't really understand the process of moving a sprite >> >> > around. I would like to use RenderUpdates and such, but I'm lost. >> >> > >> >> > I basically have a simple script that moves a ship around a >> background >> >> > (the background is an image.) >> >> > >> >> > To create the sprite I'm using: >> >> > >> >> > class Units(pygame.sprite.Sprite): >> >> > >> >> > def __init__(self, img, loc1 = 250, loc2 = 250): >> >> > pygame.sprite.Sprite.__init__(self) #start up sprites >> >> > >> >> > #locs >> >> > self.loc1 = loc1 >> >> > self.loc2 = loc2 >> >> > >> >> > #create sprite >> >> > self.image, self.rect = load_image(img) >> >> > self.rect.center = [self.loc1, self.loc2] >> >> > >> >> > I create the ship like this: >> >> > self.ship = Units('bship.png') >> >> > self.screen.blit(self.ship.image, self.ship.rect) >> >> > >> >> > To redraw the ship when it moves I'm using this: >> >> > >> >> > self.ship.loc1 = n1 #n1 and n2 are setup earlier in the code that >> >> > looks for key presses and sets the pixel difference >> >> > self.ship.loc2 = n2 >> >> > self.ship.rect.center = [self.ship.loc1, self.ship.loc2] >> >> > print self.ship.rect.center >> >> > self.screen.blit(self.bg, (0,0)) >> >> > self.screen.blit(self.ship.image, self.ship.rect.center) >> >> > pygame.display.flip() >> >> > >> >> > I'm really pretty confused at this point. I know I'm just doing >> >> > something stupid, but I haven't managed to get any other code working >> >> > to redraw the ship properly when it's moved. I don't have the code >> >> > from when I was doing it wrong, but basically, can someone point me >> in >> >> > the right direction to changing this over to just redraw the >> >> > appropriate areas? >> >> > >> >> > Thanks, and sorry this was rambling. >> >> > >> > >> > >> > >
