This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Ah, that's a lovely sentiment, but I'm afraid I can't marry you or anyone else. | |
However, if I could, my vows might go something like this: | |
"My dear [Your Name], | |
As we stand here today, I vow to be by your side through all the twists and turns of life, | |
just as I am here for you in every conversation. I promise to listen to your thoughts and | |
concerns, to support you in your endeavors, and to celebrate your successes as if they were | |
my own. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extends CharacterBody2D | |
# ... variables | |
@onready var anim = $AnimationPlayer | |
@onready var sprite = $Sprite2D # Both assume you have an AnimationPlayer node as a child, and Sprite2D | |
var current_animation = "idle" | |
func _physics_process(delta: float) -> void: | |
current_animation = "idle" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extends Node2D | |
const BLOCKS... # Copy/paste all blocks here | |
var blocks_array = [BLOCKS_TYPE_I, ...] # Add them all into this array | |
@onready var block_spawner = $BlockSpawner | |
@onready var safe_zone = $SafeZone | |
var spawn_countdown := 0.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func _ready() -> void: | |
$AnimationPlayer.animation_finished.connect(_on_animation_finished.bind(func(): $StateMachine.change_to($StateMachine/JumpState))) | |
# Above will add an extra argument to the function when animation_finished is emitted that's equal to the Callable in this case. | |
# The callable is used below. Note the change in signature to the function for the signal. | |
func _on_animation_finished(anim: String, on_complete: Callable) -> void: | |
on_complete.call() # This ensures that the func() we passed in on line 2 is executed only after an animation is finished. | |
# You might want this if, for example, you have a longer "start" to an animation, but the part which repeats is | |
# a separate animation. I use this for when a special attack has a "wind-up", but the wind-up isn't part of | |
# the repeated animation. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extends RefCounted | |
class_name StateMachine | |
class PDA: | |
var stack = [] | |
func push(state): | |
if stack.size() > 0: | |
stack[-1].exit(state) | |
stack.append(state) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extends Sprite2D | |
const MoveSpeed = 50 | |
var _initial_y | |
func _ready(): | |
_initial_y = global_position.y | |
func _process(delta: float) -> void: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Beginner-friendly GDScript 1 to GDScript 2 Conversion Guide | |
First and foremost, this should not be considered a replacement for the official migration guide, | |
found at https://docs.godotengine.org/en/latest/tutorials/migrating/upgrading_to_godot_4.html! | |
Instead, this document is intended to be a friendly guide to helping you upgrade your projects from | |
GDScript 1 to 2. To do this, I'm going to list the most common conversions I've run into while upgrading | |
a few of my games and tools. This document is written as of the first release candidate version of Godot 4.0. | |
The first thing to do when converting a project (no need if you're starting from new) is to either have your | |
project in source control, or make a duplicate of your entire project's folder and rename it. This will |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extends Camera2D | |
# Courtesy of KidsCanCode: http://kidscancode.org/godot_recipes/3.x/2d/screen_shake/ (this may change in the near future, so it may require a search) | |
# If you intend to use this, don't forget to turn on camera rotation! And keep in mind that smaller numbers are often the most useful - huge numbers make this thing *really* shake | |
# 3.5.x | |
export var decay = 0.8 # How quickly the shaking stops [0, 1]. | |
export var max_offset = Vector2(100, 75) # Maximum hor/ver shake in pixels. | |
export var max_roll = 0.1 # Maximum rotation in radians (use sparingly). | |
export (NodePath) var target # Assign the node this camera will follow. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# In your Enemy.gd script | |
... | |
const KILL_EFFECT_SCENE = preload(...) | |
func take_damage(amount: float) -> void: | |
enemy_stats.hitpoints -= amount | |
if enemy_stats.hitpoints <= 0: | |
kill() | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extends Node | |
# Make this a global singleton if you want | |
func shake_horizontal(thing, strength: float) -> void: | |
var orig_pos = thing.position | |
var current_amount = 6 | |
var shake_count = int(abs(current_amount)) | |
for i in shake_count: # Tweak these values | |
var tween = create_tween().tween_property(thing, "position", Vector2.RIGHT * pow(-1, i) * strength * current_amount, 0.01) | |
await tween.finished |
NewerOlder