Morituros saluto.
Ich grüße die Todgeweihten.
Ich hab mir eine eigene Behaviour-Klasse geschrieben, mit der man bei gedrückter UP-/DOWN-Taste nach vorne/hinten läuft und sich mit LEFT/RIGHT um die y-Achse dreht. Das klappt auch soweit ganz gut, aber jetzt möchte ich eine Steuerung basteln, wie man sie aus professionellen Spielen kennt (z.B. Morrowind); man läuft mit UP-/DOWN nach vorne/hinten, mit LEFT/RIGHT läuft man nach links/rechts und das Drehen soll über die Maus erfolgen. Und da liegt das Problem. Die Behaviour soll aufwachen, wenn der Cursor eine bestimmte Entfernung vom Rand des Canvas3D hat. Das WakeUpCriterion dafür müsste ein AWTEvent sein. Es müsste also immer, wenn der Cursor in einen bestimmten Bereich (einen Streifen am Rand) hinein- oder hinausgeführt wird, ein Event verteilt werden, das vielleicht in der Behaviour-Klasse einen Integer auf -1 oder 0 oder 1 setzt, je nachdem ob nach links oder rechts oder gar nicht gedreht werden soll. In der Behaviour-Klasse hätte ich einen Thread, der die TransformGroup (also die ViewingPlatform) entsprechend transformiert.
Weiter weiß ich nicht
Hoffentlich war das verständlich.
Könnt ihr mir sagen, ob die Idee stimmt und wie ich das umsetzen kann?
Ich grüße die Todgeweihten.
Ich hab mir eine eigene Behaviour-Klasse geschrieben, mit der man bei gedrückter UP-/DOWN-Taste nach vorne/hinten läuft und sich mit LEFT/RIGHT um die y-Achse dreht. Das klappt auch soweit ganz gut, aber jetzt möchte ich eine Steuerung basteln, wie man sie aus professionellen Spielen kennt (z.B. Morrowind); man läuft mit UP-/DOWN nach vorne/hinten, mit LEFT/RIGHT läuft man nach links/rechts und das Drehen soll über die Maus erfolgen. Und da liegt das Problem. Die Behaviour soll aufwachen, wenn der Cursor eine bestimmte Entfernung vom Rand des Canvas3D hat. Das WakeUpCriterion dafür müsste ein AWTEvent sein. Es müsste also immer, wenn der Cursor in einen bestimmten Bereich (einen Streifen am Rand) hinein- oder hinausgeführt wird, ein Event verteilt werden, das vielleicht in der Behaviour-Klasse einen Integer auf -1 oder 0 oder 1 setzt, je nachdem ob nach links oder rechts oder gar nicht gedreht werden soll. In der Behaviour-Klasse hätte ich einen Thread, der die TransformGroup (also die ViewingPlatform) entsprechend transformiert.
Weiter weiß ich nicht
Hoffentlich war das verständlich.
Könnt ihr mir sagen, ob die Idee stimmt und wie ich das umsetzen kann?