Commit Graph

121 Commits

Author SHA1 Message Date
b06155aa88 Render backgrounds from back-to-front in an array.
GitOrigin-RevId: 1f4ca760d4dc4a73a4f96f6b04ee2929e789a5eb
2020-02-19 15:07:44 -05:00
cf5167fba7 Player: tweak constants, track jump hangtime.
GitOrigin-RevId: 868003a32664b89212cdb4cf082d96016c5529f9
2020-02-19 15:07:40 -05:00
90b003e0b0 Change Debug button from left shoulder to Select.
GitOrigin-RevId: 7e633c9904572c0f88859f2929ee5743ae2f3261
2020-02-19 15:07:36 -05:00
05638483a4 Support 4-layer parallax-scrolling backgrounds.
GitOrigin-RevId: 58c1d1fee99e56dd656af5bbf628fbdc16d55e14
2020-02-19 13:07:58 -05:00
8405f32f3c simplify lightingEffect initialization
GitOrigin-RevId: 28ca3d2336fe78f152aff2b810e90dc06e7816b6
2020-02-19 11:24:56 -05:00
57d15cbbd9 Load all textures & fonts in one place.
GitOrigin-RevId: 076c86b24f4e4e314a52457a01d5c77e197a2fa2
2020-02-19 11:20:20 -05:00
8f5514b776 More refactoring of Tile loading.
GitOrigin-RevId: 96a697bc78cdaefc874b9eb7b9d4cca28efe27f2
2020-02-18 16:50:47 -05:00
2934296649 Refactor tile creation to support assets from multiple tilesets.
GitOrigin-RevId: 9863c368214536e09009e27dcb68b8d42f3d04f0
2020-02-18 15:24:49 -05:00
02aba3ad84 Game objects now take in a ContentManager & load their own textures.
GitOrigin-RevId: 4f40548d9f100f4bad181a59f4df44397f7ccf76
2020-02-18 13:58:04 -05:00
f0ea8d8ef2 Reorganize Content/ into multiple subdirectories.
Add new tilesets from anokolisa.

GitOrigin-RevId: 90cfd52a3c374beff7c1b8d07899e822bdf2e541
2020-02-18 10:30:05 -05:00
9eeede2310 Shared.shproj: remove redundant & out-of-date file listings
GitOrigin-RevId: e7cc4d730faa5bc22a6aae55df53d55c6e44b41a
2020-02-17 21:22:16 -05:00
7935b6aaff Scene: go back to drawing Player behind tiles.
GitOrigin-RevId: afaff144f2af1f0ebcaf5b640cb621413110f380
2020-02-17 21:22:12 -05:00
7e7b0f7715 Move most of the drawing code into a Scene class
GitOrigin-RevId: 4515493a3bbf99b9513f2f1e66acadae1df53a5a
2020-02-17 21:08:32 -05:00
43f6bded70 draw backgrounds as partially transparent
GitOrigin-RevId: b570a9aab75d18e6f7778dc851537794f30d801a
2020-02-17 19:59:52 -05:00
786b230a6c LinesOfSight: don't draw yellow lines
GitOrigin-RevId: 1ebd5fe922856036d814a129520a5f3d6e1e4447
2020-02-16 19:44:36 -05:00
e2ea2e1d3f Add ability to restart the level. Fixes #9.
GitOrigin-RevId: e7a0cdcdded50e2f02067a166a33e18504aac344
2020-02-16 19:22:36 -05:00
1ffe1444b2 Debug: draw rects as 4 GPU-accelerated lines.
GitOrigin-RevId: 3286d0476b5032d785f74191609db4fbd768433c
2020-02-15 16:32:39 -05:00
48a9297a57 draw Debug stuff on top of everything (after lighting)
GitOrigin-RevId: e07fbc6b27af23912de1344a1bc3788ef69fd9c5
2020-02-15 16:32:34 -05:00
5d21ff2a0f Debug.DrawLines: use GPU to draw lines.
Fixes #19.

GitOrigin-RevId: d837e0ddafa0b7ea66fea4bba05ca7412a3c5726
2020-02-15 15:47:45 -05:00
a21802e9f2 FMath.DegToRad(): use look-up table.
GitOrigin-RevId: 2dab2e175cf99448595304eeb7593bf499485273
2020-02-15 15:15:24 -05:00
24078d6c62 move FieldOfView into Player
GitOrigin-RevId: 6d6a4094533819b11deebd5319616b5f5ed68948
2020-02-15 15:00:26 -05:00
66f895fab8 Player: remove GetPose, add VisionRange and VisionRay.
Fixes #21.

GitOrigin-RevId: 720972d1c8bd989edc38289f2e66e91290cf0134
2020-02-15 14:57:21 -05:00
c94ae6eb25 Player: make Facing an int property.
Partial work toward #21.

GitOrigin-RevId: 902c46d19abb7c1a2c3a2aa3bfb344d52fa6a970
2020-02-15 14:49:35 -05:00
4d64d6fa12 Initialize and dispose of whiteTexture in SneakGame.
Fixes #7.

GitOrigin-RevId: 024688e8fc8ed28950147baefc2fda2005e6aced
2020-02-13 18:36:48 -05:00
257a74ca58 LinesOfSight: use less-deprecated DrawIndexedPrimitives() call.
GitOrigin-RevId: 87d9482de392dfc659cc5c7e8fa354e9b6941425
2020-02-13 16:05:05 -05:00
23278334b0 use DrawIndexedPrimitives; fixes #41
GitOrigin-RevId: 6cc7429d0b69ace6da4f965af6f70fff2f1e139b
2020-02-13 14:55:22 -05:00
f01efcde01 Split LinesOfSight into separate Draw() and Update() functions.
Don't make new arrays every frame.

Partial solution to bug #41, just need to DrawIndexedPrimitives() now.

GitOrigin-RevId: 0e769d3288dce17fe174b2a1d82a99b1d9994213
2020-02-13 14:55:18 -05:00
5b7c0dd888 move LinesOfSight into its own file
GitOrigin-RevId: 21a722cc9d31abf0f5d33cccebb82d7786e45fde
2020-02-13 14:55:14 -05:00
93a5d477bb New FOV algorithm that works pretty well.
Saved for posterity here, approximately:
https://twitter.com/mcmillen/status/1227326054949408768

GitOrigin-RevId: e960dad1d9241c08dbf1292c6856311d4ebd7a85
2020-02-13 14:55:02 -05:00
7cc953a44e add extension method: Vector2.Rotate()
GitOrigin-RevId: ee1e84ff188d5a3134dafb1f5150199682c4e063
2020-02-13 14:54:58 -05:00
ff0c9ddc26 Add a transformation matrix to spriteBatch.Draw().
Instead of having every drawable object know how to transform itself based on
the camera position, we pass in a transformation matrix to spriteBatch.Draw().
Unfortunately MonoGame only lets us specify a translation that works over an
entire SpriteBatch.Begin() call, so we need to begin & end separately for
objects that *aren't* supposed to translate at the same rate as the camera.

Fixes #39.

GitOrigin-RevId: afab72c39236b1b46fe1597412209981ddae9c7c
2020-02-13 14:54:46 -05:00
6b9890b6f7 Player: more line-of-sight debug lines
GitOrigin-RevId: 655eef228659215ce53ac3e58bc324581a0fec3f
2020-02-13 14:54:42 -05:00
80746ecaed Use world definition from Levels file
GitOrigin-RevId: a5d19f4f0828bb52989b12590d6e364d0edd918b
2020-02-13 14:54:38 -05:00
d30be7a460 Timer: don't automatically DumpStats(); refactor string prefixes during dump
GitOrigin-RevId: 93b7d652823785b2be1074af50dbe4952e288856
2020-02-13 14:54:34 -05:00
5672e292cc add Levels file to hold level definitions (for now)
GitOrigin-RevId: ba9c09158f615844be53a1c294d7b8d88c9a62e2
2020-02-13 14:54:30 -05:00
2d2a3fde7d Timer formatting: change 200%+ to 200+%
GitOrigin-RevId: d04c35760d8e05404fda01c0adac8a5c465423b7
2020-02-13 14:54:26 -05:00
80f1104d82 Timer: better histogram formatting. bin into 10% intervals instead of 5%
GitOrigin-RevId: 9729f04bd650e530d6e60efbed348d6269608f16
2020-02-13 14:54:22 -05:00
9e4d863bcf add performance counters to SneakGame. Fixes #33.
Also, suppress drawing until Draw() has not been IsRunningSlowly for two
frames. This prevents janky behavior that happens during loading (I suspect
while texture loading is happening, but I'm not sure?)

GitOrigin-RevId: 5df31be3710457c7a8dae38b0b61c5dc50e3c54c
2020-02-13 14:54:18 -05:00
0f9d546398 make Clamp() generic across comparables and move it into FMath.
GitOrigin-RevId: 4ed26cc24dd204813540bde36889a17c20ad007b
2020-02-13 14:54:14 -05:00
bf2f33f698 add Timer class to projitems
related to issue #33

GitOrigin-RevId: 2870974cfb34ec14a754d6fcdc976fc7e3fb126c
2020-02-13 14:54:10 -05:00
36ebeadddf add Timer class for tracking draw & update times (etc)
related issue: #33

GitOrigin-RevId: 3762a7a5c7becf83cc50f80d4e5bb6f27244a952
2020-02-13 14:54:06 -05:00
d44ac76d49 fix cones-of-sight tilting in the wrong up/down direction when facing left
GitOrigin-RevId: 6b4925c75f44069af84685bc749a3586ad376e1d
2020-02-13 14:54:02 -05:00
4758ce519b allow player to look up/down
GitOrigin-RevId: 00041d67360a610ff032a0ab0ea5826e091f1c90
2020-02-13 14:53:58 -05:00
1f7da03515 make char-to-terrain lookup dictionary-based instead of switch-based
GitOrigin-RevId: 0d81e95bf047fab204bff8cf46ece2ab5470bf09
2020-02-13 14:53:54 -05:00
b731e1a785 make tile-texture lookup dictioanry-based instead of switch-based
GitOrigin-RevId: 2f0c215bf9e79e92f2c7a5011d8df3d9d80a0dff
2020-02-13 14:53:50 -05:00
c1232d462d make swordSwingMax const
GitOrigin-RevId: 911bff5fb60d0442edbe1e4ff9c005558a258175
2020-02-13 14:53:46 -05:00
3286db1c86 remove Terrain.Empty and clean up TextureSource() switch statement
GitOrigin-RevId: 7de691a440982a027898b123b864ff202ae68ea5
2020-02-13 14:53:43 -05:00
f7f7d5076e Pre-compute texture-source Rectangles.
Fixes #14.

GitOrigin-RevId: e09d86a099ac9274a4f3b7dcac9a2222b461dcea
2020-02-13 14:53:39 -05:00
5cb3ff9fbd first pass at implementing line-of-sight algorithm
partial solution for #29

GitOrigin-RevId: bb5f5dc057ba5947573f9b9c8eb30cc20f635bb0
2020-02-13 14:53:35 -05:00
554578968d Geometry: add FMath class & convenient accessors for AABB corners.
The FMath class is like the System.Math class, but returns floats instead of
doubles so that you don't have to redundantly cast things.

GitOrigin-RevId: 0e1d7f46c7a5c08c1bc2d2c8776ffa56eab697d8
2020-02-13 14:53:31 -05:00