我目前正在使用自己的引擎来编写游戏。但是,有一个问题,我不确定如何以最有效的代码方式解决它:对于游戏中的许多对象,我需要根据各种条件/状态分配不同的纹理(我为此使用枚举)。一个例子:
玩家需要根据他所看的方向,走路或等待的状态,健康状况等来更改其纹理。>
一个解决方案是像这样嵌套嵌套的语句:
switch (getState ()) {
case IDLE:
switch (getDirection()) {
case UP:
setTexture(Textures.PLAYER_IDLE_UP);
break;
case RIGHT:
setTexture(Textures.PLAYER_IDLE_RIGHT);
break;
case DOWN:
setTexture(Textures.PLAYER_IDLE_DOWN));
break;
case LEFT:
setTexture(Textures.PLAYER_IDLE_LEFT);
break;
}
break;
case WALKING:
switch (getDirection()) {
case UP:
setTexture(Textures.PLAYER_WALKING_UP);
break;
case RIGHT:
setTexture(Textures.PLAYER_WALKING_RIGHT);
break;
case DOWN:
setTexture(Textures.PLAYER_WALKING_DOWN);
break;
case LEFT:
setTexture(Textures.PLAYER_WALKING_LEFT);
break;
}
break;
case RUNNING:
...
}
但是,对于每种情况,这将变得越来越复杂,如果存在其他一组状态,我将不得不重写它(例如,我将实现一个僵尸,而他无法运行,或者会具有其他属性,等等。)。
[我还想到了给我所有的纹理标签,并编写一个算法来尝试找到匹配的纹理,但是具有越来越多的纹理/条件,并且所有这些都经常执行,我认为这种方法会非常慢。
我真的不知道该怎么办,或者我是否缺少解决此类问题并且代码高效且高效的数据结构。
我目前正在使用自己的引擎来编写游戏。但是,有一个问题,我不确定如何以最有效的代码方式解决它:对于游戏中的很多对象,我需要分配...
我不确定是否会使其效率更高,但是对于将来的更改,它肯定会使其更强大:我在想类似查找表的东西。这可能是多维数组,甚至可能是您自己的数据结构。