Re: [pygame] Never seen this before

2009-04-25 Thread Yanom Mobis
what does the super() function do?

--- On Fri, 4/24/09, Tyler Laing trinio...@gmail.com wrote:

From: Tyler Laing trinio...@gmail.com
Subject: Re: [pygame] Never seen this before
To: pygame-users@seul.org
Date: Friday, April 24, 2009, 7:58 PM

You get that kind of error when you use a recursive function, and it recurses 
down further than Python has room on the stack for. Typically, when you get 
this error, there's something wrong with your recursive function. What it 
appears to be doing is within your add function, its calling itself again. I 
think you might be wanting to call super(C, self).add(spr) where C is the class 
you created which has the add method. 


-Tyler

On Fri, Apr 24, 2009 at 5:27 PM, Yanom Mobis ya...@rocketmail.com wrote:


this code



level1 = [(0,0), (20, 0), (40, 0), (60, 0), (80, 0), (100,0), (120,0), (140,0), 
(160,0), (180,0), (200,0), (220,0), (240,0)] #positions of enemies
#yatta yatta
def setenemies_lvl1(): # put enemies on screen.

    pygame.display.set_caption(Loading Level) #tell player it's loading
    for item in level1: #loop throug coords in level file: lvl1
        enemies.add(random.choice((enemyblue.png, enemycyan.png, 
enemygrey.png, enemyyellow.png)), item, enemybullets)

    pygame.display.set_caption(PyStarFighter) #tell player it's done




is causing this problem:





  File /usr/local/lib/python2.6/site-packages/pygame/sprite.py, line 325, in 
add

    self.add(spr)

 
 alot of the same message

  File /usr/local/lib/python2.6/site-packages/pygame/sprite.py, line 316, in 
add
    if isinstance(sprite, Sprite):
RuntimeError: maximum recursion depth exceeded while calling a Python object









  


-- 
Visit my blog at http://oddco.ca/zeroth/zblog




  

Re: [pygame] Never seen this before

2009-04-25 Thread Yanom Mobis
the two files for the game are attached

--- On Fri, 4/24/09, Brian Song unlucky...@gmail.com wrote:

From: Brian Song unlucky...@gmail.com
Subject: Re: [pygame] Never seen this before
To: pygame-users@seul.org
Date: Friday, April 24, 2009, 9:57 PM

 If the problems fixed, yay. If not, you should put up most/all your source so 
it's easier for people to see whats happening.



  #! /usr/bin/env python

#main.py - main file for pystarfighter
print(init...)

#lvl
level1 = [(0,0), (20, 0), (40, 0), (60, 0), (80, 0), (100,0), (120,0), (140,0), (160,0), (180,0), (200,0), (220,0), (240,0)] #positions of enemies
#/lvl
import pygame, spritemodule,random #import modules
from pygame.locals import *#

screen = pygame.display.set_mode((256,256))
pygame.display.set_caption(Loading)

gameObjects = pygame.sprite.Group() #canisters
bullets = pygame.sprite.Group() #
enemybullets = pygame.sprite.Group()#
enemies = pygame.sprite.Group() #

clock=pygame.time.Clock()

weaponheat = 0

spaceship = spritemodule.Player(spaceship.png) #create player object
gameObjects.add(spaceship)   #
  
	
#colors

blue = 0,0,255
red = 255, 0, 0

green = 0, 255, 0

black = 0,0,0
white = 255,255,255
#/colors

spaceship.rect.left = 0
spaceship.rect.top = 236

pygame.display.set_caption(PyStarFighter)
print(init complete)
def setenemies_lvl1(): # put enemies on screen.
	pygame.display.set_caption(Loading Level) #tell player it's loading
	for item in level1: #loop throug coords in level file: lvl1
		enemies.add(random.choice((enemyblue.png, enemycyan.png, enemygrey.png, enemyyellow.png)), item, enemybullets)
	pygame.display.set_caption(PyStarFighter) #tell player it's done
		
def mainloop():
weaponheat = 0
while 1: # main game loop
	clock.tick(60)
	weaponheat = weaponheat - 1

   	if weaponheat  0: weaponheat = 0 #ensure the weaponheat doesn't fall below zero

	spaceship.speed = (0,0)
	key = pygame.key.get_pressed() #create a list of keys

#keys
	if key[K_RIGHT] and spaceship.rect.left  240:
  		spaceship.speed = (6,0)  
	if key[K_LEFT] and spaceship.rect.left  0: 
	spaceship.speed = (-6,0)
	if key[K_SPACE] and weaponheat == 0: #shoot
		weaponheat = 60
 	bullets.add(spritemodule.Bullet(bullet.png, (0, -10)))
#/keys

	spaceship.rect= spaceship.rect.move(spaceship.speed)
	for event in pygame.event.get(): #cycle events
	if event.type == QUIT or event.type == KEYDOWN and event.key == K_ESCAPE:
			exit()

	for item in bullets: #loop through bullet canister
		if item.rect.left == 0 and item.rect.top == 0:
			item.rect.left = spaceship.rect.left  #move the bullet to the spaceship
			item.rect.top = spaceship.rect.top#
		else:
			item.rect = item.rect.move(0,-6)	
	#screen
	screen.fill(black)
	bullets.draw(screen)
	enemybullets.draw(screen)
gameObjects.draw(screen)
enemies.draw(screen)
	
	pygame.display.flip()
setenemies_lvl1()
#mainloop()
import pygame
class Basicsprite(pygame.sprite.Sprite): #create a sprite class
def __init__(self, img):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load(img).convert_alpha()
self.rect = self.image.get_rect()
def resetrect(self):
self.rect = self.image.get_rect()
class Player(Basicsprite): #player ship
def __init__(self, img):
Basicsprite.__init__(self, img)
def shoot():
	pass
class Bullet(Basicsprite): #bullet
def __init__(self, img, speed): #speed is a tuple that describes the direction the bullet travels.
		Basicsprite.__init__(self, img)
		self.speed=speed 
class Enemy(Basicsprite): #enemy
	def __init__(self, img, initpos, bulletcanister): #bulletcanister- the sprite canister it puts the bullets in
		Basicsprite.__init__(self, img)
		self.rect.left = initpos[0]
		self.rect.top = initpos[1]
			
	def shoot(): #shoot a bullet
		self.bulletcanister.add(Bullet(bullet.png))


Re: [pygame] Never seen this before

2009-04-25 Thread Tyler Laing
Okay, I had assumed you had written your own python class, subclassing one
of the Group classes, and had used .add within the overridden method. I've
made that mistake myself.

Looking at your code, I see the issue. For one, Group.add takes in a list of
sprites. You are passing in three separate arguments, and Group.add is
thinking they are each sprites.

You should change
 enemies.add(random.choice((enemyblue.png, enemycyan.png,
enemygrey.png, enemyyellow.png)), item, enemybullets)

to
enemies.add(Enemy(random.choice((enemyblue.png, enemycyan.png,
enemygrey.png, enemyyellow.png)), item, enemybullets))


The super method can take a class and an object as parameters, and it will
call the method on the superclass of the class given. It is the same as
Basicsprite.__init__(self, img)

For reference, here is the documentation about Group.add:

http://www.pygame.org/docs/ref/sprite.html#Group.add

-Tyler

On Sat, Apr 25, 2009 at 6:34 AM, Yanom Mobis ya...@rocketmail.com wrote:

 the two files for the game are attached

 --- On *Fri, 4/24/09, Brian Song unlucky...@gmail.com* wrote:


 From: Brian Song unlucky...@gmail.com
 Subject: Re: [pygame] Never seen this before
 To: pygame-users@seul.org
 Date: Friday, April 24, 2009, 9:57 PM

  If the problems fixed, yay. If not, you should put up most/all your source
 so it's easier for people to see whats happening.





-- 
Visit my blog at http://oddco.ca/zeroth/zblog


Re: [pygame] Never seen this before

2009-04-25 Thread Marius Gedminas
On Sat, Apr 25, 2009 at 06:33:00AM -0700, Yanom Mobis wrote:
 what does the super() function do?

It's a way to call the superclass version of the method you're
overriding.  (Technically, it's a built-in type, and not a function, but
that's an irrelevant implementation detail).

Read more about it:

 * http://www.python.org/download/releases/2.2/descrintro/#cooperation
 * http://fuhm.net/super-harmful/

Marius Gedminas
-- 
Microsoft's entry in this cavalcade of horrors is Universal Plug and Play
(UPnP).  This is a protocol that allows [...] an end-user system to request a
dynamic port-forwarding from the firewall to the box.  Many network
administrators will probably (rightly) recoil at letting applications on a
Windows box dictate firewall policy.
-- Anthony Baxter


signature.asc
Description: Digital signature


Re: [pygame] Never seen this before

2009-04-25 Thread Yanom Mobis
oops. I should add that to my list of dumb bugs i find in the code i write. 
Like this one:

if key[K_RIGHT]:
    spaceship.speed = spaceship.speed+10

if key[K_RIGHT]:

    spaceship.speed = spaceship.speed-10


:)
--- On Sat, 4/25/09, Tyler Laing trinio...@gmail.com wrote:

From: Tyler Laing trinio...@gmail.com
Subject: Re: [pygame] Never seen this before
To: pygame-users@seul.org
Date: Saturday, April 25, 2009, 9:12 AM

Okay, I had assumed you had written your own python class, subclassing one of 
the Group classes, and had used .add within the overridden method. I've made 
that mistake myself.

Looking at your code, I see the issue. For one, Group.add takes in a list of 
sprites. You are passing in three separate arguments, and Group.add is thinking 
they are each sprites. 


You should change
 enemies.add(random.choice((enemyblue.png, enemycyan.png, enemygrey.png, 
enemyyellow.png)), item, enemybullets)

to
enemies.add(Enemy(random.choice((enemyblue.png, enemycyan.png, 
enemygrey.png, enemyyellow.png)), item, enemybullets))



The super method can take a class and an object as parameters, and it will call 
the method on the superclass of the class given. It is the same as 
Basicsprite.__init__(self, img)

For reference, here is the documentation about Group.add:


http://www.pygame.org/docs/ref/sprite.html#Group.add

-Tyler

On Sat, Apr 25, 2009 at 6:34 AM, Yanom Mobis ya...@rocketmail.com wrote:


the two files for the game are attached

--- On Fri, 4/24/09, Brian Song unlucky...@gmail.com wrote:


From: Brian Song unlucky...@gmail.com
Subject: Re: [pygame] Never seen this before
To: pygame-users@seul.org

Date: Friday, April 24, 2009, 9:57 PM

 If the problems fixed, yay. If not, you should put up most/all your source so 
it's easier for people to see whats happening.





  


-- 
Visit my blog at http://oddco.ca/zeroth/zblog




  

Re: [pygame] Never seen this before

2009-04-25 Thread Tyler Laing
Happens to everyone. It takes time(10 years or 10,000 hours) to get good at
something. I'm at about year 6-7 and I find while I still make silly
mistakes, I've become much better at catching them before or during testing.
:)

On Sat, Apr 25, 2009 at 8:03 AM, Yanom Mobis ya...@rocketmail.com wrote:

 oops. I should add that to my list of dumb bugs i find in the code i write.
 Like this one:

 if key[K_RIGHT]:
 spaceship.speed = spaceship.speed+10
 if key[K_RIGHT]:
 spaceship.speed = spaceship.speed-10


 :)
 --- On *Sat, 4/25/09, Tyler Laing trinio...@gmail.com* wrote:


 From: Tyler Laing trinio...@gmail.com
 Subject: Re: [pygame] Never seen this before
 To: pygame-users@seul.org
 Date: Saturday, April 25, 2009, 9:12 AM


 Okay, I had assumed you had written your own python class, subclassing one
 of the Group classes, and had used .add within the overridden method. I've
 made that mistake myself.

 Looking at your code, I see the issue. For one, Group.add takes in a list
 of sprites. You are passing in three separate arguments, and Group.add is
 thinking they are each sprites.

 You should change
  enemies.add(random.choice((enemyblue.png, enemycyan.png,
 enemygrey.png, enemyyellow.png)), item, enemybullets)

 to
 enemies.add(Enemy(random.choice((enemyblue.png, enemycyan.png,
 enemygrey.png, enemyyellow.png)), item, enemybullets))


 The super method can take a class and an object as parameters, and it will
 call the method on the superclass of the class given. It is the same as
 Basicsprite.__init__(self, img)

 For reference, here is the documentation about Group.add:

 http://www.pygame.org/docs/ref/sprite.html#Group.add

 -Tyler

 On Sat, Apr 25, 2009 at 6:34 AM, Yanom Mobis 
 ya...@rocketmail.comhttp://mc/compose?to=ya...@rocketmail.com
  wrote:

 the two files for the game are attached

 --- On *Fri, 4/24/09, Brian Song 
 unlucky...@gmail.comhttp://mc/compose?to=unlucky...@gmail.com
 * wrote:


 From: Brian Song 
 unlucky...@gmail.comhttp://mc/compose?to=unlucky...@gmail.com
 
 Subject: Re: [pygame] Never seen this before
 To: pygame-users@seul.org http://mc/compose?to=pygame-us...@seul.org
 Date: Friday, April 24, 2009, 9:57 PM

  If the problems fixed, yay.. If not, you should put up most/all your
 source so it's easier for people to see whats happening.





 --
 Visit my blog at http://oddco.ca/zeroth/zblog





-- 
Visit my blog at http://oddco.ca/zeroth/zblog


Re: [pygame] Never seen this before

2009-04-25 Thread Ian Mallett
On Sat, Apr 25, 2009 at 8:17 AM, Tyler Laing trinio...@gmail.com wrote:

 Happens to everyone. It takes time(10 years or 10,000 hours) to get good at
 something. I'm at about year 6-7 and I find while I still make silly
 mistakes, I've become much better at catching them before or during testing.
 :)

I'm at year 2, but I'm ~4000 hours...I guess I'm obsessive.  I still make
mistakes, though, obviously.


Re: [pygame] Never seen this before

2009-04-25 Thread Marius Gedminas
On Sat, Apr 25, 2009 at 08:17:11AM -0700, Tyler Laing wrote:
 Happens to everyone. It takes time(10 years or 10,000 hours) to get
 good at something. I'm at about year 6-7 and I find while I still make
 silly mistakes, I've become much better at catching them before or
 during testing.  :)

Silly mistakes never go away.

With experience you begin to expect them and check your assumptions more
often.

There have been countless times I've written unit tests for tiny
functions that I couldn't possibly have written wrong, only to discover
that I have in fact made a silly mistake.

Marius Gedminas
-- 
I'm unaware of anyone having implemented even a fraction of H.323 in Python.
Doing so would require a special kind of dedication, and quite possibly a large
amount of whiskey and prescription medication.
-- Anthony Baxter


signature.asc
Description: Digital signature


[pygame] Never seen this before

2009-04-24 Thread Yanom Mobis
this code



level1 = [(0,0), (20, 0), (40, 0), (60, 0), (80, 0), (100,0), (120,0), (140,0), 
(160,0), (180,0), (200,0), (220,0), (240,0)] #positions of enemies
#yatta yatta
def setenemies_lvl1(): # put enemies on screen.
    pygame.display.set_caption(Loading Level) #tell player it's loading
    for item in level1: #loop throug coords in level file: lvl1
        enemies.add(random.choice((enemyblue.png, enemycyan.png, 
enemygrey.png, enemyyellow.png)), item, enemybullets)
    pygame.display.set_caption(PyStarFighter) #tell player it's done




is causing this problem:





  File /usr/local/lib/python2.6/site-packages/pygame/sprite.py, line 325, in 
add
    self.add(spr)

  alot of the same message

  File /usr/local/lib/python2.6/site-packages/pygame/sprite.py, line 316, in 
add
    if isinstance(sprite, Sprite):
RuntimeError: maximum recursion depth exceeded while calling a Python object






  

Re: [pygame] Never seen this before

2009-04-24 Thread Tyler Laing
You get that kind of error when you use a recursive function, and it
recurses down further than Python has room on the stack for. Typically, when
you get this error, there's something wrong with your recursive function.
What it appears to be doing is within your add function, its calling itself
again. I think you might be wanting to call super(C, self).add(spr) where C
is the class you created which has the add method.

-Tyler

On Fri, Apr 24, 2009 at 5:27 PM, Yanom Mobis ya...@rocketmail.com wrote:

 this code



 level1 = [(0,0), (20, 0), (40, 0), (60, 0), (80, 0), (100,0), (120,0),
 (140,0), (160,0), (180,0), (200,0), (220,0), (240,0)] #positions of enemies
 #yatta yatta
 def setenemies_lvl1(): # put enemies on screen.
 pygame.display.set_caption(Loading Level) #tell player it's loading
 for item in level1: #loop throug coords in level file: lvl1
 enemies.add(random.choice((enemyblue.png, enemycyan.png,
 enemygrey.png, enemyyellow.png)), item, enemybullets)
 pygame.display.set_caption(PyStarFighter) #tell player it's done




 is causing this problem:





   File /usr/local/lib/python2.6/site-packages/pygame/sprite.py, line 325,
 in add
 self.add(spr)

   alot of the same message

   File /usr/local/lib/python2.6/site-packages/pygame/sprite.py, line 316,
 in add
 if isinstance(sprite, Sprite):
 RuntimeError: maximum recursion depth exceeded while calling a Python
 object







-- 
Visit my blog at http://oddco.ca/zeroth/zblog


Re: [pygame] Never seen this before

2009-04-24 Thread Brian Song
 If the problems fixed, yay. If not, you should put up most/all your source
so it's easier for people to see whats happening.