From 7a161d304f4256d0dfa5f027fad1479ac0d06391 Mon Sep 17 00:00:00 2001 From: Harry Huang Date: Sun, 12 Nov 2023 14:40:28 +0800 Subject: [PATCH] Bug-fix --- build.gradle | 2 +- core/src/cn/harryh/arkpets/ArkChar.java | 2 ++ core/src/cn/harryh/arkpets/ArkPets.java | 16 +++++++++------- core/src/cn/harryh/arkpets/Const.java | 2 +- .../cn/harryh/arkpets/animations/AnimClip.java | 3 +++ .../harryh/arkpets/animations/AnimClipGroup.java | 3 +++ .../harryh/arkpets/transitions/Transition.java | 1 + docs/scripts/ExePacking.iss | 2 +- 8 files changed, 21 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index c2c5e15b..fe58d565 100644 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ allprojects { apply plugin: "java-library" apply plugin: "org.openjfx.javafxplugin" - version = "2.3.0" + version = "2.3.1" ext { // App Metadata appName = "ArkPets" diff --git a/core/src/cn/harryh/arkpets/ArkChar.java b/core/src/cn/harryh/arkpets/ArkChar.java index 6ee60bbf..0905e292 100644 --- a/core/src/cn/harryh/arkpets/ArkChar.java +++ b/core/src/cn/harryh/arkpets/ArkChar.java @@ -89,7 +89,9 @@ public ArkChar(String assetLocation, AssetCtrl.AssetAccessor assetAccessor, floa @Override protected void onApply(AnimData animData) { Logger.debug("Animation", "Apply " + playing); + // Sync skeleton position data offsetY.reset((float)playing.offsetY()); + position.reset(position.end().x, position.end().y, playing.mobility() != 0 ? playing.mobility() : position.end().z); } }; // 6.Canvas setup diff --git a/core/src/cn/harryh/arkpets/ArkPets.java b/core/src/cn/harryh/arkpets/ArkPets.java index e33d30d8..efdaafef 100644 --- a/core/src/cn/harryh/arkpets/ArkPets.java +++ b/core/src/cn/harryh/arkpets/ArkPets.java @@ -200,10 +200,13 @@ public boolean touchUp(int screenX, int screenY, int pointer, int button) { if (pointer <= 0) { if (mouse_drag) { cha.position.reset(cha.position.end().x, cha.position.end().y, mouse_intention_x); - if (tray.keepAnim != null && cha.getPlaying().mobility() != 0) { - AnimData newAnim = cha.getPlaying(); - newAnim = new AnimData(newAnim.animClip(), null, newAnim.isLoop(), newAnim.isStrict(), newAnim.offsetY(), Math.abs(newAnim.mobility()) * mouse_intention_x); - tray.keepAnim = newAnim; + if (cha.getPlaying() != null && cha.getPlaying().mobility() != 0) { + AnimData anim = cha.getPlaying(); + cha.setAnimation(anim.derive(anim.offsetY(), Math.abs(anim.mobility()) * mouse_intention_x)); + } + if (tray.keepAnim != null && tray.keepAnim.mobility() != 0) { + AnimData anim = tray.keepAnim; + tray.keepAnim = anim.derive(anim.offsetY(), Math.abs(anim.mobility()) * mouse_intention_x); } } else if (button == Input.Buttons.LEFT) { changeAnimation(behavior.clickEnd()); @@ -391,9 +394,8 @@ public static int getArkPetsWindowNum(String title) { private void walkWindow(float len) { float expectedLen = len * WD_SCALE * (30f / APP_FPS); int realLen = randomRound(expectedLen); - float newPlaneX = windowPosition.end().x + realLen; - float newPlaneY = -(windowPosition.end().y - WD_H); - plane.changePosition(Gdx.graphics.getDeltaTime(), newPlaneX, newPlaneY); + float newPlaneX = plane.getX() + realLen; + plane.changePosition(Gdx.graphics.getDeltaTime(), newPlaneX, plane.getY()); } private int randomRound(float val) { diff --git a/core/src/cn/harryh/arkpets/Const.java b/core/src/cn/harryh/arkpets/Const.java index b40d7a96..cbe813b0 100644 --- a/core/src/cn/harryh/arkpets/Const.java +++ b/core/src/cn/harryh/arkpets/Const.java @@ -11,7 +11,7 @@ */ public final class Const { // App version - public static final Version appVersion = new Version(2, 3, 0); + public static final Version appVersion = new Version(2, 3, 1); // App name public static final String appName = "ArkPets"; diff --git a/core/src/cn/harryh/arkpets/animations/AnimClip.java b/core/src/cn/harryh/arkpets/animations/AnimClip.java index 16cb5765..6c036351 100644 --- a/core/src/cn/harryh/arkpets/animations/AnimClip.java +++ b/core/src/cn/harryh/arkpets/animations/AnimClip.java @@ -13,6 +13,9 @@ import java.util.regex.Pattern; +/** One Animation Clip is corresponding to one certain Spine {@link Animation}. + * @since ArkPets 2.3 + */ public class AnimClip { public final String fullName; public final String baseName; diff --git a/core/src/cn/harryh/arkpets/animations/AnimClipGroup.java b/core/src/cn/harryh/arkpets/animations/AnimClipGroup.java index 75b9b230..e421edd3 100644 --- a/core/src/cn/harryh/arkpets/animations/AnimClipGroup.java +++ b/core/src/cn/harryh/arkpets/animations/AnimClipGroup.java @@ -9,6 +9,9 @@ import java.util.*; +/** The class implements the Collection of {@link AnimClip}. + * @since ArkPets 2.3 + */ public class AnimClipGroup implements Collection { protected final ArrayList animClipList; diff --git a/core/src/cn/harryh/arkpets/transitions/Transition.java b/core/src/cn/harryh/arkpets/transitions/Transition.java index 814c3d48..1f37945a 100644 --- a/core/src/cn/harryh/arkpets/transitions/Transition.java +++ b/core/src/cn/harryh/arkpets/transitions/Transition.java @@ -9,6 +9,7 @@ /** The class represents a transition, * which controls a value transit from its starting value to its ending value. * @param The type of the value. + * @since ArkPets 2.3 */ abstract public class Transition { protected E start; diff --git a/docs/scripts/ExePacking.iss b/docs/scripts/ExePacking.iss index 64c8cf1f..5b3c3104 100644 --- a/docs/scripts/ExePacking.iss +++ b/docs/scripts/ExePacking.iss @@ -3,7 +3,7 @@ ; Download Inno Setup: https://jrsoftware.org/isdl.php #define MyAppName "ArkPets" -#define MyAppVersion "2.3.0" +#define MyAppVersion "2.3.1" #define MyAppPublisher "Harry Huang" #define MyAppURL "https://arkpets.harryh.cn/"