懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 )
(现在csdn博客保存好像有问题)
(刚才都写完了要保存的时候,手欠点了浏览器的返回按钮,然后csdn的自动保存不好用,然后现在的这篇笔记是第二遍了T.T)
今天圣诞
骨头没跟哲哲出去浪漫
就猫在床上看着视频吃着水果零食啥的
旁边有骨头最喜欢的甘蔗
弄完这篇就吃去
SneakyInput:
一个开源项目,地址:https://github.com/Ntran013/SneakyInput
用法参考笔记8:《战神传说》
= 1 =
把Sneaky代码加上。
=2=
在单独的Layer层里,声明一个按钮和一个摇杆:
public :
HudLayer();
bool init();
SneakyButton* mButtonA;
SneakyJoystick* mJoystick;
//void inputUpdate(float dt);
};
在GameScene里添加这个单独的Layer层:
GameScene::GameScene()
{
mHudLayer = new HudLayer();
this->addChild(mHudLayer, 1);
mGameLayer = new GameLayer();
this->addChild(mGameLayer, 0);
init();
this->schedule(schedule_selector(GameScene::inputUpdate));
}
这个HudLayer控制层添加游戏逻辑层之上
void GameScene::inputUpdate(float dt)
{
CCPoint>
//std::cout << velocity.x << std::endl;
if (velocity.x >= 0.4f>
velocity.y >= 0.4f>
mGameLayer->mHero->walkWithDirection(velocity);
}>
mGameLayer->mHero->idle();
}
if (attackInterval <= 0.0f) {
if (mHudLayer->mButtonA->getIsActive()) {
mGameLayer->mHero->attack();
attackInterval = 0.5f;
......
}
}
这个方法里,首先获取摇杆的速度,如果速度绝对值超过0.4,则相应这个动作,也就是让主角移动。
然后判断mButtonA这个按钮是否被按下,如果是的话进行攻击。
这里面还用一个变量来控制攻击间隔:0.5秒进行一次攻击检测。
=4=
下面看下摇杆和攻击按钮的初始化方法:
在HudLayer里:
摇杆的初始化:
CCSpriteFrameCache*>
CCSpriteFrameCache::sharedSpriteFrameCache();
cache->addSpriteFramesWithFile("UI.plist", "UI.png");
mJoystick = NULL;
mJoystick = new SneakyJoystick();
mJoystick->initWithRect(CCRectZero);// 用原点初始化
mJoystick->setAutoCenter(true);// 自动居中
mJoystick->setHasDeadzone(true); // 设置无效
mJoystick->setDeadRadius(10); // 设置无效区域的半径
SneakyJoystickSkinnedBase* jstickSkin = new SneakyJoystickSkinnedBase();
jstickSkin->autorelease();
jstickSkin->init();
jstickSkin->setBackgroundSprite(CCSprite::createWithSpriteFrameName("JoyStick-base.png"));
jstickSkin->setThumbSprite(CCSprite::createWithSpriteFrameName("JoyStick-thumb.png"));
//jstickSkin->getThumbSprite()->setScale(0.5f);
jstickSkin->setPosition(ccp(50, 50));
jstickSkin->setJoystick(mJoystick);
this->addChild(jstickSkin);
攻击按钮的初始化
mButtonA = NULL;
mButtonA = new SneakyButton();
mButtonA->initWithRect(CCRectZero);
mButtonA->setIsToggleable(false);
mButtonA->setIsHoldable(true);
SneakyButtonSkinnedBase*>
btnASkin->autorelease();
btnASkin->init();
btnASkin->setPosition(ccp(430, 50));
btnASkin->setDefaultSprite(CCSprite::createWithSpriteFrameName("button-default.png"));
btnASkin->setPressSprite(CCSprite::createWithSpriteFrameName("button-pressed.png"));
btnASkin->setActivatedSprite(CCSprite::createWithSpriteFrameName("button-activated.png"));
//btnASkin->setDisabledSprite(CCSprite::createWithSpriteFrameName("button-disabled.png"));
btnASkin->setButton(mButtonA);
this->addChild(btnASkin);
好了,摇杆用起来就这么简单,感谢原作者。
旁边pad正在放周立波主持的梦想秀
有个村子以卖甘蔗为生
但是没有路甘蔗就卖不出去
村子里死了好几条人命都是因为路的原因
或是因为陡
或是因为送医院不及时
正在修的一条几公里的路
政府出了十万村民凑了二十万还差小二十万
于是村里的妇女过来跳甘蔗舞
希望能圆梦给村子修一条路
好响的一次打脸!
------------------- 飞船起飞--------------------
Cocos2dx游戏开发系列笔记13:一个横版拳击游戏Demo-中
Cocos2dx游戏开发系列笔记12:一个横版拳击游戏Demo-上
Cocos2dx游戏开发系列笔记11:解刨《战神传说》完结篇
Cocos2dx游戏开发系列笔记10:解刨《战神传说》
Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应问题
Cocos2dx游戏开发系列笔记8:开搞一个射击游戏《战神传说》//就个打飞机的
Cocos2dx游戏开发系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)
Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上
Cocos2dx游戏开发系列笔记5:继续润色《忍者飞镖射幽灵》
Cocos2dx游戏开发系列笔记4:怎样新加一个Scene类?
Cocos2dx游戏开发系列笔记3:牛刀小试->忍者飞镖射幽灵的Demo
Cocos2dx游戏开发系列笔记2:一个刚创建的cocos2dx中的demo里都有什么
Cocos2dx游戏开发系列笔记1:一个崭新的开始,cocos2dx2.2+ndkr9+Cygwin+vs2012游戏开发环境搭建
-------------------- 飞船降落--------------------
最后,骨头介绍一下陪在身边的哲哲(右边就是低调的哲哲)
哲哲,小名 YIYI ,手工爱好者,文艺范,手艺人,《YiYiの妙舍》创始人,很有自己想法。