Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | Nizil |
Everything works for me as follows: I have a regular version of the weapon, and its rigid version in order to throw it.
Previously, for one weapon, I hid the weapon that was in my hands using the hide method. Then I spawned a rigid version of it in the same place as the weapon and applied the " " method. This solution worked very well when there was only one weapon. And I need to find out how I can automatically link these 2 versions of weapons.
I write the full code below.
func attack_check(): #Func which check attack or throwing
if Input.is_action_just_pressed("Attack") and _is_picked == true:
animation_player.play("MeleeAttack")
if Input.is_action_just_pressed("Throw") and _is_picked == true:
throw_weapon()
func throw_weapon():#Func for throwing
weapon_rigid = weapon._rigid#_rigid is a variable in weapon script
throw_velocity = (mouse_pos - global_position) * throwable_speed
throw_velocity = throw_velocity.limit_length(1700)
weapon.hide()
weapon.get_node("Pivot/AreaForHits/Hitbox").disabled = true
weapon_rigid.position = weapon._throwable_weapon_start_pos().global_position
weapon_rigid.rotation = weapon.rotation
scene.add_child(weapon_rigid)
weapon_rigid.apply_impulse(Vector2(0.0, 0.0), throw_velocity)
_is_picked = false
func _collision_checker(body): #For RigidBody
if _is_killed == false:
if _is_picked == false and body.is_in_group("Weapon_throw"):
scene.remove_child(body)
weapon.show()
weapon.get_node("Pivot/AreaForHits/Hitbox").set_deferred("disabled", false)
_is_picked = true
I am sorry I am not sure I understand what you mean when you say you want to link them. Do you mean you want to attach them to each other with something like a pivot joint?
Gluon | 2023-02-02 23:16
Nope. I mean, when I pick up rigid weapon, it need to make a node version as a player child. And to make it work I need link those 2 rigid versions. For example, player have 2 weapons, pistol and shotgun.When player throw pistol, pistol node is hide and hitbox is disabled, and on this position we add rigid_pistol
as a child. After throwing player want to throw shotgun too. He have shotgun node, which hiding after throwing and spawns rigid_shotgun
. Player want to pick pistol first, and when he pick it he got a shotgun because it just show hiden weapon, when pick up rigid weapon. I need to link those 2 weapon versions because I want to player pick up pistol and not shotgun.
I don’t know english, but I hope you understood.
Nizil | 2023-02-03 08:14