Commit Graph

283 Commits

Author SHA1 Message Date
fccca0c676 bound camera y-position by world & change dynamics slightly 2020-03-24 15:05:53 -04:00
10c2a86feb camera shake in Y as well (and for less time) 2020-03-24 14:42:14 -04:00
e0d5385350 camera now tracks player y-position too 2020-03-24 14:41:07 -04:00
3be37740f7 Geometry: add equality operators & GetHashCode for structs 2020-03-24 13:57:15 -04:00
a1bc44296a Add "ProfilingList" to debug printout 2020-03-20 13:23:47 -04:00
5ebc61015b ProfilingList: make a DEBUG-only CheckCapacity() function 2020-03-20 13:22:32 -04:00
a6c297196a Add ProfilingList & use it in Player. 2020-03-20 13:12:12 -04:00
70308a5d84 make fields readonly 2020-03-20 11:00:52 -04:00
8ca79a1875 degrees aren't radians 2020-03-18 16:26:55 -04:00
0bb6f22f3d Geometry cleanups / TODO removal. 2020-03-18 16:18:39 -04:00
90ca6c4b58 LinesOfSight: draw outline separately, with a different color 2020-03-18 15:56:33 -04:00
2aef0e26f5 Player: stop making a List<AABB> every frame. 2020-03-18 14:52:28 -04:00
de01b04873 Player: stop creating a new Point[] via Line.Rasterize every frame. 2020-03-18 14:34:47 -04:00
67550a789b move History.ToArray() into test code. 2020-03-18 14:03:37 -04:00
63a2645814 Timer: suppress printouts when not in DEBUG mode
Debug: add "using System.Diagnostics"
2020-03-18 11:13:06 -04:00
7625339d4c add TODOs for places where "new" is used during per-frame code
Fixes #12.
2020-03-18 11:11:40 -04:00
fb3538cea9 Add ability to move by a single pixel in DEBUG builds.
Fixes #15.

Also enables the LeftShoulder + RightShoulder + [BUTTON] combos only while
we're in DEBUG mode.
2020-03-16 15:36:46 -04:00
b10e03857f add more sfx 2020-03-16 15:04:26 -04:00
0c7fa95711 new sfx file names 2020-03-16 14:57:24 -04:00
e4a4754ace fix comment to match new Xbox UI 2020-03-16 14:57:02 -04:00
36a7f70fef make NPCs a pixel less thicc 2020-03-16 14:56:32 -04:00
9bd33a406a remove unused Crouching & Stretching poses 2020-03-11 16:12:46 -04:00
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
654bb7fe97 load JSON files directly instead of embedding in XML. 2020-03-04 16:16:41 -05:00
9672fabcfd Add Sprite class & load sprite metadata from JSON. 2020-03-03 17:14:05 -05:00
4299a009b7 use auto property 2020-03-03 13:08:51 -05:00
d270efe643 move Player into World 2020-03-03 13:04:29 -05:00
f801f95551 move to a root LICENSE.txt 2020-03-02 20:46:44 -05:00
65fe870a9a let Scene decide when to draw itself & when to play music
GitOrigin-RevId: 0eac6682b0bbe4d436707c44d9685c1e518b8295
2020-03-02 16:47:42 -05:00
29cf5eb0c9 add short music loop to demo stage
GitOrigin-RevId: 7ea3d773b12341eb3eb3aabd9000cc32014faac8
2020-03-02 15:33:56 -05:00
02b1dd4874 Add simple NPC.
GitOrigin-RevId: 47cd7abaf80d7ced14d0b4b92390c8c0edddae1c
2020-02-28 17:13:52 -05:00
d9e9fcf9a2 remove trailing whitespace
GitOrigin-RevId: 4ccd727a7921e8ef08296586283d84bdc6f31c99
2020-02-27 20:24:40 -05:00
de8ca4a374 Add sword-swing sound effects.
GitOrigin-RevId: 946a808c6f7e96297ec291f2b8e55ae062d5193b
2020-02-27 20:24:36 -05:00
f4581ecaf8 Player now takes damage from spikes.
GitOrigin-RevId: e9096316218f2590aac74ce1055a0829f71bdff8
2020-02-27 19:13:59 -05:00
a431ad094b smush hearts together a smidge
GitOrigin-RevId: ebb0e78ff5f3c51d6ddc9765e38fb262bccee160
2020-02-27 16:50:19 -05:00
c189cfcc09 Add player health & a heart sprite.
GitOrigin-RevId: 3389f46044a3fbb48af8533370c0318982c9ad83
2020-02-27 16:28:48 -05:00
c213009134 Add Text.DrawOutlined() function & other text helpers.
GitOrigin-RevId: 47f9115767c9acac31edaed13ba0ac62732a27f1
2020-02-27 15:46:54 -05:00
830fc1ee9a set font to be PointClamped
GitOrigin-RevId: 6f21d2f11df5ba30061ca2994988f5bbd5d38b1d
2020-02-27 11:54:37 -05:00
c2fa12db9b Stop printing out jumpTime.
GitOrigin-RevId: dc062283389545c0dd55a3438cc192c2d449ef9a
2020-02-26 17:59:09 -05:00
f8fa66385d Display "Paused" message when paused.
Add a new "Banner" style font for the pause message.

GitOrigin-RevId: 62f9537574351b961d7a2bd74f12e218f1047062
2020-02-26 17:44:36 -05:00
5549f15029 rename numEdgeVertices -> NUM_EDGE_VERTICES
GitOrigin-RevId: c7a67e06ea330f1fd3de4abdbeb8021402b6f330
2020-02-25 20:34:49 -05:00
3a8defcf3f Letterbox the scene if the aspect ratio is out-of-whack.
Fixes #23.

GitOrigin-RevId: 2da580115e44f2658e7f9b9d3d39a366d3a1bbfd
2020-02-25 20:24:19 -05:00
0a64d17db5 fix lint errors
GitOrigin-RevId: 5de396b25947e1de5bea55ecc32bacc59e5b336d
2020-02-25 19:19:10 -05:00
bd78586a1d rm newline
GitOrigin-RevId: c369e8bd9f847a038c544db1094ba1aabbcf388d
2020-02-25 10:30:57 -05:00
74b5e1ec2d Debug rects: pull in top & left sides by a 1-pixel margin.
GitOrigin-RevId: 0f1f846e3f9251699917c43241efe73d6ba74849
2020-02-25 09:58:42 -05:00
a0ea63f96b make Input readonly
GitOrigin-RevId: 1bb3c6bb6fad236b0b974a78b2d0c75474c9fa23
2020-02-25 09:35:59 -05:00
4e4c2cccb3 Input: process debugging commands first & exit early if any are pressed.
GitOrigin-RevId: c36acce59305a0f2086b88c6206f73e3860e0c51
2020-02-25 09:26:28 -05:00
6802b3f162 Make separate ExtensionMethods file.
Add Point-deconstruction as an extension method.

GitOrigin-RevId: a804ba797a9b939b65652df67987628b1742dad6
2020-02-24 20:46:24 -05:00
f081a3db4e Apply VS suggestion for refactoring TextureRef.Get
GitOrigin-RevId: 9758a333c456f6a150282d3f4adb00c68095e416
2020-02-24 17:07:42 -05:00
26649ce20d Draw debug output within the TV-safe area.
Details here:
https://docs.microsoft.com/en-us/windows/uwp/design/devices/designing-for-tv#tv-safe-area

GitOrigin-RevId: 6bd4e9805a078f6b21cc40fc633c36cde371b6e6
2020-02-21 10:24:31 -05:00
ed7afd2fa1 TextureRef: make Get a property rather than a function
GitOrigin-RevId: a36369c33b0c23859768c7bd7b1548b7d834cbb3
2020-02-20 16:39:38 -05:00
e72b8999e4 Make TextureRef class for holding textures.
Use it in World so that all Terrain-specific configuration can be specified in
one place.

GitOrigin-RevId: 31acf292ae6e438f609a7396e78555e1db9b744e
2020-02-20 16:37:52 -05:00
0e164f7b75 mark field readonly
GitOrigin-RevId: 9e06f8a03a69c18da9e4828263eed65b13776904
2020-02-20 16:37:48 -05:00