diff --git a/Scenes/crosshair.tscn b/Scenes/crosshair.tscn new file mode 100644 index 00000000..d0c9cea8 --- /dev/null +++ b/Scenes/crosshair.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://cfb3nsay84xdb"] + +[ext_resource type="Texture2D" uid="uid://cfrvb1moh857m" path="res://Sprites/Crosshair.png" id="1_hincd"] + +[node name="Sprite2D" type="Sprite2D"] +texture = ExtResource("1_hincd") diff --git a/Scenes/player.tscn b/Scenes/player.tscn index a8cc1c9e..706bd6d0 100644 --- a/Scenes/player.tscn +++ b/Scenes/player.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=22 format=3 uid="uid://bghghp5ep4w2j"] +[gd_scene load_steps=23 format=3 uid="uid://bghghp5ep4w2j"] [ext_resource type="Script" path="res://Scripts/PlayerMovement.cs" id="1_m27vu"] [ext_resource type="Texture2D" uid="uid://la06powu57hu" path="res://Sprites/Cirno_Big.png" id="2_bwf6x"] [ext_resource type="PackedScene" uid="uid://b1qnfiuokpvsr" path="res://Scenes/bullet.tscn" id="2_ov36d"] [ext_resource type="Script" path="res://addons/smoothing/smoothing_2d.gd" id="4_j4xhu"] [ext_resource type="Script" path="res://Scenes/CameraTarget.gd" id="5_cxvyt"] +[ext_resource type="PackedScene" uid="uid://cfb3nsay84xdb" path="res://Scenes/crosshair.tscn" id="6_l43rf"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_ai4rh"] size = Vector2(6, 8) @@ -137,6 +138,7 @@ collision_layer = 2 collision_mask = 3 script = ExtResource("1_m27vu") Speed = 2000 +CrosshairDistance = 20.0 BulletScene = ExtResource("2_ov36d") Muzzle = NodePath("Muzzle") metadata/_edit_group_ = true @@ -168,3 +170,5 @@ script = ExtResource("5_cxvyt") y_sort_enabled = true sprite_frames = SubResource("SpriteFrames_q0rt3") animation = &"walk_left" + +[node name="Crosshair" parent="." instance=ExtResource("6_l43rf")] diff --git a/Scripts/PlayerMovement.cs b/Scripts/PlayerMovement.cs index c184670c..5bb4726b 100644 --- a/Scripts/PlayerMovement.cs +++ b/Scripts/PlayerMovement.cs @@ -7,6 +7,9 @@ public partial class PlayerMovement : CharacterBody2D [Export] public int Speed { get; set; } = 400; + [Export] + public float CrosshairDistance { get; set; } = 10f; + [Export] public PackedScene BulletScene { get; set; } @@ -19,9 +22,13 @@ public partial class PlayerMovement : CharacterBody2D private Vector2 _facingDirection { get; set; } + private Sprite2D _crosshair; + public override void _Ready() { _animatedSprite = GetNode("./Smoothing2D/AnimatedSprite2D"); + _crosshair = GetNode("./Crosshair"); + _movementDirection = Vector2.Zero; _facingDirection = Vector2.Zero; } @@ -53,7 +60,7 @@ public partial class PlayerMovement : CharacterBody2D Owner.AddChild(bullet); bullet.Transform = Muzzle.GlobalTransform; bullet.Position = this.Position; - bullet.SetDirection(this._movementDirection); + bullet.SetDirection(this._facingDirection); } } @@ -95,6 +102,19 @@ public partial class PlayerMovement : CharacterBody2D return Input.GetVector("left", "right", "up", "down"); } + private Vector2 CalculateCrosshairPosition() + { + + return _facingDirection * CrosshairDistance;// + this.Position; + + //var angle = Mathf.Atan2(this.Position.X, this.Position.Y); + + + //var cPos = new Vector2(this.Position.X + CrosshairDistance * Godot.Mathf.Cos(angle), this.Position.Y + CrosshairDistance * Godot.Mathf.Sin(angle)); + + + } + public override void _PhysicsProcess(double delta) { _movementDirection = GetInput(); @@ -104,5 +124,8 @@ public partial class PlayerMovement : CharacterBody2D Velocity = _movementDirection * (float)(Speed * delta); MoveAndSlide(); + + _crosshair.Position = CalculateCrosshairPosition(); + } } diff --git a/Sprites/Crosshair.png b/Sprites/Crosshair.png new file mode 100644 index 00000000..6f1cbf16 --- /dev/null +++ b/Sprites/Crosshair.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7088ff340df275591bc2bd639713465354a88e529996a29d3a63d60a0fccf98 +size 127 diff --git a/Sprites/Crosshair.png.import b/Sprites/Crosshair.png.import new file mode 100644 index 00000000..af6bcfd7 --- /dev/null +++ b/Sprites/Crosshair.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cfrvb1moh857m" +path="res://.godot/imported/Crosshair.png-a2c6dd7c570cec81011a43a0b2be86c6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprites/Crosshair.png" +dest_files=["res://.godot/imported/Crosshair.png-a2c6dd7c570cec81011a43a0b2be86c6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1