• R/O
  • SSH

Commit

Tags
Aucun tag

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Révision1b989c04d2141aa0ece861857da161b0ee18eb30 (tree)
l'heure2022-01-08 01:31:30
Auteursebastian_bugiu
Commitersebastian_bugiu

Message de Log

The arrows now act like a joystick.

Change Summary

Modification

diff -r fcb7b2f8c29e -r 1b989c04d214 android/build.gradle
--- a/android/build.gradle Thu Jan 06 20:21:53 2022 +0200
+++ b/android/build.gradle Fri Jan 07 18:31:30 2022 +0200
@@ -30,7 +30,7 @@
3030 applicationId "com.headwayent.spacerocket"
3131 minSdkVersion 14
3232 targetSdkVersion 32
33- versionCode 1
33+ versionCode 3
3434 versionName "1.0"
3535 }
3636 buildTypes {
diff -r fcb7b2f8c29e -r 1b989c04d214 core/src/com/headwayent/spacerocket/InGameInputProcessor.java
--- a/core/src/com/headwayent/spacerocket/InGameInputProcessor.java Thu Jan 06 20:21:53 2022 +0200
+++ b/core/src/com/headwayent/spacerocket/InGameInputProcessor.java Fri Jan 07 18:31:30 2022 +0200
@@ -1,14 +1,17 @@
11 package com.headwayent.spacerocket;
22
33 import com.badlogic.gdx.InputProcessor;
4+import com.badlogic.gdx.math.Vector2;
45 import com.headwayent.spacerocket.old.ExtendedCanvas;
56 import com.headwayent.spacerocket.old.ExtendedSprite;
67 import com.headwayent.spacerocket.old.GraphicsManager;
78
89 public class InGameInputProcessor implements InputProcessor {
910
11+ private static float IGNORED_OFFSET = 7.0f;
1012 private int firePointer = -1;
1113 private int arrowsPointer = -1;
14+ private Vector2 arrowPointerInitialPos = new Vector2();
1215 private boolean fireSet;
1316 private boolean firePressed;
1417 private boolean arrowsPressed;
@@ -16,7 +19,11 @@
1619 arrowsRightPressed,
1720 arrowsUpPressed,
1821 arrowsDownPressed;
19-
22+ private float xLeftArrows;
23+ private float xRightArrows;
24+ private float yTopArrows;
25+ private float yBottomArrows;
26+
2027 @Override
2128 public boolean keyDown(int keycode) {
2229 // ExtendedCanvas sc = game.getCanvas();
@@ -209,10 +216,10 @@
209216 // } else if (!fireSprite.isVisible()) {
210217 // return false;
211218 // }
212- float xLeftArrows = arrowsSprite.getX();
213- float xRightArrows = xLeftArrows + arrowsSprite.getWidth();
214- float yTopArrows = arrowsSprite.getY();
215- float yBottomArrows = yTopArrows + arrowsSprite.getHeight();
219+ xLeftArrows = arrowsSprite.getX();
220+ xRightArrows = xLeftArrows + arrowsSprite.getWidth();
221+ yTopArrows = arrowsSprite.getY();
222+ yBottomArrows = yTopArrows + arrowsSprite.getHeight();
216223 float xLeftFire = fireSprite.getX();
217224 float xRightFire = xLeftFire + fireSprite.getWidth();
218225 float yTopFire = fireSprite.getY();
@@ -233,29 +240,30 @@
233240 firePressed = true;
234241 } else if ((xPos > xLeftArrows) && (xPos < xRightArrows) &&
235242 (yPos > yTopArrows) && (yPos < yBottomArrows)) {
236- boolean upperDiagonal = isLeft(
237- xRightArrows, yBottomArrows,
238- xLeftArrows, yTopArrows,
239- xPos, yPos);
240- boolean lowerDiagonal = isLeft(
241- xRightArrows, yTopArrows,
242- xLeftArrows, yBottomArrows,
243- xPos, yPos);
244-
243+ arrowPointerInitialPos.set(screenX, screenY);
244+// boolean upperDiagonal = isLeft(
245+// xRightArrows, yBottomArrows,
246+// xLeftArrows, yTopArrows,
247+// xPos, yPos);
248+// boolean lowerDiagonal = isLeft(
249+// xRightArrows, yTopArrows,
250+// xLeftArrows, yBottomArrows,
251+// xPos, yPos);
252+//
245253 arrowsPointer = pointer;
246- if ((upperDiagonal) && (lowerDiagonal)) {
247- game.getCanvas().recordKeyPressed(ExtendedCanvas.UP);
248- arrowsUpPressed = true;
249- } else if ((upperDiagonal) && (!lowerDiagonal)) {
250- game.getCanvas().recordKeyPressed(ExtendedCanvas.RIGHT);
251- arrowsRightPressed = true;
252- } else if ((!upperDiagonal) && (!lowerDiagonal)) {
253- game.getCanvas().recordKeyPressed(ExtendedCanvas.DOWN);
254- arrowsDownPressed = true;
255- } else if ((!upperDiagonal) && (lowerDiagonal)) {
256- game.getCanvas().recordKeyPressed(ExtendedCanvas.LEFT);
257- arrowsLeftPressed = true;
258- }
254+// if ((upperDiagonal) && (lowerDiagonal)) {
255+// game.getCanvas().recordKeyPressed(ExtendedCanvas.UP);
256+// arrowsUpPressed = true;
257+// } else if ((upperDiagonal) && (!lowerDiagonal)) {
258+// game.getCanvas().recordKeyPressed(ExtendedCanvas.RIGHT);
259+// arrowsRightPressed = true;
260+// } else if ((!upperDiagonal) && (!lowerDiagonal)) {
261+// game.getCanvas().recordKeyPressed(ExtendedCanvas.DOWN);
262+// arrowsDownPressed = true;
263+// } else if ((!upperDiagonal) && (lowerDiagonal)) {
264+// game.getCanvas().recordKeyPressed(ExtendedCanvas.LEFT);
265+// arrowsLeftPressed = true;
266+// }
259267
260268 // gfx.getArrowsSprite().setImage(gfx.getArrowsPressedBitmap(),
261269 // gfx.getArrowsPressedBitmap().getWidth(),
@@ -328,6 +336,7 @@
328336 game.getCanvas().recordKeyReleased(ExtendedCanvas.RIGHT);
329337 game.getCanvas().recordKeyReleased(ExtendedCanvas.DOWN);
330338 game.getCanvas().recordKeyReleased(ExtendedCanvas.LEFT);
339+ gfx.resetArrowSpritePosition();
331340 }
332341 return true;
333342 }
@@ -337,10 +346,6 @@
337346 SpaceRocket game = SpaceRocket.getGame();
338347 ExtendedSprite arrowsSprite = game.getCanvas().getGraphicsManager().getArrowsSprite();
339348 ExtendedSprite fireSprite = game.getCanvas().getGraphicsManager().getFireSprite();
340- float xLeftArrows = arrowsSprite.getX();
341- float xRightArrows = xLeftArrows + arrowsSprite.getWidth();
342- float yTopArrows = arrowsSprite.getY();
343- float yBottomArrows = yTopArrows + arrowsSprite.getHeight();
344349 float xLeftFire = fireSprite.getX();
345350 float xRightFire = xLeftFire + fireSprite.getWidth();
346351 float yTopFire = fireSprite.getY();
@@ -351,41 +356,67 @@
351356 if (arrowsPointer == pointer) {
352357 if ((xPos > xLeftArrows) && (xPos < xRightArrows) &&
353358 (yPos > yTopArrows) && (yPos < yBottomArrows)) {
354- boolean upperDiagonal = isLeft(
355- xRightArrows, yBottomArrows,
356- xLeftArrows, yTopArrows,
357- xPos, yPos);
358- boolean lowerDiagonal = isLeft(
359- xRightArrows, yTopArrows,
360- xLeftArrows, yBottomArrows,
361- xPos, yPos);
362-
363- if ((upperDiagonal) && (lowerDiagonal)) {
364- game.getCanvas().recordKeyPressed(ExtendedCanvas.UP);
365- arrowsUpPressed = true;
366- } else if ((upperDiagonal) && (!lowerDiagonal)) {
359+ float xDiff = screenX - arrowPointerInitialPos.x;
360+ float yDiff = screenY - arrowPointerInitialPos.y;
361+ xDiff = Utility.clamp(xDiff, -GraphicsManager.ARROWS_X_OFFSET, GraphicsManager.ARROWS_X_OFFSET);
362+ yDiff = Utility.clamp(yDiff, -GraphicsManager.ARROWS_X_OFFSET, GraphicsManager.ARROWS_X_OFFSET);
363+ gfx.resetArrowSpritePosition();
364+ gfx.getArrowsSprite().move(xDiff, yDiff);
365+ if (xDiff > IGNORED_OFFSET) {
366+ game.getCanvas().recordKeyReleased(ExtendedCanvas.LEFT);
367367 game.getCanvas().recordKeyPressed(ExtendedCanvas.RIGHT);
368- arrowsRightPressed = true;
369- } else if ((!upperDiagonal) && (!lowerDiagonal)) {
368+ } else if (xDiff < -IGNORED_OFFSET) {
369+ game.getCanvas().recordKeyReleased(ExtendedCanvas.RIGHT);
370+ game.getCanvas().recordKeyPressed(ExtendedCanvas.LEFT);
371+ } else {
372+ game.getCanvas().recordKeyReleased(ExtendedCanvas.LEFT);
373+ game.getCanvas().recordKeyReleased(ExtendedCanvas.RIGHT);
374+ }
375+ if (yDiff > IGNORED_OFFSET) {
376+ game.getCanvas().recordKeyReleased(ExtendedCanvas.UP);
370377 game.getCanvas().recordKeyPressed(ExtendedCanvas.DOWN);
371- arrowsDownPressed = true;
372- } else if ((!upperDiagonal) && (lowerDiagonal)) {
373- game.getCanvas().recordKeyPressed(ExtendedCanvas.LEFT);
374- arrowsLeftPressed = true;
378+ } else if (yDiff < -IGNORED_OFFSET) {
379+ game.getCanvas().recordKeyReleased(ExtendedCanvas.DOWN);
380+ game.getCanvas().recordKeyPressed(ExtendedCanvas.UP);
381+ } else {
382+ game.getCanvas().recordKeyReleased(ExtendedCanvas.UP);
383+ game.getCanvas().recordKeyReleased(ExtendedCanvas.DOWN);
375384 }
376-
377-// gfx.getArrowsSprite().setImage(gfx.getArrowsPressedBitmap(),
378-// gfx.getArrowsPressedBitmap().getWidth(),
379-// gfx.getArrowsPressedBitmap().getHeight());
380- if ((upperDiagonal) && (lowerDiagonal)) {
381- game.getCanvas().recordKeyReleased(ExtendedCanvas.UP);
382- } else if ((upperDiagonal) && (!lowerDiagonal)) {
383- game.getCanvas().recordKeyReleased(ExtendedCanvas.RIGHT);
384- } else if ((!upperDiagonal) && (!lowerDiagonal)) {
385- game.getCanvas().recordKeyReleased(ExtendedCanvas.DOWN);
386- } else if ((!upperDiagonal) && (lowerDiagonal)) {
387- game.getCanvas().recordKeyReleased(ExtendedCanvas.LEFT);
388- }
385+// boolean upperDiagonal = isLeft(
386+// xRightArrows, yBottomArrows,
387+// xLeftArrows, yTopArrows,
388+// xPos, yPos);
389+// boolean lowerDiagonal = isLeft(
390+// xRightArrows, yTopArrows,
391+// xLeftArrows, yBottomArrows,
392+// xPos, yPos);
393+//
394+// if ((upperDiagonal) && (lowerDiagonal)) {
395+// game.getCanvas().recordKeyPressed(ExtendedCanvas.UP);
396+// arrowsUpPressed = true;
397+// } else if ((upperDiagonal) && (!lowerDiagonal)) {
398+// game.getCanvas().recordKeyPressed(ExtendedCanvas.RIGHT);
399+// arrowsRightPressed = true;
400+// } else if ((!upperDiagonal) && (!lowerDiagonal)) {
401+// game.getCanvas().recordKeyPressed(ExtendedCanvas.DOWN);
402+// arrowsDownPressed = true;
403+// } else if ((!upperDiagonal) && (lowerDiagonal)) {
404+// game.getCanvas().recordKeyPressed(ExtendedCanvas.LEFT);
405+// arrowsLeftPressed = true;
406+// }
407+//
408+//// gfx.getArrowsSprite().setImage(gfx.getArrowsPressedBitmap(),
409+//// gfx.getArrowsPressedBitmap().getWidth(),
410+//// gfx.getArrowsPressedBitmap().getHeight());
411+// if ((upperDiagonal) && (lowerDiagonal)) {
412+// game.getCanvas().recordKeyReleased(ExtendedCanvas.UP);
413+// } else if ((upperDiagonal) && (!lowerDiagonal)) {
414+// game.getCanvas().recordKeyReleased(ExtendedCanvas.RIGHT);
415+// } else if ((!upperDiagonal) && (!lowerDiagonal)) {
416+// game.getCanvas().recordKeyReleased(ExtendedCanvas.DOWN);
417+// } else if ((!upperDiagonal) && (lowerDiagonal)) {
418+// game.getCanvas().recordKeyReleased(ExtendedCanvas.LEFT);
419+// }
389420 }
390421 }
391422 return true;
diff -r fcb7b2f8c29e -r 1b989c04d214 core/src/com/headwayent/spacerocket/Preferences.java
--- a/core/src/com/headwayent/spacerocket/Preferences.java Thu Jan 06 20:21:53 2022 +0200
+++ b/core/src/com/headwayent/spacerocket/Preferences.java Fri Jan 07 18:31:30 2022 +0200
@@ -60,7 +60,7 @@
6060 }
6161
6262 public int getShipMovementType() {
63- return prefs.getInteger(SHIP_MOVEMENT_TYPE, 3);
63+ return prefs.getInteger(SHIP_MOVEMENT_TYPE, 2);
6464 }
6565
6666 public void setShipMovementType(int shipMovementType) {
diff -r fcb7b2f8c29e -r 1b989c04d214 core/src/com/headwayent/spacerocket/Utility.java
--- a/core/src/com/headwayent/spacerocket/Utility.java Thu Jan 06 20:21:53 2022 +0200
+++ b/core/src/com/headwayent/spacerocket/Utility.java Fri Jan 07 18:31:30 2022 +0200
@@ -47,4 +47,8 @@
4747 public static boolean intersects(Sprite s0, Sprite s1) {
4848 return s0.getX() < s1.getX() + s1.getWidth() && s0.getX() + s0.getWidth() > s1.getX() && s0.getY() < s1.getY() + s1.getHeight() && s0.getY() + s0.getHeight() > s1.getY();
4949 }
50+
51+ public static float clamp(float val, float min, float max) {
52+ return Math.max(min, Math.min(max, val));
53+ }
5054 }
diff -r fcb7b2f8c29e -r 1b989c04d214 core/src/com/headwayent/spacerocket/old/GraphicsManager.java
--- a/core/src/com/headwayent/spacerocket/old/GraphicsManager.java Thu Jan 06 20:21:53 2022 +0200
+++ b/core/src/com/headwayent/spacerocket/old/GraphicsManager.java Fri Jan 07 18:31:30 2022 +0200
@@ -50,6 +50,7 @@
5050 private static final int PLANET_NUM = 8;
5151 public static final int ENEMY_LAUNCH_MISSILE_RAND = 100;
5252 public static final int STAR_SPRITE_LAUNCH_RAND = 50;
53+ public static final int ARROWS_X_OFFSET = 20;
5354 private final TextureAtlas.AtlasRegion spaceRocketRegion;
5455 private final TextureAtlas.AtlasRegion otherSpaceRocketRegion;
5556 private final TextureAtlas.AtlasRegion touchArrowsPressedRegion;
@@ -768,13 +769,17 @@
768769 ExtendedCanvas.getScreenHeight() - atmosphereSprite.getHeight());
769770 }
770771 }
772+
773+ public void resetArrowSpritePosition() {
774+ float arrowsX = ExtendedCanvas.getScreenWidth() - ARROWS_X_OFFSET - touchArrowsPressedRegion.getRegionWidth();
775+ float arrowsY = ExtendedCanvas.getScreenHeight() - 100 - touchArrowsPressedRegion.getRegionHeight();
776+ arrowsSprite.setPosition(arrowsX, arrowsY);
777+ }
771778
772779 public void setControlsVisible(boolean visible) {
773780 float fireX = 10;
774781 float fireY = ExtendedCanvas.getScreenHeight() - 100 - touchFireRegion.getRegionHeight();
775- float arrowsX = ExtendedCanvas.getScreenWidth() - 10 - touchArrowsPressedRegion.getRegionWidth();
776- float arrowsY = ExtendedCanvas.getScreenHeight() - 100 - touchArrowsPressedRegion.getRegionHeight();
777- arrowsSprite.setPosition(arrowsX, arrowsY);
782+ resetArrowSpritePosition();
778783 fireSprite.setPosition(fireX, fireY);
779784 if (!Preferences.getInstance().isAccelerometerEnabled()) {
780785 arrowsSprite.setVisible(visible);
diff -r fcb7b2f8c29e -r 1b989c04d214 ios/robovm.properties
--- a/ios/robovm.properties Thu Jan 06 20:21:53 2022 +0200
+++ b/ios/robovm.properties Fri Jan 07 18:31:30 2022 +0200
@@ -1,6 +1,6 @@
1-app.version=1.0
1+app.version=1.1
22 app.id=com.headwayent.spacerocket
33 app.mainclass=com.headwayent.spacerocket.IOSLauncher
44 app.executable=IOSLauncher
5-app.build=1
5+app.build=3
66 app.name=Hotshot 2D