cocos2D 虛擬搖桿Joystick功能實現

2022-02-26 14:42:05 字數 2703 閱讀 8329

joystick 搖桿功能的實現 (兩種實現方式)

一、sneakyinput   nick pannuto編寫的開源類庫

主要有五個核心類:

sneakybutton 

sneakybuttonskinnedbase

sneakyjoystick 

sneakyjoystickskinnedbase

coloredcirclesprite(可選

)以下是具體的用法:

@implementation inputlayer

- (id)init

return  self;}//

新增乙個按鈕

- (void)addfirebutton

//新增乙個搖桿

- (void)addjoystick

- (void)update:(cctime)delta

if (firebutton.active == no)

這個值非常小需要將其放大(根據實際情況調值)

cgpoint velocity = ccpmult(joystick.velocity, 200);

if(velocity.x != 0 && velocity.y != 0)

}執行圖如下:

二、)ccjoystick 是乙個基於 

cocos2d 

的搖桿類,簡單幾行**即可為您的遊戲增加乙個強大的模擬搖桿。而且最新版本已經支援搖桿搓招兒,滿足格鬥類遊戲開發者的需求。

基於該類可自主擴充套件諸多搖桿效果,比如 360 

度模式、

8 向模式。使用方法如下:

// 建立搖桿

myjoystick=[ccjoystick initwithballradius:25 movearearadius:65 isfollowtouch:no iscanvisible:yes isautohide:no hasanimation:yes];//ballradius即模擬搖桿球的半徑,

movearearadius

即搖桿球可移動的範圍半徑,

isfollowtouch

即是否將搖桿基準位置 跟隨

touch

座標,iscanvisible

即是否可見,

isautohide

即是否自動隱藏(

touchend

即隱藏),

hasanimation

即 是否顯示搖桿復位動畫

//新增**

[myjoystick setballtexture:@"ball.png"];//可選,不設定即看不見搖桿球

[myjoystick setdocktexture:@"dock.png"];//可選,不設定即看不見底座

[myjoystick setsticktexture:@"stick.jpg"];//可選,不設定即看不見連動杆

[myjoystick sethitareawithradius:100];//搖桿啟用區域為基準座標半徑,預設為另乙個方法,設定螢幕矩形區域為啟用區域

sethitareawithrect

myjoystick.position=

ccp(100,100);

myjoystick.delegate=self;

[self addchild:myjoystick];   

該搖桿類包含3

個事件:

1、- (void) onccjoystickupdate:(ccnode*)sender angle:(float)angle 

direction:(cgpoint)direction power:(float)power;//angle用來控制角色朝向

,direction用來設定移動座標

,power為力度用於控制速度快慢

2 、- (void) onccjoystickactivated:(ccnode*)sender;

3、- (void) onccjoystickdeactivated:(ccnode*)sender;

實現**如下:

1@implementation operatelayer

23 - (id)init

4 32

return self;

33 }

3435 - (void)shoot:(ccmenuitem  *) menuitem

40 - (void) onccjoystickupdate:(ccnode*)sender angle:(float)angle direction:(cgpoint)direction power:(float)power

41 55 }

5657 - (void) onccjoystickactivated:(ccnode*)sender

58 64 }

65 - (void) onccjoystickdeactivated:(ccnode*)sender

66 72 }

73@end

執行效果圖:

/files/xuling/ccjoystick.rar

/files/xuling/sneakyinput.rar

[glview setmultipletouchenabled:yes];設定為yes了沒有。 我剛開始做的時候就沒設定還查了好久,嘿嘿,有點菜 ...

cocos2D 虛擬搖桿Joystick功能實現

implementation inputlayer id init return self 新增乙個按鈕 void addfirebutton 新增乙個搖桿 void addjoystick void update cctime delta if firebutton.active no 這個值非常...

cocos2d實現語音 Cocos2d 聲音API

param url 聲音路徑 cc.audioengine.playmusic url loop 停止背景 param releasedata 是否釋放聲音資料,預設為false cc.audioengine.stopmusic releasedata 暫停背景 cc.audioengine.pau...

Cocos2D研究院之初識Cocos2d(二)

在正式介紹cocos2d之前,我先囉嗦一下本人對這套引擎的看法。我認為coos2d最大的作用就是降低開發成本 貌似所有引擎都是這樣 對於研發部門來說,最大的成本就是時間,所以節省時間是降低成本最有效的方式,cocos2d幾乎封裝了所有開發ios遊戲需要的底層 使剛剛接觸oc的開發者也能很快的製作出效...