2012-01-17 5 views
0

나는 나머지 게임 코드와 통합 된 총알 엔진을 얻고 자 노력 중이다.Cocos2d에서 클래스 메서드 연결하기

이것은 플레이어 클래스가 프로그램을 중단하지 않고 BulletCache 클래스의 메서드를 호출 할 수있게 만드는 것으로 구성됩니다 ('인식 할 수없는 선택기가 인스턴스로 전송 됨 ...'). 통합에

나의 시도는 지금까지

@interface Player : LevelObject 
{ 
BulletCache *bulletCache; 
} 

플레이어 클래스의 인터페이스 예컨대 :에 BulletCache 개체를 만드는 구성하지만 생성자가 더 두 클래스를 연결하기 위해 필요하다고 생각했다. 두 클래스 모두 CCNode의 서브 클래스이지만 Player 클래스는 CCNode의 서브 클래스이지만 여러 클래스의 서브 클래스입니다.

아무도 나에게 두 클래스를 더 연결하는 방법에 대한 추가 정보를주지 못하지만, Player 클래스 메소드는 BulletCache의 메소드를 호출 할 수 있습니까?

편집 : 나는 무한 루프를 얻고 있었다, 그리고 콘솔이 BulletCache 클래스에 오류 관련 CCSprite를보고 유지하기 때문에, 나는 BulletCache 방법 옆에 브레이크 포인트 넣어 :

CCSpriteFrame* bulletFrame = [[CCSpriteFrameCache sharedSpriteFrameCache] 
spriteFrameByName:@"bullet1big e0000.png"]; 

을 그리고 &을 구축 "실행 디버그. " mainMenu에서 'New Game'버튼을 클릭하면 콘솔에로드 로그가 표시되고 즉시 콘솔의 하단에 메시지가 표시됩니다. "GDB : 중단 점 1에서 중지되었습니다 (조회수 : 1)"- init-Line 84 '84 번 라인은 프로그램이이 코드에 문제가있는 것처럼 보이므로 브레이크 포인트를 넣는 곳입니다.하지만 올바르지 않게 보이고 메서드가 일치해야합니다. :.. -spriteFrameByName 당신이 bulletCache 클래스를 가져올 수 있는지 확인 을 또한 플레이어의 init 메소드에 bulletCache를 초기화해야 CCSpriteFrame '

답변

1

에 응답하지 않을 수

은 다음 bulletCache 클래스의 인스턴스 방법으로

를 호출 할 수 있습니다

,
[bullectCache somemethod] 

몇 가지 방법은 BulletCache 클래스

+0

THX의 방법으로 교체해야합니다! init 메소드에서 bulletCache를 초기화하는 방법은 무엇입니까? 일반적인 요지는 알지만 초기화 할 때 사용하는 방법은 무엇입니까? 예 : - (id) init { BulletCache * bulletCache = [BulletCache init]; } Player 클래스 내에서 해당 클래스를 초기화하는 데 사용할 수있는 다른 방법이 있는지 잘 모르겠습니다. – GPP

+1

인스턴스 변수로 선언 한 경우 bulletCache = [BulletCache init]; Player 클래스의 init 또는 scene 메서드에서. – Shubhank

+0

을 추가했습니다. bulletCache = [BulletCache init]; 메서드를 Player init 메서드에서 사용했지만 무한 루프가 만들어져 응용 프로그램이 손상되었습니다. 어떤 도움이 필요합니까? – GPP