0

如果问得太多,我很抱歉,但我找不到足够清楚的东西。

我正在为安卓开发一个小游戏引擎。我已经实现了一个游戏手柄类来控制触摸屏。如果有人触摸正确的区域,游戏手柄类会绘制一个模拟摇杆,并且还会绘制侧面的按钮。

问题是,简单来说,我有作为 LEVEL 类和 GAMEPAD 类的主类 GAME。

在 GAMEPAD 代码中,当有人按下\释放按钮时,我可以触发事件。问题是我不想通过在 GAMEPAD 类中处理按钮来触发主 GAME 类的某些东西。

在 C# 中,我会使用事件和委托。

在Java中我不知道..我希望gpad调用一个注册的方法。

这就是我希望在 GAME 主课上实现的目标。

.. void onGpadClick (e EventArgument) { if (e.Button==Button.A&&e.ButtonState==ButtonState.Pressed) Shoot();

}

提前致谢

4

2 回答 2

0

你可以做的是:

  1. 让您的 GAMEPAD 类接收实例 GAME 类(在其构造函数中或通过设置方法)
  2. 在您的 GAME 类中,您添加包含您希望为每个按钮完成的操作的方法,onButtonAClicked()例如onButtonBClicked()onPadClicked()。(如果这些是选项 - 如果您有更多选项,请添加更多)。
  3. 通过在每个按钮上设置 OnClickListener 来检测来自 GAMEPAD 类的点击,例如buttonA.setOnClicklistner( new OnClickListener() { //override the onClick-method here } )然后覆盖 onClick 方法并在那里添加您的实现,例如myGame.onButtonAClicked()

希望能帮助到你。

于 2011-09-08T11:25:40.190 回答
0

您可以使用 Intents 实现此目的。

http://www.vogella.de/articles/AndroidIntent/article.html

于 2011-09-08T11:07:26.517 回答