Commit Graph

420 Commits

Author SHA1 Message Date
393e9d14b9 Player: track position with a Vector2.
Fixes #10 (mostly).
2020-03-11 16:04:22 -04:00
dfb80c9fde NPC: Position is now a Vector2, not a Point 2020-03-11 15:07:00 -04:00
e97ff479d0 Sprite: keep track of Width and Height 2020-03-11 14:42:10 -04:00
b4e644c2d4 calculate spriteCenter more rigorously 2020-03-11 14:19:27 -04:00
36a72b938f calculate NPC physics-box correctly 2020-03-11 13:56:33 -04:00
f7567686b3 Debug.AddLine(): make the 4-ints version the default 2020-03-11 12:48:55 -04:00
4c2437e1ac add Debug.AddPoint() 2020-03-11 12:44:14 -04:00
c08defc656 Keep Update() from advancing by very large chunks; use more double math 2020-03-11 11:12:14 -04:00
4346f20024 remove World.TileSize constant 2020-03-11 11:01:34 -04:00
a4802031d5 World: load size directly from JSON. 2020-03-10 17:32:33 -04:00
b85661e2c4 add support for 8x8 obstacles 2020-03-10 17:10:09 -04:00
a93076419d Debug: turn functions into noops if not compiled with DEBUG.
Fixes #11.
2020-03-10 15:58:56 -04:00
3d1de388b8 remove jumpTime / jumpElapsed 2020-03-10 15:06:52 -04:00
127693e2af make Camera & NPC fields readonly 2020-03-10 15:06:25 -04:00
8f79bb8680 add a little screen-shake 2020-03-10 15:04:41 -04:00
37c679b704 move Camera into World 2020-03-10 14:38:08 -04:00
536af82beb make NPCs stop at the edge of platforms 2020-03-10 10:09:55 -04:00
275e535eac LinesOfSight: draw outlines around the vision cones. 2020-03-09 16:13:52 -04:00
06eac128c2 LinesOfSight: make vision cones red 2020-03-09 14:59:14 -04:00
437130ab55 Scene: always draw LinesOfSight 2020-03-09 14:57:39 -04:00
9504c2236c LinesOfSight: support multiple NPCs 2020-03-09 14:47:21 -04:00
473256d105 make some classes static and some fields readonly 2020-03-09 12:48:10 -04:00
8f2fec053d Pull out the "Paused" string into a file. 2020-03-09 12:46:19 -04:00
4870964cc5 attach LinesOfSight to the first NPC 2020-03-09 12:41:07 -04:00
8720896e87 make top-level classes public 2020-03-09 12:22:33 -04:00
66ce866b12 move LinesOfSight into World 2020-03-09 12:19:19 -04:00
3fc8b49636 World: move Tile to bottom of file 2020-03-09 11:48:22 -04:00
bb910fbe58 World: rearrange a bunch of code to be in a more sensible order 2020-03-08 18:58:52 -04:00
36e70989af rename "tiles" to "obstacles" 2020-03-08 18:36:42 -04:00
fa4784fc49 IsHarmful -> IsHazard 2020-03-08 18:30:46 -04:00
299ab41ec2 add hazards layer 2020-03-08 18:27:20 -04:00
9aa0d05eb2 add the background layer 2020-03-08 17:43:11 -04:00
983a02b364 remove old Levels file 2020-03-08 17:28:45 -04:00
5121f6d775 World: load levels by parsing a JSON level description. 2020-03-08 17:23:51 -04:00
28ef337691 make field readonly 2020-03-07 12:40:21 -05:00
0a37453dbd switch to sourcing all tiles from Grassland 2020-03-06 19:01:48 -05:00
392495a61e remove unneeded timeInState calc & redundant "string?" annotation 2020-03-06 14:20:17 -05:00
0f8d9c2814 FSM / Player / NPCs now get World as an argument to Update() 2020-03-06 12:28:58 -05:00
1b124f84df FSM now takes a type parameter so that we can use FSM with other classes. 2020-03-06 12:16:33 -05:00
08091106ea Terrain: use optional arguments for IsObstacle / IsHarmful 2020-03-06 12:02:41 -05:00
b2583677bf Terrain now takes an IsHarmful param in constructor. 2020-03-06 11:44:43 -05:00
f756780660 NPCs should start in "run" state. 2020-03-06 11:44:19 -05:00
b574a5a702 change Sprite / Animation times to double (sec) instead of int (ms). 2020-03-05 21:12:11 -05:00
53083818c0 Add a TODO and fix a smol cleanup. 2020-03-05 17:39:30 -05:00
3c4e63ada0 Add basic FSM & use it from NPC. 2020-03-05 17:39:17 -05:00
53c6d8483f include multiple NPCs, have them turn around based on platforms. 2020-03-05 16:17:57 -05:00
5b82f4d646 handle PingPong animations 2020-03-05 15:55:40 -05:00
0b8eb3e3f1 Player: start using Sprite data to calculate texture source / animations. 2020-03-05 15:28:34 -05:00
77f1d73097 remove convert_sprite_json (no longer needed) 2020-03-04 16:47:24 -05:00
654bb7fe97 load JSON files directly instead of embedding in XML. 2020-03-04 16:16:41 -05:00