Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(474)

Side by Side Diff: sky/examples/game/lib/game_demo_box.dart

Issue 1179333002: Playable demo game and bug fixes in sprites (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 part of game; 1 part of game;
2 2
3 const double _steeringThreshold = 20.0; 3 const double _steeringThreshold = 0.0;
4 const double _steeringMax = 50.0; 4 const double _steeringMax = 150.0;
5 5
6 class GameBox extends SpriteBox { 6 class GameDemoBox extends SpriteBox {
7 7
8 GameBox(GameWorld game) : super(game, SpriteBoxTransformMode.letterbox); 8 GameDemoBox(GameDemoWorld game) : super(game, SpriteBoxTransformMode.letterbox );
9 9
10 GameWorld get _gameWorld => this.rootNode; 10 GameDemoWorld get _gameWorld => this.rootNode;
11 11
12 // Handle pointers 12 // Handle pointers
13 int _firstPointer = -1; 13 int _firstPointer = -1;
14 int _secondPointer = -1; 14 int _secondPointer = -1;
15 Vector2 _firstPointerDownPos; 15 Point _firstPointerDownPos;
16 16
17 void handleEvent(Event event, BoxHitTestEntry entry) { 17 void handleEvent(Event event, BoxHitTestEntry entry) {
18 if (event is PointerEvent) { 18 if (event is PointerEvent) {
19 Vector2 pointerPos = new Vector2(event.x, event.y); 19 Point pointerPos = new Point(event.x, event.y);
20 int pointer = event.pointer; 20 int pointer = event.pointer;
21 21
22 switch (event.type) { 22 switch (event.type) {
23 case 'pointerdown': 23 case 'pointerdown':
24 if (_firstPointer == -1) { 24 if (_firstPointer == -1) {
25 // Assign the first pointer 25 // Assign the first pointer
26 _firstPointer = pointer; 26 _firstPointer = pointer;
27 _firstPointerDownPos = pointerPos; 27 _firstPointerDownPos = pointerPos;
28 } 28 }
29 else if (_secondPointer == -1) { 29 else if (_secondPointer == -1) {
30 // Assign second pointer 30 // Assign second pointer
31 _secondPointer = pointer; 31 _secondPointer = pointer;
32 _gameWorld.controlThrust(1.0); 32 _gameWorld.controlFire();
33 } 33 }
34 else { 34 else {
35 // There is a pointer used for steering, let's fire instead 35 // There is a pointer used for steering, let's fire instead
36 _gameWorld.controlFire(); 36 _gameWorld.controlFire();
37 } 37 }
38 break; 38 break;
39 case 'pointermove': 39 case 'pointermove':
40 if (pointer == _firstPointer) { 40 if (pointer == _firstPointer) {
41 // Handle turning control 41 // Handle turning control
42 double deltaX = pointerPos[0] - _firstPointerDownPos[0]; 42 double joystickX = 0.0;
43 double deltaX = pointerPos.x - _firstPointerDownPos.x;
43 if (deltaX > _steeringThreshold || deltaX < -_steeringThreshold) { 44 if (deltaX > _steeringThreshold || deltaX < -_steeringThreshold) {
44 double turnForce = (deltaX - _steeringThreshold)/(_steeringMax - _ steeringThreshold); 45 joystickX = (deltaX - _steeringThreshold)/(_steeringMax - _steerin gThreshold);
45 if (turnForce > 1.0) turnForce = 1.0; 46 if (joystickX > 1.0) joystickX = 1.0;
46 if (turnForce < -1.0) turnForce = -1.0; 47 if (joystickX < -1.0) joystickX = -1.0;
47 _gameWorld.controlSteering(turnForce);
48 print("steering: $turnForce");
49 } 48 }
49
50 double joystickY = 0.0;
51 double deltaY = pointerPos.y - _firstPointerDownPos.y;
52 if (deltaY > _steeringThreshold || deltaY < -_steeringThreshold) {
53 joystickY = (deltaY - _steeringThreshold)/(_steeringMax - _steerin gThreshold);
54 if (joystickY > 1.0) joystickY = 1.0;
55 if (joystickY < -1.0) joystickY = -1.0;
56 }
57
58 _gameWorld.controlSteering(joystickX, joystickY);
50 } 59 }
51 break; 60 break;
52 case 'pointerup': 61 case 'pointerup':
53 case 'pointercancel': 62 case 'pointercancel':
54 if (pointer == _firstPointer) { 63 if (pointer == _firstPointer) {
55 // Un-assign the first pointer 64 // Un-assign the first pointer
56 _firstPointer = -1; 65 _firstPointer = -1;
57 _firstPointerDownPos = null; 66 _firstPointerDownPos = null;
58 _gameWorld.controlSteering(null); 67 _gameWorld.controlSteering(0.0, 0.0);
59 } 68 }
60 else if (pointer == _secondPointer) { 69 else if (pointer == _secondPointer) {
61 _secondPointer = -1; 70 _secondPointer = -1;
62 _gameWorld.controlThrust(null); 71 _gameWorld.controlFire();
63 } 72 }
64 break; 73 break;
65 default: 74 default:
66 break; 75 break;
67 } 76 }
68 } 77 }
69 } 78 }
70 79
71 } 80 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698