您的位置:首页 > 其它

用类封装精灵的操作,并实例化各种精灵对象 精灵的数字序号使用单例模式的数字生成器实现

2018-01-01 00:40 337 查看
 首先,精灵的数字序号采用单例设计模式制作一个数字生成器

功能就是每次调用得到一个不断增加的数字

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐