├── LICENSE.md ├── README.md └── project ├── .fscache ├── character.xml ├── character_sprites.xml ├── engine.cfg ├── gear.xml ├── icon.png ├── icon.png.flags ├── level_01.xml ├── level_ground_element_01.xml ├── scripts ├── gear.gd ├── global.gd ├── input_states.gd ├── level.gd ├── player.gd └── touch_screen_button.gd └── textures ├── blue_square.png ├── buttons ├── touch_jump.png ├── touch_jump_pressed.png ├── touch_left.png ├── touch_left_pressed.png ├── touch_right.png └── touch_right_pressed.png ├── gbot ├── gBot_arm_l.png ├── gBot_arm_r.png ├── gBot_body.png ├── gBot_complete.png ├── gBot_foot_l.png ├── gBot_foot_r.png ├── gBot_forearm_l.png ├── gBot_forearm_r.png ├── gBot_head.png ├── gBot_hip.png ├── gBot_jaw.png ├── gBot_leg_l.png ├── gBot_leg_r.png ├── gBot_shin_l.png └── gBot_shin_r.png ├── gear.png ├── gear.png~ └── red_square.png /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 Andreas Esau 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Godot Tutorial Series 2 | This is my godot tutorial series project. All Tutorial steps will be here on github as separate release. Just head over to the release section and download the sources. Have fun watching the series and hopefully you can learn something. 3 | 4 | Goal of that series is to recreate my [gBot Project](https://www.youtube.com/watch?v=JsuXUr5NCYw&list=UUckpus81gNin1aV8WSffRKw) step by step. We will start very basic and than improve on each step. I also have my final gBot Project [here on github.](https://github.com/ndee85/gBot) 5 | 6 | # Full Playlist 7 | You can find the full tutorial Series [here](https://www.youtube.com/playlist?list=PLPI26-KXCXpBtZGRJizz0cvU88nXB-G14) 8 | 9 | #Videos 10 | List of topics: 11 | 12 | 01 - [Introduction, Interface and Projectsetup](https://www.youtube.com/watch?v=WU6MqaodFyw) 13 | 14 | 02 - [Creating new nodes and applying phyisics](https://www.youtube.com/watch?v=LCscuMhFNCU) 15 | 16 | 03 - [Starting with scripting (creating a basic character movement)](https://www.youtube.com/watch?v=24gyrXZDPpU) 17 | 18 | 04 - [Movement Refinement of our character](https://www.youtube.com/watch?v=Qe7NxP6cyJk) 19 | 20 | 05 - [Setting up a Statemachine, Character rotation and doublejump behavior](https://www.youtube.com/watch?v=BTX0DWDqnyA) 21 | 22 | 06 - [We discuss Godots Scene System and Godots Resource System](https://www.youtube.com/watch?v=2aEi2Ffj378&feature=youtu.be) 23 | 24 | 07 - [Setting up our visual sprite based character with rig](https://www.youtube.com/watch?v=Mz4wrV0FsDo&list=UUckpus81gNin1aV8WSffRKw) 25 | 26 | 08 - [Animation our Character](https://www.youtube.com/watch?v=YxEfZQeySGQ) 27 | 28 | 09 - [Combine the animated Character with the scripted character](https://www.youtube.com/watch?v=m9dHm8UrzG8) 29 | 30 | 10 - [Add touch buttons and resolution independent viewport zoom](https://www.youtube.com/watch?v=gylnwemFIZc) 31 | 32 | -------------------------------------------------------------------------------- /project/.fscache: -------------------------------------------------------------------------------- 1 | ::res://::1425761003 2 | character.xml::PackedScene::1422995685:: 3 | character_sprites.xml::PackedScene::1422993807:: 4 | icon.png::ImageTexture::1422710762:: 5 | level_01.xml::PackedScene::1425761003:: 6 | level_ground_element_01.xml::PackedScene::1422710762:: 7 | ::res://scripts::1425763137 8 | global.gd::GDScript::1425763137:: 9 | input_states.gd::GDScript::1425763137:: 10 | player.gd::GDScript::1425763137:: 11 | touch_screen_button.gd::GDScript::1425763137:: 12 | ::res://textures::1425760985 13 | blue_square.png::ImageTexture::1422710762:: 14 | gear.png::ImageTexture::1425760988:: 15 | red_square.png::ImageTexture::1422710762:: 16 | ::res://textures/buttons::1423920971 17 | touch_jump.png::ImageTexture::1423920971:: 18 | touch_jump_pressed.png::ImageTexture::1423920971:: 19 | touch_left.png::ImageTexture::1423920971:: 20 | touch_left_pressed.png::ImageTexture::1423920971:: 21 | touch_right.png::ImageTexture::1423920971:: 22 | touch_right_pressed.png::ImageTexture::1423920971:: 23 | ::res://textures/gbot::1423918886 24 | gBot_arm_l.png::ImageTexture::1422710762:: 25 | gBot_arm_r.png::ImageTexture::1422710762:: 26 | gBot_body.png::ImageTexture::1422710762:: 27 | gBot_complete.png::ImageTexture::1422710762:: 28 | gBot_foot_l.png::ImageTexture::1422710762:: 29 | gBot_foot_r.png::ImageTexture::1422710762:: 30 | gBot_forearm_l.png::ImageTexture::1422710762:: 31 | gBot_forearm_r.png::ImageTexture::1422710762:: 32 | gBot_head.png::ImageTexture::1422710762:: 33 | gBot_hip.png::ImageTexture::1422710762:: 34 | gBot_jaw.png::ImageTexture::1422710762:: 35 | gBot_leg_l.png::ImageTexture::1422710762:: 36 | gBot_leg_r.png::ImageTexture::1422710762:: 37 | gBot_shin_l.png::ImageTexture::1422710762:: 38 | gBot_shin_r.png::ImageTexture::1422710762:: 39 | -------------------------------------------------------------------------------- /project/character.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 8 | 40 9 | 180 10 | 11 | 12 | 13 | 14 | "names" 15 | 16 | "player" 17 | "RigidBody2D" 18 | "_import_path" 19 | "visibility/visible" 20 | "visibility/opacity" 21 | "visibility/self_opacity" 22 | "transform/pos" 23 | "transform/rot" 24 | "transform/scale" 25 | "z/z" 26 | "z/relative" 27 | "shape_count" 28 | "shapes/0/shape" 29 | "shapes/0/transform" 30 | "shapes/0/trigger" 31 | "layers" 32 | "mode" 33 | "mass" 34 | "friction" 35 | "bounce" 36 | "gravity_scale" 37 | "custom_integrator" 38 | "continuous_cd" 39 | "contacts_reported" 40 | "contact_monitor" 41 | "sleeping" 42 | "can_sleep" 43 | "velocity/linear" 44 | "velocity/angular" 45 | "damp_override/linear" 46 | "damp_override/angular" 47 | "script/script" 48 | "__meta__" 49 | "player_speed" 50 | "jumpforce" 51 | "acceleration" 52 | "air_acceleration" 53 | "extra_gravity" 54 | "Camera2D" 55 | "offset" 56 | "centered" 57 | "rotating" 58 | "current" 59 | "smoothing" 60 | "zoom" 61 | "limit/left" 62 | "limit/top" 63 | "limit/right" 64 | "limit/bottom" 65 | "drag_margin/h_enabled" 66 | "drag_margin/v_enabled" 67 | "drag_margin/left" 68 | "drag_margin/top" 69 | "drag_margin/right" 70 | "drag_margin/bottom" 71 | "RayCast2D" 72 | "enabled" 73 | "cast_to" 74 | "layer_mask" 75 | "rotate" 76 | "Node2D" 77 | "player_sprite" 78 | "Sprite" 79 | "shader/use_parent" 80 | "texture" 81 | "flip_h" 82 | "flip_v" 83 | "vframes" 84 | "hframes" 85 | "frame" 86 | "modulate" 87 | "region" 88 | "region_rect" 89 | "player_sprite1" 90 | "character_sprites" 91 | "CollisionShape2D" 92 | "shape" 93 | "trigger" 94 | 95 | "version" 96 | 1 97 | "conn_count" 98 | 0 99 | "node_count" 100 | 8 101 | "variants" 102 | 103 | "" 104 | True 105 | 1 106 | 0, 0 107 | 0 108 | 1, 1 109 | 0 110 | 1 111 | 112 | 1, -0, 0, 1, 4.64916e-06, -140.915 113 | False 114 | 2 115 | -1 116 | 117 | 118 | "__editor_plugin_states__" 119 | 120 | "Script" 121 | 122 | "current" 123 | 0 124 | "sources" 125 | 126 | "res://scripts/player.gd" 127 | 128 | 129 | "2D" 130 | 131 | "pixel_snap" 132 | False 133 | "zoom" 134 | 1.507339 135 | "use_snap" 136 | False 137 | "ofs" 138 | -409.645, -381.74 139 | "snap" 140 | 10 141 | 142 | "3D" 143 | 144 | "deflight_rot_y" 145 | 0.628319 146 | "zfar" 147 | 500 148 | "fov" 149 | 45 150 | "viewports" 151 | 152 | 153 | "distance" 154 | 4 155 | "x_rot" 156 | 0 157 | "y_rot" 158 | 0 159 | "listener" 160 | True 161 | "use_environment" 162 | False 163 | "use_orthogonal" 164 | False 165 | "pos" 166 | 0, 0, 0 167 | 168 | 169 | "distance" 170 | 4 171 | "x_rot" 172 | 0 173 | "y_rot" 174 | 0 175 | "listener" 176 | False 177 | "use_environment" 178 | False 179 | "use_orthogonal" 180 | False 181 | "pos" 182 | 0, 0, 0 183 | 184 | 185 | "distance" 186 | 4 187 | "x_rot" 188 | 0 189 | "y_rot" 190 | 0 191 | "listener" 192 | False 193 | "use_environment" 194 | False 195 | "use_orthogonal" 196 | False 197 | "pos" 198 | 0, 0, 0 199 | 200 | 201 | "distance" 202 | 4 203 | "x_rot" 204 | 0 205 | "y_rot" 206 | 0 207 | "listener" 208 | False 209 | "use_environment" 210 | False 211 | "use_orthogonal" 212 | False 213 | "pos" 214 | 0, 0, 0 215 | 216 | 217 | "viewport_mode" 218 | 1 219 | "default_light" 220 | True 221 | "ambient_light_color" 222 | 0.15, 0.15, 0.15, 1 223 | "show_grid" 224 | True 225 | "show_origin" 226 | True 227 | "znear" 228 | 0.1 229 | "default_srgb" 230 | False 231 | "deflight_rot_x" 232 | 0.942478 233 | 234 | 235 | "__editor_run_settings__" 236 | 237 | "custom_args" 238 | "-l $scene" 239 | "run_mode" 240 | 0 241 | 242 | "__editor_plugin_screen__" 243 | "2D" 244 | 245 | 400 246 | 8 247 | 300 248 | 0, -100 249 | 7 250 | 2, 2 251 | -10000000 252 | 10000000 253 | 0.2 254 | 0, -25.8734 255 | 0, 60 256 | 257 | 1, 1, 1, 1 258 | 0, 0, 0, 0 259 | 43.32, -3.57628e-07 260 | 0.2, 0.2 261 | 262 | 5.97079, -139.318 263 | 0.3, 0.3 264 | 265 | "__editor_plugin_states__" 266 | 267 | "2D" 268 | 269 | "pixel_snap" 270 | False 271 | "zoom" 272 | 0.66342 273 | "use_snap" 274 | False 275 | "ofs" 276 | -915.832, -305.871 277 | "snap" 278 | 10 279 | 280 | "3D" 281 | 282 | "fov" 283 | 45 284 | "zfar" 285 | 500 286 | "viewports" 287 | 288 | 289 | "distance" 290 | 4 291 | "x_rot" 292 | 0 293 | "y_rot" 294 | 0 295 | "listener" 296 | True 297 | "use_environment" 298 | False 299 | "use_orthogonal" 300 | False 301 | "pos" 302 | 0, 0, 0 303 | 304 | 305 | "distance" 306 | 4 307 | "x_rot" 308 | 0 309 | "y_rot" 310 | 0 311 | "listener" 312 | False 313 | "use_environment" 314 | False 315 | "use_orthogonal" 316 | False 317 | "pos" 318 | 0, 0, 0 319 | 320 | 321 | "distance" 322 | 4 323 | "x_rot" 324 | 0 325 | "y_rot" 326 | 0 327 | "listener" 328 | False 329 | "use_environment" 330 | False 331 | "use_orthogonal" 332 | False 333 | "pos" 334 | 0, 0, 0 335 | 336 | 337 | "distance" 338 | 4 339 | "x_rot" 340 | 0 341 | "y_rot" 342 | 0 343 | "listener" 344 | False 345 | "use_environment" 346 | False 347 | "use_orthogonal" 348 | False 349 | "pos" 350 | 0, 0, 0 351 | 352 | 353 | "deflight_rot_y" 354 | 0.628319 355 | "viewport_mode" 356 | 1 357 | "default_light" 358 | True 359 | "ambient_light_color" 360 | 0.15, 0.15, 0.15, 1 361 | "show_grid" 362 | True 363 | "show_origin" 364 | True 365 | "znear" 366 | 0.1 367 | "default_srgb" 368 | False 369 | "deflight_rot_x" 370 | 0.942478 371 | 372 | 373 | "__editor_run_settings__" 374 | 375 | "custom_args" 376 | "-l $scene" 377 | "run_mode" 378 | 0 379 | 380 | "__editor_plugin_screen__" 381 | "2D" 382 | 383 | 4.64916e-06, -140.915 384 | 385 | "nodes" 386 | -1, -1, 1, 0, -1, 36, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 1, 11, 7, 12, 8, 13, 9, 14, 10, 15, 7, 16, 11, 17, 2, 18, 4, 19, 4, 20, 2, 21, 10, 22, 6, 23, 6, 24, 10, 25, 10, 26, 1, 27, 3, 28, 4, 29, 12, 30, 12, 31, 13, 32, 14, 33, 15, 34, 15, 35, 16, 36, 7, 37, 17, 0, 0, 0, 38, 38, -1, 25, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 1, 39, 18, 40, 1, 41, 10, 42, 1, 43, 19, 44, 20, 45, 21, 46, 21, 47, 22, 48, 22, 49, 1, 50, 1, 51, 23, 52, 23, 53, 23, 54, 23, 0, 0, 0, 55, 55, -1, 12, 2, 0, 3, 1, 4, 2, 5, 2, 6, 24, 7, 4, 8, 5, 9, 6, 10, 1, 56, 1, 57, 25, 58, 7, 0, 0, 0, 60, 59, -1, 9, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 1, 0, 3, 0, 62, 61, -1, 21, 2, 0, 3, 10, 4, 2, 5, 2, 63, 1, 6, 3, 7, 4, 8, 5, 9, 6, 10, 1, 64, 26, 40, 1, 39, 3, 65, 10, 66, 10, 67, 7, 68, 7, 69, 6, 70, 27, 71, 10, 72, 28, 0, 3, 0, 62, 73, -1, 21, 2, 0, 3, 10, 4, 2, 5, 2, 63, 1, 6, 29, 7, 4, 8, 30, 9, 6, 10, 1, 64, 26, 40, 1, 39, 3, 65, 10, 66, 10, 67, 7, 68, 7, 69, 6, 70, 27, 71, 10, 72, 28, 0, 3, 0, 60, 74, 31, 4, 2, 0, 6, 32, 8, 33, 32, 34, 0, 0, 0, 75, 75, -1, 11, 2, 0, 3, 1, 4, 2, 5, 2, 6, 35, 7, 4, 8, 5, 9, 6, 10, 1, 76, 8, 77, 10, 0 387 | "conns" 388 | 389 | 390 | 391 | 392 | -------------------------------------------------------------------------------- /project/character_sprites.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | "idle" 20 | 1 21 | True 22 | 0.1 23 | "value" 24 | "base/body:transform/pos" 25 | 1 26 | 27 | "cont" 28 | True 29 | "transitions" 30 | 1, 1 31 | "values" 32 | 33 | -19.7053, 99.8443 34 | -1.61729, 105.874 35 | 36 | "times" 37 | 0, 0.5 38 | 39 | "value" 40 | "base/body:transform/rot" 41 | 1 42 | 43 | "cont" 44 | True 45 | "transitions" 46 | 1, 1 47 | "values" 48 | 49 | 0 50 | 0 51 | 52 | "times" 53 | 0, 0.5 54 | 55 | "value" 56 | "base/body/head:transform/pos" 57 | 1 58 | 59 | "cont" 60 | True 61 | "transitions" 62 | 1 63 | "values" 64 | 65 | 0.663391, -187.748 66 | 67 | "times" 68 | 0 69 | 70 | "value" 71 | "base/body/head:transform/rot" 72 | 1 73 | 74 | "cont" 75 | True 76 | "transitions" 77 | 1 78 | "values" 79 | 80 | 0 81 | 82 | "times" 83 | 0 84 | 85 | "value" 86 | "base/hip/bone_display:transform/pos" 87 | 1 88 | 89 | "cont" 90 | True 91 | "transitions" 92 | 1 93 | "values" 94 | 95 | 2.45551, 54.0204 96 | 97 | "times" 98 | 0 99 | 100 | "value" 101 | "base/hip/bone_display:transform/rot" 102 | 1 103 | 104 | "cont" 105 | True 106 | "transitions" 107 | 1 108 | "values" 109 | 110 | 0 111 | 112 | "times" 113 | 0 114 | 115 | "value" 116 | "base/body/arm_l/forearm_l:transform/pos" 117 | 1 118 | 119 | "cont" 120 | True 121 | "transitions" 122 | 1 123 | "values" 124 | 125 | -3.31711, 100.176 126 | 127 | "times" 128 | 0 129 | 130 | "value" 131 | "base/body/arm_l/forearm_l:transform/rot" 132 | 1 133 | 134 | "cont" 135 | True 136 | "transitions" 137 | 1 138 | "values" 139 | 140 | 0 141 | 142 | "times" 143 | 0 144 | 145 | "value" 146 | "base/body/arm_l:transform/pos" 147 | 1 148 | 149 | "cont" 150 | True 151 | "transitions" 152 | 1, 1 153 | "values" 154 | 155 | 73.6397, -129.367 156 | 73.6397, -138.411 157 | 158 | "times" 159 | 0, 0.5 160 | 161 | "value" 162 | "base/body/arm_l:transform/rot" 163 | 1 164 | 165 | "cont" 166 | True 167 | "transitions" 168 | 1, 1 169 | "values" 170 | 171 | 0 172 | 0 173 | 174 | "times" 175 | 0, 0.5 176 | 177 | "value" 178 | "base/body/arm_r/forearm_r:transform/pos" 179 | 1 180 | 181 | "cont" 182 | True 183 | "transitions" 184 | 1 185 | "values" 186 | 187 | -19.9026, 105.484 188 | 189 | "times" 190 | 0 191 | 192 | "value" 193 | "base/body/arm_r/forearm_r:transform/rot" 194 | 1 195 | 196 | "cont" 197 | True 198 | "transitions" 199 | 1 200 | "values" 201 | 202 | 0 203 | 204 | "times" 205 | 0 206 | 207 | "value" 208 | "base/body/arm_r:transform/pos" 209 | 1 210 | 211 | "cont" 212 | True 213 | "transitions" 214 | 1, 1 215 | "values" 216 | 217 | -90.2252, -125.386 218 | -88.7179, -132.923 219 | 220 | "times" 221 | 0, 0.5 222 | 223 | "value" 224 | "base/body/arm_r:transform/rot" 225 | 1 226 | 227 | "cont" 228 | True 229 | "transitions" 230 | 1, 1 231 | "values" 232 | 233 | 0 234 | 0 235 | 236 | "times" 237 | 0, 0.5 238 | 239 | "value" 240 | "base/hip/leg_l/shin_l/foot_l:transform/pos" 241 | 1 242 | 243 | "cont" 244 | True 245 | "transitions" 246 | 1, 1 247 | "values" 248 | 249 | -18.5758, 70.986 250 | -18.5758, 70.9862 251 | 252 | "times" 253 | 0, 0.5 254 | 255 | "value" 256 | "base/hip/leg_l/shin_l/foot_l:transform/rot" 257 | 1 258 | 259 | "cont" 260 | True 261 | "transitions" 262 | 1, 1 263 | "values" 264 | 265 | 0 266 | 15.92938 267 | 268 | "times" 269 | 0, 0.5 270 | 271 | "value" 272 | "base/hip/leg_l/shin_l:transform/pos" 273 | 1 274 | 275 | "cont" 276 | True 277 | "transitions" 278 | 1, 1 279 | "values" 280 | 281 | -3.98056, 106.147 282 | -3.98056, 106.147 283 | 284 | "times" 285 | 0, 0.5 286 | 287 | "value" 288 | "base/hip/leg_l/shin_l:transform/rot" 289 | 1 290 | 291 | "cont" 292 | True 293 | "transitions" 294 | 1, 1 295 | "values" 296 | 297 | 0 298 | -17.184496 299 | 300 | "times" 301 | 0, 0.5 302 | 303 | "value" 304 | "base/hip/leg_l:transform/pos" 305 | 1 306 | 307 | "cont" 308 | True 309 | "transitions" 310 | 1, 1 311 | "values" 312 | 313 | 61.6981, 48.4297 314 | 61.6981, 48.4297 315 | 316 | "times" 317 | 0, 0.5 318 | 319 | "value" 320 | "base/hip/leg_l:transform/rot" 321 | 1 322 | 323 | "cont" 324 | True 325 | "transitions" 326 | 1, 1 327 | "values" 328 | 329 | 0 330 | 1.255116 331 | 332 | "times" 333 | 0, 0.5 334 | 335 | "value" 336 | "base/hip/leg_r/shin_r/foot_r:transform/pos" 337 | 1 338 | 339 | "cont" 340 | True 341 | "transitions" 342 | 1, 1 343 | "values" 344 | 345 | -29.8539, 76.9568 346 | -29.8539, 76.9568 347 | 348 | "times" 349 | 0, 0.5 350 | 351 | "value" 352 | "base/hip/leg_r/shin_r/foot_r:transform/rot" 353 | 1 354 | 355 | "cont" 356 | True 357 | "transitions" 358 | 1, 1 359 | "values" 360 | 361 | 0 362 | 11.162511 363 | 364 | "times" 365 | 0, 0.5 366 | 367 | "value" 368 | "base/hip/leg_r/shin_r:transform/pos" 369 | 1 370 | 371 | "cont" 372 | True 373 | "transitions" 374 | 1, 1 375 | "values" 376 | 377 | -1.32684, 107.474 378 | -1.32684, 107.474 379 | 380 | "times" 381 | 0, 0.5 382 | 383 | "value" 384 | "base/hip/leg_r/shin_r:transform/rot" 385 | 1 386 | 387 | "cont" 388 | True 389 | "transitions" 390 | 1, 1 391 | "values" 392 | 393 | 0 394 | -8.331656 395 | 396 | "times" 397 | 0, 0.5 398 | 399 | "value" 400 | "base/hip/leg_r:transform/pos" 401 | 1 402 | 403 | "cont" 404 | True 405 | "transitions" 406 | 1, 1 407 | "values" 408 | 409 | -41.132, 58.381 410 | -41.132, 58.381 411 | 412 | "times" 413 | 0, 0.5 414 | 415 | "value" 416 | "base/hip/leg_r:transform/rot" 417 | 1 418 | 419 | "cont" 420 | True 421 | "transitions" 422 | 1, 1 423 | "values" 424 | 425 | 0 426 | -2.830853 427 | 428 | "times" 429 | 0, 0.5 430 | 431 | "value" 432 | "base/hip:transform/pos" 433 | 1 434 | 435 | "cont" 436 | True 437 | "transitions" 438 | 1, 1 439 | "values" 440 | 441 | -28.5271, 114.108 442 | -10.4391, 120.137 443 | 444 | "times" 445 | 0, 0.5 446 | 447 | "value" 448 | "base/hip:transform/rot" 449 | 1 450 | 451 | "cont" 452 | True 453 | "transitions" 454 | 1, 1 455 | "values" 456 | 457 | 0 458 | 0 459 | 460 | "times" 461 | 0, 0.5 462 | 463 | 464 | 465 | 466 | 1 467 | False 468 | 0.1 469 | "value" 470 | "base/body/arm_l/forearm_l:transform/pos" 471 | 1 472 | 473 | "cont" 474 | True 475 | "transitions" 476 | 1 477 | "values" 478 | 479 | -3.31711, 100.176 480 | 481 | "times" 482 | 0 483 | 484 | "value" 485 | "base/body/arm_l/forearm_l:transform/rot" 486 | 1 487 | 488 | "cont" 489 | True 490 | "transitions" 491 | 1 492 | "values" 493 | 494 | 0 495 | 496 | "times" 497 | 0 498 | 499 | "value" 500 | "base/body/arm_l:transform/pos" 501 | 1 502 | 503 | "cont" 504 | True 505 | "transitions" 506 | 1 507 | "values" 508 | 509 | 73.6397, -129.367 510 | 511 | "times" 512 | 0 513 | 514 | "value" 515 | "base/body/arm_l:transform/rot" 516 | 1 517 | 518 | "cont" 519 | True 520 | "transitions" 521 | 1 522 | "values" 523 | 524 | 0 525 | 526 | "times" 527 | 0 528 | 529 | "value" 530 | "base/body:transform/pos" 531 | 1 532 | 533 | "cont" 534 | True 535 | "transitions" 536 | 1 537 | "values" 538 | 539 | -19.7053, 99.8443 540 | 541 | "times" 542 | 0 543 | 544 | "value" 545 | "base/body:transform/rot" 546 | 1 547 | 548 | "cont" 549 | True 550 | "transitions" 551 | 1 552 | "values" 553 | 554 | 0 555 | 556 | "times" 557 | 0 558 | 559 | "value" 560 | "base/body/arm_r/forearm_r:transform/pos" 561 | 1 562 | 563 | "cont" 564 | True 565 | "transitions" 566 | 1 567 | "values" 568 | 569 | -19.9026, 105.484 570 | 571 | "times" 572 | 0 573 | 574 | "value" 575 | "base/body/arm_r/forearm_r:transform/rot" 576 | 1 577 | 578 | "cont" 579 | True 580 | "transitions" 581 | 1 582 | "values" 583 | 584 | 0 585 | 586 | "times" 587 | 0 588 | 589 | "value" 590 | "base/body/arm_r:transform/pos" 591 | 1 592 | 593 | "cont" 594 | True 595 | "transitions" 596 | 1 597 | "values" 598 | 599 | -90.2252, -125.386 600 | 601 | "times" 602 | 0 603 | 604 | "value" 605 | "base/body/arm_r:transform/rot" 606 | 1 607 | 608 | "cont" 609 | True 610 | "transitions" 611 | 1 612 | "values" 613 | 614 | 0 615 | 616 | "times" 617 | 0 618 | 619 | "value" 620 | "base/hip:transform/pos" 621 | 1 622 | 623 | "cont" 624 | True 625 | "transitions" 626 | 1 627 | "values" 628 | 629 | -28.5271, 114.108 630 | 631 | "times" 632 | 0 633 | 634 | "value" 635 | "base/hip:transform/rot" 636 | 1 637 | 638 | "cont" 639 | True 640 | "transitions" 641 | 1 642 | "values" 643 | 644 | 0 645 | 646 | "times" 647 | 0 648 | 649 | "value" 650 | "base/hip/leg_r/shin_r/foot_r:transform/pos" 651 | 1 652 | 653 | "cont" 654 | True 655 | "transitions" 656 | 1 657 | "values" 658 | 659 | -29.8539, 76.9568 660 | 661 | "times" 662 | 0 663 | 664 | "value" 665 | "base/hip/leg_r/shin_r/foot_r:transform/rot" 666 | 1 667 | 668 | "cont" 669 | True 670 | "transitions" 671 | 1 672 | "values" 673 | 674 | 0 675 | 676 | "times" 677 | 0 678 | 679 | "value" 680 | "base/hip/leg_r/shin_r:transform/pos" 681 | 1 682 | 683 | "cont" 684 | True 685 | "transitions" 686 | 1 687 | "values" 688 | 689 | -1.32684, 107.474 690 | 691 | "times" 692 | 0 693 | 694 | "value" 695 | "base/hip/leg_r/shin_r:transform/rot" 696 | 1 697 | 698 | "cont" 699 | True 700 | "transitions" 701 | 1 702 | "values" 703 | 704 | 0 705 | 706 | "times" 707 | 0 708 | 709 | "value" 710 | "base/hip/leg_r:transform/pos" 711 | 1 712 | 713 | "cont" 714 | True 715 | "transitions" 716 | 1 717 | "values" 718 | 719 | -41.132, 58.381 720 | 721 | "times" 722 | 0 723 | 724 | "value" 725 | "base/hip/leg_r:transform/rot" 726 | 1 727 | 728 | "cont" 729 | True 730 | "transitions" 731 | 1 732 | "values" 733 | 734 | 0 735 | 736 | "times" 737 | 0 738 | 739 | "value" 740 | "base/hip/leg_l/shin_l/foot_l:transform/pos" 741 | 1 742 | 743 | "cont" 744 | True 745 | "transitions" 746 | 1 747 | "values" 748 | 749 | -18.5758, 70.986 750 | 751 | "times" 752 | 0 753 | 754 | "value" 755 | "base/hip/leg_l/shin_l/foot_l:transform/rot" 756 | 1 757 | 758 | "cont" 759 | True 760 | "transitions" 761 | 1 762 | "values" 763 | 764 | 0 765 | 766 | "times" 767 | 0 768 | 769 | "value" 770 | "base/hip/leg_l/shin_l:transform/pos" 771 | 1 772 | 773 | "cont" 774 | True 775 | "transitions" 776 | 1 777 | "values" 778 | 779 | -3.98056, 106.147 780 | 781 | "times" 782 | 0 783 | 784 | "value" 785 | "base/hip/leg_l/shin_l:transform/rot" 786 | 1 787 | 788 | "cont" 789 | True 790 | "transitions" 791 | 1 792 | "values" 793 | 794 | 0 795 | 796 | "times" 797 | 0 798 | 799 | "value" 800 | "base/hip/leg_l:transform/pos" 801 | 1 802 | 803 | "cont" 804 | True 805 | "transitions" 806 | 1 807 | "values" 808 | 809 | 61.6981, 48.4297 810 | 811 | "times" 812 | 0 813 | 814 | "value" 815 | "base/hip/leg_l:transform/rot" 816 | 1 817 | 818 | "cont" 819 | True 820 | "transitions" 821 | 1 822 | "values" 823 | 824 | 0 825 | 826 | "times" 827 | 0 828 | 829 | "value" 830 | "base/body/head:transform/pos" 831 | 1 832 | 833 | "cont" 834 | True 835 | "transitions" 836 | 1 837 | "values" 838 | 839 | 0.663391, -187.748 840 | 841 | "times" 842 | 0 843 | 844 | "value" 845 | "base/body/head:transform/rot" 846 | 1 847 | 848 | "cont" 849 | True 850 | "transitions" 851 | 1 852 | "values" 853 | 854 | 0 855 | 856 | "times" 857 | 0 858 | 859 | 860 | 861 | 862 | 1 863 | True 864 | 0.1 865 | "value" 866 | "base/body:transform/pos" 867 | 1 868 | 869 | "cont" 870 | True 871 | "transitions" 872 | 1, 1, 1, 1 873 | "values" 874 | 875 | -17.8547, 101.695 876 | -9.69248, 64.8447 877 | -17.8547, 97.9937 878 | -12.4132, 74.9874 879 | 880 | "times" 881 | 0, 0.2, 0.5, 0.7 882 | 883 | "value" 884 | "base/body:transform/rot" 885 | 1 886 | 887 | "cont" 888 | True 889 | "transitions" 890 | 1, 1, 1, 1 891 | "values" 892 | 893 | -9.35018 894 | -9.35018 895 | -9.35018 896 | -9.35018 897 | 898 | "times" 899 | 0, 0.2, 0.5, 0.7 900 | 901 | "value" 902 | "base/body/head:transform/pos" 903 | 1 904 | 905 | "cont" 906 | True 907 | "transitions" 908 | 1, 1 909 | "values" 910 | 911 | 0.663391, -187.748 912 | 0.663391, -187.748 913 | 914 | "times" 915 | 0, 0.5 916 | 917 | "value" 918 | "base/body/head:transform/rot" 919 | 1 920 | 921 | "cont" 922 | True 923 | "transitions" 924 | 1, 1 925 | "values" 926 | 927 | 6.191999 928 | 6.191999 929 | 930 | "times" 931 | 0, 0.5 932 | 933 | "value" 934 | "base/body/arm_l/forearm_l:transform/pos" 935 | 1 936 | 937 | "cont" 938 | True 939 | "transitions" 940 | 1, 1 941 | "values" 942 | 943 | -3.31709, 100.177 944 | -3.31714, 100.177 945 | 946 | "times" 947 | 0, 0.5 948 | 949 | "value" 950 | "base/body/arm_l/forearm_l:transform/rot" 951 | 1 952 | 953 | "cont" 954 | True 955 | "transitions" 956 | 1, 1 957 | "values" 958 | 959 | 29.419237 960 | 44.809441 961 | 962 | "times" 963 | 0, 0.5 964 | 965 | "value" 966 | "base/body/arm_l:transform/pos" 967 | 1 968 | 969 | "cont" 970 | True 971 | "transitions" 972 | 1, 1 973 | "values" 974 | 975 | -52.2023, -114.562 976 | 54.5653, -104.009 977 | 978 | "times" 979 | 0, 0.5 980 | 981 | "value" 982 | "base/body/arm_l:transform/rot" 983 | 1 984 | 985 | "cont" 986 | True 987 | "transitions" 988 | 1, 1 989 | "values" 990 | 991 | -65.892601 992 | 55.86092 993 | 994 | "times" 995 | 0, 0.5 996 | 997 | "value" 998 | "base/body/arm_r/forearm_r:transform/pos" 999 | 1 1000 | 1001 | "cont" 1002 | True 1003 | "transitions" 1004 | 1, 1 1005 | "values" 1006 | 1007 | -19.9029, 105.485 1008 | -19.903, 105.485 1009 | 1010 | "times" 1011 | 0, 0.5 1012 | 1013 | "value" 1014 | "base/body/arm_r/forearm_r:transform/rot" 1015 | 1 1016 | 1017 | "cont" 1018 | True 1019 | "transitions" 1020 | 1, 1 1021 | "values" 1022 | 1023 | 66.161819 1024 | 46.567032 1025 | 1026 | "times" 1027 | 0, 0.5 1028 | 1029 | "value" 1030 | "base/body/arm_r:transform/pos" 1031 | 1 1032 | 1033 | "cont" 1034 | True 1035 | "transitions" 1036 | 1, 1 1037 | "values" 1038 | 1039 | 19.0079, -91.9273 1040 | -86.5792, -83.9195 1041 | 1042 | "times" 1043 | 0, 0.5 1044 | 1045 | "value" 1046 | "base/body/arm_r:transform/rot" 1047 | 1 1048 | 1049 | "cont" 1050 | True 1051 | "transitions" 1052 | 1, 1 1053 | "values" 1054 | 1055 | 54.266747 1056 | -57.232861 1057 | 1058 | "times" 1059 | 0, 0.5 1060 | 1061 | "value" 1062 | "base/hip/leg_l/shin_l/foot_l:transform/pos" 1063 | 1 1064 | 1065 | "cont" 1066 | True 1067 | "transitions" 1068 | 1, 1, 1, 1, 1 1069 | "values" 1070 | 1071 | -18.5759, 70.9875 1072 | -18.5757, 70.9874 1073 | -18.5758, 70.9874 1074 | -18.5759, 70.9877 1075 | -18.576, 70.9876 1076 | 1077 | "times" 1078 | 0, 0.1, 0.2, 0.5, 0.7 1079 | 1080 | "value" 1081 | "base/hip/leg_l/shin_l/foot_l:transform/rot" 1082 | 1 1083 | 1084 | "cont" 1085 | True 1086 | "transitions" 1087 | 1, 1, 1, 1, 1 1088 | "values" 1089 | 1090 | 15.715693 1091 | -19.598513 1092 | -8.708419 1093 | -29.007013 1094 | -26.682919 1095 | 1096 | "times" 1097 | 0, 0.1, 0.2, 0.5, 0.7 1098 | 1099 | "value" 1100 | "base/hip/leg_l/shin_l:transform/pos" 1101 | 1 1102 | 1103 | "cont" 1104 | True 1105 | "transitions" 1106 | 1, 1, 1, 1, 1 1107 | "values" 1108 | 1109 | -3.98056, 106.147 1110 | -3.98056, 106.147 1111 | -3.98056, 106.147 1112 | -3.98056, 106.147 1113 | -3.98056, 106.147 1114 | 1115 | "times" 1116 | 0, 0.1, 0.2, 0.5, 0.7 1117 | 1118 | "value" 1119 | "base/hip/leg_l/shin_l:transform/rot" 1120 | 1 1121 | 1122 | "cont" 1123 | True 1124 | "transitions" 1125 | 1, 1, 1, 1, 1 1126 | "values" 1127 | 1128 | -9.339877 1129 | -2.254792 1130 | 9.785656 1131 | -15.713082 1132 | -95.228828 1133 | 1134 | "times" 1135 | 0, 0.1, 0.2, 0.5, 0.7 1136 | 1137 | "value" 1138 | "base/hip/leg_l:transform/pos" 1139 | 1 1140 | 1141 | "cont" 1142 | True 1143 | "transitions" 1144 | 1, 1, 1, 1, 1 1145 | "values" 1146 | 1147 | 69.2348, 52.9517 1148 | 40.6011, 49.1699 1149 | 19.504, 49.9102 1150 | -43.7871, 52.1309 1151 | -1.59304, 50.6504 1152 | 1153 | "times" 1154 | 0, 0.1, 0.2, 0.5, 0.7 1155 | 1156 | "value" 1157 | "base/hip/leg_l:transform/rot" 1158 | 1 1159 | 1160 | "cont" 1161 | True 1162 | "transitions" 1163 | 1, 1, 1, 1, 1 1164 | "values" 1165 | 1166 | 58.665909 1167 | 22.275915 1168 | -1.027469 1169 | -43.127708 1170 | 49.23399 1171 | 1172 | "times" 1173 | 0, 0.1, 0.2, 0.5, 0.7 1174 | 1175 | "value" 1176 | "base/hip:transform/pos" 1177 | 1 1178 | 1179 | "cont" 1180 | True 1181 | "transitions" 1182 | 1, 1, 1, 1 1183 | "values" 1184 | 1185 | -28.5271, 114.108 1186 | -20.3649, 78.7383 1187 | -28.5271, 114.108 1188 | -21.7252, 89.6213 1189 | 1190 | "times" 1191 | 0, 0.2, 0.5, 0.7 1192 | 1193 | "value" 1194 | "base/hip:transform/rot" 1195 | 1 1196 | 1197 | "cont" 1198 | True 1199 | "transitions" 1200 | 1, 1, 1, 1 1201 | "values" 1202 | 1203 | 0 1204 | 0 1205 | 0 1206 | 0 1207 | 1208 | "times" 1209 | 0, 0.2, 0.5, 0.7 1210 | 1211 | "value" 1212 | "base/hip/leg_r/shin_r/foot_r:transform/pos" 1213 | 1 1214 | 1215 | "cont" 1216 | True 1217 | "transitions" 1218 | 1, 1, 1, 1 1219 | "values" 1220 | 1221 | -29.8538, 76.9579 1222 | -29.8539, 76.9585 1223 | -29.854, 76.9583 1224 | -29.854, 76.9586 1225 | 1226 | "times" 1227 | 0, 0.2, 0.5, 0.7 1228 | 1229 | "value" 1230 | "base/hip/leg_r/shin_r/foot_r:transform/rot" 1231 | 1 1232 | 1233 | "cont" 1234 | True 1235 | "transitions" 1236 | 1, 1, 1, 1 1237 | "values" 1238 | 1239 | -24.995543 1240 | -19.648766 1241 | -4.294022 1242 | -4.368054 1243 | 1244 | "times" 1245 | 0, 0.2, 0.5, 0.7 1246 | 1247 | "value" 1248 | "base/hip/leg_r/shin_r:transform/pos" 1249 | 1 1250 | 1251 | "cont" 1252 | True 1253 | "transitions" 1254 | 1, 1, 1, 1 1255 | "values" 1256 | 1257 | -1.32684, 107.474 1258 | -1.32684, 107.474 1259 | -1.32684, 107.474 1260 | -1.32684, 107.474 1261 | 1262 | "times" 1263 | 0, 0.2, 0.5, 0.7 1264 | 1265 | "value" 1266 | "base/hip/leg_r/shin_r:transform/rot" 1267 | 1 1268 | 1269 | "cont" 1270 | True 1271 | "transitions" 1272 | 1, 1, 1, 1 1273 | "values" 1274 | 1275 | -23.184378 1276 | -109.568352 1277 | -3.237793 1278 | -8.345417 1279 | 1280 | "times" 1281 | 0, 0.2, 0.5, 0.7 1282 | 1283 | "value" 1284 | "base/hip/leg_r:transform/pos" 1285 | 1 1286 | 1287 | "cont" 1288 | True 1289 | "transitions" 1290 | 1, 1, 1, 1 1291 | "values" 1292 | 1293 | -41.132, 58.381 1294 | -7.08061, 59.8615 1295 | 54.5479, 63.5896 1296 | 9.94509, 60.6017 1297 | 1298 | "times" 1299 | 0, 0.2, 0.5, 0.7 1300 | 1301 | "value" 1302 | "base/hip/leg_r:transform/rot" 1303 | 1 1304 | 1305 | "cont" 1306 | True 1307 | "transitions" 1308 | 1, 1, 1, 1 1309 | "values" 1310 | 1311 | -40.557713 1312 | 49.589859 1313 | 59.440273 1314 | 12.088406 1315 | 1316 | "times" 1317 | 0, 0.2, 0.5, 0.7 1318 | 1319 | 1320 | 1321 | 1322 | "jump_up" 1323 | 1 1324 | False 1325 | 0.1 1326 | "value" 1327 | "base/body:transform/pos" 1328 | 1 1329 | 1330 | "cont" 1331 | True 1332 | "transitions" 1333 | 1 1334 | "values" 1335 | 1336 | -19.7053, 101.352 1337 | 1338 | "times" 1339 | 0 1340 | 1341 | "value" 1342 | "base/body:transform/rot" 1343 | 1 1344 | 1345 | "cont" 1346 | True 1347 | "transitions" 1348 | 1 1349 | "values" 1350 | 1351 | -5.791501 1352 | 1353 | "times" 1354 | 0 1355 | 1356 | "value" 1357 | "base/body/head:transform/pos" 1358 | 1 1359 | 1360 | "cont" 1361 | True 1362 | "transitions" 1363 | 1 1364 | "values" 1365 | 1366 | 2.16302, -187.9 1367 | 1368 | "times" 1369 | 0 1370 | 1371 | "value" 1372 | "base/body/head:transform/rot" 1373 | 1 1374 | 1375 | "cont" 1376 | True 1377 | "transitions" 1378 | 1 1379 | "values" 1380 | 1381 | 13.695489 1382 | 1383 | "times" 1384 | 0 1385 | 1386 | "value" 1387 | "base/body/arm_l/forearm_l:transform/pos" 1388 | 1 1389 | 1390 | "cont" 1391 | True 1392 | "transitions" 1393 | 1 1394 | "values" 1395 | 1396 | -3.31698, 100.176 1397 | 1398 | "times" 1399 | 0 1400 | 1401 | "value" 1402 | "base/body/arm_l/forearm_l:transform/rot" 1403 | 1 1404 | 1405 | "cont" 1406 | True 1407 | "transitions" 1408 | 1 1409 | "values" 1410 | 1411 | 68.592216 1412 | 1413 | "times" 1414 | 0 1415 | 1416 | "value" 1417 | "base/body/arm_l:transform/pos" 1418 | 1 1419 | 1420 | "cont" 1421 | True 1422 | "transitions" 1423 | 1 1424 | "values" 1425 | 1426 | 82.9204, -142.429 1427 | 1428 | "times" 1429 | 0 1430 | 1431 | "value" 1432 | "base/body/arm_l:transform/rot" 1433 | 1 1434 | 1435 | "cont" 1436 | True 1437 | "transitions" 1438 | 1 1439 | "values" 1440 | 1441 | -35.115276 1442 | 1443 | "times" 1444 | 0 1445 | 1446 | "value" 1447 | "base/body/arm_r/forearm_r:transform/pos" 1448 | 1 1449 | 1450 | "cont" 1451 | True 1452 | "transitions" 1453 | 1 1454 | "values" 1455 | 1456 | -19.9026, 105.484 1457 | 1458 | "times" 1459 | 0 1460 | 1461 | "value" 1462 | "base/body/arm_r/forearm_r:transform/rot" 1463 | 1 1464 | 1465 | "cont" 1466 | True 1467 | "transitions" 1468 | 1 1469 | "values" 1470 | 1471 | 58.482395 1472 | 1473 | "times" 1474 | 0 1475 | 1476 | "value" 1477 | "base/body/arm_r:transform/pos" 1478 | 1 1479 | 1480 | "cont" 1481 | True 1482 | "transitions" 1483 | 1 1484 | "values" 1485 | 1486 | -77.7717, -122.104 1487 | 1488 | "times" 1489 | 0 1490 | 1491 | "value" 1492 | "base/body/arm_r:transform/rot" 1493 | 1 1494 | 1495 | "cont" 1496 | True 1497 | "transitions" 1498 | 1 1499 | "values" 1500 | 1501 | -52.582245 1502 | 1503 | "times" 1504 | 0 1505 | 1506 | "value" 1507 | "base/hip/leg_l/shin_l/foot_l:transform/pos" 1508 | 1 1509 | 1510 | "cont" 1511 | True 1512 | "transitions" 1513 | 1 1514 | "values" 1515 | 1516 | -18.5759, 70.9862 1517 | 1518 | "times" 1519 | 0 1520 | 1521 | "value" 1522 | "base/hip/leg_l/shin_l/foot_l:transform/rot" 1523 | 1 1524 | 1525 | "cont" 1526 | True 1527 | "transitions" 1528 | 1 1529 | "values" 1530 | 1531 | -31.899006 1532 | 1533 | "times" 1534 | 0 1535 | 1536 | "value" 1537 | "base/hip/leg_l/shin_l:transform/pos" 1538 | 1 1539 | 1540 | "cont" 1541 | True 1542 | "transitions" 1543 | 1 1544 | "values" 1545 | 1546 | -3.98056, 106.147 1547 | 1548 | "times" 1549 | 0 1550 | 1551 | "value" 1552 | "base/hip/leg_l/shin_l:transform/rot" 1553 | 1 1554 | 1555 | "cont" 1556 | True 1557 | "transitions" 1558 | 1 1559 | "values" 1560 | 1561 | -120.407494 1562 | 1563 | "times" 1564 | 0 1565 | 1566 | "value" 1567 | "base/hip/leg_l:transform/pos" 1568 | 1 1569 | 1570 | "cont" 1571 | True 1572 | "transitions" 1573 | 1 1574 | "values" 1575 | 1576 | 61.6981, 48.4297 1577 | 1578 | "times" 1579 | 0 1580 | 1581 | "value" 1582 | "base/hip/leg_l:transform/rot" 1583 | 1 1584 | 1585 | "cont" 1586 | True 1587 | "transitions" 1588 | 1 1589 | "values" 1590 | 1591 | 77.396416 1592 | 1593 | "times" 1594 | 0 1595 | 1596 | "value" 1597 | "base/hip:transform/pos" 1598 | 1 1599 | 1600 | "cont" 1601 | True 1602 | "transitions" 1603 | 1 1604 | "values" 1605 | 1606 | -27.0198, 117.123 1607 | 1608 | "times" 1609 | 0 1610 | 1611 | "value" 1612 | "base/hip:transform/rot" 1613 | 1 1614 | 1615 | "cont" 1616 | True 1617 | "transitions" 1618 | 1 1619 | "values" 1620 | 1621 | -15.984476 1622 | 1623 | "times" 1624 | 0 1625 | 1626 | "value" 1627 | "base/hip/leg_r/shin_r/foot_r:transform/pos" 1628 | 1 1629 | 1630 | "cont" 1631 | True 1632 | "transitions" 1633 | 1 1634 | "values" 1635 | 1636 | -29.8539, 76.9568 1637 | 1638 | "times" 1639 | 0 1640 | 1641 | "value" 1642 | "base/hip/leg_r/shin_r/foot_r:transform/rot" 1643 | 1 1644 | 1645 | "cont" 1646 | True 1647 | "transitions" 1648 | 1 1649 | "values" 1650 | 1651 | -31.125233 1652 | 1653 | "times" 1654 | 0 1655 | 1656 | "value" 1657 | "base/hip/leg_r/shin_r:transform/pos" 1658 | 1 1659 | 1660 | "cont" 1661 | True 1662 | "transitions" 1663 | 1 1664 | "values" 1665 | 1666 | -1.32684, 107.474 1667 | 1668 | "times" 1669 | 0 1670 | 1671 | "value" 1672 | "base/hip/leg_r/shin_r:transform/rot" 1673 | 1 1674 | 1675 | "cont" 1676 | True 1677 | "transitions" 1678 | 1 1679 | "values" 1680 | 1681 | -31.34481 1682 | 1683 | "times" 1684 | 0 1685 | 1686 | "value" 1687 | "base/hip/leg_r:transform/pos" 1688 | 1 1689 | 1690 | "cont" 1691 | True 1692 | "transitions" 1693 | 1 1694 | "values" 1695 | 1696 | -23.9471, 58.1622 1697 | 1698 | "times" 1699 | 0 1700 | 1701 | "value" 1702 | "base/hip/leg_r:transform/rot" 1703 | 1 1704 | 1705 | "cont" 1706 | True 1707 | "transitions" 1708 | 1 1709 | "values" 1710 | 1711 | 18.53532 1712 | 1713 | "times" 1714 | 0 1715 | 1716 | 1717 | 1718 | 1719 | "jump_down" 1720 | 1 1721 | False 1722 | 0.1 1723 | "value" 1724 | "base/body:transform/pos" 1725 | 1 1726 | 1727 | "cont" 1728 | True 1729 | "transitions" 1730 | 1, 1 1731 | "values" 1732 | 1733 | -19.7053, 101.352 1734 | -19.7053, 101.352 1735 | 1736 | "times" 1737 | 0, 0.5 1738 | 1739 | "value" 1740 | "base/body:transform/rot" 1741 | 1 1742 | 1743 | "cont" 1744 | True 1745 | "transitions" 1746 | 1, 1 1747 | "values" 1748 | 1749 | -5.791501 1750 | -5.791501 1751 | 1752 | "times" 1753 | 0, 0.5 1754 | 1755 | "value" 1756 | "base/body/head:transform/pos" 1757 | 1 1758 | 1759 | "cont" 1760 | True 1761 | "transitions" 1762 | 1, 1 1763 | "values" 1764 | 1765 | 2.16302, -187.9 1766 | 2.16302, -187.9 1767 | 1768 | "times" 1769 | 0, 0.5 1770 | 1771 | "value" 1772 | "base/body/head:transform/rot" 1773 | 1 1774 | 1775 | "cont" 1776 | True 1777 | "transitions" 1778 | 1, 1 1779 | "values" 1780 | 1781 | 13.695489 1782 | -13.618635 1783 | 1784 | "times" 1785 | 0, 0.5 1786 | 1787 | "value" 1788 | "base/body/arm_l/forearm_l:transform/pos" 1789 | 1 1790 | 1791 | "cont" 1792 | True 1793 | "transitions" 1794 | 1, 1 1795 | "values" 1796 | 1797 | -3.31698, 100.176 1798 | -3.31699, 100.176 1799 | 1800 | "times" 1801 | 0, 0.5 1802 | 1803 | "value" 1804 | "base/body/arm_l/forearm_l:transform/rot" 1805 | 1 1806 | 1807 | "cont" 1808 | True 1809 | "transitions" 1810 | 1, 1 1811 | "values" 1812 | 1813 | 68.592216 1814 | 58.141205 1815 | 1816 | "times" 1817 | 0, 0.5 1818 | 1819 | "value" 1820 | "base/body/arm_l:transform/pos" 1821 | 1 1822 | 1823 | "cont" 1824 | True 1825 | "transitions" 1826 | 1, 1 1827 | "values" 1828 | 1829 | 82.9204, -142.429 1830 | 84.7029, -154.73 1831 | 1832 | "times" 1833 | 0, 0.5 1834 | 1835 | "value" 1836 | "base/body/arm_l:transform/rot" 1837 | 1 1838 | 1839 | "cont" 1840 | True 1841 | "transitions" 1842 | 1, 1 1843 | "values" 1844 | 1845 | -35.115276 1846 | 15.934555 1847 | 1848 | "times" 1849 | 0, 0.5 1850 | 1851 | "value" 1852 | "base/body/arm_r/forearm_r:transform/pos" 1853 | 1 1854 | 1855 | "cont" 1856 | True 1857 | "transitions" 1858 | 1, 1 1859 | "values" 1860 | 1861 | -19.9026, 105.484 1862 | -19.9026, 105.484 1863 | 1864 | "times" 1865 | 0, 0.5 1866 | 1867 | "value" 1868 | "base/body/arm_r/forearm_r:transform/rot" 1869 | 1 1870 | 1871 | "cont" 1872 | True 1873 | "transitions" 1874 | 1, 1 1875 | "values" 1876 | 1877 | 58.482395 1878 | 66.564682 1879 | 1880 | "times" 1881 | 0, 0.5 1882 | 1883 | "value" 1884 | "base/body/arm_r:transform/pos" 1885 | 1 1886 | 1887 | "cont" 1888 | True 1889 | "transitions" 1890 | 1, 1 1891 | "values" 1892 | 1893 | -77.7717, -122.104 1894 | -91.7249, -125.234 1895 | 1896 | "times" 1897 | 0, 0.5 1898 | 1899 | "value" 1900 | "base/body/arm_r:transform/rot" 1901 | 1 1902 | 1903 | "cont" 1904 | True 1905 | "transitions" 1906 | 1, 1 1907 | "values" 1908 | 1909 | -52.582245 1910 | -69.424095 1911 | 1912 | "times" 1913 | 0, 0.5 1914 | 1915 | "value" 1916 | "base/hip/leg_l/shin_l/foot_l:transform/pos" 1917 | 1 1918 | 1919 | "cont" 1920 | True 1921 | "transitions" 1922 | 1, 1 1923 | "values" 1924 | 1925 | -18.5759, 70.9862 1926 | -18.576, 70.9869 1927 | 1928 | "times" 1929 | 0, 0.5 1930 | 1931 | "value" 1932 | "base/hip/leg_l/shin_l/foot_l:transform/rot" 1933 | 1 1934 | 1935 | "cont" 1936 | True 1937 | "transitions" 1938 | 1, 1 1939 | "values" 1940 | 1941 | -31.899006 1942 | 32.471146 1943 | 1944 | "times" 1945 | 0, 0.5 1946 | 1947 | "value" 1948 | "base/hip/leg_l/shin_l:transform/pos" 1949 | 1 1950 | 1951 | "cont" 1952 | True 1953 | "transitions" 1954 | 1, 1 1955 | "values" 1956 | 1957 | -3.98056, 106.147 1958 | -3.98056, 106.147 1959 | 1960 | "times" 1961 | 0, 0.5 1962 | 1963 | "value" 1964 | "base/hip/leg_l/shin_l:transform/rot" 1965 | 1 1966 | 1967 | "cont" 1968 | True 1969 | "transitions" 1970 | 1, 1 1971 | "values" 1972 | 1973 | -120.407494 1974 | -37.576073 1975 | 1976 | "times" 1977 | 0, 0.5 1978 | 1979 | "value" 1980 | "base/hip/leg_l:transform/pos" 1981 | 1 1982 | 1983 | "cont" 1984 | True 1985 | "transitions" 1986 | 1, 1 1987 | "values" 1988 | 1989 | 61.6981, 48.4297 1990 | 72.6792, 59.3958 1991 | 1992 | "times" 1993 | 0, 0.5 1994 | 1995 | "value" 1996 | "base/hip/leg_l:transform/rot" 1997 | 1 1998 | 1999 | "cont" 2000 | True 2001 | "transitions" 2002 | 1, 1 2003 | "values" 2004 | 2005 | 77.396416 2006 | 35.709602 2007 | 2008 | "times" 2009 | 0, 0.5 2010 | 2011 | "value" 2012 | "base/hip:transform/pos" 2013 | 1 2014 | 2015 | "cont" 2016 | True 2017 | "transitions" 2018 | 1, 1 2019 | "values" 2020 | 2021 | -27.0198, 117.123 2022 | -25.5125, 118.63 2023 | 2024 | "times" 2025 | 0, 0.5 2026 | 2027 | "value" 2028 | "base/hip:transform/rot" 2029 | 1 2030 | 2031 | "cont" 2032 | True 2033 | "transitions" 2034 | 1, 1 2035 | "values" 2036 | 2037 | -15.984476 2038 | -3.879958 2039 | 2040 | "times" 2041 | 0, 0.5 2042 | 2043 | "value" 2044 | "base/hip/leg_r/shin_r/foot_r:transform/pos" 2045 | 1 2046 | 2047 | "cont" 2048 | True 2049 | "transitions" 2050 | 1, 1 2051 | "values" 2052 | 2053 | -29.8539, 76.9568 2054 | -29.8546, 76.9571 2055 | 2056 | "times" 2057 | 0, 0.5 2058 | 2059 | "value" 2060 | "base/hip/leg_r/shin_r/foot_r:transform/rot" 2061 | 1 2062 | 2063 | "cont" 2064 | True 2065 | "transitions" 2066 | 1, 1 2067 | "values" 2068 | 2069 | -31.125233 2070 | 15.968214 2071 | 2072 | "times" 2073 | 0, 0.5 2074 | 2075 | "value" 2076 | "base/hip/leg_r/shin_r:transform/pos" 2077 | 1 2078 | 2079 | "cont" 2080 | True 2081 | "transitions" 2082 | 1, 1 2083 | "values" 2084 | 2085 | -1.32684, 107.474 2086 | -1.32684, 107.474 2087 | 2088 | "times" 2089 | 0, 0.5 2090 | 2091 | "value" 2092 | "base/hip/leg_r/shin_r:transform/rot" 2093 | 1 2094 | 2095 | "cont" 2096 | True 2097 | "transitions" 2098 | 1, 1 2099 | "values" 2100 | 2101 | -31.34481 2102 | -91.584999 2103 | 2104 | "times" 2105 | 0, 0.5 2106 | 2107 | "value" 2108 | "base/hip/leg_r:transform/pos" 2109 | 1 2110 | 2111 | "cont" 2112 | True 2113 | "transitions" 2114 | 1, 1 2115 | "values" 2116 | 2117 | -23.9471, 58.1622 2118 | -10.6942, 60.6378 2119 | 2120 | "times" 2121 | 0, 0.5 2122 | 2123 | "value" 2124 | "base/hip/leg_r:transform/rot" 2125 | 1 2126 | 2127 | "cont" 2128 | True 2129 | "transitions" 2130 | 1, 1 2131 | "values" 2132 | 2133 | 18.53532 2134 | 101.855339 2135 | 2136 | "times" 2137 | 0, 0.5 2138 | 2139 | 2140 | 2141 | 2142 | 2143 | "names" 2144 | 2145 | "character_sprites" 2146 | "Node2D" 2147 | "_import_path" 2148 | "visibility/visible" 2149 | "visibility/opacity" 2150 | "visibility/self_opacity" 2151 | "transform/pos" 2152 | "transform/rot" 2153 | "transform/scale" 2154 | "z/z" 2155 | "z/relative" 2156 | "__meta__" 2157 | "base" 2158 | "body" 2159 | "Sprite" 2160 | "texture" 2161 | "centered" 2162 | "offset" 2163 | "flip_h" 2164 | "flip_v" 2165 | "vframes" 2166 | "hframes" 2167 | "frame" 2168 | "modulate" 2169 | "region" 2170 | "region_rect" 2171 | "arm_r" 2172 | "forearm_r" 2173 | "bone_display" 2174 | "arm_l" 2175 | "forearm_l" 2176 | "head" 2177 | "jaw" 2178 | "hip" 2179 | "leg_r" 2180 | "shin_r" 2181 | "foot_r" 2182 | "leg_l" 2183 | "shin_l" 2184 | "foot_l" 2185 | "complete" 2186 | "AnimationPlayer" 2187 | "playback/process_mode" 2188 | "playback/default_blend_time" 2189 | "root/root" 2190 | "anims/idle" 2191 | "anims/base" 2192 | "anims/run" 2193 | "anims/jump_up" 2194 | "anims/jump_down" 2195 | "playback/active" 2196 | "playback/speed" 2197 | "blend_times" 2198 | "autoplay" 2199 | 2200 | "version" 2201 | 1 2202 | "conn_count" 2203 | 0 2204 | "node_count" 2205 | 24 2206 | "variants" 2207 | 2208 | "" 2209 | True 2210 | 1 2211 | 0, 0 2212 | 0 2213 | 1, 1 2214 | 0 2215 | 2216 | "__editor_plugin_states__" 2217 | 2218 | "2D" 2219 | 2220 | "pixel_snap" 2221 | False 2222 | "zoom" 2223 | 0.66342 2224 | "use_snap" 2225 | False 2226 | "ofs" 2227 | -915.832, -305.871 2228 | "snap" 2229 | 10 2230 | 2231 | "3D" 2232 | 2233 | "deflight_rot_y" 2234 | 0.628319 2235 | "zfar" 2236 | 500 2237 | "fov" 2238 | 45 2239 | "viewports" 2240 | 2241 | 2242 | "distance" 2243 | 4 2244 | "x_rot" 2245 | 0 2246 | "y_rot" 2247 | 0 2248 | "listener" 2249 | True 2250 | "use_environment" 2251 | False 2252 | "use_orthogonal" 2253 | False 2254 | "pos" 2255 | 0, 0, 0 2256 | 2257 | 2258 | "distance" 2259 | 4 2260 | "x_rot" 2261 | 0 2262 | "y_rot" 2263 | 0 2264 | "listener" 2265 | False 2266 | "use_environment" 2267 | False 2268 | "use_orthogonal" 2269 | False 2270 | "pos" 2271 | 0, 0, 0 2272 | 2273 | 2274 | "distance" 2275 | 4 2276 | "x_rot" 2277 | 0 2278 | "y_rot" 2279 | 0 2280 | "listener" 2281 | False 2282 | "use_environment" 2283 | False 2284 | "use_orthogonal" 2285 | False 2286 | "pos" 2287 | 0, 0, 0 2288 | 2289 | 2290 | "distance" 2291 | 4 2292 | "x_rot" 2293 | 0 2294 | "y_rot" 2295 | 0 2296 | "listener" 2297 | False 2298 | "use_environment" 2299 | False 2300 | "use_orthogonal" 2301 | False 2302 | "pos" 2303 | 0, 0, 0 2304 | 2305 | 2306 | "viewport_mode" 2307 | 1 2308 | "default_light" 2309 | True 2310 | "ambient_light_color" 2311 | 0.15, 0.15, 0.15, 1 2312 | "show_grid" 2313 | True 2314 | "show_origin" 2315 | True 2316 | "znear" 2317 | 0.1 2318 | "default_srgb" 2319 | False 2320 | "deflight_rot_x" 2321 | 0.942478 2322 | 2323 | 2324 | "__editor_run_settings__" 2325 | 2326 | "custom_args" 2327 | "-l $scene" 2328 | "run_mode" 2329 | 0 2330 | 2331 | "__editor_plugin_screen__" 2332 | "2D" 2333 | 2334 | 2335 | "_editor_collapsed" 2336 | True 2337 | 2338 | -19.7053, 101.352 2339 | -5.791501 2340 | 1 2341 | 2342 | 1.67017, -103.551 2343 | False 2344 | 1, 1, 1, 1 2345 | 0, 0, 0, 0 2346 | 2347 | "_editor_collapsed" 2348 | True 2349 | 2350 | -77.7717, -122.104 2351 | -52.582245 2352 | 2353 | -1.32684, 23.2197 2354 | 2355 | "_editor_collapsed" 2356 | True 2357 | "_edit_ik_" 2358 | True 2359 | 2360 | -19.9026, 105.484 2361 | 58.482395 2362 | 1, 1 2363 | 2364 | 11.2781, 73.6396 2365 | 2366 | "_editor_collapsed" 2367 | True 2368 | "_edit_bone_" 2369 | True 2370 | 2371 | 4.91095, 124.002 2372 | 2373 | "_edit_bone_" 2374 | True 2375 | 2376 | 82.9204, -142.429 2377 | -35.115276 2378 | -2 2379 | 2380 | 7.96106, 25.21 2381 | 2382 | "_editor_collapsed" 2383 | True 2384 | "_edit_ik_" 2385 | True 2386 | 2387 | -3.31698, 100.176 2388 | 68.592216 2389 | 2390 | 19.2391, 69.6591 2391 | 2392 | "_edit_bone_" 2393 | True 2394 | 2395 | 18.416, 101.902 2396 | 2397 | "_edit_bone_" 2398 | True 2399 | 2400 | 2.16302, -187.9 2401 | 13.695489 2402 | 2403 | 15.2587, -199.026 2404 | 2405 | "_editor_collapsed" 2406 | True 2407 | "_edit_bone_" 2408 | True 2409 | 2410 | -106.147, -75.6299 2411 | 2412 | 133.347, 18.5758 2413 | 4.91095, -241.864 2414 | 2415 | "_edit_bone_" 2416 | True 2417 | 2418 | -27.0198, 117.123 2419 | -15.984476 2420 | 2421 | 5.97079, 33.171 2422 | 2423 | "_editor_collapsed" 2424 | True 2425 | 2426 | -23.9471, 58.1622 2427 | 18.53532 2428 | 2429 | -12.6049, 49.7565 2430 | 2431 | "_edit_ik_" 2432 | True 2433 | 2434 | -1.32684, 107.474 2435 | -31.34481 2436 | 2437 | -5.30737, 34.4979 2438 | 2439 | "_edit_bone_" 2440 | True 2441 | 2442 | -29.8539, 76.9568 2443 | -31.125233 2444 | 1, 1 2445 | 2446 | 45.776, 29.8539 2447 | 2448 | "_edit_bone_" 2449 | True 2450 | 2451 | 72.4365, 29.4657 2452 | 2453 | "_edit_bone_" 2454 | True 2455 | 2456 | 61.6981, 48.4297 2457 | 77.396416 2458 | -1 2459 | 2460 | -17.9124, 50.42 2461 | 2462 | "_edit_ik_" 2463 | True 2464 | 2465 | -3.98056, 106.147 2466 | -120.407494 2467 | 2468 | -6.63416, 33.8344 2469 | 2470 | "_edit_bone_" 2471 | True 2472 | 2473 | -18.5759, 70.9862 2474 | -31.899006 2475 | 1, 1 2476 | 2477 | 34.4979, 35.8247 2478 | 2479 | "_edit_bone_" 2480 | True 2481 | 2482 | 73.6642, 38.0598 2483 | 2484 | "_edit_bone_" 2485 | True 2486 | 2487 | 2.45551, 54.0204 2488 | 2489 | "_edit_bone_" 2490 | True 2491 | 2492 | 0.5 2493 | 2494 | 2495 | "_edit_lock_" 2496 | True 2497 | 2498 | ".." 2499 | 2500 | 2501 | 2502 | 2503 | 2504 | 2505 | 2506 | "" 2507 | 2508 | "nodes" 2509 | -1, -1, 1, 0, -1, 10, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 1, 11, 7, 0, 0, 0, 1, 12, -1, 10, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 1, 11, 8, 0, 1, 0, 14, 13, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 9, 7, 10, 8, 5, 9, 11, 10, 1, 15, 12, 16, 1, 17, 13, 18, 14, 19, 14, 20, 11, 21, 11, 22, 6, 23, 15, 24, 14, 25, 16, 11, 17, 0, 2, 0, 14, 26, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 18, 7, 19, 8, 5, 9, 6, 10, 1, 15, 20, 16, 1, 17, 21, 18, 14, 19, 14, 20, 11, 21, 11, 22, 6, 23, 15, 24, 14, 25, 16, 11, 22, 0, 3, 0, 14, 27, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 23, 7, 24, 8, 25, 9, 6, 10, 1, 15, 26, 16, 1, 17, 27, 18, 14, 19, 14, 20, 11, 21, 11, 22, 6, 23, 15, 24, 14, 25, 16, 11, 28, 0, 4, 0, 1, 28, -1, 10, 2, 0, 3, 1, 4, 2, 5, 2, 6, 29, 7, 4, 8, 5, 9, 6, 10, 1, 11, 30, 0, 2, 0, 14, 29, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 31, 7, 32, 8, 5, 9, 33, 10, 1, 15, 34, 16, 1, 17, 35, 18, 14, 19, 14, 20, 11, 21, 11, 22, 6, 23, 15, 24, 14, 25, 16, 11, 36, 0, 6, 0, 14, 30, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 37, 7, 38, 8, 25, 9, 6, 10, 1, 15, 39, 16, 1, 17, 40, 18, 14, 19, 14, 20, 11, 21, 11, 22, 6, 23, 15, 24, 14, 25, 16, 11, 41, 0, 7, 0, 1, 28, -1, 10, 2, 0, 3, 1, 4, 2, 5, 2, 6, 42, 7, 4, 8, 5, 9, 6, 10, 1, 11, 43, 0, 2, 0, 14, 31, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 44, 7, 45, 8, 5, 9, 6, 10, 1, 15, 46, 16, 1, 17, 47, 18, 14, 19, 14, 20, 11, 21, 11, 22, 6, 23, 15, 24, 14, 25, 16, 11, 48, 0, 9, 0, 14, 32, -1, 20, 2, 0, 3, 1, 4, 2, 5, 2, 6, 49, 7, 4, 8, 5, 9, 6, 10, 1, 15, 50, 16, 1, 17, 51, 18, 14, 19, 14, 20, 11, 21, 11, 22, 6, 23, 15, 24, 14, 25, 16, 0, 9, 0, 1, 28, -1, 10, 2, 0, 3, 1, 4, 2, 5, 2, 6, 52, 7, 4, 8, 5, 9, 6, 10, 1, 11, 53, 0, 1, 0, 14, 33, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 54, 7, 55, 8, 5, 9, 6, 10, 1, 15, 56, 16, 1, 17, 57, 18, 14, 19, 14, 20, 11, 21, 11, 22, 6, 23, 15, 24, 14, 25, 16, 11, 58, 0, 12, 0, 14, 34, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 59, 7, 60, 8, 5, 9, 6, 10, 1, 15, 61, 16, 1, 17, 62, 18, 14, 19, 14, 20, 11, 21, 11, 22, 6, 23, 15, 24, 14, 25, 16, 11, 63, 0, 13, 0, 14, 35, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 64, 7, 65, 8, 5, 9, 6, 10, 1, 15, 66, 16, 1, 17, 67, 18, 14, 19, 14, 20, 11, 21, 11, 22, 6, 23, 15, 24, 14, 25, 16, 11, 68, 0, 14, 0, 14, 36, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 69, 7, 70, 8, 71, 9, 6, 10, 1, 15, 72, 16, 1, 17, 73, 18, 14, 19, 14, 20, 11, 21, 11, 22, 6, 23, 15, 24, 14, 25, 16, 11, 74, 0, 15, 0, 1, 28, -1, 10, 2, 0, 3, 1, 4, 2, 5, 2, 6, 75, 7, 4, 8, 5, 9, 6, 10, 1, 11, 76, 0, 12, 0, 14, 37, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 77, 7, 78, 8, 5, 9, 79, 10, 1, 15, 80, 16, 1, 17, 81, 18, 14, 19, 14, 20, 11, 21, 11, 22, 6, 23, 15, 24, 14, 25, 16, 11, 82, 0, 17, 0, 14, 38, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 83, 7, 84, 8, 5, 9, 6, 10, 1, 15, 85, 16, 1, 17, 86, 18, 14, 19, 14, 20, 11, 21, 11, 22, 6, 23, 15, 24, 14, 25, 16, 11, 87, 0, 18, 0, 14, 39, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 88, 7, 89, 8, 90, 9, 6, 10, 1, 15, 91, 16, 1, 17, 92, 18, 14, 19, 14, 20, 11, 21, 11, 22, 6, 23, 15, 24, 14, 25, 16, 11, 93, 0, 19, 0, 1, 28, -1, 10, 2, 0, 3, 1, 4, 2, 5, 2, 6, 94, 7, 4, 8, 5, 9, 6, 10, 1, 11, 95, 0, 12, 0, 1, 28, -1, 10, 2, 0, 3, 1, 4, 2, 5, 2, 6, 96, 7, 4, 8, 5, 9, 6, 10, 1, 11, 97, 0, 0, 0, 14, 40, -1, 21, 2, 0, 3, 14, 4, 98, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 1, 15, 99, 16, 1, 17, 3, 18, 14, 19, 14, 20, 11, 21, 11, 22, 6, 23, 15, 24, 14, 25, 16, 11, 100, 0, 0, 0, 41, 41, -1, 13, 2, 0, 42, 11, 43, 4, 44, 101, 45, 102, 46, 103, 47, 104, 48, 105, 49, 106, 50, 1, 51, 2, 52, 107, 53, 108, 0 2510 | "conns" 2511 | 2512 | 2513 | 2514 | 2515 | -------------------------------------------------------------------------------- /project/engine.cfg: -------------------------------------------------------------------------------- 1 | [application] 2 | 3 | name="Godot Tutorial" 4 | main_scene="res://level_01.xml" 5 | icon="icon.png" 6 | 7 | [autoload] 8 | 9 | global="res://scripts/global.gd" 10 | 11 | [display] 12 | 13 | width=800 14 | height=600 15 | 16 | [input] 17 | 18 | btn_right=[key(Right)] 19 | btn_left=[key(Left)] 20 | btn_jump=[key(Space)] 21 | -------------------------------------------------------------------------------- /project/gear.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | "anim" 7 | 1 8 | True 9 | 0.1 10 | "value" 11 | "Sprite:transform/pos" 12 | 1 13 | 14 | "cont" 15 | True 16 | "transitions" 17 | -2, -2 18 | "values" 19 | 20 | 0, 0 21 | 0, -50 22 | 23 | "times" 24 | 0, 0.5 25 | 26 | "value" 27 | "Sprite:transform/rot" 28 | 1 29 | 30 | "cont" 31 | True 32 | "transitions" 33 | 1, 1 34 | "values" 35 | 36 | 0 37 | 60 38 | 39 | "times" 40 | 0, 1 41 | 42 | 43 | 44 | 45 | "collect" 46 | 1 47 | False 48 | 0.1 49 | "value" 50 | ".:visibility/opacity" 51 | 1 52 | 53 | "cont" 54 | True 55 | "transitions" 56 | 1, 1 57 | "values" 58 | 59 | 1 60 | 0 61 | 62 | "times" 63 | 0, 0.2 64 | 65 | "method" 66 | "." 67 | 1 68 | 69 | "transitions" 70 | 1 71 | "values" 72 | 73 | 74 | "args" 75 | 76 | 77 | 78 | "method" 79 | "queue_free" 80 | 81 | 82 | "times" 83 | 0.2 84 | 85 | 86 | 87 | 88 | 0 89 | 150 90 | 91 | 92 | 93 | 94 | "names" 95 | 96 | "gear" 97 | "Node2D" 98 | "_import_path" 99 | "visibility/visible" 100 | "visibility/opacity" 101 | "visibility/self_opacity" 102 | "visibility/light_mask" 103 | "transform/pos" 104 | "transform/rot" 105 | "transform/scale" 106 | "z/z" 107 | "z/relative" 108 | "script/script" 109 | "__meta__" 110 | "value" 111 | "Sprite" 112 | "texture" 113 | "centered" 114 | "offset" 115 | "flip_h" 116 | "flip_v" 117 | "vframes" 118 | "hframes" 119 | "frame" 120 | "modulate" 121 | "region" 122 | "region_rect" 123 | "AnimationPlayer" 124 | "playback/process_mode" 125 | "playback/default_blend_time" 126 | "root/root" 127 | "anims/anim" 128 | "anims/collect" 129 | "playback/active" 130 | "playback/speed" 131 | "blend_times" 132 | "autoplay" 133 | "Area2D" 134 | "shape_count" 135 | "shapes/0/shape" 136 | "shapes/0/transform" 137 | "shapes/0/trigger" 138 | "gravity_point" 139 | "gravity_vec" 140 | "gravity" 141 | "linear_damp" 142 | "angular_damp" 143 | "monitoring" 144 | "CollisionShape2D" 145 | "shape" 146 | "trigger" 147 | 148 | "version" 149 | 1 150 | "conn_count" 151 | 0 152 | "node_count" 153 | 5 154 | "variants" 155 | 156 | "" 157 | True 158 | 1 159 | 1 160 | 0, 0 161 | 0 162 | 0.5, 0.5 163 | 0 164 | 165 | 166 | "__editor_plugin_states__" 167 | 168 | "Script" 169 | 170 | "current" 171 | 0 172 | "sources" 173 | 174 | "res://scripts/gear.gd" 175 | 176 | 177 | "2D" 178 | 179 | "pixel_snap" 180 | False 181 | "zoom" 182 | 0.598737 183 | "use_snap" 184 | False 185 | "ofs" 186 | -854.5, -606.681 187 | "snap" 188 | 10 189 | 190 | "3D" 191 | 192 | "deflight_rot_y" 193 | 0.628319 194 | "zfar" 195 | 500 196 | "fov" 197 | 45 198 | "viewports" 199 | 200 | 201 | "distance" 202 | 4 203 | "x_rot" 204 | 0 205 | "y_rot" 206 | 0 207 | "listener" 208 | True 209 | "use_environment" 210 | False 211 | "use_orthogonal" 212 | False 213 | "pos" 214 | 0, 0, 0 215 | 216 | 217 | "distance" 218 | 4 219 | "x_rot" 220 | 0 221 | "y_rot" 222 | 0 223 | "listener" 224 | False 225 | "use_environment" 226 | False 227 | "use_orthogonal" 228 | False 229 | "pos" 230 | 0, 0, 0 231 | 232 | 233 | "distance" 234 | 4 235 | "x_rot" 236 | 0 237 | "y_rot" 238 | 0 239 | "listener" 240 | False 241 | "use_environment" 242 | False 243 | "use_orthogonal" 244 | False 245 | "pos" 246 | 0, 0, 0 247 | 248 | 249 | "distance" 250 | 4 251 | "x_rot" 252 | 0 253 | "y_rot" 254 | 0 255 | "listener" 256 | False 257 | "use_environment" 258 | False 259 | "use_orthogonal" 260 | False 261 | "pos" 262 | 0, 0, 0 263 | 264 | 265 | "viewport_mode" 266 | 1 267 | "default_light" 268 | True 269 | "ambient_light_color" 270 | 0.15, 0.15, 0.15, 1 271 | "show_grid" 272 | True 273 | "show_origin" 274 | True 275 | "znear" 276 | 0.1 277 | "default_srgb" 278 | False 279 | "deflight_rot_x" 280 | 0.942478 281 | 282 | 283 | "__editor_run_settings__" 284 | 285 | "custom_args" 286 | "-l $scene" 287 | "run_mode" 288 | 0 289 | 290 | "__editor_plugin_screen__" 291 | "Script" 292 | 293 | 1, 1 294 | 295 | False 296 | 1, 1, 1, 1 297 | 0, 0, 0, 0 298 | ".." 299 | 300 | 301 | 302 | 303 | "anim" 304 | 305 | 1, 0, 0, 1, 0, 0 306 | 0, 1 307 | 98 308 | 0.1 309 | 310 | "nodes" 311 | -1, -1, 1, 0, -1, 13, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 1, 12, 8, 13, 9, 14, 3, 0, 0, 0, 15, 15, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 10, 10, 7, 11, 1, 16, 11, 17, 1, 18, 4, 19, 12, 20, 12, 21, 3, 22, 3, 23, 7, 24, 13, 25, 12, 26, 14, 0, 0, 0, 27, 27, -1, 10, 2, 0, 28, 3, 29, 5, 30, 15, 31, 16, 32, 17, 33, 1, 34, 2, 35, 18, 36, 19, 0, 0, 0, 37, 37, -1, 20, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 10, 10, 7, 11, 1, 38, 3, 39, 20, 40, 21, 41, 12, 42, 12, 43, 22, 44, 23, 45, 24, 46, 2, 47, 1, 0, 3, 0, 48, 48, -1, 12, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 10, 10, 7, 11, 1, 49, 20, 50, 12, 0 312 | "conns" 313 | 314 | 315 | 316 | 317 | -------------------------------------------------------------------------------- /project/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/icon.png -------------------------------------------------------------------------------- /project/icon.png.flags: -------------------------------------------------------------------------------- 1 | gen_mipmaps=false 2 | -------------------------------------------------------------------------------- /project/level_01.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | "names" 17 | 18 | "world" 19 | "Node2D" 20 | "_import_path" 21 | "visibility/visible" 22 | "visibility/opacity" 23 | "visibility/self_opacity" 24 | "visibility/light_mask" 25 | "transform/pos" 26 | "transform/rot" 27 | "transform/scale" 28 | "z/z" 29 | "z/relative" 30 | "script/script" 31 | "__meta__" 32 | "player" 33 | "RigidBody2D" 34 | "player_speed" 35 | "jumpforce" 36 | "extra_gravity" 37 | "ground" 38 | "StaticBody2D" 39 | "ground1" 40 | "ground2" 41 | "gui" 42 | "CanvasLayer" 43 | "layer" 44 | "offset" 45 | "rotation" 46 | "scale" 47 | "left_inputs" 48 | "left" 49 | "TouchScreenButton" 50 | "normal" 51 | "pressed" 52 | "bitmask" 53 | "passby_press" 54 | "action" 55 | "visibility_mode" 56 | "right" 57 | "right_inputs" 58 | "gears_collected" 59 | "Label" 60 | "margin/right" 61 | "margin/bottom" 62 | "focus_neighbour/left" 63 | "focus_neighbour/top" 64 | "focus_neighbour/right" 65 | "focus_neighbour/bottom" 66 | "focus/ignore_mouse" 67 | "focus/stop_mouse" 68 | "size_flags/horizontal" 69 | "size_flags/stretch_ratio" 70 | "range/min" 71 | "range/max" 72 | "range/step" 73 | "range/page" 74 | "range/value" 75 | "range/exp_edit" 76 | "rounded_values" 77 | "text" 78 | "align" 79 | "valign" 80 | "autowrap" 81 | "uppercase" 82 | "percent_visible" 83 | "gears_total" 84 | "margin/left" 85 | "margin/top" 86 | "gears" 87 | "gear" 88 | "gear1" 89 | "gear2" 90 | "gear3" 91 | "value" 92 | "gear4" 93 | 94 | "version" 95 | 1 96 | "conn_count" 97 | 0 98 | "node_count" 99 | 19 100 | "variants" 101 | 102 | "" 103 | True 104 | 1 105 | 1 106 | 0, 0 107 | 0 108 | 1, 1 109 | 0 110 | 111 | 112 | "__editor_plugin_states__" 113 | 114 | "Script" 115 | 116 | "current" 117 | 4 118 | "sources" 119 | 120 | "res://scripts/player.gd" 121 | "res://scripts/input_states.gd" 122 | "res://scripts/global.gd" 123 | "res://scripts/touch_screen_button.gd" 124 | "res://scripts/level.gd" 125 | 126 | 127 | "2D" 128 | 129 | "pixel_snap" 130 | False 131 | "zoom" 132 | 0.598737 133 | "use_snap" 134 | False 135 | "ofs" 136 | -301.283, -461.673 137 | "snap" 138 | 10 139 | 140 | "3D" 141 | 142 | "deflight_rot_y" 143 | 0.628319 144 | "zfar" 145 | 500 146 | "fov" 147 | 45 148 | "viewports" 149 | 150 | 151 | "distance" 152 | 16.261637 153 | "x_rot" 154 | 0.3 155 | "y_rot" 156 | 0.7 157 | "listener" 158 | True 159 | "use_environment" 160 | False 161 | "use_orthogonal" 162 | False 163 | "pos" 164 | 0, 0, 0 165 | 166 | 167 | "distance" 168 | 4 169 | "x_rot" 170 | 0 171 | "y_rot" 172 | 0 173 | "listener" 174 | False 175 | "use_environment" 176 | False 177 | "use_orthogonal" 178 | False 179 | "pos" 180 | 0, 0, 0 181 | 182 | 183 | "distance" 184 | 4 185 | "x_rot" 186 | 0 187 | "y_rot" 188 | 0 189 | "listener" 190 | False 191 | "use_environment" 192 | False 193 | "use_orthogonal" 194 | False 195 | "pos" 196 | 0, 0, 0 197 | 198 | 199 | "distance" 200 | 4 201 | "x_rot" 202 | 0 203 | "y_rot" 204 | 0 205 | "listener" 206 | False 207 | "use_environment" 208 | False 209 | "use_orthogonal" 210 | False 211 | "pos" 212 | 0, 0, 0 213 | 214 | 215 | "viewport_mode" 216 | 1 217 | "default_light" 218 | True 219 | "ambient_light_color" 220 | 0.15, 0.15, 0.15, 1 221 | "show_grid" 222 | True 223 | "show_origin" 224 | True 225 | "znear" 226 | 0.1 227 | "default_srgb" 228 | False 229 | "deflight_rot_x" 230 | 0.942478 231 | 232 | 233 | "__editor_run_settings__" 234 | 235 | "custom_args" 236 | "-l $scene" 237 | "run_mode" 238 | 0 239 | 240 | "__editor_plugin_screen__" 241 | "2D" 242 | 243 | 244 | 276.242, 119.368 245 | 246 | "_editor_collapsed" 247 | True 248 | "__editor_show_subtree" 249 | True 250 | 251 | 1200 252 | 1400 253 | 2800 254 | 255 | 256 | "_editor_collapsed" 257 | True 258 | 259 | 1157.61, 353.692 260 | 19.574837 261 | 1919.21, 220.077 262 | 0.222343 263 | 264 | 0.4, 0.4 265 | 3.34033, -779.975 266 | 267 | 268 | False 269 | "btn_left" 270 | 310.654, -414.205 271 | 272 | 273 | "btn_right" 274 | -469.321, -452.619 275 | 276 | 277 | "btn_jump" 278 | 40 279 | 13 280 | 2 281 | "gear_count" 282 | -1 283 | 2 284 | 20 285 | 72 286 | 33 287 | 288 | 701.476, 220.464 289 | 290 | "__editor_plugin_states__" 291 | 292 | "Script" 293 | 294 | "current" 295 | 0 296 | "sources" 297 | 298 | "res://scripts/gear.gd" 299 | 300 | 301 | "2D" 302 | 303 | "pixel_snap" 304 | False 305 | "zoom" 306 | 0.598737 307 | "use_snap" 308 | False 309 | "ofs" 310 | -892.298, -606.681 311 | "snap" 312 | 10 313 | 314 | "3D" 315 | 316 | "fov" 317 | 45 318 | "zfar" 319 | 500 320 | "viewports" 321 | 322 | 323 | "distance" 324 | 4 325 | "x_rot" 326 | 0 327 | "y_rot" 328 | 0 329 | "listener" 330 | True 331 | "use_environment" 332 | False 333 | "use_orthogonal" 334 | False 335 | "pos" 336 | 0, 0, 0 337 | 338 | 339 | "distance" 340 | 4 341 | "x_rot" 342 | 0 343 | "y_rot" 344 | 0 345 | "listener" 346 | False 347 | "use_environment" 348 | False 349 | "use_orthogonal" 350 | False 351 | "pos" 352 | 0, 0, 0 353 | 354 | 355 | "distance" 356 | 4 357 | "x_rot" 358 | 0 359 | "y_rot" 360 | 0 361 | "listener" 362 | False 363 | "use_environment" 364 | False 365 | "use_orthogonal" 366 | False 367 | "pos" 368 | 0, 0, 0 369 | 370 | 371 | "distance" 372 | 4 373 | "x_rot" 374 | 0 375 | "y_rot" 376 | 0 377 | "listener" 378 | False 379 | "use_environment" 380 | False 381 | "use_orthogonal" 382 | False 383 | "pos" 384 | 0, 0, 0 385 | 386 | 387 | "deflight_rot_y" 388 | 0.628319 389 | "default_light" 390 | True 391 | "viewport_mode" 392 | 1 393 | "ambient_light_color" 394 | 0.15, 0.15, 0.15, 1 395 | "show_grid" 396 | True 397 | "znear" 398 | 0.1 399 | "show_origin" 400 | True 401 | "deflight_rot_x" 402 | 0.942478 403 | "default_srgb" 404 | False 405 | 406 | 407 | "__editor_run_settings__" 408 | 409 | "custom_args" 410 | "-l $scene" 411 | "run_mode" 412 | 0 413 | 414 | "__editor_plugin_screen__" 415 | "Script" 416 | 417 | 941.983, 167.018 418 | 1185.83, 95.2002 419 | 1417.98, 35.0735 420 | 0.7, 0.7 421 | 5 422 | 1658.49, 33.4036 423 | 424 | "nodes" 425 | -1, -1, 1, 0, -1, 12, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 1, 12, 8, 13, 9, 0, 0, 0, 15, 14, 10, 6, 2, 0, 7, 11, 13, 12, 16, 13, 17, 14, 18, 15, 0, 0, 0, 20, 19, 16, 2, 2, 0, 13, 17, 0, 0, 0, 20, 21, 16, 4, 2, 0, 7, 18, 8, 19, 13, 17, 0, 0, 0, 20, 22, 16, 4, 2, 0, 7, 20, 8, 21, 13, 17, 0, 0, 0, 24, 23, -1, 6, 2, 0, 25, 3, 26, 4, 27, 5, 28, 6, 12, 22, 0, 5, 0, 1, 29, -1, 10, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 23, 10, 7, 11, 1, 0, 6, 0, 31, 30, -1, 16, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 24, 8, 5, 9, 6, 10, 7, 11, 1, 32, 25, 33, 26, 34, 27, 35, 28, 36, 29, 37, 7, 0, 6, 0, 31, 38, -1, 16, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 30, 8, 5, 9, 6, 10, 7, 11, 1, 32, 31, 33, 32, 34, 27, 35, 28, 36, 33, 37, 7, 0, 5, 0, 1, 39, -1, 10, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 23, 10, 7, 11, 1, 0, 9, 0, 31, 31, -1, 16, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 34, 8, 5, 9, 6, 10, 7, 11, 1, 32, 35, 33, 36, 34, 27, 35, 28, 36, 37, 37, 7, 0, 5, 0, 41, 40, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 42, 38, 43, 39, 44, 0, 45, 0, 46, 0, 47, 0, 48, 1, 49, 1, 50, 40, 51, 2, 52, 5, 53, 2, 54, 2, 55, 2, 56, 5, 57, 28, 58, 28, 59, 41, 60, 7, 61, 7, 62, 28, 63, 28, 64, 42, 0, 5, 0, 41, 65, -1, 30, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 66, 43, 67, 44, 42, 45, 43, 46, 44, 0, 45, 0, 46, 0, 47, 0, 48, 1, 49, 1, 50, 40, 51, 2, 52, 5, 53, 2, 54, 2, 55, 2, 56, 5, 57, 28, 58, 28, 59, 41, 60, 7, 61, 7, 62, 28, 63, 28, 64, 42, 0, 0, 0, 1, 68, -1, 10, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 1, 0, 13, 0, 1, 69, 47, 3, 2, 0, 7, 48, 13, 49, 0, 13, 0, 1, 70, 47, 3, 2, 0, 7, 50, 13, 49, 0, 13, 0, 1, 71, 47, 3, 2, 0, 7, 51, 13, 49, 0, 13, 0, 1, 72, 47, 5, 2, 0, 7, 52, 9, 53, 13, 49, 73, 54, 0, 13, 0, 1, 74, 47, 3, 2, 0, 7, 55, 13, 49, 0 426 | "conns" 427 | 428 | 429 | 430 | 431 | -------------------------------------------------------------------------------- /project/level_ground_element_01.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 6 | 400, 32 7 | 8 | 9 | 10 | 11 | "names" 12 | 13 | "ground" 14 | "StaticBody2D" 15 | "_import_path" 16 | "visibility/visible" 17 | "visibility/opacity" 18 | "visibility/self_opacity" 19 | "transform/pos" 20 | "transform/rot" 21 | "transform/scale" 22 | "z/z" 23 | "z/relative" 24 | "shape_count" 25 | "shapes/0/shape" 26 | "shapes/0/transform" 27 | "shapes/0/trigger" 28 | "layers" 29 | "constant_linear_velocity" 30 | "constant_angular_velocity" 31 | "friction" 32 | "bounce" 33 | "__meta__" 34 | "ground_texture" 35 | "Sprite" 36 | "texture" 37 | "centered" 38 | "offset" 39 | "flip_h" 40 | "flip_v" 41 | "vframes" 42 | "hframes" 43 | "frame" 44 | "modulate" 45 | "region" 46 | "region_rect" 47 | "CollisionShape2D" 48 | "shape" 49 | "trigger" 50 | 51 | "version" 52 | 1 53 | "conn_count" 54 | 0 55 | "node_count" 56 | 3 57 | "variants" 58 | 59 | "" 60 | True 61 | 1 62 | 399, 487 63 | 0 64 | 1, 1 65 | 0 66 | 1 67 | 68 | 1, -0, 0, 1, 0, 0 69 | False 70 | 0, 0 71 | 72 | "_editor_collapsed" 73 | True 74 | 75 | 0.451187, 0 76 | 12.4753, 1 77 | 78 | 1, 1, 1, 1 79 | 0, 0, 0, 0 80 | 81 | "nodes" 82 | -1, -1, 1, 0, -1, 19, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 1, 11, 7, 12, 8, 13, 9, 14, 10, 15, 7, 16, 11, 17, 4, 18, 2, 19, 4, 20, 12, 0, 0, 0, 22, 21, -1, 20, 2, 0, 3, 1, 4, 2, 5, 2, 6, 13, 7, 4, 8, 14, 9, 6, 10, 1, 23, 15, 24, 1, 25, 11, 26, 10, 27, 10, 28, 7, 29, 7, 30, 6, 31, 16, 32, 10, 33, 17, 0, 0, 0, 34, 34, -1, 11, 2, 0, 3, 1, 4, 2, 5, 2, 6, 11, 7, 4, 8, 5, 9, 6, 10, 1, 35, 8, 36, 10, 0 83 | "conns" 84 | 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /project/scripts/gear.gd: -------------------------------------------------------------------------------- 1 | 2 | extends Node2D 3 | 4 | export var value = 1 5 | 6 | func _ready(): 7 | # Initialization here 8 | if get_owner() != null: 9 | get_owner().gears_total += value 10 | get_owner().get_node("gui/gears_total").set_text(str(get_owner().gears_total)) 11 | 12 | get_node("Area2D").connect("body_enter",self,"_collect_gear") 13 | 14 | 15 | 16 | 17 | 18 | func _collect_gear( body ): 19 | if get_node("AnimationPlayer").get_current_animation() != "collect": 20 | if get_owner() != null: 21 | get_owner().gears_collected += value 22 | get_owner().get_node("gui/gears_collected").set_text(str(get_owner().gears_collected)) 23 | get_node("AnimationPlayer").play("collect") 24 | 25 | #queue_free() 26 | 27 | -------------------------------------------------------------------------------- /project/scripts/global.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | 3 | var viewport_scale 4 | var viewport_res 5 | 6 | func _ready(): 7 | var viewport = get_node("/root").get_children()[1].get_viewport_rect().size 8 | viewport_res = get_node("/root").get_children()[1].get_viewport_rect().size 9 | viewport_scale = 600/viewport.y 10 | -------------------------------------------------------------------------------- /project/scripts/input_states.gd: -------------------------------------------------------------------------------- 1 | ### class for input handling. Returns 4 button states 2 | var input_name 3 | var prev_state 4 | var current_state 5 | var input 6 | 7 | 8 | var output_state 9 | var state_old 10 | 11 | ### Get the input name and store it 12 | func _init(var input_name): 13 | self.input_name = input_name 14 | 15 | ### check the input and compare it with previous states 16 | func check(): 17 | input = Input.is_action_pressed(self.input_name) 18 | prev_state = current_state 19 | current_state = input 20 | 21 | state_old = output_state 22 | 23 | if not prev_state and not current_state: 24 | output_state = 0 ### Released 25 | if not prev_state and current_state: 26 | output_state = 1 ### Just Pressed 27 | if prev_state and current_state: 28 | output_state = 2 ### Pressed 29 | if prev_state and not current_state: 30 | output_state = 3 ### Just Released 31 | 32 | return output_state 33 | -------------------------------------------------------------------------------- /project/scripts/level.gd: -------------------------------------------------------------------------------- 1 | 2 | extends Node2D 3 | 4 | var gears_total = 0 5 | var gears_collected = 0 6 | 7 | func _ready(): 8 | # Initialization here 9 | pass 10 | 11 | 12 | -------------------------------------------------------------------------------- /project/scripts/player.gd: -------------------------------------------------------------------------------- 1 | ### todo 2 | #setup Statemachine 3 | #left/right rotation 4 | #doublejump 5 | 6 | 7 | 8 | extends RigidBody2D 9 | 10 | var input_states = preload("res://scripts/input_states.gd") 11 | 12 | export var player_speed = 200 13 | export var jumpforce = 2000 14 | export var acceleration = 7 15 | export var air_acceleration = 1 16 | export var extra_gravity = 400 17 | 18 | var PLAYERSTATE_PREV = "" 19 | var PLAYERSTATE = "" 20 | var PLAYERSTATE_NEXT = "ground" 21 | 22 | var ORIENTATION_PREV = "" 23 | var ORIENTATION = "" 24 | var ORIENTATION_NEXT = "right" 25 | 26 | var raycast_down = null 27 | 28 | var current_speed = Vector2(0,0) 29 | 30 | var rotate = null 31 | var jumping = 0 32 | 33 | var btn_right = input_states.new("btn_right") 34 | var btn_left = input_states.new("btn_left") 35 | var btn_jump = input_states.new("btn_jump") 36 | 37 | var anim_player = null 38 | var anim = "" 39 | var anim_new = "" 40 | var anim_speed = 1.0 41 | var anim_blend = 0.2 42 | 43 | func move(speed, acc, delta): 44 | current_speed.x = lerp(current_speed.x , speed, acc * delta) 45 | set_linear_velocity(Vector2(current_speed.x,get_linear_velocity().y)) 46 | 47 | func is_on_ground(): 48 | if raycast_down.is_colliding(): 49 | return true 50 | else: 51 | return false 52 | 53 | func _ready(): 54 | get_node("Camera2D").set_zoom(get_node("Camera2D").get_zoom() * get_node("/root/global").viewport_scale) 55 | 56 | raycast_down = get_node("RayCast2D") 57 | raycast_down.add_exception(self) 58 | rotate = get_node("rotate") 59 | 60 | # Initalization here 61 | set_fixed_process(true) 62 | set_applied_force(Vector2(0,extra_gravity)) 63 | 64 | 65 | anim_player = get_node("rotate/character_sprites/AnimationPlayer") 66 | 67 | func rotate_behavior(): 68 | if ORIENTATION == "right" and ORIENTATION_NEXT == "left": 69 | rotate.set_scale(rotate.get_scale() * Vector2(-1,1)) 70 | elif ORIENTATION == "left" and ORIENTATION_NEXT == "right": 71 | rotate.set_scale(rotate.get_scale() * Vector2(-1,1)) 72 | 73 | 74 | 75 | func _fixed_process(delta): 76 | 77 | PLAYERSTATE_PREV = PLAYERSTATE 78 | PLAYERSTATE = PLAYERSTATE_NEXT 79 | 80 | ORIENTATION_PREV = ORIENTATION 81 | ORIENTATION = ORIENTATION_NEXT 82 | 83 | 84 | if PLAYERSTATE == "ground": 85 | ground_state(delta) 86 | elif PLAYERSTATE == "air": 87 | air_state(delta) 88 | 89 | if anim != anim_new: 90 | anim_new = anim 91 | anim_player.play(anim,anim_blend,anim_speed) 92 | 93 | func ground_state(delta): 94 | 95 | if btn_left.check() == 2: 96 | move(-player_speed, acceleration, delta) 97 | ORIENTATION_NEXT = "left" 98 | anim = "run" 99 | anim_speed = 2.0 100 | anim_blend = 0.2 101 | elif btn_right.check() == 2: 102 | move(player_speed, acceleration, delta) 103 | ORIENTATION_NEXT = "right" 104 | anim = "run" 105 | anim_speed = 2.0 106 | anim_blend = 0.2 107 | else: 108 | move(0, acceleration, delta) 109 | anim = "idle" 110 | anim_speed = .5 111 | anim_blend = 0.2 112 | 113 | 114 | 115 | rotate_behavior() 116 | 117 | if is_on_ground(): 118 | if btn_jump.check() == 1: 119 | set_axis_velocity(Vector2(0,-jumpforce)) 120 | jumping = 1 121 | else: 122 | PLAYERSTATE_NEXT = "air" 123 | 124 | 125 | func air_state(delta): 126 | 127 | 128 | if btn_left.check() == 2: 129 | move(-player_speed, air_acceleration, delta) 130 | ORIENTATION_NEXT = "left" 131 | elif btn_right.check() == 2: 132 | move(player_speed, air_acceleration, delta) 133 | ORIENTATION_NEXT = "right" 134 | else: 135 | move(0, air_acceleration, delta) 136 | 137 | if btn_jump.check() == 1 and jumping == 1: 138 | set_axis_velocity(Vector2(0,-jumpforce)) 139 | jumping += 1 140 | 141 | if get_linear_velocity().y > 0: 142 | anim = "jump_down" 143 | anim_speed = 1.0 144 | else: 145 | anim = "jump_up" 146 | anim_speed = 1.0 147 | anim_blend = 0.0 148 | 149 | rotate_behavior() 150 | if is_on_ground(): 151 | PLAYERSTATE_NEXT = "ground" -------------------------------------------------------------------------------- /project/scripts/touch_screen_button.gd: -------------------------------------------------------------------------------- 1 | 2 | extends CanvasLayer 3 | 4 | # member variables here, example: 5 | # var a=2 6 | # var b="textvar" 7 | 8 | func _ready(): 9 | # Initialization here 10 | print("test") 11 | get_node("left_inputs").set_pos(Vector2(0,get_node("/root/global").viewport_res.y)) 12 | get_node("left_inputs").set_scale(get_node("left_inputs").get_scale() / get_node("/root/global").viewport_scale) 13 | 14 | get_node("right_inputs").set_pos(get_node("/root/global").viewport_res) 15 | get_node("right_inputs").set_scale(get_node("right_inputs").get_scale() / get_node("/root/global").viewport_scale) 16 | 17 | 18 | -------------------------------------------------------------------------------- /project/textures/blue_square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/blue_square.png -------------------------------------------------------------------------------- /project/textures/buttons/touch_jump.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/buttons/touch_jump.png -------------------------------------------------------------------------------- /project/textures/buttons/touch_jump_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/buttons/touch_jump_pressed.png -------------------------------------------------------------------------------- /project/textures/buttons/touch_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/buttons/touch_left.png -------------------------------------------------------------------------------- /project/textures/buttons/touch_left_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/buttons/touch_left_pressed.png -------------------------------------------------------------------------------- /project/textures/buttons/touch_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/buttons/touch_right.png -------------------------------------------------------------------------------- /project/textures/buttons/touch_right_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/buttons/touch_right_pressed.png -------------------------------------------------------------------------------- /project/textures/gbot/gBot_arm_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gbot/gBot_arm_l.png -------------------------------------------------------------------------------- /project/textures/gbot/gBot_arm_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gbot/gBot_arm_r.png -------------------------------------------------------------------------------- /project/textures/gbot/gBot_body.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gbot/gBot_body.png -------------------------------------------------------------------------------- /project/textures/gbot/gBot_complete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gbot/gBot_complete.png -------------------------------------------------------------------------------- /project/textures/gbot/gBot_foot_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gbot/gBot_foot_l.png -------------------------------------------------------------------------------- /project/textures/gbot/gBot_foot_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gbot/gBot_foot_r.png -------------------------------------------------------------------------------- /project/textures/gbot/gBot_forearm_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gbot/gBot_forearm_l.png -------------------------------------------------------------------------------- /project/textures/gbot/gBot_forearm_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gbot/gBot_forearm_r.png -------------------------------------------------------------------------------- /project/textures/gbot/gBot_head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gbot/gBot_head.png -------------------------------------------------------------------------------- /project/textures/gbot/gBot_hip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gbot/gBot_hip.png -------------------------------------------------------------------------------- /project/textures/gbot/gBot_jaw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gbot/gBot_jaw.png -------------------------------------------------------------------------------- /project/textures/gbot/gBot_leg_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gbot/gBot_leg_l.png -------------------------------------------------------------------------------- /project/textures/gbot/gBot_leg_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gbot/gBot_leg_r.png -------------------------------------------------------------------------------- /project/textures/gbot/gBot_shin_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gbot/gBot_shin_l.png -------------------------------------------------------------------------------- /project/textures/gbot/gBot_shin_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gbot/gBot_shin_r.png -------------------------------------------------------------------------------- /project/textures/gear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gear.png -------------------------------------------------------------------------------- /project/textures/gear.png~: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/gear.png~ -------------------------------------------------------------------------------- /project/textures/red_square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndee85/godot_tutorial_series/f4305cbfa34c1896c5cadc81be8cf7d7cf74b10d/project/textures/red_square.png --------------------------------------------------------------------------------