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


     首先,精灵的数字序号采用单例设计模式制作一个数字生成器

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

    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

  • 相关阅读:
    ASP在线群发源码!Jmail的需先安装jmail组件!
    用JS动态改变表单form里的action值属性的方法
    一些SqlBuckCopy心得
    近期关于Thread使用的一些感想.
    焦点图切换实现
    评国内三大B2C网站首页的信息架构
    20个改变网站用户体验的方法
    从信任出发建立电商用户体验体系
    Dom操作之兼容技巧
    9个移动网站优化的最佳实践
  • 原文地址:https://www.cnblogs.com/qingyundian/p/7789144.html
Copyright © 2020-2023  润新知