首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

飞机大战

我知道我很懒,一直拖一直拖,拖到最后一刻才肯开始撰写推送,但这次真的不是故意的,本来这个链表的应用我是想给大家介绍下线程池的设计,可是线程池这个东西得牵扯到网络编程,要讲的东西太多了,算了,退而求其次,飞机大战吧...七拼八凑,一个简单的飞机大战就完成了。 运行视频: http://mpvideo.qpic.cn/0bf26yabgaaapeagfdm4nzpfb5wdcp3aaeya.f10002.mp4?...目录 飞机大战结构体游戏三部曲初始化Game_Init()绘制Game_Paint()数据更新Game_Updata()主函数按键的处理说明链表的增删操作添加敌方飞机敌方飞机移动添加子弹子弹移动 飞机大战...基于链表操作的飞机大战游戏 结构体 定义飞机大战所需结构体并全局定义结构体成员 //子弹的结构体 struct bullet { int x; int y; struct bullet...//飞机是否存活 exist==false(0) 飞机灭亡 ; exist=ture(1) 飞机存在 struct bullet* bt; //子弹 }; //敌方飞机 struct

62630

飞机大战

因为JAVA编程是面向对象的思想,所以我们要对游戏中的对象进行抽象。该游戏中的所有能够移动的物体都可看做是一个对象,它们有共同的属性和方法,如:横坐标、纵坐标、宽度、高度、逻辑方法、绘图方法等。...;   // 对象的纵坐标 protected float object_width;   // 对象的宽度 protected float object_height;  // 对象的高度...    }   public void setAlive(boolean isAlive) {   this.isAlive = isAlive;       }   }   接着我们要看下,游戏中对象有玩家控制的飞机...所以我们又可以将它们分成:玩家的飞机类(因为玩家飞机的实现和敌机的实现有些不同,所以分开实现)、敌机类EnemyPlane(包括小型的、中型的、大型的和BOSS)、子弹类Bullet和物品类GameGoods...android游戏开发——微信打飞机(二): http://blog.csdn.net/u010878441/article/details/12564871

1.4K51
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java飞机大战_java飞机大战代码步骤解析

    目录 一、简单介绍 二、工程目录 三、具体代码 四、运行效果截图 五、总结 ---- 一、简单介绍 这是一个功能相对全的Java版坦克大战,界面绘制是通过Java的图形化用户界面swing完成的...本游戏使用的主要技术有Swing编程、面向对象编程、多线程编程。本想用I/O编程实现保存游戏数据,感觉单机版的没必要就没弄了。..., this.tc); tc.missiles.add(m); return m; } /** * * @Description 坦克根据方向开火 * @return 炮弹对象...this.remainLives = remainLives; } } 四、运行效果截图 重新开始、暂停、继续、发射子弹、爆炸效果演示: 渡河、吃血块功能演示: 五、总结 源代码参考了马老师的Java坦克大战视频教程以及众多互联网资源...,这次练手有利于深入理解Java面向对象编程、Swing界面编程以及多线程编程 大部分功能是本人在实训期间完成(2016.12.30),当时有兴趣想巩固一下Java知识就开始做了 这个坦克大战到这里就告一个段落

    1.2K50

    JS面向对象

    面向对象面向过程区别面向对象是把构成问题的事物拆解为各个对象,来描述这个事物在当前问题中的行为,而不是为了实现某个步骤 面向过程,是分析出实现问题的每个步骤,然后编写函数,并依次调用。...面向对象特点封装 让使用的人不考虑内部实现,只考虑功能使用,把内部代码保护起来,提供api接口让用户调用继承 从父类继承出一些方法和属性,利于代码复用多态 不同对象作用于同一操作产生不能效果JS三大对象宿主对象所有非本地对象都属于宿主对象所有...DOM和BOM对象都属于宿主对象嵌入到网页的JS来说,宿主对象就是浏览器提供的,比如:Window和Documnet等本地对象包括:Object、Array、Date、RegExp、Boolean、Number...、String这些引用类型在运行过程中需要通过new来创建所需的实例对象内置对象是本地对象的子集在ECMAScript程序开始执行前就存在,本身就是实例化内置对象,开发者无需再实例化内置独享有Global...构造函数/创建实例 通过this添加的对象和属性都指向当前对象,所以在实例化的时候,通过this添加的方法和属性都会在内存中复制一份。

    11210

    CreatorPrimer|飞机大战(三)

    飞机大战(一)》介绍摄像机实现地图的滚动和子弹组件的设计;在此基础上《飞机大战(二)》增加了子弹的角度直线发射以及动态角度更新能力,用于实现如:散弹、螺旋扫射等华丽的子弹表现。...= cc.removeSelf(); this.node.runAction(cc.sequence(spawn, remove)); }, }); 敌机处理碰撞需要识别碰撞对象...,有可能是与玩家的子弹相碰,也有可能是与玩家的飞机相撞,通过 onCollisionEnter 碰撞回调的 other 参数可以知道是谁碰到了我(当前对象)。...碰撞分组 除了子弹、敌机预制体、组件的准备,还需要在引擎中编辑碰撞分组,这里先分析下游戏中有那些对象可能会参与碰撞,我这里列出了四个: 玩家飞机 玩家子弹 敌人飞机 敌机子弹 这里重点只介绍子弹的碰撞:...当碰撞产生时,所有关联的碰撞对象都会收到碰撞回调通知,因此可以减少对其它模块的依赖,尽可能各自处理自身的游戏逻辑,比如:子弹碰撞只管自己的销毁,它碰到谁都一样(根据具体逻辑处理),如果敌机有盔甲防御等复杂的机制

    1.1K20

    实战项目:飞机大战

    实战项目:飞机大战 项目目标: 实现基本的飞机大战 项目描述: 运行程序,英雄飞机出现在屏幕底边的中央区域,飞机中央每隔一秒会自动发射一枚子弹。...,并实现上下左右移动 实现英雄飞机自动发射子弹 实现英雄飞机与敌机、子弹与敌机的碰撞检测 项目准备:创建文件 创建专门调用功能实现飞机大战的主文件main.py 创建为飞机大战提供功能的类文件tools.py...pygame.display.update() 每次绘制完所有图片后一定要更新屏幕 如何创建精灵组 group = pygame.sprite.Group(精灵1对象,精灵2对象) 精灵组的三个方法...在初始化方法中要添加三个属性,分别是:加载的图片对象、图片的矩形区域,图片的移动速度。其中图片的矩形区域可以使用图片对象的 get_rect() 来获取,速度自定义设置,这里设置成 每次移动1像素。...exit() # 主程序的入口 if __name__ == "__main__": pg = PlaneGame() pg.startGame() 总结 虽然这是一个不完整的飞机大战

    1.9K10

    CreatorPrimer|飞机大战(一)

    前两天在Cocos官方公众号上学习了「大掌教」的Cocos Creator 2.x Camera教程,总算是对摄像机组件有了一个初步的认识,乘热打铁Shawn用Camera摄像机练习了一个飞机大战游戏,...控制飞机移动 不知道大家还记得公众号之前的一篇文章《Cocos Creator基础教程(11)—可拖拽组件》 我直接将Dragable.js组件脚本拿过来,挂载到飞机节点上就OK了,代码很简单 /**...,尝试了消灭病毒当下这个火热的游戏,他的整个屏幕任意位置都可以控制飞机移动,它是怎么做的呢?...我们编辑一个子弹Bullet的预制体,这里使用到之前文章《Cocos Creator基础教程(12)—精灵变身》中的SpriteEx.js组件 在SpriteEx上面配置了几张子弹图片,使用index属性可以方便切换子弹的表现效果...Bullet子弹只是表现效果,要让子弹运动起来,我这里编写了一个LineEmmiter.js(线性发射器)的脚本 将它挂载到飞机节点上,用它来实例化Bullet预制体并让它动起来,先看一下LineEmmiter

    1.3K20

    JS面向对象编程

    面向对象编程 在学习了js高级以及es6之后,再来学习面向对象编程,之前在学习es6,canvas的时候已经有接触到了这种思想,感觉还是需要在深入的学习一下,这部分内容牵扯到很多原型链部分的东西,当做复习一下还是很不错的...ES5中的面向对象 面向对象编程(OOP)具有灵活、代码可复用、高度模块化等特点。...对象是单个实物的抽象 对象是一个容器,封装了对应的属性和方法,属性是对象的状态,方法是对象的行为(完成的任务) 构造函数实例化对象 在ES5中没有class类的概念,所以面向对象是基于构造函数和原型链的...:js引擎会先寻找对象本身的属性和方法,如果找不到就到它的原型对象去找,如果还是找不到,就到原型的原型去找,如果直到最顶层的Object.prototype还是找不到,就会返回undefined constructor...---- 在ES6中新增了class类的关键字,以及一些相关属性,优化了先前的面向对象代码可读性低的问题,新的class写法让对象原型的写法更加清晰,更加的像面向对象编程的语法,因此class也只是一个语法糖

    4.1K20

    js面向对象理解

    ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP)。面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。...js(如果没有作特殊说明,本文中的js仅包含ES5以内的内容)本身是没有class类型的,但是每个函数都有一个prototype属性。...prototype指向一个对象,当函数作为构造函数时,prototype则起到类似class的作用。 一.创建对象 创建一个对象,然后给这个对象新建属性和方法。...1)__proto__和prototype JS在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做__proto__的内置属性,用于指向创建它的函数对象的原型对象prototype。...四.继承 继承是面向对象中一个比较核心的概念。其他正统面向对象语言都会用两种方式实现继承:一个是接口实现,一个是继承。

    10610

    JS面向对象笔记

    一、js零散笔记 0、匿名函数定以后直接调用:(function(numA, numB) { alert(numA + numB); })(3,4);//弹窗7 1、js中函数就是对象对象就是函数。...arguments表示函数的参数集合 2、js中方法直接调用为函数,用new调用为对象。...JavaScript中没有类的语法,是用函数闭包模拟出来的 3、js中给对象动态添加属性示例: //定义一个函数 function Person(){ } //1、直接调用函数名,就只是单纯的表示调用函数...Person(); //2、是用new,表示创建了一个对象js是动态语言,可以给对象动态添加属性和方法 var per = new Person(); per.name = "大锤"; //...给per对象动态添加方法sayHi //调用per对象的属性和方法 alert(per.name);//或者alert(per['name']); per.sayHi(); 4、js中支持this关键字

    7.5K61
    领券