Итак, я получил этот класс bulletContainer, который стреляет всеми этими пулями, он работает и стреляет отлично, когда я помещаю класс в moveiclip, чтобы добавить его на сцену. Я не могу использовать это в видеоклипе, потому что, когда я вызываю функцию bulletClass, она выдает мне сообщение об ошибке, говорящее, что этого не существует. Теперь моя проблема заключается в том, что когда я добавляю Child(bulletClass) на сцену, он будет работать именно так, как он запрограммирован, за исключением движения/анимации. Пуля движется нормально, за исключением случаев, когда я стреляю, она стреляет в противоположную сторону, а не ПРОСТО стреляет в противоположную сторону, она стреляет немного влево (если я указываю прямо вверх и немного влево), тогда, если я направляю полностью вправо, она стреляет повернуть, чтобы стрелять прямо со мной. Так что это в основном бас-аквардс Во всех отношениях, как я уже сказал, и только тогда, когда я добавляю Child() с классом (который расширяет Movieclip). Я не знаю, почему я даю вам свой код, потому что он просто запутает вас больше, чем все проверяется; Я думаю, что где-то есть преобразование, например, классы, которые расширяют Movieclip, ориентированы иначе, чем Library MovieClips?
Этот код находится в функции bulletAdder(), это единственное место, где создаются маркеры в bulletContainer.
var localPlayer = Object(root).localSurvivor;
//Select what movieclip should go into the bullet
var newBullet;
newBullet = new bullet1;
//Create a local movieclip for this
var newBulletMC:MovieClip = new MovieClip;
newBulletMC.addChild(newBullet);
newBulletMC.x = setX;
newBulletMC.y = setY;
//trace(localPlayer.rotation);
//Create the newBullet class for movement
var localPlayerRotation = Object(root).localSurvivor.rotation;
trace(localPlayerRotation);
var newBulletClass:bulletClass = new bulletClass(localPlayerRotation, bulletLifetime);
//Add bulletMC to the bulletClass
newBulletClass.addChild(newBulletMC);
//Add to array
bulletArray.push(newBulletClass);
//Add to stage
localStage.addChild(newBulletClass);
Это bulletClass, пули, которые движутся по экрану.
package com{
import flash.display.*
import flash.utils.*
public class bulletClass extends MovieClip{
public var lifetime = 0;
public var dir = 0;
var animationInt;
public function bulletClass(playerRotation, bLifetime:Number = 1){
dir = playerRotation
//Start life
animationInt = setInterval(animateBullet, 40);
}
private function animateBullet(){
this.x += 10 * Math.sin(dir * (Math.PI / 180));
this.y += 10 * Math.cos(dir * (Math.PI / 180));
}
}
}