Я анализирую код игры. Метод с именем act () запущен, хотя он не вызывается. Похоже, есть секретный метод, но я его не вижу. Я слежу за источником метода. Я нахожу такой код. Некоторая часть кодов приведена ниже. Я думаю, что родительский класс отправляет метод дочернему классу при выполнении нового объекта. Есть ли название этого подхода.
Это класс LevelScreen. У него нет метода act (), но метод act () работает. Я вижу изменения, когда меняю параметры в методе act () в классе Plane.
class LevelScreen : BaseScreen(){
plane = Plane(100f, 500f, mainStage)}
Это класс Plane, у которого есть метод act ().
class Plane(x: Float, y: Float, s: Stage) : BaseActor(x, y, s){
override fun act(dt: Float) {
super.act(dt)
// simulate force of gravity
setAcceleration(800f)
accelerateAtAngle(270f)
applyPhysics(dt)
................
.............
}
Это родительский класс класса Plane
open class BaseActor(x: Float, y: Float, s: Stage) : Group(){
override fun act(dt: Float) {
super.act(dt)
if (!animationPaused)
elapsedTime += dt
}
}
Это это класс, который находится в рамках libGDX
public class Group extends Actor implements Cullable{
public void act (float delta) {
super.act(delta);
Actor[] actors = children.begin();
for (int i = 0, n = children.size; i < n; i++)
actors[i].act(delta);
children.end();
}
}