我正试着用pygame制作一个像Python游戏一样的射击游戏。我对Python相当陌生,我不确定如何使对象从屏幕的顶部掉落,总之,下面是我的代码(我使用的是python3.6):
import pygame
import random
pygame.init()
BLACK=(0,0,0)
WHITE=(255,255,255)
RED=(255,0,0)
GREEN=(0,255,0)
BLUE=(0,0,255)
width=600
height=650
screen=pygame.display.set_mode((width,height))
pygame.display.set_caption('Videojuego')
done=False
screen.fill(WHITE)
pygame.display.flip()
background_image=pygame.image.load('fondo.jpg').convert()
screen.blit(background_image,[0,0])
player_image=pygame.image.load('rocket.png').convert()
player_image=pygame.transform.scale(player_image,(50,75))
pygame.display.flip()
pygame.mouse.set_visible(False)
count=0
clock=pygame.time.Clock()
rect_x=random.randrange(0,580)
rect_y=random.randrange(0,2)
rect_chx=5
size1=random.randrange(10,70)
size2=random.randrange(15,84)
while(not done):
for event in pygame.event.get():
if(event.type==pygame.QUIT):
print('Quit')
done=True
else:
done=False
screen.blit(background_image,[0,0])
player_position=pygame.mouse.get_pos()
x=player_position[0]
y=player_position[1]
screen.blit(player_image,(x,y))
fig=pygame.draw.rect(screen,RED,[rect_x,rect_y,size1,size2])
if(rect_y>550 or rect_y<5):
rect_chx=rect_chx*1
rect_y+=rect_chx
pygame.display.flip()
clock.tick(60)
pygame.quit()
这段代码只会使一个矩形下降,我不知道如何使更多的矩形下降。在
您可以创建一个简单的类Rect来封装一个矩形,并将其打印到屏幕上:
然后可以在列表中创建一些Rect:
rect_list = [Rect() for _ in range(10)]
(按所需的矩形数更改10)。最后,在每个循环处迭代列表:
^{pr2}$这将在开始处创建10个矩形。您可能希望检测到Rect何时位于底部,然后将其从列表中删除(它将不再显示),或者向列表中添加新的Rect以使其在顶部弹出。
我建议您学习如何用函数、类、循环和列表来做基本的python。这是强制性的,如果你想创建游戏,即使是最小的。
相关问题 更多 >
编程相关推荐