gpt4 book ai didi

objective-c - Objective C 中存在内存问题的 C 数组

转载 作者:行者123 更新时间:2023-11-30 17:55:52 24 4
gpt4 key购买 nike

我的 C bool 值数组在我第二次运行具有该数组的 Cocos2d 场景时没有保留其值。应用程序第一次启动时,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}

最佳答案

无论这里的原因是什么:您不应该将游戏状态保存在与 View 相关的类中,在本例中为 CCLayer。

您应该有一个将游戏状态分组在一起的地方,请参阅我关于共享实例的文章:http://www.cocoanetics.com/2009/05/the-death-of-global-variables/

关于objective-c - Objective C 中存在内存问题的 C 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13908938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com