Flash Actionscript-随机水平移动放置对象
我正在为我的actionscript类制作一个类似Kaboom的游戏 我意识到我甚至还没有接近完成,这可能很糟糕,但到目前为止,这是我的代码:Flash Actionscript-随机水平移动放置对象,flash,animation,actionscript,Flash,Animation,Actionscript,我正在为我的actionscript类制作一个类似Kaboom的游戏 我意识到我甚至还没有接近完成,这可能很糟糕,但到目前为止,这是我的代码: var bucket:Bucket=new Bucket var sun:Sun=new Sun var fireBalls:Array=new Array() var livesLeft:Array=new Array() addChild(bucket) addChild(sun) sun.x=sun.width/2 sun.y=50 bucket
var bucket:Bucket=new Bucket
var sun:Sun=new Sun
var fireBalls:Array=new Array()
var livesLeft:Array=new Array()
addChild(bucket)
addChild(sun)
sun.x=sun.width/2
sun.y=50
bucket.x=bucket.width/2
bucket.y=stage.stageHeight-50
bucket.speed=15
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown)
function onKeyDown(event:KeyboardEvent){
if (event.keyCode==37&&bucket.x>bucket.width/2){ // left arrow key
bucket.x=bucket.x-bucket.speed;
}
if (event.keyCode==39&&bucket.x<stage.stageWidth-bucket.width/2){ // right arrow key
bucket.x=bucket.x+bucket.speed;
}
}
stage.addEventListener(MouseEvent.MOUSE_MOVE,followBucket);
function followBucket(event:MouseEvent):void {
bucket.x=mouseX;
}
addEventListener(Event.ENTER_FRAME,onEnterFrame)
function checkForCollisions (){
}
function onEnterFrame(event:Event){
checkForCollisions.call();
sun.x=sun.x+15;
if (fireBalls.length>0&&fireBalls[0].y>stage.stageHeight-20){ // Fireballs exit stage
removeChild(fireBalls[0]);
fireBalls.shift();
}
for (var j:int=0; j<fireBalls.length; j++){
fireBalls[j].y=fireBalls[j].y+15;
if (fireBalls[j].y>stage.stageHeight-fireBall.width/2){
}
}
if (Math.random()>.2){ // Fireballs shooting from Sun
var fireBall:FireBall=new FireBall;
fireBall.x=sun.x;
addChild(fireBall);
fireBalls.push(fireBall);
}
if (sun.x>stage.stageWidth){ // Sun hits right side of stage
sun.x=0;
}
if (sun.x<0){ // Sun hits left side of stage
sun.x=stage.stageWidth;
}
}
var bucket:bucket=新bucket
var太阳:太阳=新太阳
var firebolls:Array=newarray()
var livesLeft:Array=new Array()
addChild(bucket)
addChild(sun)
sun.x=sun.width/2
sun.y=50
bucket.x=bucket.width/2
bucket.y=stage.stageHeight-50
铲斗。速度=15
stage.addEventListener(KeyboardEvent.KEY\u DOWN,onKeyDown)
函数onKeyDown(事件:KeyboardEvent){
如果(event.keyCode==37&&bucket.x>bucket.width/2){//左箭头键
bucket.x=bucket.x-bucket.speed;
}
如果(event.keyCode==39&&bucket.x0&&fireball[0].y>stage.stageHeight-20){//fireball退出stage
removeChild(火球[0]);
火球;
}
对于(var j:int=0;jstage.stageHeight fireBall.width/2){
}
}
if(Math.random()>.2){//从太阳射出的火球
var火球:火球=新火球;
火球.x=太阳.x;
addChild(火球);
火球。推(火球);
}
如果(sun.x>stage.stageWidth){//sun击中舞台右侧
sun.x=0;
}
如果(sun.x像这样
import flash.events.TimerEvent;
import flash.utils.Timer;
var bucket:Bucket=new Bucket
var sun:Sun=new Sun
var fireBalls:Array=new Array()
var livesLeft:Array = new Array()
var left:Boolean;
var timer:Timer = new Timer(1000); // test change direction every second
addChild(bucket)
addChild(sun)
sun.x=sun.width/2
sun.y=50
bucket.x=bucket.width/2
bucket.y=stage.stageHeight-50
bucket.speed=15
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown)
function onTimer(e:TimerEvent) {
left = (Math.random() > 0.5);// 50/50 chance of changing direction
}
timer.addEventListener(TimerEvent.TIMER, onTimer);
timer.start();
function onKeyDown(event:KeyboardEvent){
if (event.keyCode==37&&bucket.x>bucket.width/2){ // left arrow key
bucket.x=bucket.x-bucket.speed;
}
if (event.keyCode==39&&bucket.x<stage.stageWidth-bucket.width/2){ // right arrow key
bucket.x=bucket.x+bucket.speed;
}
}
stage.addEventListener(MouseEvent.MOUSE_MOVE,followBucket);
function followBucket(event:MouseEvent):void {
bucket.x=mouseX;
}
addEventListener(Event.ENTER_FRAME,onEnterFrame)
function checkForCollisions (){
}
function onEnterFrame(event:Event){
checkForCollisions.call();
if (left) {
sun.x = sun.x - 15;
}else{
sun.x = sun.x + 15;
}
if (fireBalls.length>0&&fireBalls[0].y>stage.stageHeight-20){ // Fireballs exit stage
removeChild(fireBalls[0]);
fireBalls.shift();
}
for (var j:int=0; j<fireBalls.length; j++){
fireBalls[j].y=fireBalls[j].y+15;
if (fireBalls[j].y>stage.stageHeight-fireBall.width/2){
}
}
if (Math.random()>.2){ // Fireballs shooting from Sun
var fireBall:FireBall=new FireBall;
fireBall.x=sun.x;
addChild(fireBall);
fireBalls.push(fireBall);
}
if (sun.x>stage.stageWidth){ // Sun hits right side of stage
sun.x=0;
}
if (sun.x<0){ // Sun hits left side of stage
sun.x=stage.stageWidth;
}
}
导入flash.events.TimerEvent;
导入flash.utils.Timer;
var铲斗:铲斗=新铲斗
var太阳:太阳=新太阳
var firebolls:Array=newarray()
var livesLeft:Array=new Array()
左变量:布尔值;
变量计时器:计时器=新计时器(1000);//测试每秒更改方向
addChild(bucket)
addChild(sun)
sun.x=sun.width/2
sun.y=50
bucket.x=bucket.width/2
bucket.y=stage.stageHeight-50
铲斗。速度=15
stage.addEventListener(KeyboardEvent.KEY\u DOWN,onKeyDown)
时间函数(e:TimerEvent){
左=(Math.random()>0.5);//改变方向的几率为50/50
}
timer.addEventListener(TimerEvent.timer,onTimer);
timer.start();
函数onKeyDown(事件:KeyboardEvent){
如果(event.keyCode==37&&bucket.x>bucket.width/2){//左箭头键
bucket.x=bucket.x-bucket.speed;
}
如果(event.keyCode==39&&bucket.x0&&fireball[0].y>stage.stageHeight-20){//fireball退出stage
removeChild(火球[0]);
火球;
}
对于(var j:int=0;jstage.stageHeight fireBall.width/2){
}
}
if(Math.random()>.2){//从太阳射出的火球
var火球:火球=新火球;
火球.x=太阳.x;
addChild(火球);
火球。推(火球);
}
如果(sun.x>stage.stageWidth){//sun击中舞台右侧
sun.x=0;
}
如果(sun.xthanks这非常有效,现在我有最后一个问题:如何让火球更频繁地下落?我假设我使用的是Math.random错误?还是等待1从数组中删除,然后再下落另一个?运行链接到的swf,我会得到一个空引用错误。我认为代码中其他地方的错误是crashing the script.ya我认为空引用是fireBalls数组,我在这里提出了一个新问题: