Skip to content

Commit f66ad3c

Browse files
committed
- fix camera loading state
- fix bad casting when read saved game - fix walking speed double scale multiply
1 parent 77c32e6 commit f66ad3c

File tree

6 files changed

+53
-49
lines changed

6 files changed

+53
-49
lines changed

CHANGELOG.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,18 @@ This project adheres to [Semantic Versioning](http://semver.org/).
44

55
## [Unreleased]
66

7+
## [0.8.4]
8+
9+
### Fixed
10+
11+
- fix camera loading state
12+
- fix bad casting when read saved game
13+
- fix walking speed double scale multiply
14+
715
## [0.8.3]
816

17+
### Added
18+
919
- UI Fixes
1020
- Inventory ui over inventory icon
1121
- Edit verbs dialog improvement
@@ -24,7 +34,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
2434

2535
### Fixed
2636

27-
composer: fix world width and height was not recalculated when loading
37+
-composer: fix world width and height was not recalculated when loading
2838

2939
## [0.8.1]
3040

blade-engine-spine-plugin/src/main/java/com/bladecoder/engine/spine/SpineRenderer.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,6 @@
1717

1818
import java.util.HashMap;
1919

20-
import com.bladecoder.engine.model.ActorRenderer;
21-
import com.bladecoder.engine.model.BaseActor;
22-
import com.bladecoder.engine.model.SpriteActor;
23-
import com.bladecoder.engine.model.World;
2420
import com.badlogic.gdx.graphics.Color;
2521
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
2622
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
@@ -31,19 +27,20 @@
3127
import com.badlogic.gdx.utils.JsonValue;
3228
import com.bladecoder.engine.actions.ActionCallback;
3329
import com.bladecoder.engine.actions.ActionCallbackQueue;
34-
import com.bladecoder.engine.anim.AtlasAnimationDesc;
3530
import com.bladecoder.engine.anim.AnimationDesc;
3631
import com.bladecoder.engine.anim.SpineAnimationDesc;
3732
import com.bladecoder.engine.anim.Tween;
3833
import com.bladecoder.engine.assets.EngineAssetManager;
34+
import com.bladecoder.engine.model.ActorRenderer;
35+
import com.bladecoder.engine.model.BaseActor;
36+
import com.bladecoder.engine.model.SpriteActor;
37+
import com.bladecoder.engine.model.World;
3938
import com.bladecoder.engine.util.ActionCallbackSerialization;
4039
import com.bladecoder.engine.util.EngineLogger;
4140
import com.bladecoder.engine.util.RectangleRenderer;
4241
import com.esotericsoftware.spine.Animation;
4342
import com.esotericsoftware.spine.AnimationState;
4443
import com.esotericsoftware.spine.AnimationState.AnimationStateListener;
45-
import com.esotericsoftware.spine.attachments.Attachment;
46-
import com.esotericsoftware.spine.attachments.RegionAttachment;
4744
import com.esotericsoftware.spine.AnimationStateData;
4845
import com.esotericsoftware.spine.Event;
4946
import com.esotericsoftware.spine.Skeleton;
@@ -52,6 +49,8 @@
5249
import com.esotericsoftware.spine.SkeletonData;
5350
import com.esotericsoftware.spine.SkeletonRenderer;
5451
import com.esotericsoftware.spine.Slot;
52+
import com.esotericsoftware.spine.attachments.Attachment;
53+
import com.esotericsoftware.spine.attachments.RegionAttachment;
5554

5655
public class SpineRenderer implements ActorRenderer {
5756

blade-engine/src/com/bladecoder/engine/loader/ChapterXMLLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ private void parseActor(Attributes atts) throws SAXException {
295295

296296
if (atts.getValue(XMLConstants.WALKING_SPEED_ATTR) != null
297297
&& !atts.getValue(XMLConstants.WALKING_SPEED_ATTR).isEmpty()) {
298-
float s = Float.parseFloat(atts.getValue(XMLConstants.WALKING_SPEED_ATTR)) * scale;
298+
float s = Float.parseFloat(atts.getValue(XMLConstants.WALKING_SPEED_ATTR));
299299
((SpriteActor) actor).setWalkingSpeed(s);
300300
}
301301

blade-engine/src/com/bladecoder/engine/model/Scene.java

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,10 @@ public void update(float delta) {
237237
}
238238

239239
camera.update(delta);
240+
241+
if(followActor != null) {
242+
camera.updatePos(followActor);
243+
}
240244
}
241245

242246
public void draw(SpriteBatch spriteBatch) {
@@ -572,28 +576,16 @@ public void write(Json json) {
572576
json.writeValue("verbs", verbs);
573577

574578
json.writeValue("actors", actors);
575-
json.writeValue("player", player,
576-
player == null ? null : player.getClass());
577-
578-
json.writeValue(
579-
"backgroundAtlas",
580-
backgroundAtlas,
581-
backgroundAtlas == null ? null : backgroundAtlas
582-
.getClass());
583-
json.writeValue(
584-
"backgroundRegionId",
585-
backgroundRegionId,
586-
backgroundRegionId == null ? null : backgroundRegionId
587-
.getClass());
588-
589-
json.writeValue("lightMapAtlas", lightMapAtlas,
590-
lightMapAtlas == null ? null : lightMapAtlas.getClass());
579+
json.writeValue("player", player);
580+
581+
json.writeValue("backgroundAtlas", backgroundAtlas);
582+
json.writeValue("backgroundRegionId",backgroundRegionId);
583+
584+
json.writeValue("lightMapAtlas", lightMapAtlas);
591585

592-
json.writeValue("lightMapRegionId", lightMapRegionId,
593-
lightMapRegionId == null ? null : lightMapRegionId.getClass());
586+
json.writeValue("lightMapRegionId", lightMapRegionId);
594587

595-
json.writeValue("musicFilename", musicFilename,
596-
musicFilename == null ? null : musicFilename.getClass());
588+
json.writeValue("musicFilename", musicFilename);
597589
json.writeValue("loopMusic", loopMusic);
598590
json.writeValue("initialMusicDelay", initialMusicDelay);
599591
json.writeValue("repeatMusicDelay", repeatMusicDelay);

blade-engine/src/com/bladecoder/engine/model/SceneCamera.java

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package com.bladecoder.engine.model;
1717

1818
import com.bladecoder.engine.model.SpriteActor;
19-
2019
import com.badlogic.gdx.Gdx;
2120
import com.badlogic.gdx.graphics.OrthographicCamera;
2221
import com.badlogic.gdx.math.Vector2;
@@ -28,6 +27,7 @@
2827
import com.bladecoder.engine.actions.ActionCallback;
2928
import com.bladecoder.engine.anim.CameraTween;
3029
import com.bladecoder.engine.anim.Tween;
30+
import com.bladecoder.engine.assets.EngineAssetManager;
3131

3232
public class SceneCamera extends OrthographicCamera implements Serializable {
3333

@@ -111,6 +111,7 @@ else if (y >= maxtop)
111111
y = maxtop;
112112

113113
position.set(x, y, 0);
114+
114115
update();
115116
}
116117

@@ -190,32 +191,38 @@ public void scene2screen(Viewport viewport, Vector3 out) {
190191

191192
@Override
192193
public void write(Json json) {
193-
json.writeValue("startScrollDistanceX", startScrollDistanceX);
194-
json.writeValue("startScrollDistanceY", startScrollDistanceY);
195-
json.writeValue("width", viewportWidth);
196-
json.writeValue("height", viewportHeight);
197-
json.writeValue("scrollingWidth", scrollingWidth);
198-
json.writeValue("scrollingHeight", scrollingHeight);
199-
json.writeValue("pos", getPosition());
194+
float worldScale = EngineAssetManager.getInstance().getScale();
195+
196+
json.writeValue("width", viewportWidth / worldScale);
197+
json.writeValue("height", viewportHeight / worldScale);
198+
json.writeValue("scrollingWidth", scrollingWidth / worldScale);
199+
json.writeValue("scrollingHeight", scrollingHeight / worldScale);
200+
201+
Vector2 p = getPosition();
202+
p.x = p.x/worldScale;
203+
p.y = p.y/worldScale;
204+
json.writeValue("pos", p);
200205
json.writeValue("zoom", getZoom());
201206
json.writeValue("cameraTween", cameraTween);
202207
}
203208

204209
@Override
205210
public void read(Json json, JsonValue jsonData) {
206-
startScrollDistanceX = json.readValue("startScrollDistanceX", Float.class, jsonData);
207-
startScrollDistanceY = json.readValue("startScrollDistanceY", Float.class, jsonData);
211+
float worldScale = EngineAssetManager.getInstance().getScale();
208212

209-
viewportWidth = json.readValue("width", Float.class, jsonData);
210-
viewportHeight = json.readValue("height", Float.class, jsonData);
211-
scrollingWidth = json.readValue("scrollingWidth", Float.class, jsonData);
212-
scrollingHeight = json.readValue("scrollingHeight", Float.class, jsonData);
213+
viewportWidth = json.readValue("width", Float.class, jsonData) * worldScale;
214+
viewportHeight = json.readValue("height", Float.class, jsonData) * worldScale;
215+
scrollingWidth = json.readValue("scrollingWidth", Float.class, jsonData) * worldScale;
216+
scrollingHeight = json.readValue("scrollingHeight", Float.class, jsonData) * worldScale;
213217
Vector2 pos = json.readValue("pos", Vector2.class, jsonData);
218+
pos.x *= worldScale;
219+
pos.y *= worldScale;
214220
float z = json.readValue("zoom", Float.class, jsonData);
215221

216222
create(viewportWidth, viewportHeight);
217-
setPosition(pos.x, pos.y);
218-
setZoom(z);
223+
this.zoom = z;
224+
position.set(pos.x, pos.y, 0);
225+
update();
219226

220227
cameraTween = json.readValue("cameraTween", CameraTween.class, jsonData);
221228
}

blade-engine/src/com/bladecoder/engine/model/SpriteActor.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,6 @@ public void setPosition(float x, float y) {
8383

8484
setScale(s);
8585
}
86-
87-
if (scene.getCameraFollowActor() == this)
88-
scene.getCamera().updatePos(this);
89-
9086
}
9187

9288
}

0 commit comments

Comments
 (0)