Hey guys! Sorry if I’ve been a little late, but the reason for that is that I originally was going to join a game jam called “Godot (&beyond) Official Awards: The Indie Spark” (Here’s the link if you want to join the jam: Godot (&beyond) Official Awards: The Indie Spark - itch.io), and that the theme for the jam was “Adventure”. So, I originally wanted to make a platformer called “One Tiny Knight”. Basically, in the game, you play as a small blue knight, who has gotten himself trapped inside an abandoned ruins center after getting separated from his group of small tiny blue knights, and now must explore the ruins while defeating enemies with his sword and finding parts of a giant key.
Here’s the thing though. I was making so much good progress on Juicy the Orange that while I could juggle both games at the same time, I wanted to spend this weekend’s time on Juicy the Orange, so I decided that I’ll work on One Tiny Knight another time or tomorrow.
Anyways, back on track, I added an airborne enemy named “Chi Chi”. Basically, this enemy moves left and right in the air, and I finally added logic as of when Juicy jumps on Chi Chi, Chi Chi not only falls down and plays a sound when defeated, but I added a flip animation to give it more of a powerful effect.
Oh, and get this, I finally added controller support, and it worked exactly the same as lat them. The only issue I was having at the previous attempt was that I was using my 8BitDo Ultimate C Wireless Nintendo Switch Controller on wired mode, which made Juicy glitch out, but using it wireless, Juicy controls perfectly.
Here’s the code for Chi Chi if y’all need it:
extends Node2D
@export var SPEED : float = 70.0
@export var LEFT_LIMIT : float = -40.0
@export var RIGHT_LIMIT : float = 40.0
var velocity : Vector2 = Vector2.ZERO
var direction : int = 1
var home_x : float = 0.0
var falling : bool = false
@onready var animated_sprite_2d = $AnimatedSprite2D
@onready var chi_chi_hurt_sound = $ChiChiHurtSound
func _ready():
home_x = position.x
func _process(delta):
if falling:
velocity.y += 300 * delta
position += velocity * delta
animated_sprite_2d.rotation += 12.0 * delta
else:
# Air patrol
position.x += direction * SPEED * delta
# Reverse at limits
if position.x < home_x + LEFT_LIMIT:
direction = 1
animated_sprite_2d.flip_h = true
elif position.x > home_x + RIGHT_LIMIT:
direction = -1
animated_sprite_2d.flip_h = false
func _on_hit_area_body_entered(body: Node2D) -> void:
if falling:
return
if body.name == "Juicy":
if body.velocity.y > 0 and body.global_position.y < global_position.y:
falling = true
velocity.y = 60
body.velocity.y = -body.JUMP_FORCE * 1.15
body.animated_sprite_2d.play("Juicy Jump")
animated_sprite_2d.play("Chi Chi Hurt")
chi_chi_hurt_sound.play()
Now, the next thing I’ll be adding for Juicy the Orange is a parallax background, and a transporter which brings Juicy to the second section of the first level. Just make sure y’all keep in touch with me! Thanks a lot!


