Изменить: теперь я включил Player.as и addchild
Я весь день пытался понять, как это сделать, и снова многому научился при этом. Но я дошел до того, что мне нужна помощь.
Я знаю, что должен сделать следующее: создать переменную Collisions в классе Back1.
Поскольку фон Back1 - это фрагмент ролика, содержащий изображение Collisions.
Я нашел хороший сайт или два, которые хорошо объясняют переменные и классы, но я до сих пор не понимаю, как мне решить эту проблему.
Исследование переменных и классов:
http://www.republicofcode.com/tutorials/flash/as3variables/
указанная выше проблема приводит к следующей ошибке, но я считаю, что она вызвана не созданием переменной Collisions в классе Back1
ArgumentError: ошибка № 1063: несоответствие количества аргументов в Bumper (). ожидается: 2, значение 0.
в flash.display :: MovieClip / gotoAndStop () в DocumentClass / onRequestStart () DocumentClass.as:64] в flash.events::EventDispatcher/dispatchEventFunction () в flash.events::EventDispatcher/dispatchEvent () в MenuScreen / onClickStart ( ) MenuScreen.as:18]
package { import flash.display.MovieClip; import flash.events.*; import flash.events.KeyboardEvent; import flash.ui.Keyboard; import flash.geom.Point; import Bumper; //import Back1; public class Test extends MovieClip { public var leftBumping:Boolean = false; public var rightBumping:Boolean = false; public var upBumping:Boolean = false; public var downBumping:Boolean = false; public var leftBumpPoint:Point = new Point(-30,-55); public var rightBumpPoint:Point = new Point(30,-55); public var upBumpPoint:Point = new Point(0,-120); public var downBumpPoint:Point = new Point(0,0); public var scrollX:Number = 0; public var scrollY:Number = 500; public var xSpeed:Number = 0; public var ySpeed:Number = 0; public var speedConstant:Number = 4; public var frictionConstant:Number = 0.9; public var gravityConstant:Number = 1.8; public var jumpConstant:Number = -35; public var maxSpeedConstant:Number = 18; public var doubleJumpReady:Boolean = false; public var upReleasedInAir:Boolean = false; public var keyCollected:Boolean = false; public var doorOpen:Boolean = false; public var currentLevel:int = 1; public var animationState:String = "idle"; public var bulletList:Array = new Array(); public var enemyList:Array = new Array(); public var bumperList:Array = new Array(); public var back1:Back1; public var collisions:Collisions; //public var back1:Collisions = new Collisions ; public var player:Player; public function Test() { addEventListener(Event.ADDED_TO_STAGE, init); } public function init(e:Event):void { player = new Player(320, 360); back1 = new Back1(); collisions = new Collisions(); //back1.collisions = new Collisons(); addBumpersToLevel1(); } public function addBumpersToLevel1():void { addBumper(500, -115); addBumper(740, -115); } public function addPlayerTolevel1():void { addPlayer(320, 360); } public function loop(e:Event):void { trace("back1.collisions "+back1.collisions); trace("back1 "+back1); trace("collisions "+collisions); if (back1.collisions.hitTestPoint(player.x + leftBumpPoint.x,player.y + leftBumpPoint.y,true)) {
на всякий случай добавил Bumper.as
package {
import flash.display.MovieClip;
import flash.events.Event;
public class Bumper extends MovieClip{
public function Bumper(xLocation:int, yLocation:int) {
// constructor code
x = xLocation;
y = yLocation;
addEventListener(Event.ENTER_FRAME, bumper);
}
public function bumper(e:Event):void{
//code here
}
}
}
Player.as
package {
import flash.display.MovieClip;
import flash.events.Event;
public class Player extends MovieClip {
public function Player(xLocation:int, yLocation:int) {
// constructor code
x = xLocation;
y = yLocation;
}
// public function removeSelf():void {
// trace("remove enemy");
// removeEventListener(Event.ENTER_FRAME, loop);
// this.parent.removeChild(this);
// }
}
}
файл Back1.as (обратите внимание, что это неправильно)
package {
import flash.display.MovieClip;
public class Back1 extends MovieClip {
//public var collisions:Back1;
//what should i put here?
}
}