日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Cocosd2d实例教程五】Cocos2d添加虚拟摇杆控制器

發(fā)布時間:2025/4/5 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Cocosd2d实例教程五】Cocos2d添加虚拟摇杆控制器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

(轉(zhuǎn)載請注明出處:http://blog.csdn.net/buptgshengod

1.介紹

? ? cocos2d為我們提供了好用的搖桿控制器,主要是對ZJoystick.h和ZJoystick.m的添加,實現(xiàn)了如下圖的功能。通過搖桿可以控制圖中精靈的移動。(但是還有一個技術(shù)性問題亟待解決,就是精靈移動后會有一個重影留在初始位置

2.搖桿的實現(xiàn)

? ?1)?將資源中的ZJoystick文件夾加到工程中(頁面下方提供下載地址),?精靈的添加以及移動前面已經(jīng)講了,不知道的同學可以看教程四。工程名字為ControlWalking。

? ? 2)修改HelloWorldLayer.h文件。加入一些需要的節(jié)點參數(shù)。 #import <GameKit/GameKit.h>// When you import this file, you import all the cocos2d classes #import "cocos2d.h" #import "ZJoystick.h" // HelloWorldLayer @interface HelloWorldLayer : CCLayer<ZJoystickDelegate> {CCTexture2D *spriteTexture_; // weak ref//b2World* world; // strong ref//GLESDebugDraw *m_debugDraw; // strong ref//CCTMXTiledMap *_gameMap;CCSprite *_player;//是精靈,圖中的熊貓 }// returns a CCScene that contains the HelloWorldLayer as the only child +(CCScene *) scene;@end

? ? 3) ?修改HelloWorldLayer.m文件。

? 首先,在HelloWorld接口中定義搖桿函數(shù) @interface HelloWorldLayer() //-(void) initPhysics; -(void) initJoystick; @end
?接著,添加initJoystick函數(shù),方便在init中調(diào)用。 -(void) initJoystick{ZJoystick *_joystick2 = [ZJoystick joystickNormalSpriteFile:@"JoystickContainer_norm.png"selectedSpriteFile:@"JoystickContainer_trans.png"controllerSpriteFile:@"Joystick_norm.png"];_joystick2.position = ccp(_joystick2.contentSize.width/2 + 10,_joystick2.contentSize.height/2 + 10);_joystick2.delegate = self; //Joystick Delegate_joystick2.controlledObject = _player;_joystick2.speedRatio = 2.0f;_joystick2.joystickRadius = 50.0f; //added in v1.2_joystick2.joystickTag = 999;[self addChild:_joystick2];}
下一步,添加Joystick的一些屬性,也直接寫在HelloWorldLayer.m文件里。 #pragma mark - zJoystick delegate methods -(void)joystickControlBegan {// CCLOG(@"Joystick Began Controlling");}-(void)joystickControlMoved {// CCLOG(@"Joystick Move Controlling");}-(void)joystickControlEnded {// CCLOG(@"Joystick End Controlling");}-(void)joystickControlDidUpdate:(id)joystick toXSpeedRatio:(CGFloat)xSpeedRatio toYSpeedRatio:(CGFloat)ySpeedRatio{ZJoystick *zJoystick = (ZJoystick *)joystick;if (zJoystick.joystickTag == 999) {CGFloat xPos = _player.position.x;CGFloat yPos = _player.position.y;_player.position = ccp(xPos + xSpeedRatio, yPos + ySpeedRatio);//定義精靈的移動方式} } @end 最后一步就是要修改,init函數(shù)。前提是我們已經(jīng)添加完成精靈(也就是圖中的熊貓,前面第四章講了)。 其實只要將精靈對象付給頭文件中定義的_player,再調(diào)用一下前面定義的initJoystick就可以了。 _player=panda;//panda為自己定義的精靈對象 [self initJoystick];//調(diào)用initJoystick函數(shù) (程序源代碼資源下載地址)




? ? ? ??


總結(jié)

以上是生活随笔為你收集整理的【Cocosd2d实例教程五】Cocos2d添加虚拟摇杆控制器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。