Commit Graph

65 Commits

Author SHA1 Message Date
7f7da206c9 add whitespace line 2020-11-20 17:38:23 -05:00
db01dcea28 generate Shots on user input & reap them once offscreen 2020-11-19 17:55:27 -05:00
7695f45cc0 clamp player movement to world 2020-11-19 16:36:21 -05:00
fd4bf85d1c add basic shmup game 2020-11-19 14:44:12 -05:00
39ac88b60a switch back to Sneak as the default game 2020-11-16 14:43:21 -05:00
df436f8c32 TreeScene: draw a triangle 2020-07-15 15:56:56 -04:00
987c86fae9 mv World & Scene to SneakWorld & SneakScene. 2020-07-15 15:17:19 -04:00
56bc1abe06 Add TreeScene & TreeWorld. 2020-07-15 15:01:28 -04:00
9b25a8a6e0 Add new IScene interface. 2020-07-15 11:48:30 -04:00
811df57950 Make new IWorld interface. 2020-07-15 11:33:59 -04:00
c08defc656 Keep Update() from advancing by very large chunks; use more double math 2020-03-11 11:12:14 -04:00
37c679b704 move Camera into World 2020-03-10 14:38:08 -04:00
66ce866b12 move LinesOfSight into World 2020-03-09 12:19:19 -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
9672fabcfd Add Sprite class & load sprite metadata from JSON. 2020-03-03 17:14:05 -05:00
d270efe643 move Player into World 2020-03-03 13:04:29 -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
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
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
026623ac82 Fix memory leaks of graphics resources.
Make Scene & LinesOfSight dispose of the graphics resources they create.

Force GC when a new level is loaded.

GitOrigin-RevId: 0640cced784e6bf5ee15f4edce8bf11d122dac51
2020-02-19 16:33:32 -05:00
b858c45b7e Cycle through levels when player hits the "restart level" button.
GitOrigin-RevId: bbe909515fbc4b61be3357e506a113e82bb6e2bd
2020-02-19 15:07:55 -05:00
57d15cbbd9 Load all textures & fonts in one place.
GitOrigin-RevId: 076c86b24f4e4e314a52457a01d5c77e197a2fa2
2020-02-19 11:20:20 -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
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
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
4d64d6fa12 Initialize and dispose of whiteTexture in SneakGame.
Fixes #7.

GitOrigin-RevId: 024688e8fc8ed28950147baefc2fda2005e6aced
2020-02-13 18:36:48 -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
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
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
80746ecaed Use world definition from Levels file
GitOrigin-RevId: a5d19f4f0828bb52989b12590d6e364d0edd918b
2020-02-13 14:54:38 -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
0e363de306 change player sprite to ninja
GitOrigin-RevId: 73bc09808a1abf1a130986adfed1d3aa6d220b5c
2020-02-13 14:53:11 -05:00
76dbdc6913 Bound camera by right edge of World.
Fixes #32.

GitOrigin-RevId: e193c89509be035d5f6e899cd8c33ff2534a777f
2020-02-13 14:52:55 -05:00
50479bac3c while paused, don't clear the list of Debug rects & lines
GitOrigin-RevId: d298abc6ad4d7808da927a20c726cab6a65dc61c
2020-02-13 14:52:43 -05:00
793b292a29 pass in AABBs instead of Rectangles to Player.Update
GitOrigin-RevId: 08fe1aaf34210415acaa41e7e407eb1275602889
2020-02-13 14:52:35 -05:00
61b50efa40 make CollisionTargets an array, and don't recompute it every frame
GitOrigin-RevId: 92a02231edae5729778ea9ac60a46c83e248c744
2020-02-13 14:52:03 -05:00
8c6b0e3c92 set vsync = true; setting it false seems to cause crashes on UWP
GitOrigin-RevId: 6f30cefcaa6c61fb0fc3b20eada333db79f4c480
2020-02-13 14:51:51 -05:00
84fa044675 more readability fixed via Visual Studio suggestions
GitOrigin-RevId: 330f13485cee32f3a069442bad69c57911a0a34c
2020-02-13 14:51:31 -05:00
4b14aef1b5 make a bunch of fields readonly
GitOrigin-RevId: 0c3533c6509a6f0199410e977d3377c34b4a753d
2020-02-13 14:51:27 -05:00
0c7c15c047 set target framerate back to 60
GitOrigin-RevId: 7a97b3cd07afccafab047ad81df10269360b066e
2020-02-13 14:51:23 -05:00
f5ca85264f Add Clock class & use it from Player and SneakGame
GitOrigin-RevId: fe20c836ca693fdabad4ce72bfdf8952b59b735b
2020-02-13 14:51:19 -05:00