base level, base enemy and a basic player
authorEduardo <[email protected]>
Sun, 5 May 2024 23:44:42 +0000 (01:44 +0200)
committerEduardo <[email protected]>
Sun, 5 May 2024 23:44:42 +0000 (01:44 +0200)
components/base_enemy/BaseEnemy.tscn [new file with mode: 0644]
components/base_enemy/base_enemy.gd [new file with mode: 0644]
components/player/Player.tscn [new file with mode: 0644]
components/player/player.gd [new file with mode: 0644]
examples/licenses/license_selector.gd
project.godot
scenes/base_level/BaseLevel.tscn

diff --git a/components/base_enemy/BaseEnemy.tscn b/components/base_enemy/BaseEnemy.tscn
new file mode 100644 (file)
index 0000000..a1cab8c
--- /dev/null
@@ -0,0 +1,17 @@
+[gd_scene load_steps=3 format=3 uid="uid://dqlcf1ywp5g8y"]
+
+[ext_resource type="Script" path="res://components/base_enemy/base_enemy.gd" id="1_j54ho"]
+
+[sub_resource type="CircleShape2D" id="CircleShape2D_tsbn1"]
+
+[node name="BaseEnemy" type="CharacterBody2D"]
+script = ExtResource("1_j54ho")
+
+[node name="Polygon2D" type="Polygon2D" parent="."]
+scale = Vector2(-14.967, 0.809)
+color = Color(0.977584, 0, 0.378156, 1)
+polygon = PackedVector2Array(-0.267257, -4.94762, -0.367478, 0, -0.267257, 4.94762, 0, 6.80297, 0.267257, 4.94762, 0.367478, 0, 0.267257, -4.94762, 0, -6.80297)
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
+scale = Vector2(0.5, 0.5)
+shape = SubResource("CircleShape2D_tsbn1")
diff --git a/components/base_enemy/base_enemy.gd b/components/base_enemy/base_enemy.gd
new file mode 100644 (file)
index 0000000..c126378
--- /dev/null
@@ -0,0 +1,8 @@
+extends CharacterBody2D
+
+@export var SPEED = 150.0
+@export var player: CharacterBody2D
+
+func _physics_process(_delta):
+       velocity = position.direction_to(player.position) * SPEED
+       move_and_slide()
diff --git a/components/player/Player.tscn b/components/player/Player.tscn
new file mode 100644 (file)
index 0000000..fd7eb5b
--- /dev/null
@@ -0,0 +1,18 @@
+[gd_scene load_steps=3 format=3 uid="uid://bccbpnau6es8"]
+
+[ext_resource type="Script" path="res://components/player/player.gd" id="1_twtc0"]
+
+[sub_resource type="CircleShape2D" id="CircleShape2D_oxutk"]
+
+[node name="Player" type="CharacterBody2D"]
+motion_mode = 1
+script = ExtResource("1_twtc0")
+
+[node name="Polygon2D" type="Polygon2D" parent="."]
+scale = Vector2(-29.9338, 1.61694)
+color = Color(0, 0.564706, 0.858824, 1)
+polygon = PackedVector2Array(-0.267257, -4.94762, -0.367478, 0, -0.267257, 4.94762, 0, 6.80297, 0.267257, 4.94762, 0.367478, 0, 0.267257, -4.94762, 0, -6.80297)
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
+scale = Vector2(1, 1)
+shape = SubResource("CircleShape2D_oxutk")
diff --git a/components/player/player.gd b/components/player/player.gd
new file mode 100644 (file)
index 0000000..555c869
--- /dev/null
@@ -0,0 +1,19 @@
+extends CharacterBody2D
+
+
+const SPEED = 300.0
+
+
+func _physics_process(_delta):
+       var x_force = (
+               Input.get_action_strength("ui_right")
+               - Input.get_action_strength("ui_left")
+       )
+       
+       var y_force = (
+               Input.get_action_strength("ui_down")
+               - Input.get_action_strength("ui_up")
+       )
+       
+       velocity = Vector2(x_force, y_force) * SPEED
+       move_and_slide()
index 013ba0048e17144649eb8cff76614a2788cce3f8..48f966f27cbafb1e9ed337155e85e80bac5cb940 100644 (file)
@@ -9,44 +9,44 @@ const LicenseContainer := preload("license_container.gd")
 var licenses: Array[Component] = []
 
 func _ready() -> void:
-    self.item_selected.connect(self._on_item_selected)
-    var res: Licenses.LoadResult = Licenses.load(Licenses.get_license_data_filepath())
-    if res.err_msg != "":
-        return
-    self.licenses = res.components
-    self.licenses.append_array(Licenses.get_required_engine_components())
-    self.licenses.sort_custom(Licenses.new().compare_components_ascending)
-
-    # create items
-    var category_cache: Dictionary = {}
-    var root: TreeItem = self.create_item(null)
-    category_cache[""] = root
-    var idx: int = 0
-
-    while idx < len(self.licenses):
-        var component: Component = self.licenses[idx]
-        self._add_component(component, category_cache, root, idx)
-        idx = idx + 1
+       self.item_selected.connect(self._on_item_selected)
+       var res: Licenses.LoadResult = Licenses.load(Licenses.get_license_data_filepath())
+       if res.err_msg != "":
+               return
+       self.licenses = res.components
+       self.licenses.append_array(Licenses.get_required_engine_components())
+       self.licenses.sort_custom(Licenses.new().compare_components_ascending)
+
+       # create items
+       var category_cache: Dictionary = {}
+       var root: TreeItem = self.create_item(null)
+       category_cache[""] = root
+       var idx: int = 0
+
+       while idx < len(self.licenses):
+               var component: Component = self.licenses[idx]
+               self._add_component(component, category_cache, root, idx)
+               idx = idx + 1
 
 func _create_category_item(category_cache: Dictionary, category: String, root: TreeItem) -> TreeItem:
-    if category in category_cache:
-        return category_cache[category]
-    var category_item: TreeItem
-    category_item = self.create_item(root)
-    category_item.set_text(0, category)
-    category_item.set_selectable(0, false)
-    category_cache[category] = category_item
-    return category_item
+       if category in category_cache:
+               return category_cache[category]
+       var category_item: TreeItem
+       category_item = self.create_item(root)
+       category_item.set_text(0, category)
+       category_item.set_selectable(0, false)
+       category_cache[category] = category_item
+       return category_item
 
 func _add_tree_item(component: Component, idx: int, parent: TreeItem) -> TreeItem:
-    var item: TreeItem = self.create_item(parent)
-    item.set_text(0, component.name)
-    item.set_meta("idx", idx)
-    return item
+       var item: TreeItem = self.create_item(parent)
+       item.set_text(0, component.name)
+       item.set_meta("idx", idx)
+       return item
 
 func _add_component(component: Component, category_cache: Dictionary, root: TreeItem, idx: int) -> TreeItem:
-    var parent: TreeItem = self._create_category_item(category_cache, component.category, root)
-    return self._add_tree_item(component, idx, parent)
+       var parent: TreeItem = self._create_category_item(category_cache, component.category, root)
+       return self._add_tree_item(component, idx, parent)
 
 func _on_item_selected() -> void:
-    self._license_container.set_component(self.licenses[self.get_selected().get_meta("idx")])
+       self._license_container.set_component(self.licenses[self.get_selected().get_meta("idx")])
index 3dcc7e469b16ead087eb05633af4b8ef2325e812..3f66e4262916a33ade3aa8ebf8cd925c4cb4ffc6 100644 (file)
@@ -51,6 +51,41 @@ folder_colors={
 "res://scenes/": "blue"
 }
 
+[input]
+
+ui_left={
+"deadzone": 0.5,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
+, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
+, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
+]
+}
+ui_right={
+"deadzone": 0.5,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194321,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
+, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
+, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
+]
+}
+ui_up={
+"deadzone": 0.5,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
+, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null)
+, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
+]
+}
+ui_down={
+"deadzone": 0.5,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194322,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
+, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
+, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
+]
+}
+
 [rendering]
 
 renderer/rendering_method="mobile"
index e815bb8718748048799246ddb1d4e6706eea734d..c6025fc5ff130381a2daf24ffc45c2000344c5ad 100644 (file)
@@ -1,6 +1,49 @@
-[gd_scene load_steps=2 format=3 uid="uid://bvcxabiipiqj1"]
+[gd_scene load_steps=4 format=3 uid="uid://bvcxabiipiqj1"]
 
 [ext_resource type="Script" path="res://scenes/base_level/base_level.gd" id="1_3skoo"]
+[ext_resource type="PackedScene" uid="uid://bccbpnau6es8" path="res://components/player/Player.tscn" id="2_bnj2l"]
+[ext_resource type="PackedScene" uid="uid://dqlcf1ywp5g8y" path="res://components/base_enemy/BaseEnemy.tscn" id="3_5olto"]
 
 [node name="BaseLevel" type="Node2D"]
 script = ExtResource("1_3skoo")
+
+[node name="TileMapLayer" type="TileMapLayer" parent="."]
+
+[node name="Player" parent="." instance=ExtResource("2_bnj2l")]
+position = Vector2(960, 540)
+
+[node name="BaseEnemy" parent="." node_paths=PackedStringArray("player") instance=ExtResource("3_5olto")]
+position = Vector2(1200, 440)
+player = NodePath("../Player")
+
+[node name="BaseEnemy2" parent="." node_paths=PackedStringArray("player") instance=ExtResource("3_5olto")]
+position = Vector2(1824, 72)
+player = NodePath("../Player")
+
+[node name="BaseEnemy3" parent="." node_paths=PackedStringArray("player") instance=ExtResource("3_5olto")]
+position = Vector2(168, 640)
+player = NodePath("../Player")
+
+[node name="BaseEnemy4" parent="." node_paths=PackedStringArray("player") instance=ExtResource("3_5olto")]
+position = Vector2(616, 168)
+player = NodePath("../Player")
+
+[node name="BaseEnemy5" parent="." node_paths=PackedStringArray("player") instance=ExtResource("3_5olto")]
+position = Vector2(-88, 160)
+player = NodePath("../Player")
+
+[node name="BaseEnemy6" parent="." node_paths=PackedStringArray("player") instance=ExtResource("3_5olto")]
+position = Vector2(2144, 960)
+player = NodePath("../Player")
+
+[node name="BaseEnemy7" parent="." node_paths=PackedStringArray("player") instance=ExtResource("3_5olto")]
+position = Vector2(2152, 1128)
+player = NodePath("../Player")
+
+[node name="BaseEnemy8" parent="." node_paths=PackedStringArray("player") instance=ExtResource("3_5olto")]
+position = Vector2(2000, 1256)
+player = NodePath("../Player")
+
+[node name="BaseEnemy9" parent="." node_paths=PackedStringArray("player") instance=ExtResource("3_5olto")]
+position = Vector2(1720, 1328)
+player = NodePath("../Player")