0
我在http://www.cocos2dbook.com上關注着這本書,此刻,我正在製作一個遊戲杆。雖然當我運行我的遊戲,我得到的編譯此錯誤:在我的遊戲中使用SneakyInput發生奇怪的錯誤
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_SneakyJoystick", referenced from:
objc-class-ref in GameplayLayer.o
"_OBJC_CLASS_$_SneakyJoystickSkinnedBase", referenced from:
objc-class-ref in GameplayLayer.o
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status
這是我的頭文件:
// foundation
#import <Foundation/Foundation.h>
// cocos2D and GameCenter
#import "cocos2d.h"
#import <GameKit/GameKit.h>
// Joystick and buttons
#import "SneakyJoystick.h"
#import "SneakyButton.h"
#import "SneakyJoystickSkinnedBase.h"
#import "SneakyButtonSkinnedBase.h"
// sound fx
#import "SimpleAudioEngine.h"
#import "Helpers.h"
#import "GameScene.h"
@interface GameplayLayer : CCLayer {
// initial player sprite
CCSprite *player;
// player health
int playerStartHealth;
// joystick
SneakyJoystick *leftJoystick;
}
@end
而且我.m
文件(僅操縱桿方法):
- (void) initJoystickAndButtons {
CGSize screen = [CCDirector sharedDirector].winSize;
CGRect joystickBaseDimensions =
CGRectMake(0, 0, 128.0f, 128.0f);
CGPoint joystickBasePosition;
joystickBasePosition = ccp(screen.width*0.0625f,
screen.height*0.052f);
SneakyJoystickSkinnedBase *joystickBase =
[[[SneakyJoystickSkinnedBase alloc] init] autorelease];
joystickBase.position = joystickBasePosition;
joystickBase.backgroundSprite =
[CCSprite spriteWithFile:@"dpadDown.png"];
joystickBase.thumbSprite =
[CCSprite spriteWithFile:@"joystickDown.png"]; // 8
joystickBase.joystick = [[SneakyJoystick alloc]
initWithRect:joystickBaseDimensions]; // 9
leftJoystick = [joystickBase.joystick retain]; // 10
[self addChild:joystickBase];
}
- (void) applyJoystick:(SneakyJoystick *)aJoystick toNode:(CCNode *)tempNode forTimeDelta (float)deltaTime {
CGPoint scaledVelocity = ccpMult(aJoystick.velocity, 1024.0f); // 1
CGPoint newPosition =
ccp(tempNode.position.x + scaledVelocity.x * deltaTime,
tempNode.position.y + scaledVelocity.y * deltaTime); // 2
[tempNode setPosition:newPosition]; // 3
}
#pragma mark -
#pragma mark Update Method
- (void) update:(ccTime)deltaTime {
[self applyJoystick:leftJoystick toNode:player forTimeDelta:deltaTime];
}
顯示自項目 – Dustin 2012-07-06 17:06:29
相關的代碼@DustinRowland完成。 – beakr 2012-07-06 17:14:25
看起來你正在爲錯誤的目標而建造。你在爲什麼操作系統和設備? – Dustin 2012-07-06 17:35:56