Commit Graph

70 Commits

Author SHA1 Message Date
King_DuckZ 6b3cb59bc2 Fix collision right-/downwards.
It still glitches when walking diagonally.
2018-03-05 10:35:48 +00:00
King_DuckZ 9da16ca82d Assert that tile calculation is correct. 2018-03-05 10:35:15 +00:00
King_DuckZ 6861329ab9 Rename for_each_voxel to for_each_cell. 2018-03-05 10:34:41 +00:00
King_DuckZ 5bccef1f4f Add print statements to hopefully help with debugging. 2018-03-01 23:19:42 +00:00
King_DuckZ 89f7d5c948 I think this should return 1, not 0.
Like this, I can loop over the column/row facing
the collision side, ie for z = tile; z < tile + len.
2018-03-01 23:19:27 +00:00
King_DuckZ ea5bbb8673 Update copyright to 2018 2018-02-28 10:38:37 +00:00
King_DuckZ 57bd1cfefc Temporary, just for the sake of testing collision. 2017-11-06 20:40:24 +00:00
King_DuckZ 94080546e5 Broken implementation of collision code.
I'm trying to get it working.
2017-11-06 20:40:03 +00:00
King_DuckZ 37f7964388 Fix build error about SDL_platform.h not found. 2017-10-24 20:25:01 +01:00
King_DuckZ ee3a17fd13 Make method const 2017-10-24 10:45:40 +01:00
King_DuckZ 7783cb8e5e Refactor moving logic out from Character into a new class. 2017-07-31 09:56:49 +01:00
King_DuckZ 84e7ca952e buildfix 2017-07-24 10:03:43 +01:00
King_DuckZ b3e7f3ac1c Import tmxlite. 2017-07-24 01:26:05 +01:00
King_DuckZ 64969766d9 Try to make collision work - WiP 2017-07-24 01:19:06 +01:00
King_DuckZ 40967784a3 Add parameter to skip the callback on the first tile.
For example if you are going from tile 1,1 to 1,2 you would get
two notifications if parInclFirst==true, one for 1,1 and one for
1,2. If parInclFirst==false, then you will only get a notification
for 1,2. Note that if the segment passed to to
for_each_voxel_under_segment() is too short and doesn't span over
the initial tile, passing parInclFirst==false will discard the
only callback you would normally get. Effectively this can be used
for a sort of "on tile changed" notification.
2017-07-23 16:22:04 +01:00
King_DuckZ 084c4d64da Fix the assert triggering sometimes in the raytrace grid traversal. 2017-07-23 04:37:25 +01:00
King_DuckZ b0806e9e1c Print "debug" when starting game compiled in debug mode. 2017-03-17 20:13:39 +00:00
King_DuckZ 1eeb944e68 Make Debug only available in debug builds. 2017-03-17 20:08:12 +00:00
King_DuckZ 3a05564be9 Add missing include. 2017-03-17 19:52:42 +00:00
King_DuckZ d96dbb9fe8 Update vectorwrapper.
Also make the necessary changes to fix the build after the update.
2017-03-17 00:30:34 +00:00
King_DuckZ be56c55e3e Add a layer for game characters. 2017-03-15 21:58:51 +00:00
King_DuckZ b60bbf3739 Add background layer from IngameScene, not the base class. 2017-03-15 21:58:24 +00:00
King_DuckZ 9428e63fc2 Layers are now named, so code can request a layer by name. 2017-03-15 21:48:27 +00:00
King_DuckZ 7a391c5743 Character draws itself. 2017-03-15 09:14:22 +00:00
King_DuckZ 2d05fd03db Assert that raytracing is going to finish at some point. 2017-03-15 09:13:13 +00:00
King_DuckZ d9a943ee4a Add DrawingQueue class.
Big do-it-all commit. Work on this is not finished and there
are a few changes that need to be undone. A bit messy but
that's how it is :/
2017-03-15 09:12:16 +00:00
King_DuckZ 15e874f0fe Move texture-related code out from Character class. 2017-03-11 12:22:40 +00:00
King_DuckZ 0560affdf9 Import clooneljump as a subproject.
Remove manually copy-pasted files taken from cloonelgraphics and
use the up-to-date version from the submodule instead.
2017-03-11 08:22:23 +00:00
King_DuckZ c30fe3012c Remove fsgn() which is now unnecessary. 2017-02-10 19:26:46 +00:00
King_DuckZ ff91bbbc71 Fix code so raytrace test now passes. 2017-02-10 19:24:44 +00:00
King_DuckZ 80d0e1c336 Add test for intersection and fix data in raytracer test. 2017-02-10 15:40:26 +00:00
King_DuckZ 413ff4e558 Expose private functions in grid_raytrace for unit testing. 2017-02-09 19:31:38 +00:00
King_DuckZ 47aa9f2948 Move everything into a shared lib so unit test can access stuff. 2017-02-09 18:11:09 +00:00
King_DuckZ e2d307da52 Initial WiP implementation of 2D grid raytracing. Not working. 2017-02-08 16:39:46 +00:00
King_DuckZ f91ff6625f No need for requiring int position here. 2017-02-08 16:37:59 +00:00
King_DuckZ cb8654ac7e Add a TileProperty struct so one can store info about tiles. 2017-02-08 16:36:36 +00:00
King_DuckZ 8e1c19df47 Add an fsgn() function.
fsgn() returns -1/0/1 depending on the parameter's sign.
2017-02-08 16:30:48 +00:00
King_DuckZ 67e8ceefa3 Update licence notice to 2017. 2017-01-30 14:56:16 +00:00
King_DuckZ ab02e7ef58 Let Character store a pointer to the world.
It's going to be needed for collision testing.
2017-01-30 14:49:56 +00:00
King_DuckZ 2062d50775 Use explicit loop 2017-01-30 13:05:26 +00:00
King_DuckZ 3907ef6d6d Move movement logic out from the gameplay scene.
Character now knows how to move by itself.
2017-01-30 12:29:57 +00:00
King_DuckZ 7a0d2c3267 Center viewport on the character when possible. 2017-01-27 19:39:47 +00:00
King_DuckZ 952a8af9c6 Register things that need the world size as observers to WorldGrid.
Character and WorldViewport get notified when the world size is set.
This way even if world size never changes they still get notified
about the proper world size as soon as that information is ready,
be it during instantiation or registration. Previously I was having
trouble because at the point where Character was instantiated, the
world size was not known yet. As such, I had to call a
character.update_world_size() function after it became available. The
same happened for the viewport, and this looked a bit too brittle
from the programmer's perspective. Now you just instantiate the
Character and things get sorted out automatically.
2017-01-27 16:07:50 +00:00
King_DuckZ 0dab671ce4 Forgot to commit this 2017-01-26 19:47:37 +00:00
King_DuckZ 19889313e2 Make a ConstrainedPosition helper class.
Use the new class to replace the ad-hoc code in worldviewport.
2017-01-26 17:37:12 +00:00
King_DuckZ 9a0e7abb52 Attach GPL3 licence. 2016-11-23 17:54:41 +01:00
King_DuckZ 38826b94b8 Fix randomly happening floating point error during clipping. 2016-11-09 01:46:36 +01:00
King_DuckZ e65c2341c2 Draw a test character to start experimenting. 2016-11-09 01:46:10 +01:00
King_DuckZ 4c105fc3df Don't move the viewport if it would generate gaps in the map.
In other words, don't let the player see past the end of the world.
2016-11-08 20:34:04 +01:00
King_DuckZ 5d231206ef Fix rect clipping 2016-11-08 20:15:19 +01:00