Solution: I removed the else statement from the integrated_forces process and left the two lines from the condition within the process and it fixed it :) Before:
func _integrate_forces(state):
if Input.is_action_pressed("move_up"):
state.apply_force(thrust.rotated(rotation))
if Input.is_action_pressed("strafe_left"):
state.apply_force(thrust.rotated(rotation + 4.712))
if Input.is_action_pressed("strafe_right"):
state.apply_force(thrust.rotated(rotation + 1.5708))
if Input.is_action_pressed("move_down"):
state.apply_force((thrust.rotated(rotation) * -1))
else:
state.apply_force(Vector2())
Globals.player_rotation = rotation
After:
func _integrate_forces(state):
if Input.is_action_pressed("move_up"):
state.apply_force(thrust.rotated(rotation))
if Input.is_action_pressed("strafe_left"):
state.apply_force(thrust.rotated(rotation + 4.712))
if Input.is_action_pressed("strafe_right"):
state.apply_force(thrust.rotated(rotation + 1.5708))
if Input.is_action_pressed("move_down"):
state.apply_force((thrust.rotated(rotation) * -1))
state.apply_force(Vector2())
Globals.player_rotation = rotation
Hey guys, making some progress on this game but having a weird issue and I can't figure out what's happening. I'm instancing a ship scene into the level scene based on player selection. Weapon projectile instancing happens in the level scene. Fixed weapons shoot straight forward and this works fine as I'm moving and rotating until I hold the key to move backward, then all of the shots continue firing in the same direction I was facing when I started holding the key. Video example. This was all working fine prior to instancing the player into the scene. Here's the code I'm working with (please disregard the messy code lol).
level.gd:
extends Node2D
class_name LevelParent
var selected_ship = Globals.player_selected_ship
var format_ship_resource_path = "res://scenes/ships/ship_%s.tscn"
var ship_resource_path = format_ship_resource_path % selected_ship
var laser_scene: PackedScene = preload("res://scenes/weapons/laser.tscn")
func _ready():
var ship_scene = load(ship_resource_path)
var ship = ship_scene.instantiate()
$Player.add_child(ship)
ship.connect("shoot_fixed_weapon", _shoot_fixed_weapon)
ship.connect("shoot_gimbal_weapon", _shoot_gimbal_weapon)
func _shoot_gimbal_weapon(pos,direction):
var laser = laser_scene.instantiate() as Area2D
laser.position = pos
laser.rotation_degrees = rad_to_deg(direction.angle()) + 90
laser.direction = direction
$Projectiles.add_child(laser)
func _shoot_fixed_weapon(pos, direction):
var laser = laser_scene.instantiate() as Area2D
laser.position = pos
laser.rotation_degrees = rad_to_deg(Globals.player_rotation)
Globals.fixed_hardpoint_direction = Vector2(cos(Globals.player_rotation),sin(Globals.player_rotation))
laser.direction = Globals.fixed_hardpoint_direction.rotated(-1.5708)
$Projectiles.add_child(laser)
ship_crescent.gd:
extends ShipTemplate
var can_boost: bool = true
#Weapons variables
var can_shoot: bool = true
#hardpoint type should use 0=fixed, 1=gimbal, 2=turret
#later add ability to have mixed hardpoints
var hardpoint_type: int = 0
#Signals
signal shoot_gimbal_weapon(pos,direction)
signal shoot_fixed_weapon(pos,direction)
func _ready():
Globals.boost_max = boost_max
func _process(delta):
Globals.player_pos = global_position
#Build out section to target planetary bodies/NPCs/etc for auto routing
if Input.is_action_just_pressed("get_cords"):
print(str(Globals.player_pos))
#weapon aiming toggle, remove later after hardpoints developed
if Input.is_action_just_pressed("gimbal_toggle"):
if hardpoint_type == 0:
hardpoint_type += 1
else:
hardpoint_type -= 1
if can_boost == false:
_boost_recharge(boost_regen*delta)
print("boost max: " + str(boost_max))
print("boost regen: " + str(boost_regen))
print("global boost level: " + str(Globals.boost_level))
if Globals.boost_level == boost_max:
can_boost = true
print("can boost: Boost recharged!")
### WEAPONS ###
#Remove LaserTimer when weapon modules are set up
#Fixed weapon code
var player_direction = (Globals.player_pos - $FixedHardpointDirection.position).normalized()
if Input.is_action_just_pressed("fire_primary") and can_shoot and Globals.laser_ammo > 0 and hardpoint_type == 0:
Globals.laser_ammo -= 1
var hardpoint_positions = $HardpointPositions.get_children()
can_shoot = false
$Timers/LaserTimer.start()
for i in hardpoint_positions:
print("ship shot fired")
shoot_fixed_weapon.emit(i.global_position, player_direction)
#Gimbal weapon code
var gimbal_direction = (get_global_mouse_position() - position).normalized()
if Input.is_action_just_pressed("fire_primary") and can_shoot and Globals.laser_ammo > 0 and hardpoint_type == 1:
Globals.laser_ammo -= 1
var hardpoint_positions = $HardpointPositions.get_children()
can_shoot = false
$Timers/LaserTimer.start()
for i in hardpoint_positions:
shoot_gimbal_weapon.emit(i.global_position, gimbal_direction)
#Add turret (auto aim system) later
#Spaceflight physics based controls
func _integrate_forces(state):
if Input.is_action_pressed("move_up"):
state.apply_force(thrust.rotated(rotation))
if Input.is_action_pressed("strafe_left"):
state.apply_force(thrust.rotated(rotation + 4.712))
if Input.is_action_pressed("strafe_right"):
state.apply_force(thrust.rotated(rotation + 1.5708))
if Input.is_action_pressed("move_down"):
state.apply_force((thrust.rotated(rotation) * -1))
else:
state.apply_force(Vector2())
Globals.player_rotation = rotation
#REWORK boost mechanic. button hold (gradual) vs press (instant), increase cooldown, adjust boost length, add fuel/special requirements for use
if Input.is_action_just_pressed("boost") and can_boost:
can_boost = false
Globals.boost_level = 0
#$Timers/BoostRecharge.start()
state.apply_impulse((thrust.rotated(rotation) * 2))
var rotation_direction = 0
if Input.is_action_pressed("turn_right"):
rotation_direction += 1
if Input.is_action_pressed("turn_left"):
rotation_direction -= 1
state.apply_torque(rotation_direction * torque)
#modify later to remove globals. Base boost data on ship equipment
func _boost_recharge(recharge_rate):
Globals.boost_level = clamp(Globals.boost_level + recharge_rate, 0, boost_max)
print(Globals.boost_level)
#Timer timeout functions
func _on_boost_timer_timeout():
print("boost depleted")
func _on_boost_recharge_timeout():
print("boost timer recharged!")
can_boost = true
func _on_laser_timer_timeout():
can_shoot = true
I went through a similar experience. I started transitioning "late" in life. I've never really had trouble getting interviews anywhere I've applied prior to starting my transition. Most of the time I could get hired, sometimes not, but getting an interview at the very least was pretty much guaranteed. I reached a point where hormones were making noticeable changes and I was updating my wardrobe to be more feminine so I updated my resume to include my new name/pronouns. I left my dead name on there because I've yet to really tackle anything to change my external, very male, appearance and I've made very little progress with my voice. I figured solely using my new name would leave whoever called feeling misled when they heard a deep, male voice on the other end.
Around May 2023 I was looking to make a move as I was unhappy with my work, which was a major disappointment because I was very accepted there for who I was. I just hated the work and felt isolated as I didn't really feel like I connected with anyone. Plus my position was separated from the rest of the team due to building design so I mostly worked just out of view of everyone, but close enough that I could hear the constant chatter that I never got to be a part of. The most conversation I ever got with anyone was "good morning" and "have a nice day."
I applied to literally hundreds of jobs. I applied to stuff that I had years of experience with and great references for, but my references have said they were never contacted.. I applied to things that were mostly new and I'd write up a cover letter detailing how my previous experiences translated to this new field. I applied for positions that anyone with a GED should be able to get. Most of the time I just never had any sort of response. A few places emailed me months later to tell me that I hadn't been selected. I got one in person interview and was turned down. They seemed nice for the most part but also seemed thrown off when they actually saw me walk in. The hesitation in their voices said "this isn't what we were expecting..."
Life started to spiral pretty hard. I was stuck, alone, and unhappy at my job with no way out in a city I was barely getting by in. Every time I went to start a new application I felt defeated before I even started. Every time I submitted one and didn't hear back I felt like a failure. I questioned if transitioning was a mistake and debated on detransitioning and continuing to live the lie I had most of my life. Eventually I broke and quit my job with nothing lined up and life got real shitty after that.. In the end I decided staying the course was the best plan for me. Going back in the closet wasn't even going to be a consideration and I'd hold out until I figured it out. I'm sure I will continue to miss out on opportunities due to this but as I continue to make progress with transitioning I also believe it will get better. I'm now rebuilding my life one day at a time, piece by piece, and will continue to do so until I've reached my goals or die trying. Life is tough but we are tougher. Stay strong out there ladies ❤️