Cocos2d-x随记(2)-精灵移动

  最近,自己没什么事情做得,于是就折腾了一下cocos2d-x。太难弄的吧俺又不会搞,所以俺就找点简单的倒腾倒腾。于是就琢磨这写一个精灵通过一个按钮来控制他的上下左右的移动。当然,要是精灵移动动着动着移出了窗口的显示区域,那咱看着就没什么意思了撒。总不能就这么干看了黑框上的一个按钮吧。俺也没有什么素材可用的,就只好用cocos2d-x自带的那些个图片来替代替代了。好了,废话不多说了。上文件吧!

.h文件 

#ifndef __SpriteMove_H__
#define __SpriteMove_H__

#include "cocos2d.h"

using namespace cocos2d;

class SpriteMove :
	public CCLayer
{
public:
	SpriteMove(void);
	~SpriteMove(void);
	CREATE_FUNC(SpriteMove);//autorelese构造方法
	bool init();//页面初始化方法

	CCSprite *m_pSprite;//俺把这个声明成全局的,方便后面该方向,嘿嘿。

	void DirectionChange(CCObject *pSender);//改变方向的方法
};
#endif

.cpp文件

#include "SpriteMove.h"

//构造
SpriteMove::SpriteMove(void)
{
}
//析构
SpriteMove::~SpriteMove(void)
{
}
//页面初始化
bool SpriteMove::init()
{
	//首先是的加一个精灵,不然等下拿什么来移动呢- -!
	m_pSprite = CCSprite::create("CloseNormal.png");
	m_pSprite->setPosition(ccp(m_pSprite->getContentSize().width/2,m_pSprite->getContentSize().height/2));//定到左下角罚站去~~~
	addChild(m_pSprite);//为什么要加上去,就不说了吧- -

	//既然是通过按钮来控制精灵的移动,那肯定是的有一个按钮的撒~~~
	CCMenu *pMenu = CCMenu::create();//按钮要放到菜单里面才能起到按钮的作用的撒,所以……
	pMenu->setPosition(CCPointZero);//依旧还是给菜单定个位
	addChild(pMenu);//要把菜单加到层上吧,不然怎样知道有菜单呢,是吧~~~

	//创建一个按钮-----------没图片咯,那就来一堆关机按钮吧~~~
	CCMenuItemImage *pButton = CCMenuItemImage::create(//创建一个CCMenuItemImage按钮,又是create方法呢,autorelease哦,哈哈~~
		"CloseNormal.png",//通常情况下显示这个png,NormalImage咯
		"CloseSelected.png",//被点了就会变成这个png的,SelectedImage,嗯,很明显的单词啊。
		this,
		menu_selector(SpriteMove::DirectionChange));//回调方法
	pButton->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20));//给按钮放到你想放倒的位子去,定位。(CCDirector::sharedDirector()->getWinSize():这个就是获取窗口大小的方法)
	pMenu->addChild(pButton);

	return true;
}

void SpriteMove::DirectionChange(CCObject *pSender)
{
	m_pSprite->setPosition(ccp(m_pSprite->getPositionX()+m_pSprite->getContentSize().width,m_pSprite->getPositionY()));//先就单个方向移动吧,点一下动一次,后面会改成点击后自动移动,再点击就是改变方向。
}

  先实现通过点击按钮来让精灵移动,后面会改变代码,实现以下效果:

1、第一次点击按钮启动精灵自动移动(方向随机);

2、之后点击按钮改变精灵的已经方向;

3、精灵在移动的时候不能让其移出窗口范围
//-------------------------------------------------------------------------------------------以上纯属个人理解,如有错误之处,请指正,谢谢!-----------------------------------------------------------------//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值