Cocos2D-X学习13:交互功能——鼠标和键盘
来源:互联网 发布:企政oa软件下载 编辑:程序博客网 时间:2024/04/30 07:49
在Cocos2D-X中还支持鼠标和键盘的输入,下面将对其进行学习。
下面是一个使用鼠标键盘的示例:
Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); //在屏幕上显示指针团案 this->mouse = Sprite::create("mouse.png"); this->mouse->setScale(0.3f); this->addChild(mouse); auto myKeyListener = EventListenerKeyboard::create(); //创建事件监听器监听键盘事件 //键盘按键按下时的响应 myKeyListener->onKeyPressed = [](EventKeyboard::KeyCode keycode, cocos2d::Event *event) { CCLOG("key is pressed, keycode is %d", keycode); }; //键盘按键弹回时的响应 myKeyListener->onKeyReleased = [](EventKeyboard::KeyCode keycode, cocos2d::Event *event) { CCLOG("key is released, keycode is %d", keycode); }; auto myMouseListener = EventListenerMouse::create();//创建事件监听器鼠标事件 //鼠标移动 myMouseListener->onMouseMove = [=](Event *event) { EventMouse* e = (EventMouse*)event; this->mouse->setPosition(e->getCursorX(), e->getCursorY() + visibleSize.height); }; //鼠标被按下 myMouseListener->onMouseDown = [=](Event *event) { this->mouse->setScale(0.2f); //鼠标按键按下,屏幕上的“箭头”尺寸缩小 }; //鼠标按键弹起 myMouseListener->onMouseUp = [=](Event *event) { this->mouse->setScale(0.3f); //鼠标按键抬起,屏幕上的“箭头”尺寸放大 }; //将事件监听器与场景绑定 _eventDispatcher->addEventListenerWithSceneGraphPriority(myKeyListener, this); _eventDispatcher->addEventListenerWithSceneGraphPriority(myMouseListener, this);
可以看到,使用鼠标键盘进行输入实际也是通过Cocos2d-x中提供的监听器实现的,非常简单。
键盘监听器EventListenerKeyboard的响应分为onKeyPressed按键按下时的响应和onKeyReleased按键弹回时的响应,这里都是返回按键对应的ASCII码,在具体使用时,只需要根据ASCII码判断对应按键即可。这里将按键事件分为按下时和弹回时两种响应,其应用场景不同,比如在动作游戏中,对操作的实时性要求高,为了保证游戏的打击感,使用按键按下时响应;而在剧情跳过、菜单确认等操作,则一般选择按键弹起时响应。
鼠标监听器EventListenerMouse的响应分为onMouseMove鼠标移动、onMouseDown鼠标按键按下和onMouseUp鼠标按键弹回等响应,这里鼠标移动的响应就是根据鼠标的位置来改变图像位置,鼠标按键按下的响应是将图像缩小,而弹回后将图像放大回原图。在之前学习触摸中,会发现很多鼠标的操作和触摸是一样的,也就是说可以通过触摸来实现鼠标的一部分功能,但两者是有区别的。在触摸事件中,onTouchBegan被触发时,onTouchMoved事件才能被触发,也就是必须有触摸才能进行拖动操作。而在鼠标事件中,onMouseMove事件是独立的,只要鼠标指针的坐标改变,就会触发。
运行效果图:
0 0
- Cocos2D-X学习13:交互功能——鼠标和键盘
- Cocos2D-X学习11:交互功能——单点触控的实现
- Cocos2D-X学习12:交互功能——多点触控的实现
- 【学习13】Cocos2d-x物理按键交互
- cocos2d-x 输入框升级版 通过鼠标点击事件和键盘左右键移动光标
- cocos2d-x window实现鼠标移动 键盘事件
- GUI——鼠标和键盘事件
- 稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
- 键盘实现鼠标功能
- Cocos2d-x常用功能-Cocos2d-x用户交互事件处理:触摸、传感器、物理按键
- Cocos2d-x键盘按键
- Cocos2d-x学习笔记(十)实例——记住帐号(密码)功能
- Cocos2d-x-3.5 学习 -- 功能/ 文件夹
- Cocos2d-x 3D功能学习笔记
- Cocos2d-x 音频功能学习笔记
- Cocos2d-x 音频功能学习笔记
- Cocos2d-JS 键盘、鼠标事件
- 【cocos2d-x从c++到js】JS与C++的交互3——C++和JS类型转换
- 六款堪称神器的网站
- Android RecyclerView 详解(五) RecyclerView多布局的使用
- 关于学习C++的一些小心得(2)
- 润乾报表实现打印计数
- 这样的外衣值得拥有
- Cocos2D-X学习13:交互功能——鼠标和键盘
- linux学习笔记--用户和组
- 耦合与内聚
- internal关键字
- 数组逆序
- 初始JavaScript-闭包
- Activity的生命周期,BACK键和HOME键生命周期
- 火狐浏览器的同步问题
- JavaScript