makes sense now




________________________________
From: Rolf Sievers <rolf.siev...@lg-bs.de>
To: pygame-users@seul.org
Sent: Wednesday, June 17, 2009 2:18:47 PM
Subject: Re: [pygame] update() weirdness

Sorry for spamming the mailing list, maybe i should thing a bit longer before 
posting...

1) I forgot to describe the actually problem to you, just in case you didn't 
yet figured that out by my previous posts:
whenever a bullet is created, it immediately kills itself the next frame, 
because you check against everything on the screen, including the bullet itself 
which will always collide with itself.
Every frame a new bullet is created at the same position as the ship, which 
creates the impression of the bullet traveling with the same speed as the 
spaceship - which isn't the case.

2) you might want to use a debugger to figure out such problems yourself or, 
for trivial problems like this one, use "print 'Bullet got destroyed'"-like 
debug output. Adding that line into your code made me figure out the problem 
without problems.

Lizard
(fucking "itself" repetition, my limited vocabulary sounds so weired)

Rolf Sievers schrieb:
> oh, and "if isinstance(item, Player):" might save you two lines, alternative 
> use "if (isinstance(item, Player) or isinstance(item, Bullet)):" to let 
> bullets kill each other.
> 
> Lizard
> 
> Rolf Sievers schrieb:
>>        for item in obs: #go through all of the items in the supplied objects
>>            if (isinstance(item, Enemy) or isinstance(item, EnemyBullet)): # 
>> <- changed
>>            # if isinstance(item, Enemy):
>>                pass #don't do anything if it's an enemy
>>            else:
>>                if item.rect.colliderect(self.rect): #has the item collided
>>                ######################################with the bullet's
>>                ######################################rect?
>>                    self.kill()
>>                    item.kill()
>> 
>> well, s.th. has collided with the bullets rect, what about ... the bullet 
>> itself? I changed it to check if it is colliding with an bullet, and that 
>> works a bit better ^_^.
>> 
>> You still have to do s.th. so that there won't be one bullet per frame, but 
>> you didn't asked about that bug too. Also: 30px per frame is a bit to fast.
>> 
>> Lizard
>> 
>> Yanom Mobis schrieb:
>>> in the code i have attached, there seems to be some problem with the 
>>> EnemyBullet.update() fuction, when you run the code you will get what i 
>>> mean, hard to explain. i have attached my code.
>>> 



      

Reply via email to