diff --git a/assets/.gitignore b/assets/musics/.gitignore similarity index 100% rename from assets/.gitignore rename to assets/musics/.gitignore diff --git a/assets/sounds/.gitignore b/assets/sounds/.gitignore new file mode 100644 index 0000000..76bedae --- /dev/null +++ b/assets/sounds/.gitignore @@ -0,0 +1,5 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore + diff --git a/assets/textures/US.jpg b/assets/textures/US.jpg new file mode 100644 index 0000000..081a69b Binary files /dev/null and b/assets/textures/US.jpg differ diff --git a/assets/textures/US.jpg.import b/assets/textures/US.jpg.import new file mode 100644 index 0000000..2af8a3c --- /dev/null +++ b/assets/textures/US.jpg.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dyiw2b842pin3" +path.s3tc="res://.godot/imported/US.jpg-a8d40fbb3cf4b6ef7949b3d74f1191b3.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://assets/textures/US.jpg" +dest_files=["res://.godot/imported/US.jpg-a8d40fbb3cf4b6ef7949b3d74f1191b3.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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=0 diff --git a/main.tscn b/main.tscn deleted file mode 100644 index 0e2c8e4..0000000 --- a/main.tscn +++ /dev/null @@ -1,6 +0,0 @@ -[gd_scene format=3 uid="uid://yfu77mws733s"] - -[ext_resource type="Script" uid="uid://1fu1sydbh2rd" path="res://main.gd" id="1_ig7tw"] - -[node name="Main" type="Node" unique_id=2064521053] -script = ExtResource("1_ig7tw") diff --git a/player.gd.uid b/player.gd.uid new file mode 100644 index 0000000..d9f1d8c --- /dev/null +++ b/player.gd.uid @@ -0,0 +1 @@ +uid://dh4v5wgj7ec1n diff --git a/project.godot b/project.godot index f8917aa..0f299d9 100644 --- a/project.godot +++ b/project.godot @@ -11,6 +11,7 @@ config_version=5 [application] config/name="conquista-mort" +run/main_scene="uid://yfu77mws733s" config/features=PackedStringArray("4.7", "GL Compatibility") config/icon="res://icon.svg" @@ -19,6 +20,24 @@ config/icon="res://icon.svg" window/stretch/mode="canvas_items" window/stretch/aspect="expand" +[input] + +dragging={ +"deadzone": 0.2, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) +] +} +zoom-in={ +"deadzone": 0.2, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"canceled":false,"pressed":false,"double_click":false,"script":null) +] +} +zoom-out={ +"deadzone": 0.2, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"canceled":false,"pressed":false,"double_click":false,"script":null) +] +} + [physics] 3d/physics_engine="Jolt Physics" diff --git a/scenes/game_ui.tscn b/scenes/game_ui.tscn new file mode 100644 index 0000000..1f1e925 --- /dev/null +++ b/scenes/game_ui.tscn @@ -0,0 +1,3 @@ +[gd_scene format=3 uid="uid://dw0jc5fh4411n"] + +[node name="GameUI" type="CanvasLayer" unique_id=2075735181] diff --git a/scenes/hud.tscn b/scenes/hud.tscn new file mode 100644 index 0000000..83ba962 --- /dev/null +++ b/scenes/hud.tscn @@ -0,0 +1,3 @@ +[gd_scene format=3 uid="uid://beshh12linnpj"] + +[node name="HUD" type="CanvasLayer" unique_id=1561272234] diff --git a/scenes/main.tscn b/scenes/main.tscn new file mode 100644 index 0000000..5a1bd3a --- /dev/null +++ b/scenes/main.tscn @@ -0,0 +1,18 @@ +[gd_scene format=3 uid="uid://yfu77mws733s"] + +[ext_resource type="Script" uid="uid://cb300e3rkwwpm" path="res://scripts/main.gd" id="1_ig7tw"] +[ext_resource type="PackedScene" uid="uid://c5b3ssno3qjsc" path="res://scenes/map.tscn" id="2_0xm2m"] +[ext_resource type="PackedScene" uid="uid://beshh12linnpj" path="res://scenes/hud.tscn" id="2_lquwl"] +[ext_resource type="PackedScene" uid="uid://dw0jc5fh4411n" path="res://scenes/game_ui.tscn" id="3_7mycd"] +[ext_resource type="PackedScene" uid="uid://yjpa04jof6bk" path="res://scenes/player.tscn" id="3_h2yge"] + +[node name="Main" type="Node" unique_id=2064521053] +script = ExtResource("1_ig7tw") + +[node name="HUD" parent="." unique_id=1561272234 instance=ExtResource("2_lquwl")] + +[node name="GameUI" parent="." unique_id=2075735181 instance=ExtResource("3_7mycd")] + +[node name="Map" parent="." unique_id=2049311125 instance=ExtResource("2_0xm2m")] + +[node name="Player" parent="." unique_id=815405141 instance=ExtResource("3_h2yge")] diff --git a/scenes/map.tscn b/scenes/map.tscn new file mode 100644 index 0000000..078c32d --- /dev/null +++ b/scenes/map.tscn @@ -0,0 +1,19 @@ +[gd_scene format=3 uid="uid://c5b3ssno3qjsc"] + +[ext_resource type="Texture2D" uid="uid://dyiw2b842pin3" path="res://assets/textures/US.jpg" id="1_c7s6e"] + +[sub_resource type="SphereShape3D" id="SphereShape3D_kwsvg"] + +[node name="Map" type="Node3D" unique_id=2049311125] + +[node name="Map2D" type="Sprite3D" parent="." unique_id=2106451994] +transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0, 0, 0) +texture = ExtResource("1_c7s6e") + +[node name="Node" type="Area3D" parent="." unique_id=328338387] +transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0, 0) + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Node" unique_id=960609839] +shape = SubResource("SphereShape3D_kwsvg") + +[node name="CSGSphere3D" type="CSGSphere3D" parent="Node" unique_id=1383250462] diff --git a/scenes/player.tscn b/scenes/player.tscn new file mode 100644 index 0000000..e3d71ad --- /dev/null +++ b/scenes/player.tscn @@ -0,0 +1,9 @@ +[gd_scene format=3 uid="uid://yjpa04jof6bk"] + +[ext_resource type="Script" uid="uid://cl2ml4raypnmo" path="res://scripts/player.gd" id="1_4flbx"] + +[node name="Player" type="Node3D" unique_id=815405141] +script = ExtResource("1_4flbx") + +[node name="Camera3D" type="Camera3D" parent="." unique_id=1882427094] +transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0, 2, 0) diff --git a/main.gd b/scripts/main.gd similarity index 99% rename from main.gd rename to scripts/main.gd index fae2c76..c363af4 100644 --- a/main.gd +++ b/scripts/main.gd @@ -5,7 +5,6 @@ extends Node func _ready() -> void: pass # Replace with function body. - # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass diff --git a/scripts/main.gd.uid b/scripts/main.gd.uid new file mode 100644 index 0000000..26a3f7e --- /dev/null +++ b/scripts/main.gd.uid @@ -0,0 +1 @@ +uid://cb300e3rkwwpm diff --git a/scripts/player.gd b/scripts/player.gd new file mode 100644 index 0000000..90ab1f1 --- /dev/null +++ b/scripts/player.gd @@ -0,0 +1,42 @@ +extends Node3D + +var center = Vector3.ZERO +var screen_size +@export var LIMIT_ZOOM = [1.0, 4.0] + +func _ready() -> void: + $Camera3D.position.y = 2.0 + screen_size = get_viewport().get_visible_rect().size + +func _physics_process(delta: float) -> void: + camera_player_movement() + camera_player_zoom() + +func camera_player_movement(): + var mouse_pos = get_viewport().get_mouse_position() + + # Récupération de la position de la souris par rapport aux mondes + # En tirant un raycast + var camera = get_viewport().get_camera_3d() + var from = camera.project_ray_origin(mouse_pos) + var dir = camera.project_ray_normal(mouse_pos) + var mouse_pos_world = Plane(Vector3.UP, 0).intersects_ray(from, dir) + + var dragging = Input.is_action_pressed("dragging") + + if (dragging && center == Vector3.ZERO): + center = mouse_pos_world + elif (dragging): + var distance_center_mouse = center - mouse_pos_world + $Camera3D.position.x += distance_center_mouse.x + $Camera3D.position.z += distance_center_mouse.z + elif (not dragging): + center = Vector3.ZERO + +func camera_player_zoom(): + if (Input.is_action_just_released("zoom-in")): + $Camera3D.position.y -= 0.1 + elif (Input.is_action_just_released("zoom-out")): + $Camera3D.position.y += 0.1 + # Mettre une limite au zomm de la caméra + $Camera3D.position.y = clamp($Camera3D.position.y, LIMIT_ZOOM[0], LIMIT_ZOOM[1]) diff --git a/scripts/player.gd.uid b/scripts/player.gd.uid new file mode 100644 index 0000000..fb91ffc --- /dev/null +++ b/scripts/player.gd.uid @@ -0,0 +1 @@ +uid://cl2ml4raypnmo