diff --git a/Characters/Ships/wrecked_boat.gd b/Characters/Ships/wrecked_boat.gd index e459914..de5f752 100644 --- a/Characters/Ships/wrecked_boat.gd +++ b/Characters/Ships/wrecked_boat.gd @@ -9,7 +9,6 @@ func _ready() -> void: # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: scale = scale * (0.6 ** delta) - print("scale: ", scale) pass func _on_lifetime_timeout(): diff --git a/Characters/pirate.gd b/Characters/pirate.gd index 996b57c..230dc1d 100644 --- a/Characters/pirate.gd +++ b/Characters/pirate.gd @@ -54,6 +54,8 @@ func deg_to_rad(degrees: float) -> float: return degrees * PI / 180.0 func take_damage(_damage : float): + if is_queued_for_deletion(): + return var wrecked_boat = wrecked_boat_scene.instantiate() wrecked_boat.position = position wrecked_boat.rotation = rotation diff --git a/Characters/player.gd b/Characters/player.gd index 99b0780..c7f0199 100644 --- a/Characters/player.gd +++ b/Characters/player.gd @@ -1,7 +1,6 @@ -extends Area2D - +extends RigidBody2D @export var speed = 400 -@export var score : int = 0 +var score : int = 0 @export var bullet_scene: PackedScene @export var life_max : float = 30 @@ -16,7 +15,7 @@ func _ready() -> void: # Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: +func _physics_process(_delta: float) -> void: var velocity = Vector2.ZERO # The player's movement vector. if Input.is_action_pressed("move_right"): velocity.x += 1 @@ -29,8 +28,18 @@ func _process(delta: float) -> void: if velocity.length() > 0: velocity = velocity.normalized() * speed rotation = velocity.angle() #velocity.angle() + PI/2 - position += velocity * delta - #position = position.clamp(Vector2.ZERO, screen_size) + #position += velocity * delta + apply_central_force(velocity) + + var map_size = Vector2(1000, 1000) + var velocity2 = Vector2.ZERO + if position.x <= 0 or position.x >= map_size.x: + velocity2.x = -linear_velocity.x + if position.y <= 0 or position.y >= map_size.y: + velocity2.y = -linear_velocity.y + if velocity2.length(): + linear_velocity = velocity2 + func _on_shoot_timer_timeout(): _shoot(Vector2(0, 40)) @@ -49,4 +58,7 @@ func take_damage(damage : float): #get_tree().reload_current_scene() get_tree().paused = true $GameOverScreen.show() - + +func add_score(score_to_add : int): + self.score += score_to_add + $SFXGetCoin.play() diff --git a/Characters/player.gd.uid b/Characters/player.gd.uid index 03cd69d..16bf7fc 100644 --- a/Characters/player.gd.uid +++ b/Characters/player.gd.uid @@ -1 +1 @@ -uid://doegfk88vnwo1 +uid://4rbevg41pdbi diff --git a/Characters/player.tscn b/Characters/player.tscn index deba5ab..007ba0c 100644 --- a/Characters/player.tscn +++ b/Characters/player.tscn @@ -1,40 +1,31 @@ -[gd_scene load_steps=8 format=3 uid="uid://ifus76ia8xws"] +[gd_scene load_steps=8 format=3 uid="uid://d01b7h5474v44"] -[ext_resource type="Texture2D" uid="uid://83sv1yu3pkya" path="res://Characters/Ships/player_ship.png" id="1_5mj4t"] -[ext_resource type="Script" uid="uid://doegfk88vnwo1" path="res://Characters/player.gd" id="1_eovys"] -[ext_resource type="PackedScene" uid="uid://ngrscx1l0dn5" path="res://GPE/CannonBall/cannon_ball.tscn" id="2_65n15"] -[ext_resource type="PackedScene" uid="uid://c2pruida0t5o0" path="res://Player/hud.tscn" id="3_vb825"] -[ext_resource type="PackedScene" uid="uid://bu4cvy8wdnt54" path="res://Player/game_over_screen.tscn" id="5_l48on"] +[ext_resource type="Script" uid="uid://4rbevg41pdbi" path="res://Characters/player.gd" id="1_65n15"] +[ext_resource type="Texture2D" uid="uid://83sv1yu3pkya" path="res://Characters/Ships/player_ship.png" id="1_vb825"] +[ext_resource type="PackedScene" uid="uid://c2pruida0t5o0" path="res://Player/hud.tscn" id="2_65n15"] +[ext_resource type="PackedScene" uid="uid://ngrscx1l0dn5" path="res://GPE/CannonBall/cannon_ball.tscn" id="2_l48on"] +[ext_resource type="PackedScene" uid="uid://bu4cvy8wdnt54" path="res://Player/game_over_screen.tscn" id="3_l48on"] +[ext_resource type="AudioStream" uid="uid://c30yhipl7sot4" path="res://GPE/Coin/handleCoins.ogg" id="6_4m0gv"] -[sub_resource type="SpriteFrames" id="SpriteFrames_eovys"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("1_5mj4t") -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] - -[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_vb825"] +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_4m0gv"] radius = 37.0 height = 118.0 -[node name="Player" type="Area2D" groups=["players"]] -script = ExtResource("1_eovys") -bullet_scene = ExtResource("2_65n15") -metadata/_edit_group_ = true +[node name="Player" type="RigidBody2D" groups=["players"]] +gravity_scale = 0.0 +linear_damp = 1.0 +script = ExtResource("1_65n15") +bullet_scene = ExtResource("2_l48on") -[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +[node name="Sprite2D" type="Sprite2D" parent="."] rotation = -1.5707964 -sprite_frames = SubResource("SpriteFrames_eovys") +texture = ExtResource("1_vb825") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] rotation = -1.5707964 -shape = SubResource("CapsuleShape2D_vb825") +shape = SubResource("CapsuleShape2D_4m0gv") -[node name="HUD" parent="." instance=ExtResource("3_vb825")] +[node name="HUD" parent="." instance=ExtResource("2_65n15")] [node name="Camera2D" type="Camera2D" parent="."] drag_horizontal_enabled = true @@ -43,4 +34,9 @@ drag_vertical_enabled = true [node name="ShootTimer" type="Timer" parent="."] autostart = true -[node name="GameOverScreen" parent="." instance=ExtResource("5_l48on")] +[node name="GameOverScreen" parent="." instance=ExtResource("3_l48on")] + +[node name="AudioListener2D" type="AudioListener2D" parent="."] + +[node name="SFXGetCoin" type="AudioStreamPlayer2D" parent="."] +stream = ExtResource("6_4m0gv") diff --git a/Characters/player_old.gd b/Characters/player_old.gd new file mode 100644 index 0000000..99b0780 --- /dev/null +++ b/Characters/player_old.gd @@ -0,0 +1,52 @@ +extends Area2D + +@export var speed = 400 +@export var score : int = 0 +@export var bullet_scene: PackedScene + +@export var life_max : float = 30 +@onready var life : float = life_max + +var screen_size + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + screen_size = get_viewport_rect().size + $ShootTimer.timeout.connect(_on_shoot_timer_timeout) + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + var velocity = Vector2.ZERO # The player's movement vector. + if Input.is_action_pressed("move_right"): + velocity.x += 1 + if Input.is_action_pressed("move_left"): + velocity.x -= 1 + if Input.is_action_pressed("move_down"): + velocity.y += 1 + if Input.is_action_pressed("move_up"): + velocity.y -= 1 + if velocity.length() > 0: + velocity = velocity.normalized() * speed + rotation = velocity.angle() #velocity.angle() + PI/2 + position += velocity * delta + #position = position.clamp(Vector2.ZERO, screen_size) + +func _on_shoot_timer_timeout(): + _shoot(Vector2(0, 40)) + _shoot(Vector2(0, -40)) + +func _shoot(socket : Vector2): + var bullet = bullet_scene.instantiate() + bullet.position = position + socket.rotated(self.rotation) + bullet.rotation = self.rotation + PI/2 * sign(socket.y) + bullet.instigator = self + get_parent().add_child(bullet) + +func take_damage(damage : float): + life -= damage + if life <= 0: + #get_tree().reload_current_scene() + get_tree().paused = true + $GameOverScreen.show() + diff --git a/Characters/player_old.gd.uid b/Characters/player_old.gd.uid new file mode 100644 index 0000000..03cd69d --- /dev/null +++ b/Characters/player_old.gd.uid @@ -0,0 +1 @@ +uid://doegfk88vnwo1 diff --git a/Characters/player_old.tscn b/Characters/player_old.tscn new file mode 100644 index 0000000..28939d0 --- /dev/null +++ b/Characters/player_old.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=8 format=3 uid="uid://ifus76ia8xws"] + +[ext_resource type="Texture2D" uid="uid://83sv1yu3pkya" path="res://Characters/Ships/player_ship.png" id="1_5mj4t"] +[ext_resource type="Script" uid="uid://doegfk88vnwo1" path="res://Characters/player_old.gd" id="1_eovys"] +[ext_resource type="PackedScene" uid="uid://ngrscx1l0dn5" path="res://GPE/CannonBall/cannon_ball.tscn" id="2_65n15"] +[ext_resource type="PackedScene" uid="uid://c2pruida0t5o0" path="res://Player/hud.tscn" id="3_vb825"] +[ext_resource type="PackedScene" uid="uid://bu4cvy8wdnt54" path="res://Player/game_over_screen.tscn" id="5_l48on"] + +[sub_resource type="SpriteFrames" id="SpriteFrames_eovys"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_5mj4t") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_vb825"] +radius = 37.0 +height = 118.0 + +[node name="Player_old" type="Area2D" groups=["players"]] +script = ExtResource("1_eovys") +bullet_scene = ExtResource("2_65n15") +metadata/_edit_group_ = true + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +rotation = -1.5707964 +sprite_frames = SubResource("SpriteFrames_eovys") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +rotation = -1.5707964 +shape = SubResource("CapsuleShape2D_vb825") + +[node name="HUD" parent="." instance=ExtResource("3_vb825")] + +[node name="Camera2D" type="Camera2D" parent="."] +drag_horizontal_enabled = true +drag_vertical_enabled = true + +[node name="ShootTimer" type="Timer" parent="."] +autostart = true + +[node name="GameOverScreen" parent="." instance=ExtResource("5_l48on")] diff --git a/GPE/Coin/coin.gd b/GPE/Coin/coin.gd index eedf776..b755927 100644 --- a/GPE/Coin/coin.gd +++ b/GPE/Coin/coin.gd @@ -2,8 +2,8 @@ extends Area2D func _ready(): # Connecte le signal de collision - #connect("body_entered", _on_body_entered) - connect("area_entered", _on_body_entered) + connect("body_entered", _on_body_entered) + #connect("area_entered", _on_body_entered) print("Coucou") @@ -12,5 +12,4 @@ func _on_body_entered(body): if body.is_in_group("players"): # Détruit le coin queue_free() - - body.score += 100 + body.add_score(100) diff --git a/GPE/Coin/handleCoins.ogg b/GPE/Coin/handleCoins.ogg new file mode 100644 index 0000000..c84e27d Binary files /dev/null and b/GPE/Coin/handleCoins.ogg differ diff --git a/GPE/Coin/handleCoins.ogg.import b/GPE/Coin/handleCoins.ogg.import new file mode 100644 index 0000000..5247ee3 --- /dev/null +++ b/GPE/Coin/handleCoins.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://c30yhipl7sot4" +path="res://.godot/imported/handleCoins.ogg-7da20377e3da98279e3bbfe865453091.oggvorbisstr" + +[deps] + +source_file="res://GPE/Coin/handleCoins.ogg" +dest_files=["res://.godot/imported/handleCoins.ogg-7da20377e3da98279e3bbfe865453091.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/GPE/Coin/handleCoins2.ogg b/GPE/Coin/handleCoins2.ogg new file mode 100644 index 0000000..73d92c5 Binary files /dev/null and b/GPE/Coin/handleCoins2.ogg differ diff --git a/GPE/Coin/handleCoins2.ogg.import b/GPE/Coin/handleCoins2.ogg.import new file mode 100644 index 0000000..74013e9 --- /dev/null +++ b/GPE/Coin/handleCoins2.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://djwj5a8k5lqb4" +path="res://.godot/imported/handleCoins2.ogg-b921e1b83dacc555da15b679c2e2ce8f.oggvorbisstr" + +[deps] + +source_file="res://GPE/Coin/handleCoins2.ogg" +dest_files=["res://.godot/imported/handleCoins2.ogg-b921e1b83dacc555da15b679c2e2ce8f.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/GPE/chop.ogg b/GPE/chop.ogg new file mode 100644 index 0000000..a9d991f Binary files /dev/null and b/GPE/chop.ogg differ diff --git a/GPE/chop.ogg.import b/GPE/chop.ogg.import new file mode 100644 index 0000000..5e960ac --- /dev/null +++ b/GPE/chop.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://buqji60cs0r6t" +path="res://.godot/imported/chop.ogg-25043dd2c26872ee323305db5591422e.oggvorbisstr" + +[deps] + +source_file="res://GPE/chop.ogg" +dest_files=["res://.godot/imported/chop.ogg-25043dd2c26872ee323305db5591422e.oggvorbisstr"] + +[params] + +loop=true +loop_offset=0.0 +bpm=0.0 +beat_count=0 +bar_beats=4 diff --git a/Maps/Tiles/tiles.gd b/Maps/Tiles/tiles.gd index 63336d0..b34e518 100644 --- a/Maps/Tiles/tiles.gd +++ b/Maps/Tiles/tiles.gd @@ -4,7 +4,7 @@ extends TileMapLayer # Called when the node enters the scene tree for the first time. func _ready(): # Taille de la zone à couvrir (en tiles) - var zone_size = 20 + var zone_size = 21 # Remplir une zone carrée autour du centre for x in range(-zone_size, zone_size): for y in range(-zone_size, zone_size): diff --git a/Maps/game_map.tscn b/Maps/game_map.tscn new file mode 100644 index 0000000..821e835 --- /dev/null +++ b/Maps/game_map.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=5 format=4 uid="uid://bmj5igs8dvepl"] + +[ext_resource type="PackedScene" uid="uid://c6rnvbhbn7ida" path="res://Maps/Tiles/Tiles.tscn" id="1_yygpi"] +[ext_resource type="PackedScene" uid="uid://d01b7h5474v44" path="res://Characters/player.tscn" id="2_4a06y"] +[ext_resource type="TileSet" uid="uid://cy866rju3ffv3" path="res://Maps/Tiles/terrain_tileset.tres" id="2_ddepd"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_dkl6u"] +size = Vector2(1000, 1000) + +[node name="GameMap" type="Node"] + +[node name="Tiles" parent="." instance=ExtResource("1_yygpi")] +position = Vector2(1050.2191, 346.2714) + +[node name="TileMapLayer" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAPAAAAAQAHAAEAAAAPAAEAAQAHAAEAAAAPAAIAAQAHAAEAAAAPAAMAAQAHAAEAAAAPAAQAAQAHAAEAAAAPAAUAAQAHAAEAAAAPAAYAAQAHAAEAAAAPAAcAAQAHAAEAAAAPAAgAAQAHAAEAAAAPAAkAAQAHAAEAAAAPAAoAAQAHAAEAAAAPAAsAAQAHAAEAAAAPAAwAAQAHAAEAAAAPAA0AAQAHAAEAAAAPAA4AAQAHAAEAAAAPAA8AAQAHAAEAAAAAABAAAQAHAAEAAAABABAAAQAHAAEAAAACABAAAQAHAAEAAAADABAAAQAHAAEAAAAEABAAAQAHAAEAAAAFABAAAQAHAAEAAAAGABAAAQAHAAEAAAAHABAAAQAHAAEAAAAIABAAAQAHAAEAAAAJABAAAQAHAAEAAAAKABAAAQAHAAEAAAALABAAAQAHAAEAAAAMABAAAQAHAAEAAAANABAAAQAHAAEAAAAOABAAAQAHAAEAAAAPABAAAQAHAAEAAAAPAP//AQAHAAEAAAAOAP//AQAHAAEAAAANAP//AQAHAAEAAAAMAP//AQAHAAEAAAALAP//AQAHAAEAAAAKAP//AQAHAAEAAAAJAP//AQAHAAEAAAAIAP//AQAHAAEAAAAHAP//AQAHAAEAAAAGAP//AQAHAAEAAAAFAP//AQAHAAEAAAAEAP//AQAHAAEAAAADAP//AQAHAAEAAAACAP//AQAHAAEAAAABAP//AQAHAAEAAAAAAP//AQAHAAEAAAD/////AQAHAAEAAAD//wAAAQAHAAEAAAD//wEAAQAHAAEAAAD//wIAAQAHAAEAAAD//wMAAQAHAAEAAAD//wQAAQAHAAEAAAD//wUAAQAHAAEAAAD//wYAAQAHAAEAAAD//wcAAQAHAAEAAAD//wgAAQAHAAEAAAD//wkAAQAHAAEAAAD//woAAQAHAAEAAAD//wsAAQAHAAEAAAD//wwAAQAHAAEAAAD//w0AAQAHAAEAAAD//w4AAQAHAAEAAAD//w8AAQAHAAEAAAD//xAAAQAHAAEAAAAQAP//AQAHAAYAAAAQAAAAAQAHAAYAAAAQAAEAAQAHAAYAAAAQAAIAAQAHAAYAAAAQAAMAAQAHAAYAAAAQAAQAAQAHAAYAAAAQAAUAAQAHAAYAAAAQAAYAAQAHAAYAAAAQAAcAAQAHAAYAAAAQAAgAAQAHAAYAAAAQAAkAAQAHAAYAAAAQAAoAAQAHAAYAAAAQAAsAAQAHAAYAAAAQAAwAAQAHAAYAAAAQAA0AAQAHAAYAAAAQAA4AAQAHAAYAAAAQAA8AAQAHAAYAAAAQABAAAQAHAAYAAAARAP//AQAHAAYAAAARAAAAAQAHAAYAAAARAAEAAQAHAAYAAAARAAIAAQAHAAYAAAARAAMAAQAHAAYAAAARAAQAAQAHAAYAAAARAAUAAQAHAAYAAAARAAYAAQAHAAYAAAARAAcAAQAHAAYAAAARAAgAAQAHAAYAAAARAAkAAQAHAAYAAAARAAoAAQAHAAYAAAARAAsAAQAHAAYAAAARAAwAAQAHAAYAAAARAA0AAQAHAAYAAAARAA4AAQAHAAYAAAARAA8AAQAHAAYAAAARABAAAQAHAAYAAAASAP//AQAHAAYAAAASAAAAAQAHAAYAAAASAAEAAQAHAAYAAAASAAIAAQAHAAYAAAASAAMAAQAHAAYAAAASAAQAAQAHAAYAAAASAAUAAQAHAAYAAAASAAYAAQAHAAYAAAASAAcAAQAHAAYAAAASAAgAAQAHAAYAAAASAAkAAQAHAAYAAAASAAoAAQAHAAYAAAASAAsAAQAHAAYAAAASAAwAAQAHAAYAAAASAA0AAQAHAAYAAAASAA4AAQAHAAYAAAASAA8AAQAHAAYAAAASABAAAQAHAAYAAAATAP//AQAHAAYAAAATAAAAAQAHAAYAAAATAAEAAQAHAAYAAAATAAIAAQAHAAYAAAATAAMAAQAHAAYAAAATAAQAAQAHAAYAAAATAAUAAQAHAAYAAAATAAYAAQAHAAYAAAATAAcAAQAHAAYAAAATAAgAAQAHAAYAAAATAAkAAQAHAAYAAAATAAoAAQAHAAYAAAATAAsAAQAHAAYAAAATAAwAAQAHAAYAAAATAA0AAQAHAAYAAAATAA4AAQAHAAYAAAATAA8AAQAHAAYAAAATABAAAQAHAAYAAAAUAP//AQAHAAYAAAAUAAAAAQAHAAYAAAAUAAEAAQAHAAYAAAAUAAIAAQAHAAYAAAAUAAMAAQAHAAYAAAAUAAQAAQAHAAYAAAAUAAUAAQAHAAYAAAAUAAYAAQAHAAYAAAAUAAcAAQAHAAYAAAAUAAgAAQAHAAYAAAAUAAkAAQAHAAYAAAAUAAoAAQAHAAYAAAAUAAsAAQAHAAYAAAAUAAwAAQAHAAYAAAAUAA0AAQAHAAYAAAAUAA4AAQAHAAYAAAAUAA8AAQAHAAYAAAAUABAAAQAHAAYAAAD//xEAAQAHAAYAAAD//xIAAQAHAAYAAAD//xMAAQAHAAYAAAD//xQAAQAHAAYAAAAAABEAAQAHAAYAAAAAABIAAQAHAAYAAAAAABMAAQAHAAYAAAAAABQAAQAHAAYAAAABABEAAQAHAAYAAAABABIAAQAHAAYAAAABABMAAQAHAAYAAAABABQAAQAHAAYAAAACABEAAQAHAAYAAAACABIAAQAHAAYAAAACABMAAQAHAAYAAAACABQAAQAHAAYAAAADABEAAQAHAAYAAAADABIAAQAHAAYAAAADABMAAQAHAAYAAAADABQAAQAHAAYAAAAEABEAAQAHAAYAAAAEABIAAQAHAAYAAAAEABMAAQAHAAYAAAAEABQAAQAHAAYAAAAFABEAAQAHAAYAAAAFABIAAQAHAAYAAAAFABMAAQAHAAYAAAAFABQAAQAHAAYAAAAGABEAAQAHAAYAAAAGABIAAQAHAAYAAAAGABMAAQAHAAYAAAAGABQAAQAHAAYAAAAHABEAAQAHAAYAAAAHABIAAQAHAAYAAAAHABMAAQAHAAYAAAAHABQAAQAHAAYAAAAIABEAAQAHAAYAAAAIABIAAQAHAAYAAAAIABMAAQAHAAYAAAAIABQAAQAHAAYAAAAJABEAAQAHAAYAAAAJABIAAQAHAAYAAAAJABMAAQAHAAYAAAAJABQAAQAHAAYAAAAKABEAAQAHAAYAAAAKABIAAQAHAAYAAAAKABMAAQAHAAYAAAAKABQAAQAHAAYAAAALABEAAQAHAAYAAAALABIAAQAHAAYAAAALABMAAQAHAAYAAAALABQAAQAHAAYAAAAMABEAAQAHAAYAAAAMABIAAQAHAAYAAAAMABMAAQAHAAYAAAAMABQAAQAHAAYAAAANABEAAQAHAAYAAAANABIAAQAHAAYAAAANABMAAQAHAAYAAAANABQAAQAHAAYAAAAOABEAAQAHAAYAAAAOABIAAQAHAAYAAAAOABMAAQAHAAYAAAAOABQAAQAHAAYAAAAPABEAAQAHAAYAAAAPABIAAQAHAAYAAAAPABMAAQAHAAYAAAAPABQAAQAHAAYAAAAQABEAAQAHAAYAAAAQABIAAQAHAAYAAAAQABMAAQAHAAYAAAAQABQAAQAHAAYAAAARABEAAQAHAAYAAAARABIAAQAHAAYAAAARABMAAQAHAAYAAAARABQAAQAHAAYAAAASABEAAQAHAAYAAAASABIAAQAHAAYAAAASABMAAQAHAAYAAAASABQAAQAHAAYAAAATABEAAQAHAAYAAAATABIAAQAHAAYAAAATABMAAQAHAAYAAAATABQAAQAHAAYAAAAUABEAAQAHAAYAAAAUABIAAQAHAAYAAAAUABMAAQAHAAYAAAAUABQAAQAHAAYAAAD5////AQAHAAYAAAD5/wAAAQAHAAYAAAD5/wEAAQAHAAYAAAD5/wIAAQAHAAYAAAD5/wMAAQAHAAYAAAD5/wQAAQAHAAYAAAD5/wUAAQAHAAYAAAD5/wYAAQAHAAYAAAD5/wcAAQAHAAYAAAD5/wgAAQAHAAYAAAD5/wkAAQAHAAYAAAD5/woAAQAHAAYAAAD5/wsAAQAHAAYAAAD5/wwAAQAHAAYAAAD5/w0AAQAHAAYAAAD5/w4AAQAHAAYAAAD5/w8AAQAHAAYAAAD5/xAAAQAHAAYAAAD5/xEAAQAHAAYAAAD5/xIAAQAHAAYAAAD6////AQAHAAYAAAD6/wAAAQAHAAYAAAD6/wEAAQAHAAYAAAD6/wIAAQAHAAYAAAD6/wMAAQAHAAYAAAD6/wQAAQAHAAYAAAD6/wUAAQAHAAYAAAD6/wYAAQAHAAYAAAD6/wcAAQAHAAYAAAD6/wgAAQAHAAYAAAD6/wkAAQAHAAYAAAD6/woAAQAHAAYAAAD6/wsAAQAHAAYAAAD6/wwAAQAHAAYAAAD6/w0AAQAHAAYAAAD6/w4AAQAHAAYAAAD6/w8AAQAHAAYAAAD6/xAAAQAHAAYAAAD6/xEAAQAHAAYAAAD6/xIAAQAHAAYAAAD7////AQAHAAYAAAD7/wAAAQAHAAYAAAD7/wEAAQAHAAYAAAD7/wIAAQAHAAYAAAD7/wMAAQAHAAYAAAD7/wQAAQAHAAYAAAD7/wUAAQAHAAYAAAD7/wYAAQAHAAYAAAD7/wcAAQAHAAYAAAD7/wgAAQAHAAYAAAD7/wkAAQAHAAYAAAD7/woAAQAHAAYAAAD7/wsAAQAHAAYAAAD7/wwAAQAHAAYAAAD7/w0AAQAHAAYAAAD7/w4AAQAHAAYAAAD7/w8AAQAHAAYAAAD7/xAAAQAHAAYAAAD7/xEAAQAHAAYAAAD7/xIAAQAHAAYAAAD8////AQAHAAYAAAD8/wAAAQAHAAYAAAD8/wEAAQAHAAYAAAD8/wIAAQAHAAYAAAD8/wMAAQAHAAYAAAD8/wQAAQAHAAYAAAD8/wUAAQAHAAYAAAD8/wYAAQAHAAYAAAD8/wcAAQAHAAYAAAD8/wgAAQAHAAYAAAD8/wkAAQAHAAYAAAD8/woAAQAHAAYAAAD8/wsAAQAHAAYAAAD8/wwAAQAHAAYAAAD8/w0AAQAHAAYAAAD8/w4AAQAHAAYAAAD8/w8AAQAHAAYAAAD8/xAAAQAHAAYAAAD8/xEAAQAHAAYAAAD8/xIAAQAHAAYAAAD9////AQAHAAYAAAD9/wAAAQAHAAYAAAD9/wEAAQAHAAYAAAD9/wIAAQAHAAYAAAD9/wMAAQAHAAYAAAD9/wQAAQAHAAYAAAD9/wUAAQAHAAYAAAD9/wYAAQAHAAYAAAD9/wcAAQAHAAYAAAD9/wgAAQAHAAYAAAD9/wkAAQAHAAYAAAD9/woAAQAHAAYAAAD9/wsAAQAHAAYAAAD9/wwAAQAHAAYAAAD9/w0AAQAHAAYAAAD9/w4AAQAHAAYAAAD9/w8AAQAHAAYAAAD9/xAAAQAHAAYAAAD9/xEAAQAHAAYAAAD9/xIAAQAHAAYAAAD+/wAAAQAHAAYAAAD+/wEAAQAHAAYAAAD+/wIAAQAHAAYAAAD+/wMAAQAHAAYAAAD+/wQAAQAHAAYAAAD+/wUAAQAHAAYAAAD+/wYAAQAHAAYAAAD+/wcAAQAHAAYAAAD+/wgAAQAHAAYAAAD+/wkAAQAHAAYAAAD+/woAAQAHAAYAAAD+/wsAAQAHAAYAAAD+/wwAAQAHAAYAAAD+/w0AAQAHAAYAAAD+/w4AAQAHAAYAAAD+/w8AAQAHAAYAAAD+/xAAAQAHAAYAAAD+/xEAAQAHAAYAAAD+/xIAAQAHAAYAAAD+/xMAAQAHAAYAAAD+/xQAAQAHAAYAAAD+////AQAHAAYAAAD5/xMAAQAHAAYAAAD5/xQAAQAHAAYAAAD6/xMAAQAHAAYAAAD6/xQAAQAHAAYAAAD7/xMAAQAHAAYAAAD7/xQAAQAHAAYAAAD8/xMAAQAHAAYAAAD8/xQAAQAHAAYAAAD9/xMAAQAHAAYAAAD9/xQAAQAHAAYAAAD5//r/AQAHAAYAAAD5//v/AQAHAAYAAAD5//z/AQAHAAYAAAD5//3/AQAHAAYAAAD5//7/AQAHAAYAAAD6//r/AQAHAAYAAAD6//v/AQAHAAYAAAD6//z/AQAHAAYAAAD6//3/AQAHAAYAAAD6//7/AQAHAAYAAAD7//r/AQAHAAYAAAD7//v/AQAHAAYAAAD7//z/AQAHAAYAAAD7//3/AQAHAAYAAAD7//7/AQAHAAYAAAD8//r/AQAHAAYAAAD8//v/AQAHAAYAAAD8//z/AQAHAAYAAAD8//3/AQAHAAYAAAD8//7/AQAHAAYAAAD9//r/AQAHAAYAAAD9//v/AQAHAAYAAAD9//z/AQAHAAYAAAD9//3/AQAHAAYAAAD9//7/AQAHAAYAAAD+//r/AQAHAAYAAAD+//v/AQAHAAYAAAD+//z/AQAHAAYAAAD+//3/AQAHAAYAAAD+//7/AQAHAAYAAAD///r/AQAHAAYAAAD///v/AQAHAAYAAAD///z/AQAHAAYAAAD///3/AQAHAAYAAAD///7/AQAHAAYAAAAAAPr/AQAHAAYAAAAAAPv/AQAHAAYAAAAAAPz/AQAHAAYAAAAAAP3/AQAHAAYAAAAAAP7/AQAHAAYAAAABAPr/AQAHAAYAAAABAPv/AQAHAAYAAAABAPz/AQAHAAYAAAABAP3/AQAHAAYAAAABAP7/AQAHAAYAAAACAPr/AQAHAAYAAAACAPv/AQAHAAYAAAACAPz/AQAHAAYAAAACAP3/AQAHAAYAAAACAP7/AQAHAAYAAAADAPr/AQAHAAYAAAADAPv/AQAHAAYAAAADAPz/AQAHAAYAAAADAP3/AQAHAAYAAAADAP7/AQAHAAYAAAAEAPr/AQAHAAYAAAAEAPv/AQAHAAYAAAAEAPz/AQAHAAYAAAAEAP3/AQAHAAYAAAAEAP7/AQAHAAYAAAAFAPr/AQAHAAYAAAAFAPv/AQAHAAYAAAAFAPz/AQAHAAYAAAAFAP3/AQAHAAYAAAAFAP7/AQAHAAYAAAAGAPr/AQAHAAYAAAAGAPv/AQAHAAYAAAAGAPz/AQAHAAYAAAAGAP3/AQAHAAYAAAAGAP7/AQAHAAYAAAAHAPr/AQAHAAYAAAAHAPv/AQAHAAYAAAAHAPz/AQAHAAYAAAAHAP3/AQAHAAYAAAAHAP7/AQAHAAYAAAAIAPr/AQAHAAYAAAAIAPv/AQAHAAYAAAAIAPz/AQAHAAYAAAAIAP3/AQAHAAYAAAAIAP7/AQAHAAYAAAAJAPr/AQAHAAYAAAAJAPv/AQAHAAYAAAAJAPz/AQAHAAYAAAAJAP3/AQAHAAYAAAAJAP7/AQAHAAYAAAAKAPr/AQAHAAYAAAAKAPv/AQAHAAYAAAAKAPz/AQAHAAYAAAAKAP3/AQAHAAYAAAAKAP7/AQAHAAYAAAALAPr/AQAHAAYAAAALAPv/AQAHAAYAAAALAPz/AQAHAAYAAAALAP3/AQAHAAYAAAALAP7/AQAHAAYAAAAMAPr/AQAHAAYAAAAMAPv/AQAHAAYAAAAMAPz/AQAHAAYAAAAMAP3/AQAHAAYAAAAMAP7/AQAHAAYAAAANAPr/AQAHAAYAAAANAPv/AQAHAAYAAAANAPz/AQAHAAYAAAANAP3/AQAHAAYAAAANAP7/AQAHAAYAAAAOAPr/AQAHAAYAAAAOAPv/AQAHAAYAAAAOAPz/AQAHAAYAAAAOAP3/AQAHAAYAAAAOAP7/AQAHAAYAAAAPAPr/AQAHAAYAAAAPAPv/AQAHAAYAAAAPAPz/AQAHAAYAAAAPAP3/AQAHAAYAAAAPAP7/AQAHAAYAAAAQAPr/AQAHAAYAAAAQAPv/AQAHAAYAAAAQAPz/AQAHAAYAAAAQAP3/AQAHAAYAAAAQAP7/AQAHAAYAAAARAPr/AQAHAAYAAAARAPv/AQAHAAYAAAARAPz/AQAHAAYAAAARAP3/AQAHAAYAAAARAP7/AQAHAAYAAAASAPr/AQAHAAYAAAASAPv/AQAHAAYAAAASAPz/AQAHAAYAAAASAP3/AQAHAAYAAAASAP7/AQAHAAYAAAATAPr/AQAHAAYAAAATAPv/AQAHAAYAAAATAPz/AQAHAAYAAAATAP3/AQAHAAYAAAATAP7/AQAHAAYAAAAUAPr/AQAHAAYAAAAUAPv/AQAHAAYAAAAUAPz/AQAHAAYAAAAUAP3/AQAHAAYAAAAUAP7/AQAHAAYAAAA=") +tile_set = ExtResource("2_ddepd") + +[node name="Area2D" type="Area2D" parent="."] +collision_layer = 32768 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2(500, 500) +shape = SubResource("RectangleShape2D_dkl6u") + +[node name="Player" parent="." instance=ExtResource("2_4a06y")] +position = Vector2(487, 475) diff --git a/Maps/gym_pirate_spawner.tscn b/Maps/gym_pirate_spawner.tscn new file mode 100644 index 0000000..25ccdc4 --- /dev/null +++ b/Maps/gym_pirate_spawner.tscn @@ -0,0 +1,3 @@ +[gd_scene format=3 uid="uid://br410dk87k14t"] + +[node name="GymPirateSpawner" type="Node"] diff --git a/Maps/gym_player.tscn b/Maps/gym_player.tscn index dcf29c3..5ff7ebe 100644 --- a/Maps/gym_player.tscn +++ b/Maps/gym_player.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=6 format=4 uid="uid://dpy36duig8jgh"] +[gd_scene load_steps=7 format=4 uid="uid://dpy36duig8jgh"] -[ext_resource type="PackedScene" uid="uid://ifus76ia8xws" path="res://Characters/player.tscn" id="1_jlnlo"] [ext_resource type="PackedScene" uid="uid://c6rnvbhbn7ida" path="res://Maps/Tiles/Tiles.tscn" id="2_7b103"] [ext_resource type="PackedScene" uid="uid://c8ek4me3t12pp" path="res://GPE/Coin/coin.tscn" id="3_6hhq5"] [ext_resource type="PackedScene" uid="uid://mh40qx1bhgs5" path="res://Characters/pirate.tscn" id="4_rwt5c"] [ext_resource type="PackedScene" uid="uid://dmpu56mdni0gp" path="res://Characters/Ships/wrecked_boat.tscn" id="5_6pf7f"] +[ext_resource type="PackedScene" uid="uid://d01b7h5474v44" path="res://Characters/player.tscn" id="5_kf4xr"] +[ext_resource type="AudioStream" uid="uid://buqji60cs0r6t" path="res://GPE/chop.ogg" id="6_kf4xr"] [node name="Node" type="Node"] @@ -16,14 +17,35 @@ tile_map_data = PackedByteArray("AAAEAAIAAQAAAAAAAAAFAAIAAQABAAAAAAAGAAMAAQAEAAM collision_visibility_mode = 1 script = null -[node name="Player" parent="." instance=ExtResource("1_jlnlo")] -position = Vector2(124, 126) - [node name="Coin" parent="." instance=ExtResource("3_6hhq5")] position = Vector2(114, 242) +[node name="Coin2" parent="." instance=ExtResource("3_6hhq5")] +position = Vector2(120, 304) + +[node name="Coin3" parent="." instance=ExtResource("3_6hhq5")] +position = Vector2(113, 374) + +[node name="Coin4" parent="." instance=ExtResource("3_6hhq5")] +position = Vector2(129, 449) + +[node name="Coin5" parent="." instance=ExtResource("3_6hhq5")] +position = Vector2(130, 506) + [node name="Pirate" parent="." instance=ExtResource("4_rwt5c")] position = Vector2(-5, 304) [node name="WreckedBoat" parent="." instance=ExtResource("5_6pf7f")] position = Vector2(357, 193) + +[node name="Player" parent="." instance=ExtResource("5_kf4xr")] +position = Vector2(102.92679, 107.742485) +metadata/_edit_lock_ = true + +[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] +position = Vector2(353, 190) +stream = ExtResource("6_kf4xr") +volume_db = -5.0 +autoplay = true +max_distance = 1000.0 +attenuation = 8.8765545 diff --git a/Maps/main_menu.gd b/Maps/main_menu.gd new file mode 100644 index 0000000..47de6ab --- /dev/null +++ b/Maps/main_menu.gd @@ -0,0 +1,19 @@ +extends Control + +@export var game_map : PackedScene + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + $VBoxContainer/NewGameButton.pressed.connect(_on_new_game_pressed) + $VBoxContainer/QuitButton.pressed.connect(_on_quit_pressed) + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass + +func _on_new_game_pressed(): + get_tree().change_scene_to_packed(game_map) + +func _on_quit_pressed(): + get_tree().quit() diff --git a/Maps/main_menu.gd.uid b/Maps/main_menu.gd.uid new file mode 100644 index 0000000..3361e63 --- /dev/null +++ b/Maps/main_menu.gd.uid @@ -0,0 +1 @@ +uid://dxbflnmlaou6i diff --git a/Maps/main_menu.tscn b/Maps/main_menu.tscn new file mode 100644 index 0000000..1505eac --- /dev/null +++ b/Maps/main_menu.tscn @@ -0,0 +1,55 @@ +[gd_scene load_steps=5 format=3 uid="uid://6ohhuwf0h1vi"] + +[ext_resource type="Theme" uid="uid://ctsajyu6uieal" path="res://Player/widgets/game_theme.tres" id="1_n38s1"] +[ext_resource type="Script" uid="uid://dxbflnmlaou6i" path="res://Maps/main_menu.gd" id="1_w6fv6"] +[ext_resource type="PackedScene" uid="uid://bmj5igs8dvepl" path="res://Maps/game_map.tscn" id="2_uoho6"] + +[sub_resource type="LabelSettings" id="LabelSettings_w6fv6"] +font_size = 32 +outline_size = 3 +outline_color = Color(0.511324, 0.2294738, 0, 1) +shadow_size = 6 +shadow_color = Color(0, 0, 0, 1) + +[node name="MainMenu" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_w6fv6") +game_map = ExtResource("2_uoho6") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -46.0 +offset_top = -20.0 +offset_right = 58.0 +offset_bottom = 10.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Label" type="Label" parent="VBoxContainer"] +layout_mode = 2 +text = "PIRATE SURVIVORS" +label_settings = SubResource("LabelSettings_w6fv6") + +[node name="HSeparator" type="HSeparator" parent="VBoxContainer"] +layout_mode = 2 + +[node name="NewGameButton" type="Button" parent="VBoxContainer"] +layout_mode = 2 +theme = ExtResource("1_n38s1") +text = "New Game" + +[node name="QuitButton" type="Button" parent="VBoxContainer"] +layout_mode = 2 +theme = ExtResource("1_n38s1") +text = "Quit +" diff --git a/project.godot b/project.godot index 911ef73..97fda2e 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="PirateSurvivors" -run/main_scene="uid://dpy36duig8jgh" +run/main_scene="uid://6ohhuwf0h1vi" config/features=PackedStringArray("4.5", "Forward Plus") config/icon="res://icon.svg"