├── .gitattributes
├── .gitignore
├── README.md
├── assets
├── astronaut
│ ├── back_01.png
│ ├── back_02.png
│ ├── back_03.png
│ ├── back_04.png
│ ├── back_05.png
│ ├── back_06.png
│ ├── front_01.png
│ ├── front_02.png
│ ├── front_03.png
│ ├── front_04.png
│ ├── front_05.png
│ ├── front_06.png
│ ├── idle_01.png
│ ├── idle_02.png
│ ├── idle_03.png
│ ├── idle_04.png
│ ├── idle_05.png
│ ├── left_01.png
│ ├── left_02.png
│ ├── left_03.png
│ ├── left_04.png
│ ├── left_05.png
│ ├── left_06.png
│ ├── right_01.png
│ ├── right_02.png
│ ├── right_03.png
│ ├── right_04.png
│ ├── right_05.png
│ └── right_06.png
└── tiles.png
├── doc
├── add_animation.png
├── add_animation@2x.png
├── add_images.png
├── add_images@2x.png
├── astronaut_atlas.png
├── astronaut_atlas@2x.png
├── astronaut_go.png
├── astronaut_go@2x.png
├── building_blocks.png
├── building_blocks@2x.png
├── input_bindings.png
├── intro.png
├── main_collection.png
├── main_collection@2x.png
├── select_images.png
└── select_images@2x.png
├── game.project
├── input
└── game.input_binding
└── main
├── astronaut.atlas
├── astronaut.go
├── astronaut.script
├── level.tilemap
├── main.collection
└── sandtiles.tilesource
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.dae binary
2 |
3 | # Defold Protocol Buffer Text Files (https://github.com/github/linguist/issues/5091)
4 | *.animationset linguist-language=JSON5
5 | *.atlas linguist-language=JSON5
6 | *.camera linguist-language=JSON5
7 | *.collection linguist-language=JSON5
8 | *.collectionfactory linguist-language=JSON5
9 | *.collectionproxy linguist-language=JSON5
10 | *.collisionobject linguist-language=JSON5
11 | *.cubemap linguist-language=JSON5
12 | *.display_profiles linguist-language=JSON5
13 | *.factory linguist-language=JSON5
14 | *.font linguist-language=JSON5
15 | *.gamepads linguist-language=JSON5
16 | *.go linguist-language=JSON5
17 | *.gui linguist-language=JSON5
18 | *.input_binding linguist-language=JSON5
19 | *.label linguist-language=JSON5
20 | *.material linguist-language=JSON5
21 | *.mesh linguist-language=JSON5
22 | *.model linguist-language=JSON5
23 | *.particlefx linguist-language=JSON5
24 | *.render linguist-language=JSON5
25 | *.sound linguist-language=JSON5
26 | *.sprite linguist-language=JSON5
27 | *.spinemodel linguist-language=JSON5
28 | *.spinescene linguist-language=JSON5
29 | *.texture_profiles linguist-language=JSON5
30 | *.tilemap linguist-language=JSON5
31 | *.tilesource linguist-language=JSON5
32 |
33 | # Defold JSON Files
34 | *.buffer linguist-language=JSON
35 |
36 | # Defold GLSL Shaders
37 | *.fp linguist-language=GLSL
38 | *.vp linguist-language=GLSL
39 |
40 | # Defold Lua Files
41 | *.editor_script linguist-language=Lua
42 | *.render_script linguist-language=Lua
43 | *.script linguist-language=Lua
44 | *.gui_script linguist-language=Lua
45 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /.editor_settings
2 | /.internal
3 | /build
4 | .externalToolBuilders
5 | .DS_Store
6 | Thumbs.db
7 | .lock-wscript
8 | *.pyc
9 | .project
10 | .cproject
11 | builtins
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Walking astronaut tutorial
2 |
3 | In this beginner's tutorial you will learn how to capture player input and make a character move and animate. Along the way you will get an introduction to the core building blocks in Defold: game objects, components and collections.
4 |
5 | This tutorial project comes preset with all assets that you need. Start by [running the game](defold://build) (Project ▸ Build) to get a feel for what's in here.
6 |
7 | ## The building blocks of a Defold game
8 |
9 | Open ["/main/main.collection"](defold://open?path=/main/main.collection) (locate the file in the *Assets* pane to the left and double click it.)
10 |
11 |
12 |
13 | What you see in the editor is a *Collection* file. When the Defold engine starts, it loads a *bootstrap collection* as specified in the "game.project" settings file. This particular collection file is this project's bootstrap collection, which is why you see the content of it when you run the game. This collection contains two *Game Objects*. And these two game objects each contain *Components*:
14 |
15 |
16 |
17 | *COLLECTION*
18 | : Collection files contain game objects and other collections (sub-collections). You organize your game objects by adding them to collection files. You use collections to build small things like a player character or a boss, and you use them to build big things like whole levels.
19 |
20 | *GAME OBJECT*
21 | : Game objects hold sprites, sounds, 3D models, tiles or scripts (programmed behavior). A game object has position, rotation and scale. You can write script code that manipulate these properties while the game is running. A typical game object is a bullet, a pickup object or a level loader.
22 |
23 | *COMPONENT*
24 | : Components are the things that are drawn on screen, make sounds or make interactions happen. Components do not exist on their own but are placed inside game objects. Some components have properties that can be manipulated in runtime and most components can be turned on and off (enabled and disabled). Many component types source their content from separate resource files, like atlas image files, sound files, animation files etc.
25 |
26 | ## What's in the main.collection file?
27 |
28 | Looking at the "main.collection" file, the editor shows the visual content of the collection in the center editor view. In the right hand *Outline* pane, the collection content is presented as a tree structure. There are two game objects in the collection:
29 |
30 | 1. The astronaut game object which has *Id* "astronaut". It contains a *Sprite* component and a *Script* component. The game object has been added to the main collection from a blueprint game object file named "/main/astronaut.go".
31 |
32 | 2. The background level game object which has *Id* "level". It contains a *Tilemap* component. This game object has been embedded directly in the collection file so there is no separate file. The tilemap component, however, sources its tilemap data from a separate file named "/main/level.tilemap".
33 |
34 | There is no difference between game objects embedded directly in a collection or ones that are based on blueprint files. If a game object exists in only one instance, there is no real advantage to using a blueprint file, but if you want to create many copies of the same object, blueprint files are extremely convenient since they allow you to change all instances at once. In the *Outline* pane the name of the file an object or component is created from is written in italics next to the object id.
35 |
36 | ## The astronaut game object
37 |
38 | Open ["/main/astronaut.go"](defold://open?path=/main/astronaut.go) to view the blueprint file that is used to create the astronaut instance in "main.collection". As with a collection, the editor shows the game object's content in the center editor view and the *Outline* view to the right shows the structure. This game object file consists of two components:
39 |
40 | 1. A *Script* component, based on the script file "/main/astronaut.script".
41 | 2. A *Sprite* component, which is embedded in place in the game object file.
42 |
43 |
44 |
45 | Click the sprite component to select it. The *Properties* view in the lower right corner now lists all properties that are associated with the sprite component. The sprite has its own *Id*, *Position* and *Rotation* properties. These are all relative to the game object that harbours the component. There are also properties that dictate what image or animation the sprite should display:
46 |
47 | *Image*
48 | : This property points to an image resource that is used as a source for the sprite's graphics. Image resources are *Atlas* or *Tilesource* files. *Atlas* files are collections of separate images that have been baked into a larger image for efficiency. Here, the property is set to the file "/main/astronaut.atlas".
49 |
50 | *Default Animation*
51 | : This property indicates which particular image or animation in the image resource should be used. Here, the property is set to the "idle" animation.
52 |
53 | [Run the game again](defold://build). Notice that the astronaut sprite is looping through an idle animation. Let's now have a look at how that animation is set up.
54 |
55 | ## Atlas animations
56 |
57 | Open the file ["/main/astronaut.atlas"](defold://open?path=/main/astronaut.atlas). The editor view in the center shows each image that has been added to the atlas. The *Outline* view shows all the images and how animations are organized.
58 |
59 |
60 |
61 | An *Animation Group* is a list of images that are played in a specified order at a specified playback speed. There is currently only one animation group present. It's called "idle" and consists of five separate images. Select the "idle" animation in the outline and choose View ▸ Play from the menu to preview the animation. You may have to select View ▸ Frame Selection to zoom the editor camera to cover the whole atlas.
62 |
63 | To start adding the walk animations to the astronaut, right click the root of the atlas outline and select Add Animation Group.
64 |
65 |
66 |
67 | Click the new animation group (named "New Animation") and give it the *Id* "left". Then right click the animation group and select Add Images...
68 |
69 |
70 |
71 | Type "left" in the top filter text field to see only images with the name "left" in them. Select all the images that appear (hold Shift and click) and confirm with OK.
72 |
73 |
74 |
75 | The new animation has 6 images in it. Select View ▸ Play from the menu to preview the animation. The speed of the animation is too high so reduce the *Fps* (frames per second) property of the "left" animation from 60 to 15.
76 |
77 | Repeat these last steps and add animations for walking "right", "front" and "back" to the atlas in the same way as you added the "left" animation.
78 |
79 | ## The astronaut script component
80 |
81 | Remember that the astronaut game object has a *Script* component based on the file "/main/astronaut.script"? Open ["/main/astronaut.script"](defold://open?path=/main/astronaut.script) to view the Lua script file. As you can see, the script file contains a set of empty functions. These are the *lifetime functions* of the astronaut:
82 |
83 | `init(self)`
84 | : This function is called when the component is initialized, before anything appears on the screen. You will use this function to set a few things up.
85 |
86 | `final(self)`
87 | : This function is called when the component is being removed: when the game object is deleted or right before the engine shuts down your game.
88 |
89 | `update(self, dt)`
90 | : This function is called once each frame. It is useful for doing manipulations and calculations that need to happen in real-time. You will use this function to move the game object based on input.
91 |
92 | `on_message(self, message_id, message, sender)`
93 | : This function is called each time a message is sent to the script component. Message passing is a central feature of Defold but we are not doing any in this tutorial.
94 |
95 | `on_input(self, action_id, action)`
96 | : This function is called each time an input action is sent to the script component. Input actions are defined in the file ["/input/game.input_binding"](defold://open?path=/input/game.input_binding). This project has bindings already set up for the arrow buttons: "left", "right", "front" and "back" and you will use this function to react to input.
97 |
98 | `on_reload(self)`
99 | : This function is called whenever the current script component is *hot-reloaded* into a running game. This is very useful to inspect or manipulate the state of a game object at reload to test things or do debugging.
100 |
101 | ## Programming the astronaut movement
102 |
103 | You are now ready to write a bit of Lua code to play the animations and to make the astronaut game object move. First, change the content of the `init()` function to the following:
104 |
105 | ```lua
106 | local speed = 150 -- [1]
107 |
108 | function init(self)
109 | msg.post(".", "acquire_input_focus") -- [2]
110 | self.dir = vmath.vector3() -- [3]
111 | end
112 | ```
113 | 1. Define a local variable (constant) that holds the movement speed (in pixels/s).
114 | 2. Send a built in engine message to the current game object (".") telling it to listen to input.
115 | 3. Define a variable that is part of the current script component instance (`self`). The variable will hold the movement direction, expressed as a vector. It is initially zero.
116 |
117 | Second, change the content of the `on_input()` function:
118 |
119 | ```lua
120 | function on_input(self, action_id, action)
121 | if action_id == hash("front") then -- [1]
122 | self.dir.y = -1
123 | elseif action_id == hash("back") then
124 | self.dir.y = 1
125 | elseif action_id == hash("left") then -- [2]
126 | self.dir.x = -1
127 | elseif action_id == hash("right") then
128 | self.dir.x = 1
129 | end
130 | end
131 | ```
132 | 1. Actions defined in the input binding file are sent in the `action_id` parameter. If the user presses the "front" or "back" button, set the Y component of the movement direction vector.
133 | 2. If the user presses the "left" or "right" button, set the X component of the movement direction vector.
134 |
135 | Note that if the player presses "front" and "left" at the same time, two calls will be done to `on_input()` and both the X and Y components of the direction vector will be altered.
136 |
137 | Third, change the content of the `update()` function:
138 |
139 | ```lua
140 | function update(self, dt)
141 | if vmath.length_sqr(self.dir) > 1 then -- [1]
142 | self.dir = vmath.normalize(self.dir)
143 | end
144 | local p = go.get_position() -- [2]
145 | go.set_position(p + self.dir * speed * dt) -- [3]
146 | self.dir = vmath.vector3() -- [4]
147 | end
148 | ```
149 | 1. When the `update()` function is called, the engine has already processed all input, meaning that the direction vector is set. In the case of diagonal movement, the length of the movement vector is greater than 1. Normalizing the direction vector makes it length 1 and diagonal movement will have the same speed as horizontal and vertical movement.
150 | 2. Get the position of the current game object. The name `go` *does not* refer to the current game object. It is the name of the Lua module that contains all game object functions.
151 | 3. Set the position of the current game object to the old position plus the direction vector scaled with the speed constant and `dt`. Multiplying with `dt` makes the movement velocity independent of the update frequency.
152 | 4. Reset the direction vector since it is set each frame in `on_input`.
153 |
154 | [Run the game again](defold://build) and verify that movement works as expected. The astronaut should move in all 8 directions.
155 |
156 | ## Adding animations to the movement
157 |
158 | The final piece of the puzzle is to change the animation that is played depending on the movement direction. For that, you have to first add a variable that holds the current animation:
159 |
160 | ```lua
161 | function init(self)
162 | msg.post(".", "acquire_input_focus")
163 | self.dir = vmath.vector3()
164 | self.current_anim = nil -- [1]
165 | end
166 | ```
167 | 1. Store the currently running animation.
168 |
169 | Then you need to add code in `update()` that changes animation based on direction:
170 |
171 | ```lua
172 | function update(self, dt)
173 | if vmath.length_sqr(self.dir) > 1 then
174 | self.dir = vmath.normalize(self.dir)
175 | end
176 | local p = go.get_position()
177 | go.set_position(p + self.dir * speed * dt)
178 |
179 | -- animate the astronaut
180 |
181 | local anim = hash("idle") -- [1]
182 |
183 | if self.dir.x > 0 then -- [2]
184 | anim = hash("right")
185 | elseif self.dir.x < 0 then
186 | anim = hash("left")
187 | elseif self.dir.y > 0 then
188 | anim = hash("back")
189 | elseif self.dir.y < 0 then
190 | anim = hash("front")
191 | end
192 |
193 | if anim ~= self.current_anim then -- [3]
194 | sprite.play_flipbook("#sprite", anim) -- [4]
195 | self.current_anim = anim -- [5]
196 | end
197 |
198 | -- done animating
199 |
200 | self.dir = vmath.vector3()
201 | end
202 | ```
203 | 1. Local variable that starts with the default animation id. With no input, this is the animation you get.
204 | 2. Test against the movement direction and set the `anim` variable depending on the value of the X and Y component in the direction vector.
205 | 3. If `anim` is different than the current animation:
206 | 4. then play the new animation,
207 | 5. then set the current animation id to the id in `anim`.
208 |
209 | The test against the current animation is required, otherwise the code would restart the same animation over and over again each frame. Also note that there are no separate diagonal walk animations but the code uses "left" and "right" for the diagonals.
210 |
211 | [Run the game again](defold://build) and verify that the astronaut moves and animates correctly.
212 |
213 | **Congratulations! You have now finished this tutorial. We hope that you found it instructive.**
214 |
215 | Check out the [documentation pages](https://defold.com/learn) for more examples, tutorials, manuals and API docs.
216 |
217 | If you run into trouble, help is available in [our forum](https://forum.defold.com).
218 |
219 | Happy Defolding!
220 |
221 |
222 | ## The complete movement script
223 |
224 | ```lua
225 | local speed = 150
226 |
227 | function init(self)
228 | msg.post(".", "acquire_input_focus")
229 | self.dir = vmath.vector3()
230 | self.current_anim = nil
231 | end
232 |
233 | function update(self, dt)
234 | if vmath.length_sqr(self.dir) > 1 then
235 | self.dir = vmath.normalize(self.dir)
236 | end
237 | local p = go.get_position()
238 | go.set_position(p + self.dir * speed * dt)
239 |
240 | -- animate the astronaut
241 |
242 | local anim = hash("idle")
243 |
244 | if self.dir.x > 0 then
245 | anim = hash("right")
246 | elseif self.dir.x < 0 then
247 | anim = hash("left")
248 | elseif self.dir.y > 0 then
249 | anim = hash("back")
250 | elseif self.dir.y < 0 then
251 | anim = hash("front")
252 | end
253 |
254 | if anim ~= self.current_anim then
255 | sprite.play_flipbook("#sprite", anim)
256 | self.current_anim = anim
257 | end
258 |
259 | -- done animating
260 |
261 | self.dir = vmath.vector3()
262 | end
263 |
264 | function on_input(self, action_id, action)
265 | if action_id == hash("front") then
266 | self.dir.y = -1
267 | elseif action_id == hash("back") then
268 | self.dir.y = 1
269 | elseif action_id == hash("left") then
270 | self.dir.x = -1
271 | elseif action_id == hash("right") then
272 | self.dir.x = 1
273 | end
274 | end
275 | ```
276 |
277 | ---
278 |
--------------------------------------------------------------------------------
/assets/astronaut/back_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/back_01.png
--------------------------------------------------------------------------------
/assets/astronaut/back_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/back_02.png
--------------------------------------------------------------------------------
/assets/astronaut/back_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/back_03.png
--------------------------------------------------------------------------------
/assets/astronaut/back_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/back_04.png
--------------------------------------------------------------------------------
/assets/astronaut/back_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/back_05.png
--------------------------------------------------------------------------------
/assets/astronaut/back_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/back_06.png
--------------------------------------------------------------------------------
/assets/astronaut/front_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/front_01.png
--------------------------------------------------------------------------------
/assets/astronaut/front_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/front_02.png
--------------------------------------------------------------------------------
/assets/astronaut/front_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/front_03.png
--------------------------------------------------------------------------------
/assets/astronaut/front_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/front_04.png
--------------------------------------------------------------------------------
/assets/astronaut/front_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/front_05.png
--------------------------------------------------------------------------------
/assets/astronaut/front_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/front_06.png
--------------------------------------------------------------------------------
/assets/astronaut/idle_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/idle_01.png
--------------------------------------------------------------------------------
/assets/astronaut/idle_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/idle_02.png
--------------------------------------------------------------------------------
/assets/astronaut/idle_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/idle_03.png
--------------------------------------------------------------------------------
/assets/astronaut/idle_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/idle_04.png
--------------------------------------------------------------------------------
/assets/astronaut/idle_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/idle_05.png
--------------------------------------------------------------------------------
/assets/astronaut/left_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/left_01.png
--------------------------------------------------------------------------------
/assets/astronaut/left_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/left_02.png
--------------------------------------------------------------------------------
/assets/astronaut/left_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/left_03.png
--------------------------------------------------------------------------------
/assets/astronaut/left_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/left_04.png
--------------------------------------------------------------------------------
/assets/astronaut/left_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/left_05.png
--------------------------------------------------------------------------------
/assets/astronaut/left_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/left_06.png
--------------------------------------------------------------------------------
/assets/astronaut/right_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/right_01.png
--------------------------------------------------------------------------------
/assets/astronaut/right_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/right_02.png
--------------------------------------------------------------------------------
/assets/astronaut/right_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/right_03.png
--------------------------------------------------------------------------------
/assets/astronaut/right_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/right_04.png
--------------------------------------------------------------------------------
/assets/astronaut/right_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/right_05.png
--------------------------------------------------------------------------------
/assets/astronaut/right_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/astronaut/right_06.png
--------------------------------------------------------------------------------
/assets/tiles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/assets/tiles.png
--------------------------------------------------------------------------------
/doc/add_animation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/add_animation.png
--------------------------------------------------------------------------------
/doc/add_animation@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/add_animation@2x.png
--------------------------------------------------------------------------------
/doc/add_images.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/add_images.png
--------------------------------------------------------------------------------
/doc/add_images@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/add_images@2x.png
--------------------------------------------------------------------------------
/doc/astronaut_atlas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/astronaut_atlas.png
--------------------------------------------------------------------------------
/doc/astronaut_atlas@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/astronaut_atlas@2x.png
--------------------------------------------------------------------------------
/doc/astronaut_go.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/astronaut_go.png
--------------------------------------------------------------------------------
/doc/astronaut_go@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/astronaut_go@2x.png
--------------------------------------------------------------------------------
/doc/building_blocks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/building_blocks.png
--------------------------------------------------------------------------------
/doc/building_blocks@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/building_blocks@2x.png
--------------------------------------------------------------------------------
/doc/input_bindings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/input_bindings.png
--------------------------------------------------------------------------------
/doc/intro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/intro.png
--------------------------------------------------------------------------------
/doc/main_collection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/main_collection.png
--------------------------------------------------------------------------------
/doc/main_collection@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/main_collection@2x.png
--------------------------------------------------------------------------------
/doc/select_images.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/select_images.png
--------------------------------------------------------------------------------
/doc/select_images@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/defold/tutorial-astronaut/fb4f85ec5b905948267feca4b85a0a445111e4d9/doc/select_images@2x.png
--------------------------------------------------------------------------------
/game.project:
--------------------------------------------------------------------------------
1 | [bootstrap]
2 | main_collection = /main/main.collectionc
3 |
4 | [script]
5 | shared_state = 1
6 |
7 | [project]
8 | title = Astronaut walking
9 |
10 | [display]
11 | width = 1280
12 | height = 768
13 |
14 |
--------------------------------------------------------------------------------
/input/game.input_binding:
--------------------------------------------------------------------------------
1 | key_trigger {
2 | input: KEY_DOWN
3 | action: "front"
4 | }
5 | key_trigger {
6 | input: KEY_UP
7 | action: "back"
8 | }
9 | key_trigger {
10 | input: KEY_LEFT
11 | action: "left"
12 | }
13 | key_trigger {
14 | input: KEY_RIGHT
15 | action: "right"
16 | }
17 | mouse_trigger {
18 | input: MOUSE_BUTTON_1
19 | action: "touch"
20 | }
21 |
--------------------------------------------------------------------------------
/main/astronaut.atlas:
--------------------------------------------------------------------------------
1 | animations {
2 | id: "idle"
3 | images {
4 | image: "/assets/astronaut/idle_01.png"
5 | }
6 | images {
7 | image: "/assets/astronaut/idle_02.png"
8 | }
9 | images {
10 | image: "/assets/astronaut/idle_03.png"
11 | }
12 | images {
13 | image: "/assets/astronaut/idle_04.png"
14 | }
15 | images {
16 | image: "/assets/astronaut/idle_05.png"
17 | }
18 | playback: PLAYBACK_LOOP_FORWARD
19 | fps: 10
20 | flip_horizontal: 0
21 | flip_vertical: 0
22 | }
23 | margin: 0
24 | extrude_borders: 0
25 | inner_padding: 0
26 |
--------------------------------------------------------------------------------
/main/astronaut.go:
--------------------------------------------------------------------------------
1 | components {
2 | id: "astronaut"
3 | component: "/main/astronaut.script"
4 | position {
5 | x: 0.0
6 | y: 0.0
7 | z: 0.0
8 | }
9 | rotation {
10 | x: 0.0
11 | y: 0.0
12 | z: 0.0
13 | w: 1.0
14 | }
15 | }
16 | embedded_components {
17 | id: "sprite"
18 | type: "sprite"
19 | data: "tile_set: \"/main/astronaut.atlas\"\n"
20 | "default_animation: \"idle\"\n"
21 | "material: \"/builtins/materials/sprite.material\"\n"
22 | "blend_mode: BLEND_MODE_ALPHA\n"
23 | ""
24 | position {
25 | x: 0.0
26 | y: 0.0
27 | z: 0.0
28 | }
29 | rotation {
30 | x: 0.0
31 | y: 0.0
32 | z: 0.0
33 | w: 1.0
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/main/astronaut.script:
--------------------------------------------------------------------------------
1 | function init(self)
2 | -- Add initialization code here
3 | -- Remove this function if not needed
4 | end
5 |
6 | function final(self)
7 | -- Add finalization code here
8 | -- Remove this function if not needed
9 | end
10 |
11 | function update(self, dt)
12 | -- Add update code here
13 | -- Remove this function if not needed
14 | end
15 |
16 | function on_message(self, message_id, message, sender)
17 | -- Add message-handling code here
18 | -- Remove this function if not needed
19 | end
20 |
21 | function on_input(self, action_id, action)
22 | -- Add input-handling code here
23 | -- Remove this function if not needed
24 | end
25 |
26 | function on_reload(self)
27 | -- Add reload-handling code here
28 | -- Remove this function if not needed
29 | end
--------------------------------------------------------------------------------
/main/level.tilemap:
--------------------------------------------------------------------------------
1 | tile_set: "/main/sandtiles.tilesource"
2 | layers {
3 | id: "layer1"
4 | z: 0.0
5 | is_visible: 1
6 | cell {
7 | x: 0
8 | y: 0
9 | tile: 0
10 | h_flip: 0
11 | v_flip: 0
12 | }
13 | cell {
14 | x: 1
15 | y: 0
16 | tile: 0
17 | h_flip: 0
18 | v_flip: 0
19 | }
20 | cell {
21 | x: 2
22 | y: 0
23 | tile: 0
24 | h_flip: 0
25 | v_flip: 0
26 | }
27 | cell {
28 | x: 3
29 | y: 0
30 | tile: 0
31 | h_flip: 0
32 | v_flip: 0
33 | }
34 | cell {
35 | x: 4
36 | y: 0
37 | tile: 0
38 | h_flip: 0
39 | v_flip: 0
40 | }
41 | cell {
42 | x: 5
43 | y: 0
44 | tile: 0
45 | h_flip: 0
46 | v_flip: 0
47 | }
48 | cell {
49 | x: 6
50 | y: 0
51 | tile: 0
52 | h_flip: 0
53 | v_flip: 0
54 | }
55 | cell {
56 | x: 7
57 | y: 0
58 | tile: 0
59 | h_flip: 0
60 | v_flip: 0
61 | }
62 | cell {
63 | x: 8
64 | y: 0
65 | tile: 0
66 | h_flip: 0
67 | v_flip: 0
68 | }
69 | cell {
70 | x: 9
71 | y: 0
72 | tile: 0
73 | h_flip: 0
74 | v_flip: 0
75 | }
76 | cell {
77 | x: 10
78 | y: 0
79 | tile: 0
80 | h_flip: 0
81 | v_flip: 0
82 | }
83 | cell {
84 | x: 11
85 | y: 0
86 | tile: 0
87 | h_flip: 0
88 | v_flip: 0
89 | }
90 | cell {
91 | x: 12
92 | y: 0
93 | tile: 0
94 | h_flip: 0
95 | v_flip: 0
96 | }
97 | cell {
98 | x: 13
99 | y: 0
100 | tile: 0
101 | h_flip: 0
102 | v_flip: 0
103 | }
104 | cell {
105 | x: 14
106 | y: 0
107 | tile: 0
108 | h_flip: 0
109 | v_flip: 0
110 | }
111 | cell {
112 | x: 15
113 | y: 0
114 | tile: 0
115 | h_flip: 0
116 | v_flip: 0
117 | }
118 | cell {
119 | x: 16
120 | y: 0
121 | tile: 0
122 | h_flip: 0
123 | v_flip: 0
124 | }
125 | cell {
126 | x: 17
127 | y: 0
128 | tile: 0
129 | h_flip: 0
130 | v_flip: 0
131 | }
132 | cell {
133 | x: 18
134 | y: 0
135 | tile: 0
136 | h_flip: 0
137 | v_flip: 0
138 | }
139 | cell {
140 | x: 19
141 | y: 0
142 | tile: 0
143 | h_flip: 0
144 | v_flip: 0
145 | }
146 | cell {
147 | x: 0
148 | y: 1
149 | tile: 0
150 | h_flip: 0
151 | v_flip: 0
152 | }
153 | cell {
154 | x: 1
155 | y: 1
156 | tile: 3
157 | h_flip: 0
158 | v_flip: 0
159 | }
160 | cell {
161 | x: 2
162 | y: 1
163 | tile: 2
164 | h_flip: 0
165 | v_flip: 0
166 | }
167 | cell {
168 | x: 3
169 | y: 1
170 | tile: 2
171 | h_flip: 0
172 | v_flip: 0
173 | }
174 | cell {
175 | x: 4
176 | y: 1
177 | tile: 2
178 | h_flip: 0
179 | v_flip: 0
180 | }
181 | cell {
182 | x: 5
183 | y: 1
184 | tile: 2
185 | h_flip: 0
186 | v_flip: 0
187 | }
188 | cell {
189 | x: 6
190 | y: 1
191 | tile: 2
192 | h_flip: 0
193 | v_flip: 0
194 | }
195 | cell {
196 | x: 7
197 | y: 1
198 | tile: 2
199 | h_flip: 0
200 | v_flip: 0
201 | }
202 | cell {
203 | x: 8
204 | y: 1
205 | tile: 2
206 | h_flip: 0
207 | v_flip: 0
208 | }
209 | cell {
210 | x: 9
211 | y: 1
212 | tile: 2
213 | h_flip: 0
214 | v_flip: 0
215 | }
216 | cell {
217 | x: 10
218 | y: 1
219 | tile: 2
220 | h_flip: 0
221 | v_flip: 0
222 | }
223 | cell {
224 | x: 11
225 | y: 1
226 | tile: 2
227 | h_flip: 0
228 | v_flip: 0
229 | }
230 | cell {
231 | x: 12
232 | y: 1
233 | tile: 2
234 | h_flip: 0
235 | v_flip: 0
236 | }
237 | cell {
238 | x: 13
239 | y: 1
240 | tile: 2
241 | h_flip: 0
242 | v_flip: 0
243 | }
244 | cell {
245 | x: 14
246 | y: 1
247 | tile: 2
248 | h_flip: 0
249 | v_flip: 0
250 | }
251 | cell {
252 | x: 15
253 | y: 1
254 | tile: 2
255 | h_flip: 0
256 | v_flip: 0
257 | }
258 | cell {
259 | x: 16
260 | y: 1
261 | tile: 2
262 | h_flip: 0
263 | v_flip: 0
264 | }
265 | cell {
266 | x: 17
267 | y: 1
268 | tile: 2
269 | h_flip: 0
270 | v_flip: 0
271 | }
272 | cell {
273 | x: 18
274 | y: 1
275 | tile: 3
276 | h_flip: 0
277 | v_flip: 0
278 | }
279 | cell {
280 | x: 19
281 | y: 1
282 | tile: 0
283 | h_flip: 0
284 | v_flip: 0
285 | }
286 | cell {
287 | x: 0
288 | y: 2
289 | tile: 0
290 | h_flip: 0
291 | v_flip: 0
292 | }
293 | cell {
294 | x: 1
295 | y: 2
296 | tile: 2
297 | h_flip: 0
298 | v_flip: 0
299 | }
300 | cell {
301 | x: 2
302 | y: 2
303 | tile: 3
304 | h_flip: 0
305 | v_flip: 0
306 | }
307 | cell {
308 | x: 3
309 | y: 2
310 | tile: 3
311 | h_flip: 0
312 | v_flip: 0
313 | }
314 | cell {
315 | x: 4
316 | y: 2
317 | tile: 3
318 | h_flip: 0
319 | v_flip: 0
320 | }
321 | cell {
322 | x: 5
323 | y: 2
324 | tile: 3
325 | h_flip: 0
326 | v_flip: 0
327 | }
328 | cell {
329 | x: 6
330 | y: 2
331 | tile: 3
332 | h_flip: 0
333 | v_flip: 0
334 | }
335 | cell {
336 | x: 7
337 | y: 2
338 | tile: 3
339 | h_flip: 0
340 | v_flip: 0
341 | }
342 | cell {
343 | x: 8
344 | y: 2
345 | tile: 3
346 | h_flip: 0
347 | v_flip: 0
348 | }
349 | cell {
350 | x: 9
351 | y: 2
352 | tile: 3
353 | h_flip: 0
354 | v_flip: 0
355 | }
356 | cell {
357 | x: 10
358 | y: 2
359 | tile: 3
360 | h_flip: 0
361 | v_flip: 0
362 | }
363 | cell {
364 | x: 11
365 | y: 2
366 | tile: 3
367 | h_flip: 0
368 | v_flip: 0
369 | }
370 | cell {
371 | x: 12
372 | y: 2
373 | tile: 3
374 | h_flip: 0
375 | v_flip: 0
376 | }
377 | cell {
378 | x: 13
379 | y: 2
380 | tile: 3
381 | h_flip: 0
382 | v_flip: 0
383 | }
384 | cell {
385 | x: 14
386 | y: 2
387 | tile: 3
388 | h_flip: 0
389 | v_flip: 0
390 | }
391 | cell {
392 | x: 15
393 | y: 2
394 | tile: 3
395 | h_flip: 0
396 | v_flip: 0
397 | }
398 | cell {
399 | x: 16
400 | y: 2
401 | tile: 3
402 | h_flip: 0
403 | v_flip: 0
404 | }
405 | cell {
406 | x: 17
407 | y: 2
408 | tile: 3
409 | h_flip: 0
410 | v_flip: 0
411 | }
412 | cell {
413 | x: 18
414 | y: 2
415 | tile: 2
416 | h_flip: 0
417 | v_flip: 0
418 | }
419 | cell {
420 | x: 19
421 | y: 2
422 | tile: 0
423 | h_flip: 0
424 | v_flip: 0
425 | }
426 | cell {
427 | x: 0
428 | y: 3
429 | tile: 0
430 | h_flip: 0
431 | v_flip: 0
432 | }
433 | cell {
434 | x: 1
435 | y: 3
436 | tile: 2
437 | h_flip: 0
438 | v_flip: 0
439 | }
440 | cell {
441 | x: 2
442 | y: 3
443 | tile: 3
444 | h_flip: 0
445 | v_flip: 0
446 | }
447 | cell {
448 | x: 3
449 | y: 3
450 | tile: 1
451 | h_flip: 0
452 | v_flip: 0
453 | }
454 | cell {
455 | x: 4
456 | y: 3
457 | tile: 2
458 | h_flip: 0
459 | v_flip: 0
460 | }
461 | cell {
462 | x: 5
463 | y: 3
464 | tile: 1
465 | h_flip: 0
466 | v_flip: 0
467 | }
468 | cell {
469 | x: 6
470 | y: 3
471 | tile: 2
472 | h_flip: 0
473 | v_flip: 0
474 | }
475 | cell {
476 | x: 7
477 | y: 3
478 | tile: 1
479 | h_flip: 0
480 | v_flip: 0
481 | }
482 | cell {
483 | x: 8
484 | y: 3
485 | tile: 2
486 | h_flip: 0
487 | v_flip: 0
488 | }
489 | cell {
490 | x: 9
491 | y: 3
492 | tile: 1
493 | h_flip: 0
494 | v_flip: 0
495 | }
496 | cell {
497 | x: 10
498 | y: 3
499 | tile: 2
500 | h_flip: 0
501 | v_flip: 0
502 | }
503 | cell {
504 | x: 11
505 | y: 3
506 | tile: 1
507 | h_flip: 0
508 | v_flip: 0
509 | }
510 | cell {
511 | x: 12
512 | y: 3
513 | tile: 2
514 | h_flip: 0
515 | v_flip: 0
516 | }
517 | cell {
518 | x: 13
519 | y: 3
520 | tile: 1
521 | h_flip: 0
522 | v_flip: 0
523 | }
524 | cell {
525 | x: 14
526 | y: 3
527 | tile: 2
528 | h_flip: 0
529 | v_flip: 0
530 | }
531 | cell {
532 | x: 15
533 | y: 3
534 | tile: 1
535 | h_flip: 0
536 | v_flip: 0
537 | }
538 | cell {
539 | x: 16
540 | y: 3
541 | tile: 2
542 | h_flip: 0
543 | v_flip: 0
544 | }
545 | cell {
546 | x: 17
547 | y: 3
548 | tile: 3
549 | h_flip: 0
550 | v_flip: 0
551 | }
552 | cell {
553 | x: 18
554 | y: 3
555 | tile: 2
556 | h_flip: 0
557 | v_flip: 0
558 | }
559 | cell {
560 | x: 19
561 | y: 3
562 | tile: 0
563 | h_flip: 0
564 | v_flip: 0
565 | }
566 | cell {
567 | x: 0
568 | y: 4
569 | tile: 0
570 | h_flip: 0
571 | v_flip: 0
572 | }
573 | cell {
574 | x: 1
575 | y: 4
576 | tile: 2
577 | h_flip: 0
578 | v_flip: 0
579 | }
580 | cell {
581 | x: 2
582 | y: 4
583 | tile: 3
584 | h_flip: 0
585 | v_flip: 0
586 | }
587 | cell {
588 | x: 3
589 | y: 4
590 | tile: 2
591 | h_flip: 0
592 | v_flip: 0
593 | }
594 | cell {
595 | x: 4
596 | y: 4
597 | tile: 3
598 | h_flip: 0
599 | v_flip: 0
600 | }
601 | cell {
602 | x: 5
603 | y: 4
604 | tile: 2
605 | h_flip: 0
606 | v_flip: 0
607 | }
608 | cell {
609 | x: 6
610 | y: 4
611 | tile: 3
612 | h_flip: 0
613 | v_flip: 0
614 | }
615 | cell {
616 | x: 7
617 | y: 4
618 | tile: 2
619 | h_flip: 0
620 | v_flip: 0
621 | }
622 | cell {
623 | x: 8
624 | y: 4
625 | tile: 3
626 | h_flip: 0
627 | v_flip: 0
628 | }
629 | cell {
630 | x: 9
631 | y: 4
632 | tile: 2
633 | h_flip: 0
634 | v_flip: 0
635 | }
636 | cell {
637 | x: 10
638 | y: 4
639 | tile: 2
640 | h_flip: 0
641 | v_flip: 0
642 | }
643 | cell {
644 | x: 11
645 | y: 4
646 | tile: 3
647 | h_flip: 0
648 | v_flip: 0
649 | }
650 | cell {
651 | x: 12
652 | y: 4
653 | tile: 2
654 | h_flip: 0
655 | v_flip: 0
656 | }
657 | cell {
658 | x: 13
659 | y: 4
660 | tile: 3
661 | h_flip: 0
662 | v_flip: 0
663 | }
664 | cell {
665 | x: 14
666 | y: 4
667 | tile: 2
668 | h_flip: 0
669 | v_flip: 0
670 | }
671 | cell {
672 | x: 15
673 | y: 4
674 | tile: 3
675 | h_flip: 0
676 | v_flip: 0
677 | }
678 | cell {
679 | x: 16
680 | y: 4
681 | tile: 1
682 | h_flip: 0
683 | v_flip: 0
684 | }
685 | cell {
686 | x: 17
687 | y: 4
688 | tile: 3
689 | h_flip: 0
690 | v_flip: 0
691 | }
692 | cell {
693 | x: 18
694 | y: 4
695 | tile: 2
696 | h_flip: 0
697 | v_flip: 0
698 | }
699 | cell {
700 | x: 19
701 | y: 4
702 | tile: 0
703 | h_flip: 0
704 | v_flip: 0
705 | }
706 | cell {
707 | x: 0
708 | y: 5
709 | tile: 0
710 | h_flip: 0
711 | v_flip: 0
712 | }
713 | cell {
714 | x: 1
715 | y: 5
716 | tile: 2
717 | h_flip: 0
718 | v_flip: 0
719 | }
720 | cell {
721 | x: 2
722 | y: 5
723 | tile: 3
724 | h_flip: 0
725 | v_flip: 0
726 | }
727 | cell {
728 | x: 3
729 | y: 5
730 | tile: 1
731 | h_flip: 0
732 | v_flip: 0
733 | }
734 | cell {
735 | x: 4
736 | y: 5
737 | tile: 2
738 | h_flip: 0
739 | v_flip: 0
740 | }
741 | cell {
742 | x: 5
743 | y: 5
744 | tile: 3
745 | h_flip: 0
746 | v_flip: 0
747 | }
748 | cell {
749 | x: 6
750 | y: 5
751 | tile: 2
752 | h_flip: 0
753 | v_flip: 0
754 | }
755 | cell {
756 | x: 7
757 | y: 5
758 | tile: 3
759 | h_flip: 0
760 | v_flip: 0
761 | }
762 | cell {
763 | x: 8
764 | y: 5
765 | tile: 2
766 | h_flip: 0
767 | v_flip: 0
768 | }
769 | cell {
770 | x: 9
771 | y: 5
772 | tile: 3
773 | h_flip: 0
774 | v_flip: 0
775 | }
776 | cell {
777 | x: 10
778 | y: 5
779 | tile: 3
780 | h_flip: 0
781 | v_flip: 0
782 | }
783 | cell {
784 | x: 11
785 | y: 5
786 | tile: 2
787 | h_flip: 0
788 | v_flip: 0
789 | }
790 | cell {
791 | x: 12
792 | y: 5
793 | tile: 3
794 | h_flip: 0
795 | v_flip: 0
796 | }
797 | cell {
798 | x: 13
799 | y: 5
800 | tile: 2
801 | h_flip: 0
802 | v_flip: 0
803 | }
804 | cell {
805 | x: 14
806 | y: 5
807 | tile: 3
808 | h_flip: 0
809 | v_flip: 0
810 | }
811 | cell {
812 | x: 15
813 | y: 5
814 | tile: 2
815 | h_flip: 0
816 | v_flip: 0
817 | }
818 | cell {
819 | x: 16
820 | y: 5
821 | tile: 2
822 | h_flip: 0
823 | v_flip: 0
824 | }
825 | cell {
826 | x: 17
827 | y: 5
828 | tile: 3
829 | h_flip: 0
830 | v_flip: 0
831 | }
832 | cell {
833 | x: 18
834 | y: 5
835 | tile: 2
836 | h_flip: 0
837 | v_flip: 0
838 | }
839 | cell {
840 | x: 19
841 | y: 5
842 | tile: 0
843 | h_flip: 0
844 | v_flip: 0
845 | }
846 | cell {
847 | x: 0
848 | y: 6
849 | tile: 0
850 | h_flip: 0
851 | v_flip: 0
852 | }
853 | cell {
854 | x: 1
855 | y: 6
856 | tile: 2
857 | h_flip: 0
858 | v_flip: 0
859 | }
860 | cell {
861 | x: 2
862 | y: 6
863 | tile: 3
864 | h_flip: 0
865 | v_flip: 0
866 | }
867 | cell {
868 | x: 3
869 | y: 6
870 | tile: 2
871 | h_flip: 0
872 | v_flip: 0
873 | }
874 | cell {
875 | x: 4
876 | y: 6
877 | tile: 2
878 | h_flip: 0
879 | v_flip: 0
880 | }
881 | cell {
882 | x: 5
883 | y: 6
884 | tile: 3
885 | h_flip: 0
886 | v_flip: 0
887 | }
888 | cell {
889 | x: 6
890 | y: 6
891 | tile: 2
892 | h_flip: 0
893 | v_flip: 0
894 | }
895 | cell {
896 | x: 7
897 | y: 6
898 | tile: 3
899 | h_flip: 0
900 | v_flip: 0
901 | }
902 | cell {
903 | x: 8
904 | y: 6
905 | tile: 2
906 | h_flip: 0
907 | v_flip: 0
908 | }
909 | cell {
910 | x: 9
911 | y: 6
912 | tile: 3
913 | h_flip: 0
914 | v_flip: 0
915 | }
916 | cell {
917 | x: 10
918 | y: 6
919 | tile: 3
920 | h_flip: 0
921 | v_flip: 0
922 | }
923 | cell {
924 | x: 11
925 | y: 6
926 | tile: 2
927 | h_flip: 0
928 | v_flip: 0
929 | }
930 | cell {
931 | x: 12
932 | y: 6
933 | tile: 3
934 | h_flip: 0
935 | v_flip: 0
936 | }
937 | cell {
938 | x: 13
939 | y: 6
940 | tile: 2
941 | h_flip: 0
942 | v_flip: 0
943 | }
944 | cell {
945 | x: 14
946 | y: 6
947 | tile: 3
948 | h_flip: 0
949 | v_flip: 0
950 | }
951 | cell {
952 | x: 15
953 | y: 6
954 | tile: 2
955 | h_flip: 0
956 | v_flip: 0
957 | }
958 | cell {
959 | x: 16
960 | y: 6
961 | tile: 1
962 | h_flip: 0
963 | v_flip: 0
964 | }
965 | cell {
966 | x: 17
967 | y: 6
968 | tile: 3
969 | h_flip: 0
970 | v_flip: 0
971 | }
972 | cell {
973 | x: 18
974 | y: 6
975 | tile: 2
976 | h_flip: 0
977 | v_flip: 0
978 | }
979 | cell {
980 | x: 19
981 | y: 6
982 | tile: 0
983 | h_flip: 0
984 | v_flip: 0
985 | }
986 | cell {
987 | x: 0
988 | y: 7
989 | tile: 0
990 | h_flip: 0
991 | v_flip: 0
992 | }
993 | cell {
994 | x: 1
995 | y: 7
996 | tile: 2
997 | h_flip: 0
998 | v_flip: 0
999 | }
1000 | cell {
1001 | x: 2
1002 | y: 7
1003 | tile: 3
1004 | h_flip: 0
1005 | v_flip: 0
1006 | }
1007 | cell {
1008 | x: 3
1009 | y: 7
1010 | tile: 1
1011 | h_flip: 0
1012 | v_flip: 0
1013 | }
1014 | cell {
1015 | x: 4
1016 | y: 7
1017 | tile: 3
1018 | h_flip: 0
1019 | v_flip: 0
1020 | }
1021 | cell {
1022 | x: 5
1023 | y: 7
1024 | tile: 2
1025 | h_flip: 0
1026 | v_flip: 0
1027 | }
1028 | cell {
1029 | x: 6
1030 | y: 7
1031 | tile: 3
1032 | h_flip: 0
1033 | v_flip: 0
1034 | }
1035 | cell {
1036 | x: 7
1037 | y: 7
1038 | tile: 2
1039 | h_flip: 0
1040 | v_flip: 0
1041 | }
1042 | cell {
1043 | x: 8
1044 | y: 7
1045 | tile: 3
1046 | h_flip: 0
1047 | v_flip: 0
1048 | }
1049 | cell {
1050 | x: 9
1051 | y: 7
1052 | tile: 2
1053 | h_flip: 0
1054 | v_flip: 0
1055 | }
1056 | cell {
1057 | x: 10
1058 | y: 7
1059 | tile: 2
1060 | h_flip: 0
1061 | v_flip: 0
1062 | }
1063 | cell {
1064 | x: 11
1065 | y: 7
1066 | tile: 3
1067 | h_flip: 0
1068 | v_flip: 0
1069 | }
1070 | cell {
1071 | x: 12
1072 | y: 7
1073 | tile: 2
1074 | h_flip: 0
1075 | v_flip: 0
1076 | }
1077 | cell {
1078 | x: 13
1079 | y: 7
1080 | tile: 3
1081 | h_flip: 0
1082 | v_flip: 0
1083 | }
1084 | cell {
1085 | x: 14
1086 | y: 7
1087 | tile: 2
1088 | h_flip: 0
1089 | v_flip: 0
1090 | }
1091 | cell {
1092 | x: 15
1093 | y: 7
1094 | tile: 3
1095 | h_flip: 0
1096 | v_flip: 0
1097 | }
1098 | cell {
1099 | x: 16
1100 | y: 7
1101 | tile: 2
1102 | h_flip: 0
1103 | v_flip: 0
1104 | }
1105 | cell {
1106 | x: 17
1107 | y: 7
1108 | tile: 3
1109 | h_flip: 0
1110 | v_flip: 0
1111 | }
1112 | cell {
1113 | x: 18
1114 | y: 7
1115 | tile: 2
1116 | h_flip: 0
1117 | v_flip: 0
1118 | }
1119 | cell {
1120 | x: 19
1121 | y: 7
1122 | tile: 0
1123 | h_flip: 0
1124 | v_flip: 0
1125 | }
1126 | cell {
1127 | x: 0
1128 | y: 8
1129 | tile: 0
1130 | h_flip: 0
1131 | v_flip: 0
1132 | }
1133 | cell {
1134 | x: 1
1135 | y: 8
1136 | tile: 2
1137 | h_flip: 0
1138 | v_flip: 0
1139 | }
1140 | cell {
1141 | x: 2
1142 | y: 8
1143 | tile: 3
1144 | h_flip: 0
1145 | v_flip: 0
1146 | }
1147 | cell {
1148 | x: 3
1149 | y: 8
1150 | tile: 2
1151 | h_flip: 0
1152 | v_flip: 0
1153 | }
1154 | cell {
1155 | x: 4
1156 | y: 8
1157 | tile: 1
1158 | h_flip: 0
1159 | v_flip: 0
1160 | }
1161 | cell {
1162 | x: 5
1163 | y: 8
1164 | tile: 2
1165 | h_flip: 0
1166 | v_flip: 0
1167 | }
1168 | cell {
1169 | x: 6
1170 | y: 8
1171 | tile: 1
1172 | h_flip: 0
1173 | v_flip: 0
1174 | }
1175 | cell {
1176 | x: 7
1177 | y: 8
1178 | tile: 2
1179 | h_flip: 0
1180 | v_flip: 0
1181 | }
1182 | cell {
1183 | x: 8
1184 | y: 8
1185 | tile: 1
1186 | h_flip: 0
1187 | v_flip: 0
1188 | }
1189 | cell {
1190 | x: 9
1191 | y: 8
1192 | tile: 2
1193 | h_flip: 0
1194 | v_flip: 0
1195 | }
1196 | cell {
1197 | x: 10
1198 | y: 8
1199 | tile: 1
1200 | h_flip: 0
1201 | v_flip: 0
1202 | }
1203 | cell {
1204 | x: 11
1205 | y: 8
1206 | tile: 2
1207 | h_flip: 0
1208 | v_flip: 0
1209 | }
1210 | cell {
1211 | x: 12
1212 | y: 8
1213 | tile: 1
1214 | h_flip: 0
1215 | v_flip: 0
1216 | }
1217 | cell {
1218 | x: 13
1219 | y: 8
1220 | tile: 2
1221 | h_flip: 0
1222 | v_flip: 0
1223 | }
1224 | cell {
1225 | x: 14
1226 | y: 8
1227 | tile: 1
1228 | h_flip: 0
1229 | v_flip: 0
1230 | }
1231 | cell {
1232 | x: 15
1233 | y: 8
1234 | tile: 2
1235 | h_flip: 0
1236 | v_flip: 0
1237 | }
1238 | cell {
1239 | x: 16
1240 | y: 8
1241 | tile: 1
1242 | h_flip: 0
1243 | v_flip: 0
1244 | }
1245 | cell {
1246 | x: 17
1247 | y: 8
1248 | tile: 3
1249 | h_flip: 0
1250 | v_flip: 0
1251 | }
1252 | cell {
1253 | x: 18
1254 | y: 8
1255 | tile: 2
1256 | h_flip: 0
1257 | v_flip: 0
1258 | }
1259 | cell {
1260 | x: 19
1261 | y: 8
1262 | tile: 0
1263 | h_flip: 0
1264 | v_flip: 0
1265 | }
1266 | cell {
1267 | x: 0
1268 | y: 9
1269 | tile: 0
1270 | h_flip: 0
1271 | v_flip: 0
1272 | }
1273 | cell {
1274 | x: 1
1275 | y: 9
1276 | tile: 2
1277 | h_flip: 0
1278 | v_flip: 0
1279 | }
1280 | cell {
1281 | x: 2
1282 | y: 9
1283 | tile: 3
1284 | h_flip: 0
1285 | v_flip: 0
1286 | }
1287 | cell {
1288 | x: 3
1289 | y: 9
1290 | tile: 3
1291 | h_flip: 0
1292 | v_flip: 0
1293 | }
1294 | cell {
1295 | x: 4
1296 | y: 9
1297 | tile: 3
1298 | h_flip: 0
1299 | v_flip: 0
1300 | }
1301 | cell {
1302 | x: 5
1303 | y: 9
1304 | tile: 3
1305 | h_flip: 0
1306 | v_flip: 0
1307 | }
1308 | cell {
1309 | x: 6
1310 | y: 9
1311 | tile: 3
1312 | h_flip: 0
1313 | v_flip: 0
1314 | }
1315 | cell {
1316 | x: 7
1317 | y: 9
1318 | tile: 3
1319 | h_flip: 0
1320 | v_flip: 0
1321 | }
1322 | cell {
1323 | x: 8
1324 | y: 9
1325 | tile: 3
1326 | h_flip: 0
1327 | v_flip: 0
1328 | }
1329 | cell {
1330 | x: 9
1331 | y: 9
1332 | tile: 3
1333 | h_flip: 0
1334 | v_flip: 0
1335 | }
1336 | cell {
1337 | x: 10
1338 | y: 9
1339 | tile: 3
1340 | h_flip: 0
1341 | v_flip: 0
1342 | }
1343 | cell {
1344 | x: 11
1345 | y: 9
1346 | tile: 3
1347 | h_flip: 0
1348 | v_flip: 0
1349 | }
1350 | cell {
1351 | x: 12
1352 | y: 9
1353 | tile: 3
1354 | h_flip: 0
1355 | v_flip: 0
1356 | }
1357 | cell {
1358 | x: 13
1359 | y: 9
1360 | tile: 3
1361 | h_flip: 0
1362 | v_flip: 0
1363 | }
1364 | cell {
1365 | x: 14
1366 | y: 9
1367 | tile: 3
1368 | h_flip: 0
1369 | v_flip: 0
1370 | }
1371 | cell {
1372 | x: 15
1373 | y: 9
1374 | tile: 3
1375 | h_flip: 0
1376 | v_flip: 0
1377 | }
1378 | cell {
1379 | x: 16
1380 | y: 9
1381 | tile: 3
1382 | h_flip: 0
1383 | v_flip: 0
1384 | }
1385 | cell {
1386 | x: 17
1387 | y: 9
1388 | tile: 3
1389 | h_flip: 0
1390 | v_flip: 0
1391 | }
1392 | cell {
1393 | x: 18
1394 | y: 9
1395 | tile: 2
1396 | h_flip: 0
1397 | v_flip: 0
1398 | }
1399 | cell {
1400 | x: 19
1401 | y: 9
1402 | tile: 0
1403 | h_flip: 0
1404 | v_flip: 0
1405 | }
1406 | cell {
1407 | x: 0
1408 | y: 10
1409 | tile: 0
1410 | h_flip: 0
1411 | v_flip: 0
1412 | }
1413 | cell {
1414 | x: 1
1415 | y: 10
1416 | tile: 3
1417 | h_flip: 0
1418 | v_flip: 0
1419 | }
1420 | cell {
1421 | x: 2
1422 | y: 10
1423 | tile: 2
1424 | h_flip: 0
1425 | v_flip: 0
1426 | }
1427 | cell {
1428 | x: 3
1429 | y: 10
1430 | tile: 2
1431 | h_flip: 0
1432 | v_flip: 0
1433 | }
1434 | cell {
1435 | x: 4
1436 | y: 10
1437 | tile: 2
1438 | h_flip: 0
1439 | v_flip: 0
1440 | }
1441 | cell {
1442 | x: 5
1443 | y: 10
1444 | tile: 2
1445 | h_flip: 0
1446 | v_flip: 0
1447 | }
1448 | cell {
1449 | x: 6
1450 | y: 10
1451 | tile: 2
1452 | h_flip: 0
1453 | v_flip: 0
1454 | }
1455 | cell {
1456 | x: 7
1457 | y: 10
1458 | tile: 2
1459 | h_flip: 0
1460 | v_flip: 0
1461 | }
1462 | cell {
1463 | x: 8
1464 | y: 10
1465 | tile: 2
1466 | h_flip: 0
1467 | v_flip: 0
1468 | }
1469 | cell {
1470 | x: 9
1471 | y: 10
1472 | tile: 2
1473 | h_flip: 0
1474 | v_flip: 0
1475 | }
1476 | cell {
1477 | x: 10
1478 | y: 10
1479 | tile: 2
1480 | h_flip: 0
1481 | v_flip: 0
1482 | }
1483 | cell {
1484 | x: 11
1485 | y: 10
1486 | tile: 2
1487 | h_flip: 0
1488 | v_flip: 0
1489 | }
1490 | cell {
1491 | x: 12
1492 | y: 10
1493 | tile: 2
1494 | h_flip: 0
1495 | v_flip: 0
1496 | }
1497 | cell {
1498 | x: 13
1499 | y: 10
1500 | tile: 2
1501 | h_flip: 0
1502 | v_flip: 0
1503 | }
1504 | cell {
1505 | x: 14
1506 | y: 10
1507 | tile: 2
1508 | h_flip: 0
1509 | v_flip: 0
1510 | }
1511 | cell {
1512 | x: 15
1513 | y: 10
1514 | tile: 2
1515 | h_flip: 0
1516 | v_flip: 0
1517 | }
1518 | cell {
1519 | x: 16
1520 | y: 10
1521 | tile: 2
1522 | h_flip: 0
1523 | v_flip: 0
1524 | }
1525 | cell {
1526 | x: 17
1527 | y: 10
1528 | tile: 2
1529 | h_flip: 0
1530 | v_flip: 0
1531 | }
1532 | cell {
1533 | x: 18
1534 | y: 10
1535 | tile: 3
1536 | h_flip: 0
1537 | v_flip: 0
1538 | }
1539 | cell {
1540 | x: 19
1541 | y: 10
1542 | tile: 0
1543 | h_flip: 0
1544 | v_flip: 0
1545 | }
1546 | cell {
1547 | x: 0
1548 | y: 11
1549 | tile: 0
1550 | h_flip: 0
1551 | v_flip: 0
1552 | }
1553 | cell {
1554 | x: 1
1555 | y: 11
1556 | tile: 0
1557 | h_flip: 0
1558 | v_flip: 0
1559 | }
1560 | cell {
1561 | x: 2
1562 | y: 11
1563 | tile: 0
1564 | h_flip: 0
1565 | v_flip: 0
1566 | }
1567 | cell {
1568 | x: 3
1569 | y: 11
1570 | tile: 0
1571 | h_flip: 0
1572 | v_flip: 0
1573 | }
1574 | cell {
1575 | x: 4
1576 | y: 11
1577 | tile: 0
1578 | h_flip: 0
1579 | v_flip: 0
1580 | }
1581 | cell {
1582 | x: 5
1583 | y: 11
1584 | tile: 0
1585 | h_flip: 0
1586 | v_flip: 0
1587 | }
1588 | cell {
1589 | x: 6
1590 | y: 11
1591 | tile: 0
1592 | h_flip: 0
1593 | v_flip: 0
1594 | }
1595 | cell {
1596 | x: 7
1597 | y: 11
1598 | tile: 0
1599 | h_flip: 0
1600 | v_flip: 0
1601 | }
1602 | cell {
1603 | x: 8
1604 | y: 11
1605 | tile: 0
1606 | h_flip: 0
1607 | v_flip: 0
1608 | }
1609 | cell {
1610 | x: 9
1611 | y: 11
1612 | tile: 0
1613 | h_flip: 0
1614 | v_flip: 0
1615 | }
1616 | cell {
1617 | x: 10
1618 | y: 11
1619 | tile: 0
1620 | h_flip: 0
1621 | v_flip: 0
1622 | }
1623 | cell {
1624 | x: 11
1625 | y: 11
1626 | tile: 0
1627 | h_flip: 0
1628 | v_flip: 0
1629 | }
1630 | cell {
1631 | x: 12
1632 | y: 11
1633 | tile: 0
1634 | h_flip: 0
1635 | v_flip: 0
1636 | }
1637 | cell {
1638 | x: 13
1639 | y: 11
1640 | tile: 0
1641 | h_flip: 0
1642 | v_flip: 0
1643 | }
1644 | cell {
1645 | x: 14
1646 | y: 11
1647 | tile: 0
1648 | h_flip: 0
1649 | v_flip: 0
1650 | }
1651 | cell {
1652 | x: 15
1653 | y: 11
1654 | tile: 0
1655 | h_flip: 0
1656 | v_flip: 0
1657 | }
1658 | cell {
1659 | x: 16
1660 | y: 11
1661 | tile: 0
1662 | h_flip: 0
1663 | v_flip: 0
1664 | }
1665 | cell {
1666 | x: 17
1667 | y: 11
1668 | tile: 0
1669 | h_flip: 0
1670 | v_flip: 0
1671 | }
1672 | cell {
1673 | x: 18
1674 | y: 11
1675 | tile: 0
1676 | h_flip: 0
1677 | v_flip: 0
1678 | }
1679 | cell {
1680 | x: 19
1681 | y: 11
1682 | tile: 0
1683 | h_flip: 0
1684 | v_flip: 0
1685 | }
1686 | }
1687 | layers {
1688 | id: "layer"
1689 | z: 0.1
1690 | is_visible: 1
1691 | cell {
1692 | x: 1
1693 | y: 1
1694 | tile: 5
1695 | h_flip: 0
1696 | v_flip: 0
1697 | }
1698 | cell {
1699 | x: 2
1700 | y: 1
1701 | tile: 5
1702 | h_flip: 0
1703 | v_flip: 0
1704 | }
1705 | cell {
1706 | x: 3
1707 | y: 1
1708 | tile: 4
1709 | h_flip: 0
1710 | v_flip: 0
1711 | }
1712 | cell {
1713 | x: 4
1714 | y: 1
1715 | tile: 4
1716 | h_flip: 0
1717 | v_flip: 0
1718 | }
1719 | cell {
1720 | x: 5
1721 | y: 1
1722 | tile: 5
1723 | h_flip: 0
1724 | v_flip: 0
1725 | }
1726 | cell {
1727 | x: 6
1728 | y: 1
1729 | tile: 4
1730 | h_flip: 0
1731 | v_flip: 0
1732 | }
1733 | cell {
1734 | x: 10
1735 | y: 1
1736 | tile: 4
1737 | h_flip: 0
1738 | v_flip: 0
1739 | }
1740 | cell {
1741 | x: 11
1742 | y: 1
1743 | tile: 5
1744 | h_flip: 0
1745 | v_flip: 0
1746 | }
1747 | cell {
1748 | x: 14
1749 | y: 1
1750 | tile: 4
1751 | h_flip: 0
1752 | v_flip: 0
1753 | }
1754 | cell {
1755 | x: 15
1756 | y: 1
1757 | tile: 4
1758 | h_flip: 0
1759 | v_flip: 0
1760 | }
1761 | cell {
1762 | x: 16
1763 | y: 1
1764 | tile: 5
1765 | h_flip: 0
1766 | v_flip: 0
1767 | }
1768 | cell {
1769 | x: 17
1770 | y: 1
1771 | tile: 4
1772 | h_flip: 0
1773 | v_flip: 0
1774 | }
1775 | cell {
1776 | x: 18
1777 | y: 1
1778 | tile: 4
1779 | h_flip: 0
1780 | v_flip: 0
1781 | }
1782 | cell {
1783 | x: 1
1784 | y: 2
1785 | tile: 4
1786 | h_flip: 0
1787 | v_flip: 0
1788 | }
1789 | cell {
1790 | x: 3
1791 | y: 2
1792 | tile: 4
1793 | h_flip: 0
1794 | v_flip: 0
1795 | }
1796 | cell {
1797 | x: 7
1798 | y: 2
1799 | tile: 5
1800 | h_flip: 0
1801 | v_flip: 0
1802 | }
1803 | cell {
1804 | x: 12
1805 | y: 2
1806 | tile: 4
1807 | h_flip: 0
1808 | v_flip: 0
1809 | }
1810 | cell {
1811 | x: 18
1812 | y: 2
1813 | tile: 4
1814 | h_flip: 0
1815 | v_flip: 0
1816 | }
1817 | cell {
1818 | x: 18
1819 | y: 3
1820 | tile: 5
1821 | h_flip: 0
1822 | v_flip: 0
1823 | }
1824 | cell {
1825 | x: 1
1826 | y: 4
1827 | tile: 4
1828 | h_flip: 0
1829 | v_flip: 0
1830 | }
1831 | cell {
1832 | x: 17
1833 | y: 4
1834 | tile: 4
1835 | h_flip: 0
1836 | v_flip: 0
1837 | }
1838 | cell {
1839 | x: 1
1840 | y: 5
1841 | tile: 4
1842 | h_flip: 0
1843 | v_flip: 0
1844 | }
1845 | cell {
1846 | x: 18
1847 | y: 5
1848 | tile: 5
1849 | h_flip: 0
1850 | v_flip: 0
1851 | }
1852 | cell {
1853 | x: 2
1854 | y: 6
1855 | tile: 4
1856 | h_flip: 0
1857 | v_flip: 0
1858 | }
1859 | cell {
1860 | x: 18
1861 | y: 6
1862 | tile: 4
1863 | h_flip: 0
1864 | v_flip: 0
1865 | }
1866 | cell {
1867 | x: 4
1868 | y: 7
1869 | tile: 4
1870 | h_flip: 0
1871 | v_flip: 0
1872 | }
1873 | cell {
1874 | x: 18
1875 | y: 7
1876 | tile: 5
1877 | h_flip: 0
1878 | v_flip: 0
1879 | }
1880 | cell {
1881 | x: 1
1882 | y: 8
1883 | tile: 5
1884 | h_flip: 0
1885 | v_flip: 0
1886 | }
1887 | cell {
1888 | x: 2
1889 | y: 8
1890 | tile: 4
1891 | h_flip: 0
1892 | v_flip: 0
1893 | }
1894 | cell {
1895 | x: 15
1896 | y: 8
1897 | tile: 4
1898 | h_flip: 0
1899 | v_flip: 0
1900 | }
1901 | cell {
1902 | x: 17
1903 | y: 8
1904 | tile: 4
1905 | h_flip: 0
1906 | v_flip: 0
1907 | }
1908 | cell {
1909 | x: 1
1910 | y: 9
1911 | tile: 4
1912 | h_flip: 0
1913 | v_flip: 0
1914 | }
1915 | cell {
1916 | x: 6
1917 | y: 9
1918 | tile: 4
1919 | h_flip: 0
1920 | v_flip: 0
1921 | }
1922 | cell {
1923 | x: 9
1924 | y: 9
1925 | tile: 4
1926 | h_flip: 0
1927 | v_flip: 0
1928 | }
1929 | cell {
1930 | x: 3
1931 | y: 10
1932 | tile: 4
1933 | h_flip: 0
1934 | v_flip: 0
1935 | }
1936 | cell {
1937 | x: 7
1938 | y: 10
1939 | tile: 5
1940 | h_flip: 0
1941 | v_flip: 0
1942 | }
1943 | cell {
1944 | x: 8
1945 | y: 10
1946 | tile: 4
1947 | h_flip: 0
1948 | v_flip: 0
1949 | }
1950 | cell {
1951 | x: 10
1952 | y: 10
1953 | tile: 4
1954 | h_flip: 0
1955 | v_flip: 0
1956 | }
1957 | cell {
1958 | x: 11
1959 | y: 10
1960 | tile: 5
1961 | h_flip: 0
1962 | v_flip: 0
1963 | }
1964 | cell {
1965 | x: 12
1966 | y: 10
1967 | tile: 4
1968 | h_flip: 0
1969 | v_flip: 0
1970 | }
1971 | cell {
1972 | x: 17
1973 | y: 10
1974 | tile: 4
1975 | h_flip: 0
1976 | v_flip: 0
1977 | }
1978 | cell {
1979 | x: 18
1980 | y: 10
1981 | tile: 5
1982 | h_flip: 0
1983 | v_flip: 0
1984 | }
1985 | }
1986 | material: "/builtins/materials/tile_map.material"
1987 | blend_mode: BLEND_MODE_ALPHA
1988 |
--------------------------------------------------------------------------------
/main/main.collection:
--------------------------------------------------------------------------------
1 | name: "main"
2 | instances {
3 | id: "astronaut"
4 | prototype: "/main/astronaut.go"
5 | position {
6 | x: 640.0
7 | y: 384.0
8 | z: 1.0
9 | }
10 | rotation {
11 | x: 0.0
12 | y: 0.0
13 | z: 0.0
14 | w: 1.0
15 | }
16 | scale3 {
17 | x: 1.0
18 | y: 1.0
19 | z: 1.0
20 | }
21 | }
22 | scale_along_z: 0
23 | embedded_instances {
24 | id: "level"
25 | data: "components {\n"
26 | " id: \"level\"\n"
27 | " component: \"/main/level.tilemap\"\n"
28 | " position {\n"
29 | " x: 0.0\n"
30 | " y: 0.0\n"
31 | " z: 0.0\n"
32 | " }\n"
33 | " rotation {\n"
34 | " x: 0.0\n"
35 | " y: 0.0\n"
36 | " z: 0.0\n"
37 | " w: 1.0\n"
38 | " }\n"
39 | "}\n"
40 | ""
41 | position {
42 | x: 0.0
43 | y: 0.0
44 | z: 0.0
45 | }
46 | rotation {
47 | x: 0.0
48 | y: 0.0
49 | z: 0.0
50 | w: 1.0
51 | }
52 | scale3 {
53 | x: 1.0
54 | y: 1.0
55 | z: 1.0
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/main/sandtiles.tilesource:
--------------------------------------------------------------------------------
1 | image: "/assets/tiles.png"
2 | tile_width: 64
3 | tile_height: 64
4 | tile_margin: 0
5 | tile_spacing: 0
6 | collision: ""
7 | material_tag: "tile"
8 | collision_groups: "default"
9 | animations {
10 | id: "anim"
11 | start_tile: 1
12 | end_tile: 1
13 | playback: PLAYBACK_ONCE_FORWARD
14 | fps: 30
15 | flip_horizontal: 0
16 | flip_vertical: 0
17 | }
18 | extrude_borders: 2
19 | inner_padding: 0
20 |
--------------------------------------------------------------------------------