Fixed placeholder texture. Added correct ship movement

This commit is contained in:
2025-10-20 22:21:01 +03:00
parent be3db76fe2
commit c5f53b845a
5 changed files with 65 additions and 21 deletions
+15 -6
View File
@@ -1,10 +1,19 @@
extends Node2D extends Node
var position : Vector2:
set(value):
$Ship.position = value
get:
return $Ship.position
func _process(delta: float) -> void: func _process(delta: float) -> void:
var speed := 100
var input_direction := Input.get_vector("move_left", "move_right", "move_up", "move_down") var input_direction := Input.get_vector("move_left", "move_right", "move_up", "move_down")
var velocity := input_direction * speed print(input_direction)
position += velocity * delta
var screen_size := get_viewport_rect().size if input_direction.is_zero_approx():
position = position.clamp(Vector2.ZERO, screen_size) $Ship.decelerate($Ship.deceleration * delta)
else:
var acceleration : Vector2 = input_direction * $Ship.acceleration * delta
$Ship.accelerate(acceleration)
+10 -6
View File
@@ -1,9 +1,13 @@
[gd_scene load_steps=3 format=3 uid="uid://xpj7f3l1l51l"] [gd_scene load_steps=3 format=3 uid="uid://bkv8y6n7chu3f"]
[ext_resource type="Script" uid="uid://c2uf62j1im13p" path="res://game/entities/player.gd" id="1_xkeht"] [ext_resource type="Script" uid="uid://c2uf62j1im13p" path="res://game/entities/player.gd" id="1_3a8sv"]
[ext_resource type="PackedScene" uid="uid://dn44qgg4coedd" path="res://game/entities/ship.tscn" id="2_3a8sv"] [ext_resource type="PackedScene" uid="uid://jvyagshykmgb" path="res://game/entities/ship.tscn" id="2_ktqbp"]
[node name="Player" type="Node2D"] [node name="Player" type="Node"]
script = ExtResource("1_xkeht") script = ExtResource("1_3a8sv")
[node name="Ship" parent="." instance=ExtResource("2_3a8sv")] [node name="Ship" parent="." instance=ExtResource("2_ktqbp")]
size = Vector2(48, 32)
acceleration = 46
deceleration = 23
max_speed = 46
+36 -1
View File
@@ -1,9 +1,44 @@
extends Node2D extends Node2D
@export var size : Vector2 @export var size : Vector2:
set(value):
size = value
if $Sprite2D.texture:
$Sprite2D.texture.size = value
get:
return size
@export var acceleration : int
@export var deceleration : int
@export var max_speed : int
var _velocity : Vector2
func _ready() -> void: func _ready() -> void:
var texture := PlaceholderTexture2D.new() var texture := PlaceholderTexture2D.new()
texture.size = size texture.size = size
$Sprite2D.texture = texture $Sprite2D.texture = texture
func _process(delta: float) -> void:
position += _velocity * delta
func accelerate(value: Vector2) -> void:
_velocity += value
_velocity = _velocity.clamp(Vector2(-max_speed, -max_speed), Vector2(max_speed, max_speed))
func decelerate(value: float) -> void:
var current_speed := _velocity.length()
if current_speed <= 0:
_velocity = Vector2.ZERO
return
var new_speed := current_speed - value
if new_speed < 0:
new_speed = 0
_velocity = _velocity.normalized() * new_speed
+3 -7
View File
@@ -1,12 +1,8 @@
[gd_scene load_steps=2 format=3 uid="uid://dn44qgg4coedd"] [gd_scene load_steps=2 format=3 uid="uid://jvyagshykmgb"]
[sub_resource type="GDScript" id="GDScript_3a8sv"] [ext_resource type="Script" uid="uid://cesibaqtrgotl" path="res://game/entities/ship.gd" id="1_6isjb"]
script/source = "class_name Ship
extends Node2D
"
[node name="Ship" type="Node2D"] [node name="Ship" type="Node2D"]
script = SubResource("GDScript_3a8sv") script = ExtResource("1_6isjb")
[node name="Sprite2D" type="Sprite2D" parent="."] [node name="Sprite2D" type="Sprite2D" parent="."]
+1 -1
View File
@@ -2,7 +2,7 @@ extends Node
func _ready() -> void: func _ready() -> void:
var player : Node2D = load("res://game/entities/player.tscn").instantiate() var player : Node = load("res://game/entities/player.tscn").instantiate()
player.position = Vector2(100, 100) player.position = Vector2(100, 100)
add_child(player) add_child(player)