From: Ricardo Cruz Date: Fri, 9 Jul 2004 10:58:41 +0000 (+0000) Subject: Updated LEVELDESIGN to reflect the new level format. X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=3d9f987840ae48ab5d2c062c699ea0748ab97b8a;p=supertux.git Updated LEVELDESIGN to reflect the new level format. SVN-Revision: 1552 --- diff --git a/LEVELDESIGN b/LEVELDESIGN index 6b6049186..4355a767f 100644 --- a/LEVELDESIGN +++ b/LEVELDESIGN @@ -9,68 +9,143 @@ the level editor. = LEVEL FORMAT = -The level format used to be pretty easy to understand, but it -is now more complex. Anyway, should be pretty useful to know -a bit of it, when you want to do stuff just as to just change -the author's name or something small. +Since the level editor does not support anything, you might have +to edit a couple of things directly from the level file, so it +might be a better idea to read this. -It uses the Lisp syntax and is pretty intuitive. Here have a -look at a quotation: -(Comments can be made using ';') +Level format should be pretty straight forward. The syntax is the +Scheme one. But even if you have no idea about it, no worry, +it is pretty intuitive. + +Attention: this describes the new level format. But current levels +still use the old one, since the engine still supports it and also +level editors still use it. + +To explain a bit of the level format, there is nothing better than +really looking at it. So here goes a quote of it. The comments +prefix-ed by a ';', describe what everything is about. ; This is a comment! +; Level made using SuperTux's built-in Level Editor (supertux-level -; some level info: version, author and the level's name - (version 1) +; version higher than 1 means that it follows the new level format (CVS) + (version 2) +; Level's title and author name + (name "The Castle of Nolok") (author "Ingo Ruhnke") - (name "Night Chill") -; number of tiles used (currently the height has to be 15) - (width 515) - (height 15) -; Tux's start position - (start_pos_x 100) - (start_pos_y 170) -; Background image; if none is specified, the color below will be used - (background "") -; Music file - (music "Mortimers_chipdisko.mod") -; Colors, as you can see you can have different colors in the top -; and in the bottom, thus creating a gradient - (bkgd_red_top 0) - (bkgd_green_top 0) - (bkgd_blue_top 0) - (bkgd_red_bottom 120) - (bkgd_green_bottom 120) - (bkgd_blue_bottom 0) -; Time (it is not in seconds!) - (time 300) -; Gravity to be used (you should let it stay in 10 for ordinary levels) - (gravity 10) -; The particle system draws images that simulate weather effects -; As of the writing of this text, both "snow" and "clouds" are supported - (particle_system "snow") -; Theme is the tileset that is used - (theme "antarctica") - (interactive-tm - ; here goes a lot of numbers that are the tiles places +; Time the player has to finish the level (it is not in seconds!) + (time 300) +; Each level has one or more sectors. Sectors can be seen as levels inside this +; level. Their use is for swapping. + (sector +; Naming sectors is usefull to for swapping +; "main" sectors are the ones that the player will start in + (name "main") +; Level's gravity (better let it 10) + (gravity 10) +; We can have one or more playerspawn that can be used by doors. +; "main" is the default one for this sector. + (playerspawn + (name "main") + (x 100) + (y 170) ) -; Reset points; there can be more than one -; Reset points are positions where the player passes through and -; if he dies, he will be back to there. They are invisible - (reset-points - (point (x 6988) (y 222)) - ) -; Objects include enemies, may include more stuff in the future -; just as moving plataforms... - (objects - (mriceblock (x 13919) (y 384)) - (mriceblock (x 14258) (y 366)) - (mriceblock (x 12996) (y 248)) - (mriceblock (x 13058) (y 250)) - (mriceblock (x 12933) (y 245)) +; Level's music file from data/music + (music "fortress.mod") +; This level will use a vertical background +; You can also set a background image by using: +; (background "arctis.jpg") + (background + (top_red 0) + (top_green 0) + (top_blue 0) + (bottom_red 150) + (bottom_green 0) + (bottom_blue 0) + ) +; Now let's go for tilemaps. Tilemaps are the tiles field. We can have more +; than one. Each one has the following properites: +; layer - can be foreground (drawn above player), interactive (interacts with player, +; (solid #t) has to be set, as well), background (drawn below the player). +; speed - this can be used for parallax effects. Better use a level editor (though +; there is not yet one that supports it) to edit this. + (tilemap + (layer "interactive") + (solid #t) + (speed 1) +; width and height of the tilemap. Has to be specified. + (width 525) + (height 15) +; Here goes the tilemap : + (tiles 64 64 69 68 68 ... + .... + ....) + ) +; Another tilemap, this is the background one + (tilemap + (layer "background") + (solid #f) + (speed 1) + (width 525) + (height 15) + (tiles 0 0 ... + ... ) + ) +; Yet another one. Normally there are only three. + (tilemap + (layer "foreground") + (solid #f) + (speed 1) + (width 525) + (height 15) + (tiles 0 0 0 0 ... + ...) + ) +; Let's setup a few bad guys. + (jumpy + (x 1277) + (y 388) +; stay-on-platform is a flag to tell them not to fall from +; their platforms. + (stay-on-platform #f) + ) + (mriceblock + (x 4345) + (y 380) + (stay-on-platform #f) + ) + (stalactite + (x 790) + (y 96) + (stay-on-platform #f) + ) +; At last, but not least, the camera: +; (Order doesn't matter for Lisp, so camera could be on top or the middle) + (camera +; This is the ordinary mode, but we can also have an auto one. +; "auto" can be used to create a path to the camera. +; Here is an example of an auto camera: +; (camera +; (mode "autoscroll") +; (path +; (point (x 0) (y 0) (speed 0.5)) +; (point (x 500) (y 0) (speed 2)) +; (point (x 1200) (y 0) (speed 1)) +; (point (x 3000) (y 0) (speed 1)) +; (point (x 1500) (y 0) (speed 1.4)) +; (point (x 99999) (y 0)) +; ) +; ) + (mode "normal") +; backscrolling is only set for normal. It says if player can back +; scroll or not (just go to the front). + (backscrolling #t) + ) +; We could also setup other objects, like trampolins, doors (to swap), +; and moving platform. Please check another level (ie. in test/) that +; uses them to learn more about them. ) - ) - +) = LEVEL EDITORS =