【Python】赛车小游戏实战制作流程
1.定义常量
class Constant:SCREEN_WIDTH = 400 # 页面宽度SCREEN_HEIGHT = 600 # 页面长度BLACK = (0, 0, 0) RED = "#FF0000" # 结束界面FPS = 60 # 帧率大小SCORE = 0 # 初始分数SPEED = 5 # 敌人的运动速度
首先定义一个类,这个类的作用是定义一些以后会用得到的常量,例如页面的长宽高,游戏帧率的大小,这里的帧率选择60帧(可以根据自身喜好调节)。
2.设置敌人
class Enemy1(pygame.sprite.Sprite):def __init__(self):super(Enemy1,self).__init__() # 调用父类的init方法初始化对象x,y = (random.randint(22,378),0)self.image = pygame.image.load("Demo/Enemy.png")self.surf = pygame.Surface((42, 70))self.rect = self.surf.get_rect(center=(x,y)) # 设置敌人的位置def move(self):global SCOREself.rect.move_ip(0,Constant.SPEED)if self.rect.top > Constant.SCREEN_HEIGHT: # 设置加分机制Constant.SCORE += 1self.rect.top = 0 self.rect.left = 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.image.load("Demo/Player.png")self.surf = pygame.Surface((40,75))self.rect = self.image.get_rect(left=170,bottom=Constant.SCREEN_HEIGHT -21)def move(self):press_keys = pygame.key.get_pressed()if press_keys[K_DOWN] and self.rect.bottom <= Constant.SCREEN_HEIGHT -21:self.rect.move_ip(0, 5)if press_keys[K_UP] and self.rect.top >= 0:self.rect.move_ip(0, -5)if press_keys[K_RIGHT] and self.rect.right <= Constant.SCREEN_WIDTH - 4:self.rect.move_ip(5, 0)if press_keys[K_LEFT] and self.rect.left >= 0:self.rect.move_ip(-5, 0)
还是一样,我们首先初始化玩家的属性,将玩家的位置定义在居中靠下,设置玩家的大小。在初始化完成以后,我们利用pygame的功能,设置键盘让我们的赛车跑起来,并且要注意不要让玩家跑到我们的屏幕外面去了。
4.运行
class Game:def __init__(self):pygame.init()# 字体和文字self.font_big = pygame.font.SysFont("Impact", 60)self.font_small = pygame.font.SysFont("Verdana", 20)self.game_over = self.font_big.render("GAME OVER", True, Constant.BLACK)self.SPEED_UP = pygame.USEREVENT + 1pygame.time.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 = pygame.time.Clock()self.background = pygame.image.load("Demo/AnimatedStreet.png")def run(self):player = Player()enemy1 = Enemy1()enemy2 = Enemy2()enemies = pygame.sprite.Group()enemies.add(enemy1,enemy2)all_sprites = pygame.sprite.Group()all_sprites.add(player)all_sprites.add(enemy1,enemy2)pygame.mixer.Sound("Demo/background.wav").play(-1)OUT_OF_RANGE = pygame.USEREVENT + 1while True:self.screen.blit(self.background, (0, 0))scores = self.font_small.render(str(Constant.SCORE), True, Constant.BLACK)self.screen.blit(scores, (10, 10))for sprite in all_sprites:self.screen.blit(sprite.image, sprite.rect)sprite.move()for event in pygame.event.get():if event.type == self.SPEED_UP:Constant.SPEED += 1if event.type == pygame.QUIT:pygame.quit()sys.exit()if pygame.sprite.spritecollide(player, enemies, True): # True将敌人所在的组全部清除掉pygame.mixer.Sound("Demo/crash.wav").play()time.sleep(1)self.screen.fill(Constant.RED)self.screen.blit(self.game_over, (80, 150))pygame.display.update()time.sleep(2)pygame.quit()sys.exit()pygame.display.update()self.clock.tick(Constant.FPS)
在运行这个类里面,我们可以首先设置自己想要的字体,这里的字体我们可以自己在自己的电脑里找到电脑自带的字体。
随后我们将我们的玩家和敌人都放入到调用的pygame精灵这个库里面,使得我们的游戏运行起来。利用while循环让我们的游戏启动起来。
5.启动
if __name__=='__main__': # 使得游戏真正运行起来game = Game()game.run()
调用这段代码使得我们的游戏真正运行起来。
【Python】赛车小游戏实战制作流程相关推荐
- 【源代码】Python制作的赛车小游戏,逆行飙车
python制作的赛车小游戏,逆行飙车,通过键盘方向键控制 程序运行截图 源代码 import pygame, sys, time, random# pygame 初始化 pygame.init() ...
- Python制作的赛车小游戏源代码,逆行飙车
python制作的赛车小游戏,逆行飙车,通过键盘方向键控制 程序运行截图: 源代码 import pygame, sys, time, random# pygame 初始化 pygame.init() ...
- 【微信小游戏实战】零基础制作《欢乐停车场》二、关卡设计
1.游戏立项 微信小游戏中有一款<欢乐停车场Plus>的小游戏,大家可以搜索玩下.这是一款益智类的小游戏,游戏中有红.黄.绿.蓝.紫5辆豪车6个停车位,玩家通过可行走路线移动小车,最终让各 ...
- 【微信小游戏实战】零基础制作《欢乐停车场》三、游戏场景制作
1.游戏立项 微信小游戏中有一款<欢乐停车场Plus>的小游戏,大家可以搜索玩下.这是一款益智类的小游戏,游戏中有红.黄.绿.蓝.紫5辆豪车6个停车位,玩家通过可行走路线移动小车,最终让各 ...
- 【微信小游戏实战】零基础制作《欢乐停车场》一、游戏设计
1.游戏立项 微信小游戏中有一款<欢乐停车场>的小游戏,大家可以搜索玩下.这是一款益智类的小游戏,游戏中有红.黄.绿.蓝.紫5辆豪车6个停车位,玩家通过可行走路线移动小车,最终让各颜色的小 ...
- python手机版做小游戏代码大全-python简单小游戏代码 怎么用Python制作简单小游戏...
1.Python猜拳小游戏代码: 2.import random #导入随机模块 3. 4.num = 1 5.yin_num = 0 6.shu_num = 0 7.while num <= ...
- python小游戏代码大全-python简单小游戏代码 怎么用Python制作简单小游戏
1.Python猜拳小游戏代码: 2.import random #导入随机模块 3. 4.num = 1 5.yin_num = 0 6.shu_num = 0 7.while num <= ...
- [Unity] 制作游戏 赛车小游戏
模拟赛车小游戏 效果展示 做一款模拟赛车的小游戏demo,方向键控制.有刹车.重玩,还有漂移和查看车型的功能 可以看到,还有翻车的效果哈哈哈!有兴趣的小伙伴来看看吧! 资源准备 从网上下载赛车模型和桥 ...
- 12岁的少年教你用Python做小游戏
首页 资讯 文章 频道 资源 小组 相亲 登录 注册 首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 -首页最新文章经典回顾开发- Web前端- Py ...
最新文章
- antd Form.Item 中如何获取到Select的label值
- NTFS 分区表修复新法(AcronisDiskDirector10)
- Linux中执行shell脚本的4种方法
- jQuery 动感的横向柱状形投票统计图
- 腾讯这家公司的核心竞争力是什么?为什么?
- css 书写记录(兼容性)
- mysql流量控制_Daloradius限制上网流量
- 如何做到自动化运营--数据驱动
- 某校决定由全校学生(C语言)
- 重拾数月前做的微信红包小项目
- 在ST官网下载STM32单片机标准固件库
- 20182442-胡名琪
- python 中 websocket实现消息定时推送
- UE发生GPU崩溃D3D丢失,真的跟硬件有关系。
- 这么多年你还在怕正则吗?
- hive中:row_number()排序函数的使用
- 瓜瓜的时空旅行,第三次模拟赛,dfs序+线段树维护最小值
- 什么是lora无线通讯
- 《计算机科学》投稿心得
- css为何要清除浮动及清除浮动的方法
热门文章
- secureCRT 使用 rz 命令上传大文件失败出现乱码
- mysql查询_MySQL查看用户权限的两种方法
- 智能报警平台——睿象云的使用
- 如何防止无线网络被蹭 WiFi安全小秘籍
- 无限 debugger 问题的解决
- 码农的恋爱观:只有程序员能看懂
- 每日10行代码59:python+appium做淘金币的能量任务
- 解决yolov5算法运行过程中,OSError: [WinError 1455] 页面文件太小,无法完成操作的问题
- 电脑版元气壁纸为什么老显示服务器异常,电脑设置壁纸出现这种状况怎么办?...
- 怎么设置电脑壁纸居中显示