从Delphi开始学Cocos2dx-3.0[5]:鼠标按下移动弹起与单点触摸
2013-12-21 16:17
337 查看
在Delphi 里面的三个基本的鼠标操作事件是
再 cocos里面其实也是差不多的
首先重写 Layer的 onEnter函数
这和在Delphi中绑定事件几乎是一样的做法
接下来开始写,绑定的事件
// 触摸事件
bool onTouchBegan(TTouch* touch, TEvent* event);
void onTouchMoved(TTouch* touch, TEvent* event);
void onTouchEnded(TTouch* touch, TEvent* event);
bool THelloWorld::onTouchBegan(TTouch* touch, TEvent* event)
{
CCLOG("THelloWorld::onTouchBegan id = %d, x = %f, y = %f", touch->getID(), touch->getLocation().x, touch->getLocation().y);
return true;
}
void THelloWorld::onTouchMoved(TTouch* touch, TEvent* event)
{
CCLOG("THelloWorld::onTouchMoved id = %d, x = %f, y = %f", touch->getID(), touch->getLocation().x, touch->getLocation().y);
}
void THelloWorld::onTouchEnded(TTouch* touch, TEvent* event)
{
CCLOG("THelloWorld::onTouchEnded id = %d, x = %f, y = %f", touch->getID(), touch->getLocation().x, touch->getLocation().y);
}
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin end;
再 cocos里面其实也是差不多的
首先重写 Layer的 onEnter函数
//HelloWorldScene.h virtual void onEnter() override;然后在onEnter里面绑定事件
void THelloWorld::onEnter() { TLayer::onEnter(); // 创建一个监听事件 auto listener = TEventListenerTouch::create(dmOneByOne); //如果不加入此句消息依旧会向下传递 listener->setSwallowTouches(true); // 绑定事件 listener->onTouchBegan = CC_CALLBACK_2(THelloWorld::onTouchBegan, this); listener->onTouchMoved = CC_CALLBACK_2(THelloWorld::onTouchMoved, this); listener->onTouchEnded = CC_CALLBACK_2(THelloWorld::onTouchEnded, this); TEventDispatcher::getInstance()->addEventListenerWithSceneGraphPriority(listener, this); }
这和在Delphi中绑定事件几乎是一样的做法
procedure TForm1.FormCreate(Sender: TObject); begin Form1.OnMouseDown := FormMouseDown; Form1.OnMouseMove := FormMouseMove; Form1.OnMouseUp := FormMouseUp; end;
接下来开始写,绑定的事件
// 触摸事件
bool onTouchBegan(TTouch* touch, TEvent* event);
void onTouchMoved(TTouch* touch, TEvent* event);
void onTouchEnded(TTouch* touch, TEvent* event);
bool THelloWorld::onTouchBegan(TTouch* touch, TEvent* event)
{
CCLOG("THelloWorld::onTouchBegan id = %d, x = %f, y = %f", touch->getID(), touch->getLocation().x, touch->getLocation().y);
return true;
}
void THelloWorld::onTouchMoved(TTouch* touch, TEvent* event)
{
CCLOG("THelloWorld::onTouchMoved id = %d, x = %f, y = %f", touch->getID(), touch->getLocation().x, touch->getLocation().y);
}
void THelloWorld::onTouchEnded(TTouch* touch, TEvent* event)
{
CCLOG("THelloWorld::onTouchEnded id = %d, x = %f, y = %f", touch->getID(), touch->getLocation().x, touch->getLocation().y);
}
相关文章推荐
- 从Delphi开始学Cocos2dx-3.0[13]:动画-直接从图片文件创建动画
- 从Delphi开始学Cocos2dx-3.3[17]:从3.0 进化到3.3(详细图文)
- 从Delphi开始学Cocos2dx-3.0[0]: VS2012 与 安装 cocos2d-x-3.0alpha0
- 从Delphi开始学Cocos2dx-3.0[2]:TObject 与 CCObject 看继承关系
- 从Delphi开始学Cocos2dx-3.0[11]:持续动作之组合动作
- 从Delphi开始学Cocos2dx-3.0[15]:关于精灵帧和精灵帧缓存
- 从Delphi开始学Cocos2dx-3.0[3]:CCNode 可视组件的头
- 从Delphi开始学Cocos2dx-3.0[12]:可变速度
- 从Delphi开始学Cocos2dx-3.0[16]:LUA脚本接入
- 从Delphi开始学Cocos2dx-3.0[14]:动画-直接从精灵帧缓存中获取纹理
- 从Delphi开始学Cocos2dx-3.0[4]:定义一个Delphi头,方便今后编程
- 从Delphi开始学Cocos2dx-3.0[7]:瞬发动作
- 从Delphi开始学Cocos2dx-3.0[1]: AppDelegate 与 Application
- 从Delphi开始学Cocos2dx-3.0[10]:持续动作之旋转持续动作
- 从Delphi开始学Cocos2dx-3.0[8]:持续动作之位移持续动作
- 从Delphi开始学Cocos2dx-3.0[9]:持续动作之缩放持续动作
- 从Delphi开始学Cocos2dx-3.0[6]:拖拽一个精灵
- cocos2dx js 单点触摸事件
- 【cocos2dx学习笔记】单点触摸和音乐播放
- cocos2dx 单点触摸,按钮事件