首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java语句/转换| Pulpcore

Java语句/转换| Pulpcore
EN

Stack Overflow用户
提问于 2011-08-10 14:05:35
回答 1查看 107关注 0票数 0

请注意,这可能需要AS3 + Java知识

背景信息:

我正在尝试使用Java + Pulpcore构建一个游戏,但我对这一领域还是相当陌生的。我正在构建的游戏可能会比我想象的更具性能密集型,我知道Java会解决我的问题,但我在处理严格类型等方面有几个问题。

下面是我在AS3中的代码:

Main.as3

代码语言:javascript
复制
import org.tbmb.champions.Container;
import org.tbmb.zombies.ZContainer;

public class Main extends MovieClip {

    // ******* temporary properties ******* /
    private var blunder:Container = null;
    // *******                      ******* /

    public function Main() {

        init(); // initialize objects

    }

    public function init():void {

        blunder = new Container(Blunder as Class);

    } // end of class

}

Container.as3

代码语言:javascript
复制
 package org.tbmb.champions {

     import flash.display.MovieClip;

     public class Container extends MovieClip {

          public function Container(champ:*) {

          } // end of constructor

     } // end of class

 } // end of package

Blunder.as3

代码语言:javascript
复制
package org.tbmb.champions.blunder {

    import flash.display.MovieClip;

    public class Blunder extends MovieClip {

        public function Blunder() {

        } // end of constructor

    } // end of class

} // end of constructor

1.)我该如何在Java中重写?

代码语言:javascript
复制
blunder = new Container(Blunder as Class);

2.)我如何才能在我的Container类中接受上述行的Java类呢?

代码语言:javascript
复制
public function Container(champ:*) {

我之所以需要这样做,是因为我将不同的冠军类(取决于用户选择的类)发送到一个包含所有其他类(健康等)的类。我需要我的Container类接受任何类,而不是只接受一个;我应该使用什么类型?

到目前为止,我在Java中的代码如下:

ZomboPulp.java (主类)

代码语言:javascript
复制
import pulpcore.scene.Scene2D;

import org.tnpfk.champions.Container;
import org.tnpfk.champions.blunder.Blunder;

import pulpcore.sprite.FilledSprite;
import pulpcore.image.Colors;

public class ZomboPulp extends Scene2D {

    FilledSprite background = new FilledSprite(Colors.WHITE);

    Container container = null; // Container that contain's blunder, 
    // and all his objects (health, mana, etc)

    public void load() {

        this.initScreen(); // initialize main screen.
        this.initObjects(); // initialize our objects.

    } // end of load();

    public void initScreen() {

        add(background);

    } // end of initScreen();

    public void initObjects() {

        container = new Container(Blunder as Class); // ERROR HERE

    } // end of initObjects();

}

Container.java

代码语言:javascript
复制
package org.tnpfk.champions;

public class Container {

    public Container(Object champ) {

    } // end of constructor

} // end of class

很抱歉写了这么长的帖子,谢谢你的帮助。顺便说一句,我确实查过StackOverflow;和谷歌,但我找不到任何关于这方面的信息。

谢谢你,jvmpulp

EN

回答 1

Stack Overflow用户

发布于 2011-08-10 15:07:45

好吧!我没有使用PulpCore的经验,但是我知道AS3和Java,所以我想我可以回答你的问题。首先,我想我不是100%理解你需要对容器类中的冠军对象做什么,我真的不明白你为什么要做Blunder as Class而不是仅仅传递一个错误的实例。无论哪种方式,以下是我对你目前所拥有的建议:

代码语言:javascript
复制
public void initObjects() {

    container = new Container(Blunder.class);

}

如您所见,只需获取任何类的class属性,就可以获得一个类实例。现在,您已经对使用Object作为任何类型的容器构造函数的类型有了正确的想法。然而,使用Object是一种糟糕的做法(使用方法重载/更具体的类型),这里甚至不需要它。获取class属性的类型将始终是Class,即使它们表示不同的类。因此,将构造函数重写为:

代码语言:javascript
复制
public Container(Class champ) {

}

然后,对这个类做任何你需要做的事情。

现在,这基本上是一个直接端口,但似乎您正在做的一些事情是糟糕的实践。传递Class对象的整个系统似乎并不相关,也没有必要;为什么不只传递对象的一个实例呢?例如,如下所示:

代码语言:javascript
复制
public class Container {

    protected Champion champ;

    public Container(Champion champ) {

        this.champ = champ;

    }

}

现在,让Champion成为一个抽象类,其中包含所有冠军的通用方法:

代码语言:javascript
复制
public abstract class Champion {

    protected Something something;

    abstract Something getSomething();

}

(显然,这里显示的变量/方法只是示例。)然后,让你的个人冠军班子类Champion

代码语言:javascript
复制
public class Blunder extends Champion {

    public Something getSomething() {
        return this.something;
    }

}

等。然后,最后,执行以下操作:

代码语言:javascript
复制
public void initObjects() {

    container = new Container(new Blunder());

}

显然,这只是一个基本的例子,您不必接受我的建议。但这可能比您在AS3中已有的系统更容易做到。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7006533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档