Wired up player controls to jet control surfaces; additional jet factory and game mode work

This commit is contained in:
2026-10-18 22:58:58 -05:00
parent 4462600e06
commit eedf870f77
15 changed files with 192 additions and 61 deletions
+12
View File
@@ -43,15 +43,27 @@ func create_cpu_jet(faction: int = 0) -> Jet:
func create_neutral_jet() -> Jet:
var jet = JET.new()
jet.add_child( NEUTRAL_JET.MODEL.instantiate() )
jet.faction = Globals.FACTION.NEUTRAL
jet.control_frame = NEUTRAL_JET
return jet
func create_allies_jet() -> Jet:
var jet = JET.instantiate()
jet.add_child( ALLIES_JET.MODEL.instantiate() )
jet.faction = Globals.FACTION.ALLIES
jet.control_frame = ALLIES_JET
return jet
func create_axis_jet() -> Jet:
var jet = JET.instantiate()
jet.add_child( AXIS_JET.MODEL.instantiate() )
jet.faction = Globals.FACTION.AXIS
jet.control_frame = AXIS_JET
return jet
+8
View File
@@ -1 +1,9 @@
class_name BaseGameMode extends Node
var ALLIES_COUNT: int = 10
var AXIS_COUNT: int = 10
var NEUTRAL_COUNT: int = 10
var SPAWN_COUNT: int = 16
var LIFE_CHIPS_COUNT: int = 200
var WAVES: int = 5
+9
View File
@@ -1 +1,10 @@
class_name DogFight extends BaseGameMode
func _init() -> void:
SPAWN_COUNT = 16
LIFE_CHIPS_COUNT = SPAWN_COUNT * 3
func _ready() -> void:
pass
+5
View File
@@ -1 +1,6 @@
class_name DogFightWaves extends BaseGameMode
func _init() -> void:
pass
+2 -2
View File
@@ -11,9 +11,9 @@ const MODES: Dictionary = {
"Dog Fight Waves:1"
) var mode: int = 0
@export var jetFactory: JetFactory
@export var jet_factory: JetFactory
func _ready() -> void:
#MODES[mode].instantiate()
jetFactory.create_player_jet(Globals.FACTION.ALLIES)
jet_factory.create_player_jet(Globals.FACTION.ALLIES)
+4 -1
View File
@@ -4,7 +4,10 @@ class_name JetController extends Node
const CPU_MODE: int = 0
const PLAYER_MODE: int = 1
@export_enum("CPU:0", "PLAYER:1") var control_mode: int = PLAYER_MODE
@export_enum(
"CPU:0",
"PLAYER:1"
) var control_mode: int = PLAYER_MODE
@onready var cpu: CPU = $cpu
@onready var player: Player = $player
+10 -6
View File
@@ -2,18 +2,22 @@ class_name Player extends Node
func process(_delta: float) -> String:
if Input.is_action_just_pressed("pull_up"):
if Input.is_action_pressed("pull_up"):
return "pull_up"
if Input.is_action_just_pressed("push_down"):
if Input.is_action_pressed("push_down"):
return "push_down"
if Input.is_action_just_pressed("yaw_left"):
if Input.is_action_pressed("yaw_left"):
return "yaw_left"
if Input.is_action_just_pressed("yaw_right"):
if Input.is_action_pressed("yaw_right"):
return "yaw_right"
if Input.is_action_just_pressed("roll_left"):
if Input.is_action_pressed("roll_left"):
return "roll_left"
if Input.is_action_just_pressed("roll_right"):
if Input.is_action_pressed("roll_right"):
return "roll_right"
if Input.is_action_pressed("throttle_up"):
return "throttle_up"
if Input.is_action_pressed("throttle_down"):
return "throttle_down"
return ""
+63 -21
View File
@@ -1,33 +1,75 @@
class_name BaseJet extends Node
var HEALTH: int = 100
var YAW_SPEED: int = 50
var ROLL_SPEED: int = 100
var MIN_SPEED: int = 50
var MAX_SPEED: int = 200
var CONFLICT_SIDE = Globals.FACTION.NEUTRAL
var HEALTH: int = 100
var YAW_SPEED: int = 50
var ROLL_SPEED: int = 100
var MIN_SPEED: int = 200
var MAX_SPEED: int = 2000
var ACCELERATION: int = 5
func pull_up():
pass
func do_action(
action: String,
delta: float,
jet: Jet
) -> void:
var change_rate: float = deg_to_rad(1) * delta
func push_down():
pass
match action:
"pull_up":
pull_up(change_rate, jet)
"push_down":
push_down(change_rate, jet)
"yaw_left":
yaw_left(change_rate, jet)
"yaw_right":
yaw_right(change_rate, jet)
"roll_left":
roll_left(change_rate, jet)
"roll_right":
roll_right(change_rate, jet)
"throttle_up":
throttle_up(delta, jet)
"throttle_down":
throttle_down(delta, jet)
_:
pass
func yaw_left():
pass
func pull_up(change_rate: float, jet: Jet) -> void:
jet.rotate_object_local(Vector3.RIGHT, change_rate * MIN_SPEED)
func yaw_right():
pass
func push_down(change_rate: float, jet: Jet) -> void:
jet.rotate_object_local(Vector3.LEFT, change_rate * MIN_SPEED)
func roll_left():
pass
func yaw_left(change_rate: float, jet: Jet) -> void:
jet.rotate_object_local(Vector3.UP, change_rate * YAW_SPEED)
func roll_right():
pass
func yaw_right(change_rate: float, jet: Jet) -> void:
jet.rotate_object_local(Vector3.DOWN, change_rate * YAW_SPEED)
func throttle_up():
pass
func roll_left(change_rate: float, jet: Jet) -> void:
jet.rotate_object_local(Vector3.BACK, change_rate * ROLL_SPEED)
func throttle_down():
pass
func roll_right(change_rate: float, jet: Jet) -> void:
jet.rotate_object_local(Vector3.FORWARD, change_rate * ROLL_SPEED)
func throttle_up(delta: float, jet: Jet) -> void:
jet.velocity += (jet.transform.basis.z * -(delta * ACCELERATION))
#clamp(
#jet.velocity,
#MIN_SPEED * Vector3.ONE,
#MAX_SPEED * Vector3.ONE
#)
jet.velocity = jet.velocity.limit_length(MAX_SPEED)
func throttle_down(delta: float, jet: Jet) -> void:
jet.velocity += (jet.transform.basis.z * (delta * ACCELERATION))
clamp(
jet.velocity,
MIN_SPEED * Vector3.ONE,
MAX_SPEED * Vector3.ONE
)
+7 -7
View File
@@ -1,13 +1,13 @@
class_name EaglePlus extends BaseJet
const CONFLICT_SIDE = 0
const MODEL = preload("uid://cfcid44xnsbdt")
const MODEL = preload("uid://cfcid44xnsbdt")
func _init() -> void:
HEALTH = 100
YAW_SPEED = 50
ROLL_SPEED = 100
MIN_SPEED = 50
MAX_SPEED = 200
CONFLICT_SIDE = Globals.FACTION.ALLIES
HEALTH = 100
YAW_SPEED = 50
ROLL_SPEED = 100
MIN_SPEED = 50
MAX_SPEED = 200
+7 -7
View File
@@ -1,13 +1,13 @@
class_name SakerFalcon extends BaseJet
const CONFLICT_SIDE = 1
const MODEL = preload("uid://d07rxx62esueq")
const MODEL = preload("uid://d07rxx62esueq")
func _init() -> void:
HEALTH = 100
YAW_SPEED = 50
ROLL_SPEED = 100
MIN_SPEED = 50
MAX_SPEED = 200
CONFLICT_SIDE = Globals.FACTION.AXIS
HEALTH = 100
YAW_SPEED = 50
ROLL_SPEED = 100
MIN_SPEED = 50
MAX_SPEED = 200