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】赛车小游戏实战制作流程相关推荐

  1. 【源代码】Python制作的赛车小游戏,逆行飙车

    python制作的赛车小游戏,逆行飙车,通过键盘方向键控制 程序运行截图 源代码 import pygame, sys, time, random# pygame 初始化 pygame.init() ...

  2. Python制作的赛车小游戏源代码,逆行飙车

    python制作的赛车小游戏,逆行飙车,通过键盘方向键控制 程序运行截图: 源代码 import pygame, sys, time, random# pygame 初始化 pygame.init() ...

  3. 【微信小游戏实战】零基础制作《欢乐停车场》二、关卡设计

    1.游戏立项 微信小游戏中有一款<欢乐停车场Plus>的小游戏,大家可以搜索玩下.这是一款益智类的小游戏,游戏中有红.黄.绿.蓝.紫5辆豪车6个停车位,玩家通过可行走路线移动小车,最终让各 ...

  4. 【微信小游戏实战】零基础制作《欢乐停车场》三、游戏场景制作

    1.游戏立项 微信小游戏中有一款<欢乐停车场Plus>的小游戏,大家可以搜索玩下.这是一款益智类的小游戏,游戏中有红.黄.绿.蓝.紫5辆豪车6个停车位,玩家通过可行走路线移动小车,最终让各 ...

  5. 【微信小游戏实战】零基础制作《欢乐停车场》一、游戏设计

    1.游戏立项 微信小游戏中有一款<欢乐停车场>的小游戏,大家可以搜索玩下.这是一款益智类的小游戏,游戏中有红.黄.绿.蓝.紫5辆豪车6个停车位,玩家通过可行走路线移动小车,最终让各颜色的小 ...

  6. python手机版做小游戏代码大全-python简单小游戏代码 怎么用Python制作简单小游戏...

    1.Python猜拳小游戏代码: 2.import random #导入随机模块 3. 4.num = 1 5.yin_num = 0 6.shu_num = 0 7.while num <= ...

  7. python小游戏代码大全-python简单小游戏代码 怎么用Python制作简单小游戏

    1.Python猜拳小游戏代码: 2.import random #导入随机模块 3. 4.num = 1 5.yin_num = 0 6.shu_num = 0 7.while num <= ...

  8. [Unity] 制作游戏 赛车小游戏

    模拟赛车小游戏 效果展示 做一款模拟赛车的小游戏demo,方向键控制.有刹车.重玩,还有漂移和查看车型的功能 可以看到,还有翻车的效果哈哈哈!有兴趣的小伙伴来看看吧! 资源准备 从网上下载赛车模型和桥 ...

  9. 12岁的少年教你用Python做小游戏

    首页 资讯 文章 频道 资源 小组 相亲 登录 注册 首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 -首页最新文章经典回顾开发- Web前端- Py ...

最新文章

  1. antd Form.Item 中如何获取到Select的label值
  2. NTFS 分区表修复新法(AcronisDiskDirector10)
  3. Linux中执行shell脚本的4种方法
  4. jQuery 动感的横向柱状形投票统计图
  5. 腾讯这家公司的核心竞争力是什么?为什么?
  6. css 书写记录(兼容性)
  7. mysql流量控制_Daloradius限制上网流量
  8. 如何做到自动化运营--数据驱动
  9. 某校决定由全校学生(C语言)
  10. 重拾数月前做的微信红包小项目
  11. 在ST官网下载STM32单片机标准固件库
  12. 20182442-胡名琪
  13. python 中 websocket实现消息定时推送
  14. UE发生GPU崩溃D3D丢失,真的跟硬件有关系。
  15. 这么多年你还在怕正则吗?
  16. hive中:row_number()排序函数的使用
  17. 瓜瓜的时空旅行,第三次模拟赛,dfs序+线段树维护最小值
  18. 什么是lora无线通讯
  19. 《计算机科学》投稿心得
  20. css为何要清除浮动及清除浮动的方法

热门文章

  1. secureCRT 使用 rz 命令上传大文件失败出现乱码
  2. mysql查询_MySQL查看用户权限的两种方法
  3. 智能报警平台——睿象云的使用
  4. 如何防止无线网络被蹭 WiFi安全小秘籍
  5. 无限 debugger 问题的解决
  6. 码农的恋爱观:只有程序员能看懂
  7. 每日10行代码59:python+appium做淘金币的能量任务
  8. 解决yolov5算法运行过程中,OSError: [WinError 1455] 页面文件太小,无法完成操作的问题
  9. 电脑版元气壁纸为什么老显示服务器异常,电脑设置壁纸出现这种状况怎么办?...
  10. 怎么设置电脑壁纸居中显示