CameraTools.calculateScrollBounds

This commit is contained in:
2022-06-28 04:52:04 +00:00
parent e8a5bafa4d
commit eac74165ae
8 changed files with 38 additions and 16 deletions

View File

@@ -39,6 +39,7 @@
<haxelib name="kiss"/>
<haxelib name="kiss-flixel"/>
<haxeflag name="--macro" value="kiss.Kiss.setup()" />
<haxelib name="hscript"/>

View File

@@ -7,6 +7,7 @@ import flixel.FlxCamera;
import flixel.math.FlxRect;
import flixel.math.FlxVector;
import flixel.graphics.FlxGraphic;
import flixel.group.FlxGroup;
import flixel.FlxG;
import flixel.input.mouse.FlxMouseEventManager;

View File

@@ -6,6 +6,8 @@
(prop &mut :ScenData data null)
(prop :FlxCamera worldCamera (new FlxCamera))
(var SCROLL_BOUND_MARGIN 200)
(method &override :Void create []
(super.create)
(set data (ScenData.coreData))
@@ -17,19 +19,20 @@
(let [valleydy (Scenario.fromBasFile "Blades of Avernum Scenarios/Valley of Dying Things/valleydy.bas")]
(addSprites
// 2D nth >:)
(nth valleydy.outdoorSections 0 2))
// 2D nth -- pretty cool
(nth valleydy.outdoorSections 0 2)))
(prop &mut :FlxSprite border (new FlxSprite))
(set border (SpriteSheet.fromWholeBmp "${data.data}/Game Graphics/G801.bmp"))
(worldCamera.addBorder border)
(let [testRed (.makeGraphic (new FlxSprite 0 0) 16 16 FlxColor.RED)]
(set testRed.cameras [worldCamera])
(add testRed))))
(prop &mut :FlxSprite border (new FlxSprite))
(set border (SpriteSheet.fromWholeBmp "${data.data}/Game Graphics/G801.bmp"))
(worldCamera.addBorder border)
(add tileSprites)
(worldCamera.calculateScrollBounds tileSprites SCROLL_BOUND_MARGIN))
(var SELECTED_COLOR FlxColor.LIME)
(var NORMAL_COLOR FlxColor.WHITE)
(var CLIFF_HEIGHT 22)
(var :FlxTypedGroup<FlxSprite> tileSprites (new FlxTypedGroup))
(method :Void addSprites [:TileMap map]
(let [&mut rowStartX 0
@@ -55,7 +58,7 @@
->upTS {}
->overTS (set overTS.color SELECTED_COLOR)
->outTS (set outTS.color NORMAL_COLOR))
(add tileSprite)))
(tileSprites.add tileSprite)))
// TODO add any items
@@ -72,7 +75,7 @@
->upTS {}
->overTS (set overTS.color SELECTED_COLOR)
->outTS (set outTS.color NORMAL_COLOR))
(add tileSprite))))
(tileSprites.add tileSprite))))
(+= x (/ FLOOR_WIDTH 2))
(+= y (/ FLOOR_HEIGHT 2))))
(-= rowStartX (/ FLOOR_WIDTH 2))