如何在python中创建和移动多个形状
我正在为学校比赛制作一款太空游戏。我将使用向外移动的星星(白点)来产生在太空中移动的效果。接下来,我将检查星星的x线是否小于中心或屏幕(向左移动星星),以及x坐标是否更大(向右移动)。然而,我似乎只能举一个stars类的例子。非常感谢你的帮助如何在python中创建和移动多个形状,python,pygame,Python,Pygame,我正在为学校比赛制作一款太空游戏。我将使用向外移动的星星(白点)来产生在太空中移动的效果。接下来,我将检查星星的x线是否小于中心或屏幕(向左移动星星),以及x坐标是否更大(向右移动)。然而,我似乎只能举一个stars类的例子。非常感谢你的帮助 import pygame import random pygame.init() screen = pygame.display.set_mode((1200, 800)) caption = pygame.display.set_caption("s
import pygame
import random
pygame.init()
screen = pygame.display.set_mode((1200, 800))
caption = pygame.display.set_caption("sapce game")
screen.fill((56, 56, 56))
white = (255, 255, 255)
class Stars:
def __init__(self):
self.x = random.randint(0, 600)
self.y = random.randint(0, 400)
self.pos = (self.x, self.y)
def move(self):
pygame.draw.circle(screen, white, (self.x, self.y), 4)
self.y -= 1
self.x -= 2
screen.fill((56, 56, 56))
pygame.draw.circle(screen, white, (self.x, self.y), 4)
pygame.display.update()
s = Stars()
run = True
while run:
s.move()
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
quit()
首先,您必须将
scrre.fill
和pygame.display.update()
放在主应用程序循环中。从星号中删除此调用。移动:
run=True
运行时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
退出
屏幕填充((56,56,56))
s、 移动()
pygame.display.update()
注意,您希望清除显示一次,然后绘制所有星星,最后更新显示
创建星星列表:
star_list=[]
对于范围(10)内的i:
star\u list.append(Stars())
在循环中移动并绘制星星:
run=True
运行时:
# [...]
屏幕填充((56,56,56))
对于star_列表中的s:
s、 移动()
pygame.display.update()
示例代码:
导入pygame
随机输入
pygame.init()
screen=pygame.display.set_模式((1200800))
caption=pygame.display.set_字幕(“sapce游戏”)
屏幕填充((56,56,56))
白色=(255,255,255)
班级明星:
定义初始化(自):
self.x=random.randint(0600)
self.y=random.randint(0400)
self.dx,self.dy=0,0
当self.dx==0时:
self.dx=random.randint(-2,2)
当self.dy==0时:
self.dy=random.randint(-2,2)
self.pos=(self.x,self.y)
def移动(自我):
self.x+=self.dx
self.y+=self.dy
如果self.x=1200:
self.dx=-self.dx
如果self.y=800:
self.dy=-self.dy
pygame.draw.circle(屏幕,白色,(self.x,self.y),4)
星_列表=[]
对于范围(10)内的i:
star\u list.append(Stars())
运行=真
运行时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
退出
屏幕填充((56,56,56))
对于star_列表中的s:
s、 移动()
pygame.display.update()