| Index: sky/examples/game/lib/game_demo_box.dart
|
| diff --git a/sky/examples/game/lib/game_box.dart b/sky/examples/game/lib/game_demo_box.dart
|
| similarity index 52%
|
| rename from sky/examples/game/lib/game_box.dart
|
| rename to sky/examples/game/lib/game_demo_box.dart
|
| index f3849ba73825c03a45a4e2570b3dcd8c39d9df8c..85132e1ddd2c0f05b724c50c0b76491198c5709c 100644
|
| --- a/sky/examples/game/lib/game_box.dart
|
| +++ b/sky/examples/game/lib/game_demo_box.dart
|
| @@ -1,22 +1,22 @@
|
| part of game;
|
|
|
| -const double _steeringThreshold = 20.0;
|
| -const double _steeringMax = 50.0;
|
| +const double _steeringThreshold = 0.0;
|
| +const double _steeringMax = 150.0;
|
|
|
| -class GameBox extends SpriteBox {
|
| +class GameDemoBox extends SpriteBox {
|
|
|
| - GameBox(GameWorld game) : super(game, SpriteBoxTransformMode.letterbox);
|
| + GameDemoBox(GameDemoWorld game) : super(game, SpriteBoxTransformMode.letterbox);
|
|
|
| - GameWorld get _gameWorld => this.rootNode;
|
| + GameDemoWorld get _gameWorld => this.rootNode;
|
|
|
| // Handle pointers
|
| int _firstPointer = -1;
|
| int _secondPointer = -1;
|
| - Vector2 _firstPointerDownPos;
|
| + Point _firstPointerDownPos;
|
|
|
| void handleEvent(Event event, BoxHitTestEntry entry) {
|
| if (event is PointerEvent) {
|
| - Vector2 pointerPos = new Vector2(event.x, event.y);
|
| + Point pointerPos = new Point(event.x, event.y);
|
| int pointer = event.pointer;
|
|
|
| switch (event.type) {
|
| @@ -29,7 +29,7 @@ class GameBox extends SpriteBox {
|
| else if (_secondPointer == -1) {
|
| // Assign second pointer
|
| _secondPointer = pointer;
|
| - _gameWorld.controlThrust(1.0);
|
| + _gameWorld.controlFire();
|
| }
|
| else {
|
| // There is a pointer used for steering, let's fire instead
|
| @@ -39,14 +39,23 @@ class GameBox extends SpriteBox {
|
| case 'pointermove':
|
| if (pointer == _firstPointer) {
|
| // Handle turning control
|
| - double deltaX = pointerPos[0] - _firstPointerDownPos[0];
|
| + double joystickX = 0.0;
|
| + double deltaX = pointerPos.x - _firstPointerDownPos.x;
|
| if (deltaX > _steeringThreshold || deltaX < -_steeringThreshold) {
|
| - double turnForce = (deltaX - _steeringThreshold)/(_steeringMax - _steeringThreshold);
|
| - if (turnForce > 1.0) turnForce = 1.0;
|
| - if (turnForce < -1.0) turnForce = -1.0;
|
| - _gameWorld.controlSteering(turnForce);
|
| - print("steering: $turnForce");
|
| + joystickX = (deltaX - _steeringThreshold)/(_steeringMax - _steeringThreshold);
|
| + if (joystickX > 1.0) joystickX = 1.0;
|
| + if (joystickX < -1.0) joystickX = -1.0;
|
| + }
|
| +
|
| + double joystickY = 0.0;
|
| + double deltaY = pointerPos.y - _firstPointerDownPos.y;
|
| + if (deltaY > _steeringThreshold || deltaY < -_steeringThreshold) {
|
| + joystickY = (deltaY - _steeringThreshold)/(_steeringMax - _steeringThreshold);
|
| + if (joystickY > 1.0) joystickY = 1.0;
|
| + if (joystickY < -1.0) joystickY = -1.0;
|
| }
|
| +
|
| + _gameWorld.controlSteering(joystickX, joystickY);
|
| }
|
| break;
|
| case 'pointerup':
|
| @@ -55,11 +64,11 @@ class GameBox extends SpriteBox {
|
| // Un-assign the first pointer
|
| _firstPointer = -1;
|
| _firstPointerDownPos = null;
|
| - _gameWorld.controlSteering(null);
|
| + _gameWorld.controlSteering(0.0, 0.0);
|
| }
|
| else if (pointer == _secondPointer) {
|
| _secondPointer = -1;
|
| - _gameWorld.controlThrust(null);
|
| + _gameWorld.controlFire();
|
| }
|
| break;
|
| default:
|
|
|