前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >cocos2dx 触摸钢琴

cocos2dx 触摸钢琴

作者头像
立羽
发布2023-08-24 13:04:14
1240
发布2023-08-24 13:04:14
举报
文章被收录于专栏:Unity3d程序开发

1.触摸钢琴项目描述

1.1触摸钢琴功能描述

实现手指点按琴键发出对应的音调,按下位置出现星云的粒子特效,滚动实现移动到别的琴键的位置,按下安卓返回键执行关闭。

1.2触摸钢琴所需技术

粒子特效,安卓按键监听。

2.触摸钢琴详细设计

2.1点击琴键发出对应的音调

首先创建好UI,底层为一个滚动层,在上面按照位置添加对应的琴键按钮,每个琴键按钮要设置Tag,和按照音调设置名字。注意:黑色琴键按钮的要通过cocostudio的对象结构树调整到白键的下面,这样点击黑键时才会优先响应黑键。

通过Tag值遍历得每一个按钮控件,如果存在对应的按钮对象,就绑定响应。

代码语言:javascript
复制
or (int i = 0; i < 70; i++)
	{
		auto btn = (Button*)Helper::seekWidgetByTag(UI, i);
		if (btn)
		{
			btn->addTouchEventListener(this, toucheventselector(CPaino::onBtnTouch));
		}
	}

在响应函数onBtnTouch中,被点击的对象最为Ref传入到函数中。对传入的对象进行类型转换,就可以得到名字,然后拼出一个声音文件路径名,播放该声音文件就可演奏发声。

代码语言:javascript
复制
/******************************************************
函数功能:触摸按键响应
传入参数:Ref* target:被点击的按钮对象
		  TouchEventType type:点击的类型
*******************************************************/
void CPaino::onBtnTouch(Ref* target, TouchEventType type)
{
	auto btn = (Button*)target;
	if (btn && type == TouchEventType::TOUCH_EVENT_BEGAN)
	{
		std::string sBtnName = btn->getName();
		std::string sSoundName = StringUtils::format("sound/%s.wav", sBtnName.c_str());	
		CocosDenshion::SimpleAudioEngine::getInstance()->playEffect(sSoundName.c_str());
	}
}

2.2触摸位置产生星云粒子特效

采用cocos2dx中的粒子特效。注意要在琴键当前层上在挂载一个触控层。在触摸的点处播放粒子特效。

2.3监听安卓按键

初始化中增加允许接收按键事件的函数。

代码语言:javascript
复制
auto listenerKeyPad = EventListenerKeyboard::create();
	listenerKeyPad->onKeyReleased = CC_CALLBACK_2(CPaino::onKeyPadReleased,this);
	_eventDispatcher->addEventListenerWithSceneGraphPriority(listenerKeyPad,this);

之后写onKeyPadReleased,识别到返回键退出游戏。

4.触摸钢琴运行结果

源码下载

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-08-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.触摸钢琴项目描述
    • 1.1触摸钢琴功能描述
      • 1.2触摸钢琴所需技术
      • 2.触摸钢琴详细设计
        • 2.1点击琴键发出对应的音调
          • 2.2触摸位置产生星云粒子特效
            • 2.3监听安卓按键
            • 4.触摸钢琴运行结果
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档