Commit Graph

156 Commits

Author SHA1 Message Date
vrld
2257ab025c Update camera.rst 2015-10-13 15:34:59 +02:00
Matthias Richter
f851254f26 Fix #52 - Gamestate require init function.
Use __NULL__ when init is not defined in the state.
2015-10-13 08:11:49 +02:00
vrld
37f4ed9e43 Update README.md 2015-10-12 08:29:36 +02:00
Matthias Richter
fa89556eb6 Documentation with sphinx 2015-10-12 08:21:56 +02:00
Matthias Richter
52324d5368 Documentation with sphinx 2015-10-12 08:21:31 +02:00
Matthias Richter
f6c5f621e7 Code cleanup 2015-10-12 08:21:16 +02:00
vrld
ca7fa8acb3 (Issue #49) Don't overwrite state.init on gamestate.switch 2015-10-07 21:48:20 +02:00
Matthias Richter
eb05aee86f Add support for camera locking.
Currently supports:

- Position locking (lock camera at target)
- Window locking (constrain target to be inside rectangular region)
- Position smoothing (none, linear, damped)

With these you can also implement horizontal/vertical camera windows,
target focus, projected focus, etc.

See the great article "Scroll Back: The Theory and Practice of Cameras
in Side-Scrollers" by Itay Keren [1] for details.

[1] http://gamasutra.com/blogs/ItayKeren/20150511/243083/Scroll_Back_The_Theory_and_Practice_of_Cameras_in_SideScrollers.php#h.949uhirhz51j
2015-05-30 20:21:48 +02:00
Matthias Richter
3c666c558b Fix #46: GS.switch should halt current state cycle
`switch`, `push` and `pop` now set a flag marking the new state as
dirty. Dirty states will not receive any callbacks except `update`.
Before executing `update` the state is marked as clean, so it will
receive callbacks from thereon.
2015-05-30 16:41:37 +02:00
Matthias Richter
5c9d51d356 Fetch event callbacks from love instead of hardcoding it 2015-05-30 16:19:26 +02:00
vrld
c06e8e6ee8 Merge pull request #47 from kneeko/bug-fix
Fixed include helper skipping false values.
2015-05-30 16:13:07 +02:00
Nico Prins
038bc9025f Changed how includes are referenced. 2015-05-08 15:41:38 -07:00
Nico Prins
656fd17dc4 Added string includes using import method. 2015-05-06 18:05:19 -07:00
Nico Prins
dbf60e3dc5 Fixed include helper skipping falsy values. 2015-05-05 09:26:52 -07:00
vrld
672a91b56c Merge pull request #44 from harris-m/master
Add mousemoved callback to gamestate callbacks (added in LOVE 0.9.2)
2015-03-21 18:22:33 +01:00
Harris Munir
f984cc87e6 add mousemoved callback to gamestate callbacks (added in LOVE 0.9.2) 2015-03-18 20:08:38 -05:00
vrld
b18c399def Add missing argument to gs:resume(pre, ...) 2014-12-16 18:07:32 +01:00
vrld
605953dddf Merge pull request #43 from xpol/master
Fixes wrong arg #1 for resume().
2014-12-16 18:06:21 +01:00
xpol
bdd9ad5c04 Fixes wrong arg #1 for resume(). 2014-12-15 15:06:05 +08:00
Matthias Richter
537ca76264 [signal] Use . instead of : in registry instances.
Mirrors behavior of the timer.lua
2014-11-23 18:02:38 +01:00
Matthias Richter
a9061c68f0 [timer] Place new() at the end of the module. 2014-11-23 18:00:50 +01:00
vrld
03505b9b77 Merge pull request #42 from headchant/master
Makes sense. The same should be done for `hump.signal`.
2014-11-21 11:53:11 +01:00
Tilmann Hars
49a1e33c56 Merge https://github.com/vrld/hump 2014-11-13 16:03:35 +01:00
headchant
95f07233b9 Punctation change
Unifies instance and default timer object access of functions to '.' for example: timer.clear(). For instances you had to use ':' until now.
2014-11-13 16:00:20 +01:00
vrld
526ca620c9 Merge pull request #36 from jessevanherk/master
add assertions to catch incorrect colon-calls to gamestate
2014-08-22 13:57:47 +02:00
Matthias Richter
af8f19a48e Forward arguments from GS.pop() to state:resume() 2014-08-22 13:57:02 +02:00
Matthias Richter
4f53485fb7 (Fix #37) Copy metatable in class:clone() 2014-08-22 13:51:25 +02:00
Matthias Richter
e8af2a6ec2 (Fix #33, #35) A more flexible definition of isvector(v)
Now returns true if `v' is a table and both `v.x' and `v.y' are numbers.
2014-08-22 13:47:55 +02:00
Matthias Richter
bd10ec4caf (Fix #34) Add callback for returning from push()/pop()
state:resume() will be called on the state that issued a GS.push()
after the pushed state is popped from the stack.
2014-08-22 13:42:17 +02:00
Jesse van Herk
db9a576aa7 cleanup indenting to match origin style 2014-07-01 11:42:42 -06:00
Jesse van Herk
ed2b38952a Add assertions for : calls, avoid bad recursion 2014-07-01 11:38:07 -06:00
Matthias Richter
e10fa66e60 Fix vector-light.trim() (see 2abe666ce9) 2014-03-03 23:01:48 +01:00
vrld
2abe666ce9 Merge pull request #32 from stfan/patch-1
Fix vector:trim_inplace()
2014-03-03 22:58:19 +01:00
vrld
e6ca809a8c Merge pull request #31 from mifuyne/master
ln 179 & 181: second self.y changed to self.x
2014-03-03 22:55:48 +01:00
stfan
65cef0e3dc Update vector.lua
Changed vector:trim_inplace so it actually trims the vector when it is longer than the maxLen
2014-03-03 20:28:40 +01:00
Mifuyne
157ec82cd5 ln 179 & 181: second self.y changed to self.x
For vector:angleTo()
2014-02-17 12:32:42 -05:00
vrld
81f0faf476 Merge pull request #30 from headchant/patch-1
Update signal.lua
2014-02-16 14:43:54 +01:00
headchant
e9e2019517 Update signal.lua
register does not return function handle
2014-02-13 22:36:45 +01:00
vrld
a837d1d802 Merge pull request #29 from Bradshaw/master
Added gamepadreleased to all_callbacks
2014-02-10 10:08:51 +01:00
Kevin Bradshaw
21d87e5119 Added gamepadreleased to all_callbacks 2014-02-08 16:49:34 +01:00
Matthias Richter
d42244ba35 [Gamestate] Undo last commit. Add all 0.9 callbacks. 2013-12-16 16:35:06 +01:00
Matthias Richter
4372c6404c [Gamestate] Add love.textinput to default callback list 2013-12-14 13:01:45 +01:00
vrld
e3770d462b Merge pull request #26 from karai17/patch-1
Update for 0.9.0
2013-11-24 03:56:49 -08:00
Landon Manning
d697664e27 Update for 0.9.0 2013-11-10 00:16:35 -04:00
Matthias Richter
32e0aaeaa6 Fix #25: vector:angleTo() returns wrong angle. 2013-11-04 22:04:16 +01:00
Matthias Richter
cea730deac Fix bug in GS.push(). 2013-08-24 22:58:30 +02:00
Matthias Richter
ff60ae5372 Fix issue #24: cancel not removing periodic timers. 2013-08-22 11:10:56 +02:00
Matthias Richter
87b82750ff Localize function registry to Gamestate.switch(). 2013-08-19 14:10:00 +02:00
Matthias Richter
b3c329a1e8 Add vector.dist2(a,b). 2013-08-05 16:35:49 +02:00
Matthias Richter
5c06f3d3d0 [gamestate] Add .current(). Add gamestate stack.
New methods:

function GS.current()
    retrieves currently active gamestate (i.e. the state on top of the
    stack)

function GS.push(state, ...)
    Pushes a state on the stack. Calls state:enter(...), but *not*
    state:leave() on the previous state.

function GS.pop()
    Pops a state from the stack, provided that there are states to pop.
    Calls state:leave() on the state on top of the stack before popping.
2013-08-05 16:30:30 +02:00