pygame 笔记-4 代码封装&发射子弹】的更多相关文章

继续之前的内容,随着游戏的内容越来越复杂,有必要把代码优化一下,可以参考OOP的做法,把人物类抽象出来,弄成一个单独的类,这们便于代码维护,同时我们给小人儿,加个发射子弹的功能,代码如下:(看上去略长,但是绝大多数,都是上节的代码) import pygame import os pygame.init() WIN_WIDTH, WIN_HEIGHT = 500, 500 win = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT)) # 画布窗口的…
游戏哪能没有音效?这节我们研究下如何加背景音乐,其实也很简单: # 加载背景音乐 pygame.mixer.music.load(music_base_path + "music.mp3") # 设置音量 pygame.mixer.music.set_volume(0.1) # 循环播放 pygame.mixer.music.play(-1, 0) play的第1个参数,设置成-1表示循环播放. 另一个问题,发射子弹和子弹击中,也需要声音,这个必须用另一种方法,否则的话,会把背景音乐给…
一.创建敌方飞机 1.思考创建思路: 创建敌方飞机思路与创建玩家飞机思路一样: (1)思考敌方飞机具备什么属性: 敌方飞机的图片.坐标.飞行速度.状态(是否被击中) 设置小飞机被击中时消失时间.飞机可以移动 2.创建敌方飞机对象,在这里我创建两种飞机,根据玩家等级不同出现不同的飞机(小飞机和中飞机) 3.在创建飞机对象的方法中定义敌方飞机的移动方法(这里设置的敌方飞机移动方向是从上到下). 4.将创建的飞机对象以节点形式添加到游戏界面 /*敌方小飞机对象*/ function createsme…
一.公布上一讲中玩家飞机上.下.右移动实现的代码: /*=========================键盘按下事件 keycode为得到键盘相应键对应的数字====================*/ document.body.onkeydown=function(code) { if(code.keyCode==37) { //当键盘按下的是左键(对应的数字是37) leftbtn=true; // } if(code.keyCode==38) { //键盘按的是上键 topbtn=tr…
经过前面几章的准备,我们差不多已经具备了一个基本的框架,这一章我们就开始添砖加瓦了. 敌机定时发射一个子弹,子弹的方向是从上到下,但是发射子弹的代码应该放在哪儿呢? 从面向对象编程的思想来说,子弹是敌机发射的,我们发射子弹的操作应该放在敌机类里面.也就是EnemyPlane.ts.之所以放在敌机的基类里面,就是想能实现代码复用,加入要实现其他的敌机,也可以复用这段代码 在EnemyPlane.ts的构造方法中,我们加入一个Timer this._timer = new egret.Timer(1…
-------小基原创,转载请给我一个面子 主角都能移动了,那不得做点什么伸张正义,守护世界和平的事嘛,拿起家伙biu~biu~biu~ 首先得做一个好人和一个坏人 老规矩,Canvas下创建两个Image,一个叫做player,一个叫做enemy1好了   一个红色,一个蓝色(自古红蓝出CP,不好意思,走错片场了●﹏●) 新知识:要加BoxCollider2D 子弹打到别人,其实是碰撞检测的过程 一种是根据位置坐标,判断子弹有没有打中,另一种是使用物理碰撞系统(小基这里使用后者) 两个物体物理…
一.创建敌方飞机 1.思考创建思路: 创建敌方飞机思路与创建玩家飞机思路一样: (1)思考敌方飞机具备什么属性: 敌方飞机的图片.坐标.飞行速度.状态(是否被击中) 设置小飞机被击中时消失时间.飞机可以移动 2.创建敌方飞机对象,在这里我创建两种飞机,根据玩家等级不同出现不同的飞机(小飞机和中飞机) 3.在创建飞机对象的方法中定义敌方飞机的移动方法(这里设置的敌方飞机移动方向是从上到下). 4.将创建的飞机对象以节点形式添加到游戏界面 /*敌方小飞机对象*/ function createsme…
一.公布上一讲中玩家飞机上.下.右移动实现的代码: /*=========================键盘按下事件 keycode为得到键盘相应键对应的数字====================*/ document.body.onkeydown=function(code) { if(code.keyCode==37) { //当键盘按下的是左键(对应的数字是37) leftbtn=true; // } if(code.keyCode==38) { //键盘按的是上键 topbtn=tr…
同样是从网上看到的一个需求,需求描述都在代码中. 不多说了,直接贴代码了.相信大家都能够看得懂的! package cn.yw.bore; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lo…
做个笔记,之后补上. 一.发射子弹 网上搜到的基本是两种方法: 给子弹物体添加一个力 AddForce. 子弹物体挂一个运动脚本,Update中毎帧向前运动.通过调整子弹生成点的Transform来控制子弹的初始化位置和发射方向(角度) 二.导弹追踪 参考Unity案例Demo : Weapon System 2.0…