飞机大战游戏

你真的了解方法吗?

末鹿安然 提交于 2020-10-24 00:26:26
方法入门 概述 前讲解的循环操作,可以解决的是代码重复的问题,但是此时的重复的代码必须是有规律的。那循环操作,能解决所有的代码重复吗?答案肯定是不行的,比如针对于某一种功能的重复操作,循环就无法实现,我们可以使用方法. 编写一个飞机大战游戏,程序在运行过程中,需要不断地发射子弹。假设发射子弹功能需要编写200行代码,那么,每次发射子弹都需要重复地编写这200行代码,这样的程序太low了。在开发中我们要遵循DRY原则(Don’t Repeat Youself)——不要重复你自己的代码,因为重复意味着维护成本很大,如果要修改功能代码,则每一个重复的地方都要修改一次,你敢确保每个重复的地方都能改到吗?你不感到厌烦吗? 为了解决功能代码重复编写的问题,可以把发射子弹的代码提取出来专门放在一个代码块(一对{})中,并为这段代码起个唯一的名字,如此,每次发射子弹的时候直接通过这个名字就可以调用发射子弹的功能代码了。这个代码块我们称之为方法。 方法就是 <font color="red"> 封装在一起来执行操作语句的集合,用来完成某个功能操作。 </font> 优点 使程序变得更简短而清晰。 有利于程序维护。 可以提高程序开发的效率。 提高了代码的重用性。 定义与使用 声明格式: [修饰符] 方法返回值类型 方法名(形参列表) { 方法体; return 返回值; } //有返回值类型的方法

《Python游戏趣味编程》第12章 坚持一百秒

亡梦爱人 提交于 2020-08-13 04:55:39
图书简介可以看这里: 童晶:《Python游戏趣味编程》新书上架了 ​ zhuanlan.zhihu.com 本章我们将编写一个坚持一百秒的游戏,玩家通过鼠标控制飞机躲避飞舞的小球,效果如图12-1所示。首先学习面向对象编程的知识,利用类和对象实现一个新版本的小球反弹程序;然后实现飞机控制与失败判定、生命显示、游戏音效等功能;最后学习继承的概念,快速添加一种新的智能小球。 本章案例最终代码一共99行,代码参看:配套资源\第12章\12-4.py,视频效果参看:配套资源\第12章\坚持一百秒.mp4。 知乎视频 ​ www.zhihu.com import pgzrun # 导入游戏库 import random # 导入随机库 WIDTH = 600 # 设置窗口的宽度 HEIGHT = 800 # 设置窗口的高度 time = 0 # 游戏坚持的时间 hero = Actor ( 'hero' ) # 导入玩家飞机图片 live = 3 # 飞机一共3条命 livePics = [] # 在左上角显示生命符号 for i in range ( live ): livePic = Actor ( 'hero_small' ) livePic . x = 40 + i * 60 livePic . y = 40 livePics . append ( livePic ) class

《Python游戏趣味编程》新书上架了

自闭症网瘾萝莉.ら 提交于 2020-08-10 12:49:52
知乎视频 ​ www.zhihu.com 《Python游戏趣味编程》新书上架了,目前京东上搜书名就可以找到,比如: 《Python游戏趣味编程 童晶 少儿编程入门教程书籍》【摘要 书评 试读】- 京东图书 ​ item.jd.com 《Python游戏趣味编程 童晶 少儿编程入门教程书籍》【摘要 书评 试读】- 京东图书 ​ item.jd.com 出版社上的图书网站,可以下载分步骤代码、观看视频教程: https://www.epubit.com/bookDetails?id=UB72096d97d6149 ​ www.epubit.com 写作目的和背景 随着人工智能时代的来临,计算机软件在日常生活中起到越来越重要的作用,编写计算机程序极有可能成为未来社会的一项重要生存技能。在众多的文本式编程语言中,Python语法简单、上手容易,功能强大、应用广泛,越来越得到初学者的青睐。 然而,目前大部分Python图书都会先系统讲解语法知识,知识量大、读者学习困难;所举实例一般偏数学算法,过于抽象、趣味性不强,读者不愿写程序,进而觉得入门困难。也有部分图书基于海龟绘图,利用代码绘制几何图形吸引读者兴趣;然而海龟绘图功能简单、不支持互动、趣味性一般。 针对以上问题,本书把趣味游戏开发应用于Python编程教学,通过12个由易到难的有趣案例,带领读者从零基础开始学习

《Python游戏趣味编程》 第7章 飞机大战

∥☆過路亽.° 提交于 2020-08-09 16:51:07
图书简介可以看这里: 童晶:《Python游戏趣味编程》新书上架了 ​ zhuanlan.zhihu.com 本章我们将编写一个飞机大战的游戏,鼠标控制飞机移动、按下鼠标发射子弹,效果如图7-1所示。首先我们实现背景循环滚动、飞机发射子弹;然后实现敌机的控制与得分显示、游戏失败判断与处理;最后为游戏添加音效。 本章案例最终代码一共88行,代码参看:配套资源\第7章\7-7.py,视频效果参看:配套资源\第7章\飞机大战.mp4。 知乎视频 ​ www.zhihu.com import pgzrun # 导入游戏库 import random # 导入随机库 WIDTH = 480 # 设置窗口的宽度 HEIGHT = 700 # 设置窗口的高度 TITLE = 'Python飞机大战' background1 = Actor ( 'background' ) # 导入背景1图片 background1 . x = 480 / 2 # 背景1的x坐标 background1 . y = 852 / 2 # 背景1的y坐标 background2 = Actor ( 'background' ) # 导入背景2图片 background2 . x = 480 / 2 # 背景2的x坐标 background2 . y = - 852 / 2 # 背景2的y坐标 bullet =

分享几个有趣的Python小项目

我与影子孤独终老i 提交于 2020-05-06 18:52:13
一.经典的俄罗斯方块 1.绑定功能 # 绑定功能 class App ( Frame ) : def __init__ ( self , master ) : Frame . __init__ ( self ) master . bind ( '<Up>' , self . Up ) master . bind ( '<Left>' , self . Left ) master . bind ( '<Right>' , self . Right ) master . bind ( '<Down>' , self . Down ) master . bind ( '<space>' , self . Space ) master . bind ( '<Control-Shift-Key-F12>' , self . Play ) master . bind ( '<Key-P>' , self . Pause ) master . bind ( '<Key-S>' , self . StartByS ) # rgb颜色值 self . backg = "#%02x%02x%02x" % ( 120 , 150 , 30 ) #大背景 self . frontg = "#%02x%02x%02x" % ( 40 , 120 , 150 ) #下一个形状颜色 self . nextg =

飞机大战-面向对象-pygame

最后都变了- 提交于 2020-05-03 18:02:14
飞机大战 最近学习了python的面向对象,对面向对象的理解不是很深刻。 面向对象是数据和函数的'打包整理',将相关数据和处理数据的方法集中在一个地方,方便使用和管理。 本着学习的目的,在网上找了这个飞机大战游戏的素材和相关代码,自己研究学习,加深对面向对象的理解。 python可以做游戏,最基本的一个第三方模块就是 pygame ,借助pygame可以实现2D和3D游戏的开发。 对python开发游戏感兴趣的园友请参考官方文档: pygame.doc 下面就开始学习了解对象思想吧,顺便学学pygame,娱乐一下。 游戏需求 # 飞机大战 <1> 玩机通过键盘操作我方飞机,我方飞机自动发射初级子弹。 <2> 敌机分三种:小型敌机、中型敌机、大型敌机,区别:速度不同,数量不同,外形不同,血值不同。 <3> 小型敌机速度快,数量多,一颗子弹必杀;大型敌机和中型敌机速度慢,数量少,需要多可子弹才能消灭。 <4> 小型敌机分值低,大型敌机和中型敌机分值高。 <5> 统计玩机得分和最高分记录。 <6> 随着得分的增加,提升游戏等级,增加游戏的难度:增加敌机速度和数量 <7> 任意敌机和我方飞机碰撞,则玩家挑战失败一次;玩家有三次挑战机会。三次机会用完结束游戏。 <8> 我方飞机和敌机毁灭时,动画效果要实现 <9> 游戏中,每隔30s有一次随机空投补给:全屏炸弹或超级子弹。 <10> 游戏开始

飞机大战-面向对象-pygame

怎甘沉沦 提交于 2020-05-03 17:46:04
飞机大战 最近学习了python的面向对象,对面向对象的理解不是很深刻。 面向对象是数据和函数的'打包整理',将相关数据和处理数据的方法集中在一个地方,方便使用和管理。 本着学习的目的,在网上找了这个飞机大战游戏的素材和相关代码,自己研究学习,加深对面向对象的理解。 python可以做游戏,最基本的一个第三方模块就是 pygame ,借助pygame可以实现2D和3D游戏的开发。 对python开发游戏感兴趣的园友请参考官方文档: pygame.doc 下面就开始学习了解对象思想吧,顺便学学pygame,娱乐一下。 游戏需求 # 飞机大战 <1> 玩机通过键盘操作我方飞机,我方飞机自动发射初级子弹。 <2> 敌机分三种:小型敌机、中型敌机、大型敌机,区别:速度不同,数量不同,外形不同,血值不同。 <3> 小型敌机速度快,数量多,一颗子弹必杀;大型敌机和中型敌机速度慢,数量少,需要多可子弹才能消灭。 <4> 小型敌机分值低,大型敌机和中型敌机分值高。 <5> 统计玩机得分和最高分记录。 <6> 随着得分的增加,提升游戏等级,增加游戏的难度:增加敌机速度和数量 <7> 任意敌机和我方飞机碰撞,则玩家挑战失败一次;玩家有三次挑战机会。三次机会用完结束游戏。 <8> 我方飞机和敌机毁灭时,动画效果要实现 <9> 游戏中,每隔30s有一次随机空投补给:全屏炸弹或超级子弹。 <10> 游戏开始

html、JS 飞机大战游戏

大憨熊 提交于 2020-03-23 13:03:53
3 月,跳不动了?>>> <!DOCTYPE html> <html> <head> <title>飞机大战</title> <meta charset="utf-8"> </head> <body> <canvas id='myCanvas' width="320" height="480" style="border: solid"> 你的浏览器不支持canves画布元素,请更新浏览器获得演示效果。 </canvas> <div id="message_txt" style="display: block;">飞机大战</div> <div id="score_txt" style="display: block;">分数:0分</div> <script type="text/javascript"> var canvas=document.getElementById('myCanvas'); var context=canvas.getContext('2d'); document.addEventListener('keydown',onKeydown); //飞机类和其属性 var Plan=function(image,x,y,n){ this.image=image; this.x=x; this.y=y; this.orignx=x; this.origny=y