|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
求解决!!! 我根据小甲鱼的动画精灵那一节一起敲的代码,但是一直有错误。
这是代码
import pygame
import sys
import math
from pygame.locals import *
from random import *
#球类继承自Spirite 类
class Ball(pygame.sprite.Sprite):
def __int__(self,image,position,speed,bg_size):
#初始化动画精灵
pygeme.sprite.Sprite.__init__(self)
self.image = pygame.image.load(image).covert_alpha()
self.rect = self.image_rect()
#将小球放在指定位置
self.rect.left, self.rect.top = position
self.speed = speed
self.width, self.height = bg_size[0], bg_size[1]
def move (self):
self.rect = self.rect.move(self.speed)
#如果小球的左侧出了边界,那么将小球左侧的位置改为右侧的边界
if self.rect.right < 0:
self,rect.left = self.width
elif self.rect.left > self.width:
self.rect.right = 0
elif self.rect.bottom < 0:
self.rect.right.top = self.height
elif self.rect.top > self.height:
self.rect.bottom = 0
def collide_check(item,target):
col_balls = []
for each in target:
distance = math.sqrt(\
math.pow((item.center[0] - each.rect.center[0]),2) + \
math.pow((item.center[0] - each.rect.center[1]),2))
if distance <= (item.rect.width + each.rect.width)/ 2:
col_ball.append(each)
return col_balls
def main():
pygame.init()
ball_image = "gray_ball.png"
bg_image = "background.png"
running = True
#根据背景图片指定游戏界面尺寸
bg_size = width, height = 1024, 681
screen = pygame.display.set_mode(bg_size)
pygame.display.set_caption("Play the ball - FishC Demo")
background = pygame.image.load(bg_image).convert_alpha()
#用来存放小球对象的列表
balls = []
#创建小球
BALL_NUM = 5
for i in range (BALL_NUM):
# 位置随机,速度随机
position = randint(0,width-100), randint(0,height-100)
speed = [randint(-10,10),randint(-10,10)]
ball = Ball(ball_image, position, speed, bg_size)
balls.append(ball)
clock = pygame.time.Clock()
while running:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
screen.blit(background,(0,0))
for each in balls:
each.move()
screen.blit(each.image,each.rect)
for i in range (BALL_NUM):
item = balls.pop(i)
if collide_check(item,balls):
item.speed[0] = -item.speed[0]
item.speed[1] = -item.speed[1]
ball.insert(i,item)
pygame.display.filp()
clock.tick(30)
if __name__ =="__main__":
main()
报错是
File "C:\Users\LY\Desktop\气泡.py", line 104, in <module>
main()
File "C:\Users\LY\Desktop\气泡.py", line 72, in main
ball = Ball(ball_image, position, speed, bg_size)
File "C:\Users\LY\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pygame\sprite.py", line 124, in __init__
self.add(*groups)
File "C:\Users\LY\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pygame\sprite.py", line 142, in add
self.add(*group)
File "C:\Users\LY\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pygame\sprite.py", line 142, in add
self.add(*group)
File "C:\Users\LY\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pygame\sprite.py", line 142, in add
self.add(*group)
[Previous line repeated 491 more times]
RecursionError: maximum recursion depth exceeded
检查了好几遍也没发现哪里有问题,希望各位帮帮忙
本帖最后由 塔利班 于 2018-12-4 09:49 编辑
pygeme.sprite.Sprite.__init__(self)
pygame拼错了
init拼错了
|
|