I’m making a very simple turn based battle game using ActionScript 2.0.
I’m VERY new to code, with only very limited Visual Basic knowledge, so I’ll happily admit I don’t really know what I’m doing. I’ve got a start, but I decided to rewrite the entire thing because I wouldn’t be able to cycle enemies and levels easily.
I’ve spawned the same enemy twice using _root.attachMovie, and identified them as Enemy1 and Enemy2. After spawning them, I tried to make them identify themselves with:
_root.Enemy1.identify = "Enemy1"
_root.Enemy1.identify = "Enemy1"
Using the debugger, this apparently works (within the movieclip, they have a variable called identify which correctly labels them), yet when I try to use an if statement so I can put them in their own individual positions, it simply does not work; it skims straight over. The code I have within the movie clips is:
if (identify == "Enemy1") {
function poschange() {
_root.Enemy1._x = _root.Enemy1.POSX;
_root.Enemy1._y = _root.Enemy1.POSY;
_root.Enemy1.swapDepths(_root.Enemy1.POSY);
}
} else if (identify == "Enemy2") {
function poschange() {
_root.Enemy2._x = _root.Enemy2.POSX;
_root.Enemy2._y = _root.Enemy2.POSY;
_root.Enemy2.swapDepths(_root.Enemy2.POSY);
}
}
poschange();
The poschange functions works fine for the player characters, it’s just this if statement to identify which enemy it is apparently fails.
Is there any easier way for a movie clip to identify its own ID so I don’t have to use this method, or is there just something wrong with my code?
Personally, I’d stay away from using an inline function in that way. I’d write a poschange function that takes in the enemy, like such,
And you’d call it from your if statement like,
But that may not necessarily be, nor solve your problem. At the time of the if statement, where are you getting the ‘identify’ property from? If you’re getting it from an actual enemy object, why not forget about the if statement and run poschange(curEnemy), or similar?