Recreation of a C64 classic: Castles of Dr. Creep.
Compared to the original there are some changes, on the one hand because the layout is different (40x24 vs 16x16), on the other hand because I have defused some "backtracking" and death traps. Nevertheless, please note, the levels are from 1984 - there you have something different design.
Story
Playing the game
Obstacles
Editor
Working with the editor
behind the scenes
sources
Thanks, and sometimes it is really useful to play a tutorial :)
I updated the cart in the first post.
- The minimap-door-indicators should now align more nicely
- There is an "easy mode". When you die in easy-mode, the room will reload.
- Frankensteins Monster moving code changed, should not change direction on sliding poles end or when a leader is on the end of the walkway.
- Update of the editor
This update include my version of "Alternation" (Original: http://moon.descentforum.net/creep/Alternation.html ), a new 14 room laboratory.
@GPI +1 to very impressive. Got too hard for me a few rooms after I left the tutorial, but that's on me.
@GPI Edit: Thankyou for taking the time to explain your table-stringify function to me. I was able to create my own from scratch cause of your help, and I have since updated everything I have made to use it instead. I deleted my posts to cleanup your thread, and made notes of anything you taught to me so your posts can be deleted as well if you so choose. Thanks again.
you can send me a e-mail:
<removed>
strange the e-mail is correct.. can you delete it from your post?
b is not only a table, it contains tables
so b[#b] will return the last table in the b-table and this table you can get a size #b[#b] increase by 1.
also see a table more than an reference as a table
a={} b=a -- reference to the same table as in a! a[1]=99 print( b[1] ) -- will return 99! |
for example
str = [[ u=10 v={ 20 30 40 } duck ]] |
b is at the beginning
b = { {} } |
first line:
u=10
will add u=10 in the last table inside b
b = { {u = 10} } |
v={
-- create a new table and set insert it with the "v"-Key in the top table of b
-- also reference the same table as new top entry in b
b = { {u = 10, v = {}}, {}, -- <- this table is the same as the v={} ! } |
20
-- here we have no key value, so we look at the last table in b (b[2]), get the size #b[2] of 0, add 1
-- and the new generated key "1"
-- add [1]=20 to the top element of the b. (this will also change v, because it has the same reference)
b = { {u = 10, v = {[1] = 20}}, { [1] = 20 }, } |
30
b = { {u = 10, v = {[1] = 20, [2] = 30}}, { [1] = 20, [2] = 30 }, } |
40
b = { {u = 10, v = {[1] = 20, [2] = 30, [3] = 40}}, { [1] = 20, [2] = 30, [3] = 40 }, } |
}
-- now we have a end of table
-- we only need to drop the last table inside b
b = { {u = 10, v = {[1] = 20, [2] = 30, [3] = 40}}, } |
duck
b = { {u = 10, v = {[1] = 20, [2] = 30, [3] = 40}, [1]=duck}, } |
B is a table which contains table. the last table here is always a reference of the active element, where to add new values.
Thats why the code return b[1] - the first table in the table.
[Please log in to post a comment]