Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | cokohlanta |
In “Level” :
extends Node
func _ready():
$Birds/Bird.attach_to($Slingshot)
In “Bird.gd” :
extends “res://scenes/Damageable.gd”
enum {
STATE_IDLE,
STATE_TRANSFERED,
STATE_ATTACHED,
STATE_DRAGGED,
STATE_RELEASED,
STATE_LAUNCHED,
}
var state = STATE_IDLE
var slingshot = null
export(int, 1,10) var TRANSFER_SPEED = 5
func _integrate_forces(s):
._integrate_forces(s)
var lv = s.get_linear_velocity()
var av = s.get_angular_velocity()
var delta = 1 / s.get_step()
var diff_pos = slingshot.get_node(“LauchPoint”).get_global_position() - get_global_position()
# IMPLEMENT STATES
match state :
STATE_TRANSFERED:
lv = diff_pos.normalized() * TRANSFER_SPEED * delta
STATE_ATTACHED:
pass
STATE_DRAGGED:
pass
STATE_RELEASED:
pass
STATE_LAUNCHED:
pass
s.set_linear_velocity(lv)
s.set_angular_velocity(av)
func attach_to(slingshot) :
self.slingshot = slingshot
state = STATE_TRANSFERED
Your script looks fine (even though it would’ve been nice if you took the time to format it properly…). Are you sure you saved the “Bird.gd”-script before testing?
njamster | 2020-05-07 20:32