1

我在尝试访问在不同类中创建的一个变量时遇到问题。

我有一个 GameScene 类,我在其中创建了一个新类:

npcArray[0] = new Npc(-100, 100, vbom, camera, physicsWorld, 0);

在 npcArray[0] 中,我想访问在 previeus 类中创建的变量。我怎样才能访问它?

编辑1:

第一类:

public class GameScene extends BaseScene implements IOnSceneTouchListener, IOnAreaTouchListener {

    public Npc[] npcArray = new Npc[4];
    public Bullet[] bulletArray = new Bullet[500];
    public static Zombie[] zombieArray = new Zombie[50];

        //code...

private void createNPCs(){
        npcArray[0] = new Npc(-100, 100, vbom, camera, physicsWorld, 0);
        attachChild(npcArray[0]);
        registerTouchArea(npcArray[0]);
        npcArray[1] = new Npc(200, 100, vbom, camera, physicsWorld, 1);
        attachChild(npcArray[1]);
        registerTouchArea(npcArray[1]);
    }

第 2 类:

public class Npc extends Sprite{

       //code...    

                if(distanciaMinima <= 3 && distanciaMinima != -1 && timer >= 200 ){
                    timer = 0;
                    Vector2 vectorUnitariBullet = new Vector2(GameScene.zombieArray[zombieProper].body.getPosition()).sub(body.getPosition()).nor();
                    GameScene.createBullet(ArrayPosition, vectorUnitariBullet, accuracy);
                }
}

因此,当我要访问 npcArray["number"] 时,我想访问变量 bulletArray 或任何方法示例:"GameScene.createBullet()" *现在它错了

编辑2:

我的代码结构参考了这个游戏:Game Code Download at the end

当我在 Player 时,我试图访问在 GameScene 中创建的变量。

对不起我糟糕的英语。

4

1 回答 1

1

添加对 Npc 的 GameScene 引用。并编辑您的构造函数。

Class Npc
{
   public GameScene gs;
   public Npc(int x, int y, ..... , GameScene gs)
   {
       this.gs = gs;   
   }
}

使用以下术语通过构造函数传递游戏场景:

npcArray[0] = new Npc(-100, 100, vbom, camera, physicsWorld, 0, this);

访问它:

npcArray[0].gs.variable_name

注意这不会导致额外的内存分配。

于 2013-10-08T16:22:37.073 回答