ブール値の C 配列は、配列を持つ Cocos2d シーンを 2 回目に実行したときに値を保持していません。アプリを初めて起動すると、c 配列は正常に動作し、期待どおりに応答しますが、シーンの割り当てを解除してから再実行すると、c 配列に割り当てられた値が保持されません。以下のコードで間違っていることはありますか?
//.h
@interface GameplayLayer : CCLayer {
bool playerLog[4];
Hero *hero;
}
//.m
@implementation
- (void)ccKeyDown:(NSEvent*)keyDownEvent{
// Get pressed key (code)
UInt16 keyCode = [keyDownEvent keyCode];
// Set pressed key to true
if (keyCode == 123) playerLog[0] = TRUE; // Left
if (keyCode == 124) playerLog[1] = TRUE; // Right
if (keyCode == 126) playerLog[2] = TRUE; // up
if (keyCode == 125) playerLog[3] = TRUE; // down
// Other keys
if (keyCode == 27) { } // Escape
}
- (void)ccKeyUp:(NSEvent*)keyUpEvent
{
UInt16 keyCode = [keyUpEvent keyCode];
// Set pressed key to true
if (keyCode == 123) playerLog[0] = FALSE; // Left
if (keyCode == 124) playerLog[1] = FALSE; // Right
if (keyCode == 126) playerLog[2] = FALSE; // up
if (keyCode == 125) playerLog[3] = FALSE; // down
// Other keys
if (keyCode == 27) { } // Escape
}
-(void)update:(ccTime)delta {
if (playerLog[0] == TRUE) {//false on the second run when key is pushed down}