0

我正在开发一个游戏,它创建了三个圆圈“红色,绿色和蓝色,分别具有 3,2,1 生命值。它们在生命值达到 0 后从舞台上移除,每次点击减少 1。我正在使用一个 Main.mxml 文件然后我有一个 Target.as 文件,以及 RedTarget.as、GreenTarget.as 和 BlueTarget.as。我的问题是我想在我的 Target.as 文件中设置所有内容,然后推送诸如颜色,健康状况以及它们是否通过这些功能已死或未通过这些功能之类的详细信息。但是,我在这样做时遇到了麻烦,因为我不确定在 Target.as 中需要什么,然后在每个中需要编写什么代码的彩色目标文件。这是我的 Target.as 文件:

package com.multiClicker {
//import the needed classes
import flash.display.Shape;
import flash.events.MouseEvent;

import spark.components.Image;


public class Target extends Image {

public function Target() {

    //add event listeners
    this.addEventListener(MouseEvent.CLICK, onClick);

}

//sets the hp of the target
public function hp():Number { 
    return hp;
}

//get function that returns false if alpha is <= 0
public function dead():Boolean {

    if(alpha <= 0){
        return false;
    }

    return true;
}

//subtracts one from targets HP when clicked
public function onClick(e:MouseEvent = null):void {


    //subtracts one from hp each click
    hp --;

    if(hp <=0) {
        this.addEventListener(onEnterFrame);
    }

}

//subtracts .1 from the classes alpha
public function onEnterFrame():void{
    this.alpha =- .1;


}

//draws the target
public function drawTarget(color):void {

    var circle:Shape = new Shape();

    circle.graphics.beginFill(color);
    circle.graphics.drawCircle(0,0,30);

}

}
}

然后是我的 RedTarget.as 文件,它与蓝色和绿色相同,只是它们在变量中被标记为:

package com.multiClicker {
import flash.events.MouseEvent;
public class RedTarget extends Target{

private var redHP:Number = 3;
private var redDead:Boolean = false;
private var redColor:String = "red";

public function RedTarget()
{

    redHP = hp;
    redDead = dead;
    redColor = color;

    //include the super function
    super();
}

//subtracts one from targets HP when clicked
override public function onClick(e:MouseEvent=null):void {

    super.onClick(e);

    //push all to super
}

}
}

在这个问题上的任何帮助都会很棒。我一整天都在试图弄清楚,但还没有弄清楚。

4

1 回答 1

2

您只是在问如何在创建 Target 对象时传递变量吗?

public class Target extends Image {

    public function Target(hp:Number, dead:Boolean, color:String) {

        this.hp = hp;
        this.dead = dead;
        this.color = color;

    }

}

然后像这样实例化每个目标:

var redTarget:Target = new Target(3, false, "red");
var greenTarget:Target = new Target(2, false, "green");

ETC...

于 2013-02-07T23:02:16.100 回答