zoukankan      html  css  js  c++  java
  • cocos2dx 触摸钢琴

    1.触摸钢琴项目描写叙述

    1.1触摸钢琴功能描写叙述

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

    1.2触摸钢琴所需技术

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

    2.触摸钢琴具体设计

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

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

    通过Tag值遍历得每个button控件。假设存在相应的button对象,就绑定响应。

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

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

    /******************************************************
    函数功能:触摸按键响应
    传入參数:Ref* target:被点击的button对象
    		  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监听安卓按键

    初始化中添加同意接收按键事件的函数。

    auto listenerKeyPad = EventListenerKeyboard::create();
    	listenerKeyPad->onKeyReleased = CC_CALLBACK_2(CPaino::onKeyPadReleased,this);
    	_eventDispatcher->addEventListenerWithSceneGraphPriority(listenerKeyPad,this);

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

    4.触摸钢琴执行结果

    源代码下载



  • 相关阅读:
    接口
    echartsx轴名称过长,截断+鼠标划过显示全称
    浏览器兼容的几点思路
    安装gulp教程(整理)
    TortoiseSVN文件夹及文件图标、标识、绿色小对号不显示解决方法(转载)
    css实现小三角(转载+个人笔记)
    css常用样式(待更新)
    表格样式设计和几点考量
    一些大神或者觉得有益的博客、专栏等(不定时更新)
    搭配bootstracp运用的通用样式(想起来就开个头,待补充……)
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7073093.html
Copyright © 2011-2022 走看看