asteroid spawning and rotation, bg music

pull/11/head
Sascha 2023-10-13 09:51:58 +07:00
parent 1486681de3
commit 433110864e
16 changed files with 186 additions and 27 deletions

@ -0,0 +1,6 @@
<Project Sdk="Godot.NET.Sdk/4.2.0-dev.6">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>
</PropertyGroup>
</Project>

@ -1,4 +1,4 @@
[gd_scene load_steps=8 format=3 uid="uid://det8556rpxhbv"]
[gd_scene load_steps=9 format=3 uid="uid://det8556rpxhbv"]
[ext_resource type="PackedScene" uid="uid://tlr55u0gn20l" path="res://Packed-Scenes/player_ship.tscn" id="1_whjxg"]
[ext_resource type="Texture2D" uid="uid://cg6n1hh3lj7rn" path="res://Textures/tile_nebula_green_dff.png" id="2_tilj4"]
@ -7,6 +7,7 @@
[ext_resource type="Script" path="res://Scripts/Asteroids.cs" id="4_u5tqc"]
[ext_resource type="PackedScene" uid="uid://cvlxm2yrohsca" path="res://Packed-Scenes/asteroid_02.tscn" id="5_fnf52"]
[ext_resource type="PackedScene" uid="uid://brqqgidqchi88" path="res://Packed-Scenes/asteroid_03.tscn" id="6_qk6ev"]
[ext_resource type="AudioStream" uid="uid://bthqgu8sulv77" path="res://Sounds/music_background.wav" id="8_ua17q"]
[node name="Game" type="Node3D"]
@ -16,6 +17,9 @@ transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74227e-08, 0, -1, 0, 0,
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 8, 0)
[node name="AudioListener3D" type="AudioListener3D" parent="Camera3D"]
current = true
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.707106, 0.707106, 0, -0.707106, 0.707106, 10, 10, 10)
@ -29,15 +33,11 @@ region_enabled = true
region_rect = Rect2(0, 0, 810, 1380)
script = ExtResource("3_h0dib")
[node name="Asteroids" type="Node3D" parent="." node_paths=PackedStringArray("asteroids")]
[node name="Asteroids" type="Node3D" parent="."]
script = ExtResource("4_u5tqc")
asteroids = []
[node name="Asteroid_01" parent="Asteroids" instance=ExtResource("4_5oai7")]
transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, -2.56562, 0, -5.73937)
[node name="Asteroid_02" parent="Asteroids" instance=ExtResource("5_fnf52")]
transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0, -4.80815)
asteroids = [ExtResource("4_5oai7"), ExtResource("5_fnf52"), ExtResource("6_qk6ev")]
[node name="Asteroid_03" parent="Asteroids" instance=ExtResource("6_qk6ev")]
transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 2.03349, 0, -5.66335)
[node name="BackgroundMusic" type="AudioStreamPlayer" parent="."]
stream = ExtResource("8_ua17q")
volume_db = -20.0
autoplay = true

@ -2,20 +2,26 @@ using Godot;
using System;
[GlobalClass]
public partial class Asteroid : Node3D {
public Color Color { get; private set; }
public float Speed { get; private set; }
public float Size { get; private set; }
[Export] private float speed;
[Export] private float size;
[Export] private float rotSpeed = 100f;
private Vector3 rotation;
public override void _Ready() {
Size = GD.Randf();
Speed = GD.Randf() * 5f;
Color = new(GD.Randf(), GD.Randf(), GD.Randf(), 1);
size = GD.Randf();
speed = GD.Randf() * 5f;
Scale = new(size, size,size);
rotation = new((float)GD.RandRange(-rotSpeed, rotSpeed), (float)GD.RandRange(-rotSpeed, rotSpeed), (float)GD.RandRange(-rotSpeed, rotSpeed));
Position = new((float)GD.RandRange(-3.7, 3.7), 0, -6.4f);
}
public override void _Process(double delta) => Position -= new Vector3(0, 0, Speed * (float)delta);
public void Spawn() {
GD.Print("Spawn new asteroid");
public override void _Process(double delta) {
Position += new Vector3(0, 0, speed * (float)delta);
RotationDegrees += rotation * (float)delta;
if (Position.Z > 7) {
GD.Print($"Asteroid {Name} below screen!");
QueueFree();
}
}
}

@ -3,17 +3,20 @@ using System;
using Godot.Collections;
public partial class Asteroids : Node3D {
[Export] private Array<Asteroid> asteroids;
[Export] private float spawnRate = 10f;
[Export] private Array<PackedScene> asteroids;
[Export] private float spawnRate = 1f;
private float spawnTimer;
public override void _Ready() {
spawnTimer = spawnRate;
}
private int asteroidNumber;
public override void _Ready() => spawnTimer = spawnRate;
public override void _Process(double delta) {
spawnTimer -= (float)delta;
if (spawnTimer < 0) {
asteroids.PickRandom().Spawn();
GD.Print("Spawn new asteroid");
asteroidNumber++;
Node asteroid = asteroids.PickRandom().Instantiate();
asteroid.Name = $"Asteroid{asteroidNumber}";
AddChild(asteroid);
spawnTimer = spawnRate;
}
}

Binary file not shown.

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://t0y8yw2ceskq"
path="res://.godot/imported/explosion_asteroid.wav-63f6ca5f407586ef818b031023d9f465.sample"
[deps]
source_file="res://Sounds/explosion_asteroid.wav"
dest_files=["res://.godot/imported/explosion_asteroid.wav-63f6ca5f407586ef818b031023d9f465.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=true
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

Binary file not shown.

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://ciqlpcp4k35q7"
path="res://.godot/imported/explosion_enemy.wav-1295a3a35463a0ed35ae553303c96f38.sample"
[deps]
source_file="res://Sounds/explosion_enemy.wav"
dest_files=["res://.godot/imported/explosion_enemy.wav-1295a3a35463a0ed35ae553303c96f38.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=true
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

Binary file not shown.

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cyleigtlbv5o8"
path="res://.godot/imported/explosion_player.wav-59c54d70608c166988b92827416858e5.sample"
[deps]
source_file="res://Sounds/explosion_player.wav"
dest_files=["res://.godot/imported/explosion_player.wav-59c54d70608c166988b92827416858e5.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=true
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

Binary file not shown.

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://bthqgu8sulv77"
path="res://.godot/imported/music_background.wav-20db41f3604554cf63953352b3505f66.sample"
[deps]
source_file="res://Sounds/music_background.wav"
dest_files=["res://.godot/imported/music_background.wav-20db41f3604554cf63953352b3505f66.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=true
edit/loop_mode=2
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

Binary file not shown.

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://r2ay5vtiiogk"
path="res://.godot/imported/weapon_enemy.wav-20f687888a0a8056bfd540dbc96bf6d2.sample"
[deps]
source_file="res://Sounds/weapon_enemy.wav"
dest_files=["res://.godot/imported/weapon_enemy.wav-20f687888a0a8056bfd540dbc96bf6d2.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=true
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

Binary file not shown.

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dlml6o3xscxqf"
path="res://.godot/imported/weapon_player.wav-7e89356e199177bba73b79e8be0ca391.sample"
[deps]
source_file="res://Sounds/weapon_player.wav"
dest_files=["res://.godot/imported/weapon_player.wav-7e89356e199177bba73b79e8be0ca391.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=true
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0