中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

cocos2dx番外篇——虛擬搖桿

發布時間:2020-07-25 21:42:14 來源:網絡 閱讀:4173 作者:shahdza 欄目:開發技術

【嘮叨】

    如果手機設備沒有手柄、鍵盤的話,就只能靠觸摸屏幕來操作游戲了。

    虛擬搖桿的作用就是在游戲中創建幾個按鍵來模擬手柄,通過觸控來實現上下左右的移動,以及***、跳躍、發大招等操作。

    如下所示,有一個移動的虛擬搖桿,以及一個A鍵。

cocos2dx番外篇——虛擬搖桿

    

    已有開源的SneakyInput虛擬搖桿,開源地址:https://github.com/Ntran013/SneakyInput

    而這里博主則是將開源的SneakyInput進一步的修改,方便博主自身的使用。


【demo下載】

    https://github.com/shahdza/Cocos_LearningTest/tree/master/%E8%99%9A%E6%8B%9F%E6%91%87%E6%9D%86SneakyInput 




【虛擬搖桿】


1、說明

    SneakyInput是一個開源的項目,而我們只需要修改搖桿使用的圖片、按鈕圖片,以及位置即可。

    所以,只要修改Sneaky類中標注的 "//-- need modify start --" 部分,將虛擬搖桿的按鈕圖片改成你自己的圖片即可。


2、使用方法

    (1)將 Sneaky.h 頭文件包含到你的Game.h類中

    (2)在 Game.cpp 的初始化函數 init()里添加虛擬搖桿即可。

                Sneaky* sneaky = new Sneaky();

                this->addChild(sneaky,1,999);

    (3)移動和按鈕一般在游戲Game類的update()中進行。

    (4)移動:

            //獲得方向向量,dv為標準化向量,即長度為1.

            CCPoint dv = sneaky->joystick->getVelocity();

            //人物移動

            sp->setPosition( sp->getPosition() + dv );

    (5)按鈕:

            //判斷按鈕A是否被按下

            sneaky->buttonA->getIsActive()


3、代碼舉例

//
	bool flag = false; //是否在執行按鍵動作
	void Game::update(float dt) {
	
		CCNode* sp = this->getChildByTag(1);
		
		//移動
		int movespeed = 2;
		CCPoint dv = sneaky->joystick->getVelocity();
		sp->setPosition( sp->getPosition() + dv*movespeed );
		
		//按鍵
		if(sneaky->buttonA->getIsActive() && !flag ) {
			CCJumpBy* jump = CCJumpBy::create(0.5f,ccp(0,0),100,1); //原地跳躍
			CCCallFunc* func = CCCallFunc::create(this,callfunc_selector(Game::setFlag));
			sp->runAction( CCSequence::create(jump, func, NULL) );
			flag = true;
		}
	}
	void Game::setFlag() { flag = false; }
//



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泸溪县| 中超| 许昌市| 成都市| 江华| 都兰县| 灯塔市| 苏尼特左旗| 错那县| 尼玛县| 益阳市| 铜陵市| 石首市| 宁陵县| 双鸭山市| 芜湖市| 麦盖提县| 利津县| 元氏县| 遂宁市| 西贡区| 双鸭山市| 驻马店市| 柏乡县| 龙岩市| 龙里县| 赤峰市| 盐城市| 九江县| 广昌县| 永福县| 浏阳市| 凤台县| 化德县| 闻喜县| 岢岚县| 三原县| 鲁甸县| 广宁县| 高青县| 阜城县|