用类封装精灵的操作,并实例化各种精灵对象 精灵的数字序号使用单例模式的数字生成器实现
2018-01-01 00:40
337 查看
首先,精灵的数字序号采用单例设计模式制作一个数字生成器
功能就是每次调用得到一个不断增加的数字
接下来制作精灵的封装类,采用上面单例的自动计数器生成数字编号
简单封装了精灵的播放动画和设置位置功能
最后展示类中实例化精灵,生成不同对象并实现功能
实现效果图:
素材及程序下载地址:
https://pan.baidu.com/s/1hs3qR0S
功能就是每次调用得到一个不断增加的数字
package com.swift; public class NumberCreator { //单例饿汉式生成唯一的对象 private static NumberCreator instance=new NumberCreator(); private int number; //私有化构造方法,外界无法生成对象 private NumberCreator() { } //静态方法返回这个对象 public static NumberCreator getCreator() { return instance; } //对象调用方法每次增加私有成员number的数值 public int createNumber() { return this.number++; } }
接下来制作精灵的封装类,采用上面单例的自动计数器生成数字编号
简单封装了精灵的播放动画和设置位置功能
package com.swift; import com.rupeng.game.GameCore; public class Sprite{ private int number; public Sprite(String spriteName) { this.number=NumberCreator.getCreator().createNumber(); GameCore.createSprite(this.number, spriteName); } public void playAnimate(String animateName,boolean isrepeat) { GameCore.playSpriteAnimate(this.number, animateName, isrepeat); } //方法重载 设置默认动画重复播放 public void playAnimate(String animateName) { GameCore.playSpriteAnimate(this.number, animateName, true); } public void setPosition(int x,int y) { GameCore.setSpritePosition(this.number, x, y); } }
最后展示类中实例化精灵,生成不同对象并实现功能
package com.swift; import com.rupeng.game.GameCore; public class DemoSprite implements Runnable{ public static void main(String[] args) { GameCore.start(new DemoSprite()); } @Override public 9c21 void run() { //窗口大小 GameCore.setGameSize(500, 300); //制作马里奥精灵对象 Sprite mario=new Sprite("mario"); mario.playAnimate("walk", true); mario.setPosition(200, 100); //制作马里奥精灵对象 Sprite tiger=new Sprite("tiger"); tiger.playAnimate("run", true); tiger.setPosition(300, 120); GameCore.pause(5000); } }
实现效果图:
素材及程序下载地址:
https://pan.baidu.com/s/1hs3qR0S
相关文章推荐
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务4[聊天室]
- 使用XML封装数据库操作语句的实现
- JS 实现 创建类、继承、方法添加、对象克隆、数组封装操作
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务4[聊天室][使用IE浏览本页]
- PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务1[使用IE浏览本页]
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务1
- 使用Lua实现链表的各种操作
- Map生成器 map适配器现在可以使用各种不同的Generator,iterator和常量值的组合来填充Map初始化对象
- PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码
- 使用draggable插件实现对象的拖曳操作8-1
- 使用XML封装数据库操作语句的实现
- 单例模式,实现httpclient的封装,让android开发中,进行网络操作的时候更方便一点。
- lua面向对象实现-类实例化对象、继承、多态、多继承、lua单例模式
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务2[使用IE浏览本页]
- 使用droppable插件实现对象的放置操作 8-2
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务2
- lua面向对象实现-类实例化对象、继承、多态、多继承、lua单例模式
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务3[聊天室]
- PHP工厂模式的好处【实例化对象的封装处理】