java - 从另一个类调用函数
问题描述
我正在为一个学校项目编写一个小程序。主题是“objective Coding”,所以在 draw 方法和 setup 方法所在的地方有“main Tab”。在其他选项卡中,我编写了其他类和函数。
所以在我的“主选项卡”中有这个功能void draw
,它看起来像这样:
void draw() {
background();
h1.displayH();
steuerungH();
t1.displayT();
}
这三种方法background();
,h1.displayH();
都t1.displayT();
没有问题。我尝试编写如下代码:
...
...
h1.streuerungH();
...
h1
是一个对象,一个矩形我尝试用函数移动void steuerungH();
,但总是有一个错误说:
该功能
steuerungH()
不存在。
我不确定到底是什么问题,因为我编写函数的类void steuerungH();
看起来与其他类完全一样
float gravity = 0.1;
float speed = 0;
class Steuerung {
void steuerungH(){
if (key == UP|| key == 'w') {
playerYPosition = playerYPosition +speed;
speed = speed + gravity;
if (playerYPosition >= 30); {
speed = speed *-1;
}
} else if (key == DOWN ||key == 's') {
/*Duck methode muss noch geschrieben werden*/
} else if (key == RIGHT || key == 'd') {
playerXPosition = playerXPosition +10;
} else if (key == LEFT ||key == 'a') {
playerXPosition = playerXPosition -10;
}
}
}
解决方案
首先,您应该考虑playerXPosition
和playerYPosition
。Player
用属性playerXPosition
和playerYPosition
方法创建一个类不是更好streuerungH
吗?
class Player {
float gravity = 0.1;
float speed = 0;
float playerXPosition;
float playerYPosition;
// [...]
void steuerungH(){
if (key == UP|| key == 'w') {
playerYPosition = playerYPosition +speed;
speed = speed + gravity;
if (playerYPosition >= 30); {
speed = speed *-1;
}
} else if (key == DOWN ||key == 's') {
/*Duck methode muss noch geschrieben werden*/
} else if (key == RIGHT || key == 'd') {
playerXPosition = playerXPosition +10;
} else if (key == LEFT ||key == 'a') {
playerXPosition = playerXPosition -10;
}
}
}
无论如何,如果您想保留当前的设计,那么您必须选择解决问题:
创建一个Steuerung
. 例如
Steuerung s = new Steuerung();
void draw() {
// [...]
s.streuerungH();
// [...]
}
另一种选择是:
由于Processing在全局命名空间中提供了函数,因此您可以转向steuerungH
函数:
float gravity = 0.1;
float speed = 0;
void steuerungH(){
// [...]
}
void draw() {
// [...]
streuerungH();
// [...]
}
推荐阅读
- android - 在 android studio 中运行配置
- android - 如何解决 Android Studio 错误:读取超时?
- android-emulator - Android 模拟器 黑屏 AMD
- python - Python 字符串连接内部细节
- python-3.6 - 二十一点,蟒蛇
- android - 蓝牙 LE (RxAppCompatActivity) - 调试
- ruby-on-rails - 如何使用 CanCanCan 从关系中获得许可?
- javascript - 点数被错误计算
- javascript - 提交表单并使用 target='_top' 留在同一页面上
- c# - c# - 查找没有根元素的节点值