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的開發者也能很快的製作出效...