【摘要】很多人开始学习编程都会选择python,并且也会将python用在实际生活中,不过有很多伙伴也打算用python做游戏,所以小编建议大家可以学习python小游戏代码,今天环球网校的小编就来和大家讲讲python小游戏代码,希望这篇文章可以为你带来帮助。

本文实例为大家分享了python实现滑雪游戏的具体python小游戏代码,供大家参考,python小游戏代码具体内容如下

# coding: utf-8

# 滑雪小游戏 import sys import pygame import random from pygame.locals import *

# 滑雪者类 class SkierClass(pygame.sprite.Sprite): def __init__(self): pygame.sprite.Sprite.__init__(self)

# 滑雪者的朝向(-2到2) self.direction = 0 self.imgs = ["./images/skier_forward.png", "./images/skier_right1.png", "./images/skier_right2.png", "./images/skier_left2.png", "./images/skier_left1.png"] self.person = pygame.image.load(self.imgs[self.direction]) self.rect = self.person.get_rect() self.rect.center = [320, 100] self.speed = [self.direction, 6-abs(self.direction)*2]

# 改变滑雪者的朝向

# 负数为向左,正数为向右,0为向前 def turn(self, num): self.direction += num self.direction = max(-2, self.direction) self.direction = min(2, self.direction) center = self.rect.center self.person = pygame.image.load(self.imgs[self.direction]) self.rect = self.person.get_rect() self.rect.center = center self.speed = [self.direction, 6-abs(self.direction)*2] return self.speed

# 移动滑雪者 def move(self): self.rect.centerx += self.speed[0] self.rect.centerx = max(20, self.rect.centerx) self.rect.centerx = min(620, self.rect.centerx)

# 障碍物类

# Input:

# -img_path: 障碍物图片路径

# -location: 障碍物位置

# -attribute: 障碍物类别属性 class ObstacleClass(pygame.sprite.Sprite): def __init__(self, img_path, location, attribute): pygame.sprite.Sprite.__init__(self) self.img_path = img_path self.image = pygame.image.load(self.img_path) self.location = location self.rect = self.image.get_rect() self.rect.center = self.location self.attribute = attribute self.passed = False

# 移动 def move(self, num): self.rect.centery = self.location[1] - num

# 创建障碍物 def create_obstacles(s, e, num=10): obstacles = pygame.sprite.Group() locations = [] for i in range(num): row = random.randint(s, e) col = random.randint(0, 9) location = [col*64+20, row*64+20] if location not in locations: locations.append(location) attribute = random.choice(["tree", "flag"]) img_path = './images/tree.png' if attribute=="tree" else './images/flag.png' obstacle = ObstacleClass(img_path, location, attribute) obstacles.add(obstacle) return obstacles

# 合并障碍物 def AddObstacles(obstacles0, obstacles1): obstacles = pygame.sprite.Group() for obstacle in obstacles0: obstacles.add(obstacle) for obstacle in obstacles1: obstacles.add(obstacle) return obstacles

# 显示游戏开始界面 def Show_Start_Interface(Demo, width, height): Demo.fill((255, 255, 255)) tfont = pygame.font.Font('./font/simkai.ttf', width//4) cfont = pygame.font.Font('./font/simkai.ttf', width//20) title = tfont.render(u'滑雪游戏', True, (255, 0, 0)) content = cfont.render(u'按任意键开始游戏', True, (0, 0, 255)) trect = title.get_rect() trect.midtop = (width/2, height/10) crect = content.get_rect() crect.midtop = (width/2, height/2.2) Demo.blit(title, trect) Demo.blit(content, crect) pygame.display.update() while True: for event in pygame.event.get(): if event.type == QUIT: sys.exit() elif event.type == pygame.KEYDOWN: return

# 主程序 def main(): ''' 初始化 ''' pygame.init()

# 声音 pygame.mixer.init() pygame.mixer.music.load("./music/bg_music.mp3") pygame.mixer.music.set_volume(0.4) pygame.mixer.music.play(-1)

# 屏幕 screen = pygame.display.set_mode([640, 640]) pygame.display.set_caption('滑雪游戏-公众号:Charles的皮卡丘')

# 主频 clock = pygame.time.Clock()

# 滑雪者 skier = SkierClass()

# 记录滑雪的距离 distance = 0

# 创建障碍物 obstacles0 = create_obstacles(20, 29) obstacles1 = create_obstacles(10, 19) obstaclesflag = 0 obstacles = AddObstacles(obstacles0, obstacles1)

# 分数 font = pygame.font.Font(None, 50) score = 0 score_text = font.render("Score: "+str(score), 1, (0, 0, 0))

# 速度 speed = [0, 6] Show_Start_Interface(screen, 640, 640) ''' 主循环 '''

# 更新屏幕 def update(): screen.fill([255, 255, 255]) pygame.display.update(obstacles.draw(screen)) screen.blit(skier.person, skier.rect) screen.blit(score_text, [10, 10]) pygame.display.flip() while True:

# 左右键控制人物方向 for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT or event.key == pygame.K_a: speed = skier.turn(-1) elif event.key == pygame.K_RIGHT or event.key == pygame.K_d: speed = skier.turn(1) skier.move() distance += speed[1] if distance >= 640 and obstaclesflag == 0: obstaclesflag = 1 obstacles0 = create_obstacles(20, 29) obstacles = AddObstacles(obstacles0, obstacles1) if distance >= 1280 and obstaclesflag == 1: obstaclesflag = 0 distance -= 1280 for obstacle in obstacles0: obstacle.location[1] = obstacle.location[1] - 1280 obstacles1 = create_obstacles(10, 19) obstacles = AddObstacles(obstacles0, obstacles1)

# 用于碰撞检测 for obstacle in obstacles: obstacle.move(distance)

# 碰撞检测 is_hit = pygame.sprite.spritecollide(skier, obstacles, False) if is_hit: if is_hit[0].attribute == "tree" and not is_hit[0].passed: score -= 50 skier.person = pygame.image.load("./images/skier_fall.png") update()

# 摔倒后暂停一会再站起来 pygame.time.delay(1000) skier.person = pygame.image.load("./images/skier_forward.png") skier.direction = 0 speed = [0, 6] is_hit[0].passed = True elif is_hit[0].attribute == "flag" and not is_hit[0].passed: score += 10 obstacles.remove(is_hit[0]) score_text = font.render("Score: "+str(score), 1, (0, 0, 0)) update() clock.tick(40) if __name__ == '__main__': main()

以上就是有关于python小游戏代码的全部内容,小编希望大家所学的python知识可以用在自己的工作领域中,毕竟作为一个应用类的技能,最终还是要应用在实际领域中才能发挥它的作用,环球网校的小编在这里祝大家学有所成,并彻底掌握python的使用方法。想获取更多有关python的知识,可以点击下方资料下载链接。

python适合开发游戏吗_【学习python小游戏代码,你就可以做python滑雪游戏了】- 环球网校...相关推荐

  1. python项目开发案例集锦_在线分享 | 在 VS Code 中一站式完成 Python 项目开发

    往期活动回顾 VS Code 中文社区自成立以来,已经举办了4场活动: Workshop | First Step to VS Code 基础篇 Workshop | First Step to VS ...

  2. 老男孩Python自动化开发12期完整版(含作业代码课件)

    老男孩Python自动化开发12期完整版(含作业代码课件) 链接:https://pan.baidu.com/s/1zCKn_VjstbCfTYCHCBKZgQ 密码:zujz 转载于:https:/ ...

  3. python适合开发游戏吗_对编程一知半解,如何带娃像玩游戏一样“玩”编程?

    看点被称为"数字原住民"的孩子们无疑面临着前所未有的挑战:既要克服网络带来的成瘾性,又要在数字时代中生存成长.家长若能给予孩子良好的编程启蒙教育,会让他们受益良多.本期少年书房推荐 ...

  4. 编程入门python java和c语言_学习编程适不适合从Python入门?哪种语言更适合入门?...

    本文对比了C语言和Python语言,分析它们作为编程入门语言各自的利弊,并给出了我推荐的编程学习道路. 我本身已经入门了Python脚本语言,在进阶C语言和JAVA语言后,Python重学就轻松很多, ...

  5. 学python能挣多少钱_学习Python能挣多少钱?什么人适合学习Python?

    学习Python能挣多少钱?什么人适合学习Python? 发布时间:2020-06-14 06:29:44 来源:51CTO 阅读:135 作者:老男孩IT 说起Python这门编程语言,发展前景好. ...

  6. python适合开发游戏吗_python能开发游戏吗

    python可以写游戏,但不适合.下面我们来分析一下具体原因. 用锤子能造汽车吗? 谁也没法说不能吧?历史上也确实曾经有些汽车,是用锤子造出来的.但一般来说,还是用工业机器人更合适对吗? 比较大型的, ...

  7. python后端开发学什么_零基础学Python,这是阿里Python8年开发经验写给你的学习路线图...

    今天给大家分享一位前辈整理的一个Python web学习路线.这位前辈由于有编程基础,所以采用了自学Python的方式.学完后主要做后端开发.希望对你有所启发. 整理的一个 python web 学习 ...

  8. python后端开发学路线_【后端开发】Python要学哪些内容?Python程序员学习路线图...

    很多零基础入门学习python不知道学习什么?也不知道Python要学哪些内容?下ki4网为您总结一下Python程序员学习路线图. python的应用范围是很广泛的,例如一些网络的爬虫,和web的开 ...

  9. 学python的有哪些好书_学习python有哪些好书和学习方法?

    不请自来~ 上干货 <Python数据分析>作者: [印尼]Ivan Idris Python是一种多范型编程语言,既适用于面向对象的应用开发,又适合函数式设计模式.Python已经成为数 ...

最新文章

  1. 3D视觉创新应用(三维重建)竞赛作品系列——人体三维精准量测与动作捕捉
  2. [业界资讯]Window7下的IE8新漏洞KB973874成功修复
  3. python 字符串数组互转
  4. 网站优化之如何稳固网站关键词排名?
  5. python自动抓取指定信息_使用python自动转发抓取的网页信息
  6. git 清空log_[译] 我个人的 Git 技巧备忘录
  7. .net core ef动态orderby
  8. 使用.NET Core创建Windows服务 - 使用.NET Core工作器方式
  9. 威胁快报|新兴挖矿团伙借助shodan作恶,非web应用安全再鸣警钟
  10. Class create, device create, device create file
  11. linux磁盘空间回收,linux磁盘空间满了后怎么去判定哪个地方占了多大的空间并回收...
  12. 为什么学习线性代数_工程应用简介
  13. 腾达AC15改内存闪存刷AC68U梅林
  14. TLQ7/8 常用命令说明
  15. cruzer php sandisk 闪迪u盘量产工具_SanDisk Cruzer CZ36闪迪U盘 怎么量产
  16. --随笔--带你轻松理解TCP中的三次握手
  17. 如何搭建自己的私有云盘
  18. Python图形用户界面和游戏开发
  19. lidar_align 标定lidar和imu 在“Performing Global Optimization”步骤终止的问题
  20. iOS指纹识别(解锁)

热门文章

  1. BOOtmgr is missing 无法进入系统 ,电脑重装后提示bootmgr is missing 无法进入系统 ,自己的锅自己背。
  2. 如何给爸妈解释什么是“爬虫”?
  3. 共享onload 事件
  4. JS中的onload事件
  5. JS小游戏-宇宙战机
  6. 【原创】项目估算-项目管理MSN群线上讨论(2009.6.30)
  7. L2-2 冰岛人 (25 分)
  8. 面具更新自定义_大版本预告 | 面具外观、全民争霸赛50万、七夕流星雨安排!...
  9. 谷歌地图离线地图瓦片下载_如何下载Google地图以供离线使用
  10. 恒压板框过滤实验数据处理_四川自贡打桩机泥浆压滤设备小型板框实验压滤机...