2025-02-17 01:29:25 +02:00
|
|
|
#+title: Section 04 - Lesson 03 | Physics 2D Nodes
|
|
|
|
|
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../../_share/media/css/godot.css" />
|
2025-02-19 03:38:14 +02:00
|
|
|
#+OPTIONS: H:6
|
2025-02-17 01:29:25 +02:00
|
|
|
|
|
|
|
|
* Links
|
|
|
|
|
- [[../../toc.org][TOC - Godot Notes]]
|
|
|
|
|
- [[https://www.udemy.com/course/jumpstart-to-2d-game-development-godot-4-for-beginners/learn/lecture/45069801#overview][S04:L45.03 - video]]
|
|
|
|
|
|
|
|
|
|
* Notes
|
2025-02-19 03:38:14 +02:00
|
|
|
|
|
|
|
|
** overview
|
|
|
|
|
*** assets
|
|
|
|
|
1. sprite sheet plane, 3 figures
|
|
|
|
|
2. pipe and laser site
|
|
|
|
|
3. some backgrounds for parallax effect
|
|
|
|
|
|
|
|
|
|
*** scenes
|
|
|
|
|
1. main game scene
|
|
|
|
|
2. plane sceen
|
|
|
|
|
3. pipes scene (2 pipes)
|
|
|
|
|
4. laser scene
|
|
|
|
|
|
|
|
|
|
*** approach
|
|
|
|
|
- make the basic game scene
|
|
|
|
|
- make a plance scene
|
|
|
|
|
- code plane movement
|
|
|
|
|
- build the pipe / laser / pipes scene
|
|
|
|
|
- setup the scrolling logic
|
|
|
|
|
- setup collishions and plane death
|
|
|
|
|
- create the main screen and setup navigation
|
|
|
|
|
- add game over
|
|
|
|
|
- add scoring with high score saving
|
|
|
|
|
- parallax background
|
|
|
|
|
|
|
|
|
|
*** plane scene
|
|
|
|
|
- falls with gravity
|
|
|
|
|
- press a key to jump or fly
|
|
|
|
|
- collides with laser, pipes, floor, ceiling
|
|
|
|
|
- animated propellor
|
|
|
|
|
|
|
|
|
|
** physics
|
|
|
|
|
*** overview
|
|
|
|
|
- gravity
|
|
|
|
|
- collisions
|
|
|
|
|
- movement
|
|
|
|
|
- forces
|
|
|
|
|
- impulse
|
|
|
|
|
- get hit by a rocket
|
|
|
|
|
|
|
|
|
|
*** physics 2D nodes
|
|
|
|
|
#+attr_html: :class two-column-definitions
|
|
|
|
|
| node type | definition |
|
|
|
|
|
|------------------+---------------------------------------------------------------------------------------------------------------------------------|
|
|
|
|
|
| StaticBody2D | Physics body for 2D physics which is static or moves only by script. Useful for floor and walls. |
|
|
|
|
|
| CharacterBody2D | Specialized 2D physics body node for characters moved by script |
|
|
|
|
|
| AnimatableBody2D | Physics body for 2D physics which moves only by script or animation. Useful for moving platforms and doors |
|
|
|
|
|
| RigidBody2D | Physics body which is moved by 2D physics simulation. Useful for objects that have gravity and can be pushed by other objects. |
|
|
|
|
|
|
|
|
|
|
**** StaticBody2D
|
|
|
|
|
- wall, rock, ceiling floor, platform in the middle of the level
|
|
|
|
|
- designed not to move
|
|
|
|
|
- things will bounce or stick to it depending on what your physics is
|
|
|
|
|
|
|
|
|
|
**** CharacterBody2D
|
|
|
|
|
- think platform character
|
|
|
|
|
- set the velocities
|
|
|
|
|
|
|
|
|
|
**** AnimatableBody2D
|
|
|
|
|
- inherits from StaticBody2D
|
|
|
|
|
- getting a StaticBody and a Character to move together is a pain and buggy
|
|
|
|
|
|
|
|
|
|
**** RigidBody2D
|
|
|
|
|
- tennis ball
|
|
|
|
|
- rocket fired
|
|
|
|
|
|
|
|
|
|
*** how they interact
|
|
|
|
|
- interact with other Physics2D nodes
|
|
|
|
|
- we DO NOT control the position, the physics engine does
|
|
|
|
|
- we supply velocity / force
|
|
|
|
|
- physics engine calculates where we go and what our speed / position is
|