精灵模板啊 ~~

          这几天写精灵,感觉写的乱七八糟的。有些想实现的东西没实现,感觉怪怪的,其实有些东西,各位同学可以自己按照自己的想法把我的精灵扩充一下,扩展的接口留给同学们了,发挥一下想象力吧~~~~嘿嘿~~

          废话不多说,直接把模板放上去~~~~

	DynamicSprite s;
	NormalPlay a;
	int xx = 150;
	/**
	*专门把Paint拿出来是因为Change事件每次通过修改paint来实现各种变化
	*
	**/
	Paint aa = new Paint();

	public View1(Context context) {
		super(context);
		/**
		* 实例化可移动精灵对象,如果不想精灵移动,可实例化StaticSprite。
		* 其中R.draw.monster就是想加载的图像,后面的布尔变量是精灵是否可播放
		* 
		*/
		s = new DynamicSprite(R.drawable.monster, true);
		/**
		*
		* 加载资源
		*
		*/
		s.load(context.getResources());
		/**
		* 
		* 如果精灵可播放,则调用该方法,将图像分割,其中第一个参数对应行数,
		* 第二个对应列数
		*
		*/
		s.splitImage(4, 4);
		/**
		*
		* 实例化播放事件对象
		*
		*/
		a = new NormalPlay();
		/**
		*
		*添加播放事件
		*
		**/
		s.addPlays(a);
		/**
		*修改播放事件,其实,也可以不加,不同的播放事件可以作为Play不同的子类
		*
		**/
		a.setSpeed(0.1f);
		/**
		*精灵工作前要start()一下
		*
		**/
		s.start();

		new Thread(this).start();

	}
    public void draw(Canvas canvas) {
		super.draw(canvas);
		/**
		* 绘制精灵,精灵的Canvas和Paint
		*
		*/
		s.onDraw(canvas, aa);
	}

	/**
	 * 
	 */
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		if (event.getAction() == MotionEvent.ACTION_MOVE
				|| event.getAction() == MotionEvent.ACTION_DOWN) {
			float x = event.getX();
			float y = event.getY();
			/**
			*
			* 播放事件在精灵start之后可以随意修改,只要这个播放事件还在play就可以
			*
			**/
			a.setSpeed(a.getSpeed() + 0.1f);
			/**
			*
			* Move对象在精灵start之后就可以随便加
			*
			*/
			s.addMoves(new StraightMove((int) x, (int) y, Move.MOVE_TO));
		}
		return super.onTouchEvent(event);
	}

	public void run() {

		while (true) {
			try {
				Thread.sleep(100);
				if (xx > 1) {
					xx--;
		   /**
			* 
			* 添加透明度变化事件,这个透明度是不断降低的
			*
			*/
					s.addChanges(new AlphaChange(xx));
				}

				postInvalidate();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}

		}

	}


         现在解释下这个东西啦~~~这段代码实现的是一个可以不断变透明的精灵,你的鼠标点哪儿,他就跑到哪儿,而且会越点播放的越快。  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值