用类封装精灵的操作,并实例化各种精灵对象 精灵的数字序号使用单例模式的数字生成器实现
首先,精灵的数字序号采用单例设计模式制作一个数字生成器
功能就是每次调用得到一个不断增加的数字
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 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
Never waste time any more, Never old man be a yong man