大家好,小编为大家解答python大作业有哪些题目的问题。很多人还不知道python大作业设计报告,现在让我们一起来看看吧!
1.定义常量
class Constant:
SCREEN_WIDTH = 400 # 页面宽度
SCREEN_HEIGHT = 600 # 页面长度
BLACK = (0, 0, 0)
RED = "#FF0000" # 结束界面
FPS = 60 # 帧率大小
SCORE = 0 # 初始分数
SPEED = 5 # 敌人的运动速度
首先定义一个类,这个类的作用是定义一些以后会用得到的常量,例如页面的长宽高,游戏帧率的大小,这里的帧率选择60帧(可以根据自身喜好调节)Deepl降重。
2.设置敌人
class Enemy1(pygame.sprite.Sprite):
def __init__(self):
super(Enemy1,self).__init__() # 调用父类的init方法初始化对象
x,y = (random.randint(22,378),0)
self.image = ("")
= pygame.Surface((42, 70))
= .get_rect(center=(x,y)) # 设置敌人的位置
def move(self):
global SCORE
.move_ip(0,Constant.SPEED)
if > Constant.SCREEN_HEIGHT: # 设置加分机制
Constant.SCORE += 1
= 0
= random.randint(0,356) # 随机出现
设置一个敌人命名为Enemy1,初始化Enemy1,设置基础的参数,例如敌人的位置,敌人的大小,敌人随机出现的位置。最后利用一个if语句来设置我们的加分机制使得游戏更具挑战性。在设置完成我们第一个敌人以后我们可以复制粘贴,再增加一个敌人,使得游戏具体可玩性。
3.设置玩家
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__() # 调用父类的init方法初始化对象
x,y = (Constant.SCREEN_WIDTH/2,Constant.SCREEN_HEIGHT/2)
self.image = ("")
= pygame.Surface((40,75))
= self.image.get_rect(left=170,bottom=Constant.SCREEN_HEIGHT -21)
def move(self):
press_keys = .get_pressed()
if press_keys[K_DOWN] and .bottom <= Constant.SCREEN_HEIGHT -21:
.move_ip(0, 5)
if press_keys[K_UP] and >= 0:
.move_ip(0, -5)
if press_keys[K_RIGHT] and .right <= Constant.SCREEN_WIDTH - 4:
.move_ip(5, 0)
if press_keys[K_LEFT] and >= 0:
.move_ip(-5, 0)
还是一样,我们首先初始化玩家的属性,将玩家的位置定义在居中靠下,设置玩家的大小。在初始化完成以后,我们利用pygame的功能,设置键盘让我们的赛车跑起来,并且要注意不要让玩家跑到我们的屏幕外面去了。
4.运行
class Game:
def __init__(self):
()
# 字体和文字
self.font_big = .SysFont("Impact", 60)
self.font_small = .SysFont("Verdana", 20)
self.game_over = self.font_big.render("GAME OVER", True, Constant.BLACK)
self.SPEED_UP = pygame.USEREVENT + 1
.set_timer(self.SPEED_UP, 1000) # 设置计时器
#设置标题以及界面大小
pygame.display.set_caption("逆行飙车")
size = width, height = (Constant.SCREEN_WIDTH,Constant.SCREEN_HEIGHT)
self.screen = pygame.display.set_mode(size)
self.clock = .Clock()
self.background = ("")
def run(self):
player = Player()
enemy1 = Enemy1()
enemy2 = Enemy2()
enemies = pygame.sprite.Group()
(enemy1,enemy2)
all_sprites = pygame.sprite.Group()
(player)
(enemy1,enemy2)
pygame.mixer.Sound("").play(-1)
OUT_OF_RANGE = pygame.USEREVENT + 1
while True:
(self.background, (0, 0))
scores = self.font_small.render(str(Constant.SCORE), True, Constant.BLACK)
(scores, (10, 10))
for sprite in all_sprites:
(sprite.image, )
()
for event in ():
if == self.SPEED_UP:
Constant.SPEED += 1
if == :
()
()
if pygame.sprite.spritecollide(player, enemies, True): # True将敌人所在的组全部清除掉
pygame.mixer.Sound("").play()
time.sleep(1)
()
(self.game_over, (80, 150))
pygame.display.update()
time.sleep(2)
()
()
pygame.display.update()
()
在运行这个类里面,我们可以首先设置自己想要的字体,这里的字体我们可以自己在自己的电脑里找到电脑自带的字体。
随后我们将我们的玩家和敌人都放入到调用的pygame精灵这个库里面,使得我们的游戏运行起来。利用while循环让我们的游戏启动起来。
5.启动
if __name__=='__main__': # 使得游戏真正运行起来
game = Game()
()
调用这段代码使得我们的游戏真正运行起来。