私はScene
がnull
を返しているので、(TornadoFXライブラリを使用して)Javafxで3D作業をしようとしていて、Scene
に私のPerspectiveCamera
を設定できません。シーンがヌルなのはなぜですか?
私はそうのように私のプログラムを起動します。
class ThreeDTest : App(HomeView::class, ThreeDStyles::class) {
override fun start(stage: Stage) {
super.start(stage)
stage.show()
stage.scene.fill = Color.BLACK
val primaryScreenBounds = Screen.getPrimary().visualBounds
stage.maxWidth = 1920.0
stage.maxHeight = 1080.0
stage.minWidth = 1920.0
stage.minHeight = 1080.0
}
}
とし、その後HomeView
クラスで私はこれを持っている:
class HomeView : View() {
override val root = stackpane {
val axisGroup = Xform()
val world = Xform()
val camera = PerspectiveCamera(true)
val cameraXform = Xform()
val cameraXform2 = Xform()
val cameraXform3 = Xform()
val cameraInitialDistance = -450.0
val cameraInitialXAngle = 70.0
val cameraInitialYAngle = 320.0
val cameraNearClip = 0.1
val cameraFarClip = 10000.0
//just a builder class to add properties to the camera
buildCamera(this, cameraXform, cameraXform2, cameraXform3, camera, cameraNearClip, cameraFarClip, cameraInitialDistance,
cameraInitialYAngle, cameraInitialXAngle)
buildAxes(axisGroup, world)
println(scene)
//returns null
scene.camera = camera
//this does not work as scene is null
}
は私が間違ってやっている何かがありますか? TornadoFX View
が初期化されたときに新しいScene
を作成するはずだったと私は考えていたので、なぜ私のScene
がnullであるのか分かりません。 Appクラスで手動で作成する必要がありますか?私はcreatePrimaryScene
関数をオーバーライドして、HomeView
ビュー内のinit
関数にコードを移動しました。どちらも成功しませんでした。
アイデア?ここで髪を引き出します。
は(ああ、と無関係なノートで、私はちょうどTornadoFXである3Dサポートは、率直に言って、私の生涯を作るだろうと言うことができる?)シーンが装着されている前
私たちは間違いなくTornadoFX用の3Dビルダーを作成します: –