galo 1 éve
szülő
commit
999b8698a9
3 módosított fájl, 54 hozzáadás és 14 törlés
  1. 4 13
      main.tscn
  2. 19 0
      npc.tscn
  3. 31 1
      placeholder.gd

+ 4 - 13
main.tscn

@@ -1,4 +1,4 @@
-[gd_scene load_steps=44 format=2]
+[gd_scene load_steps=43 format=2]
 
 [ext_resource path="res://login.gd" type="Script" id=1]
 [ext_resource path="res://envarg.gd" type="Script" id=2]
@@ -12,7 +12,7 @@
 [ext_resource path="res://art/Untitledcxz.png" type="Texture" id=10]
 [ext_resource path="res://Textures.gd" type="Script" id=11]
 [ext_resource path="res://Levelselect.gd" type="Script" id=12]
-[ext_resource path="res://placeholder.gd" type="Script" id=13]
+[ext_resource path="res://npc.tscn" type="PackedScene" id=13]
 [ext_resource path="res://tiles/basicimage.tres" type="Material" id=14]
 [ext_resource path="res://art/Medieval_Castle_Asset_Pack/Background/layers71.png" type="Texture" id=15]
 [ext_resource path="res://art/Medieval_Castle_Asset_Pack/Background/layers3.png" type="Texture" id=16]
@@ -130,8 +130,6 @@ func _physics_process(delta):
 #	pass
 "
 
-[sub_resource type="RectangleShape2D" id=23]
-
 [sub_resource type="Shader" id=10]
 code = "// NOTE: Shader automatically converted from Godot Engine 3.4.4.stable's CanvasItemMaterial.
 
@@ -226,7 +224,7 @@ render_target_v_flip = true
 [node name="Goblin" type="AnimatedSprite" parent="Textures/Goblin4"]
 modulate = Color( 1, 0, 0.984314, 1 )
 frames = SubResource( 5 )
-frame = 1
+frame = 3
 speed_scale = 0.9
 playing = true
 offset = Vector2( 32, 32 )
@@ -748,14 +746,7 @@ tile_data = PoolIntArray( -262155, 0, 5, -196619, 0, 65539, -131083, 0, 65539, -
 [node name="enemies" type="Node2D" parent="Levelselect/test"]
 script = SubResource( 14 )
 
-[node name="Sprite" type="KinematicBody2D" parent="Levelselect/test/enemies" groups=["enemy"]]
-position = Vector2( 671, 292 )
-collision_layer = 12
-collision_mask = 0
-script = ExtResource( 13 )
-
-[node name="CollisionShape2D" type="CollisionShape2D" parent="Levelselect/test/enemies/Sprite"]
-shape = SubResource( 23 )
+[node name="npc" parent="Levelselect/test/enemies" instance=ExtResource( 13 )]
 
 [node name="testclient" type="Node2D" parent="Levelselect"]
 visible = false

+ 19 - 0
npc.tscn

@@ -0,0 +1,19 @@
+[gd_scene load_steps=3 format=2]
+
+[ext_resource path="res://placeholder.gd" type="Script" id=1]
+
+[sub_resource type="RectangleShape2D" id=23]
+
+[node name="npc" type="KinematicBody2D" groups=["enemy"]]
+position = Vector2( 671, 292 )
+collision_layer = 12
+collision_mask = 0
+script = ExtResource( 1 )
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
+shape = SubResource( 23 )
+
+[node name="RayCast2D" type="RayCast2D" parent="."]
+enabled = true
+cast_to = Vector2( -300, 0 )
+collision_mask = 2147483650

+ 31 - 1
placeholder.gd

@@ -16,6 +16,36 @@ export var vida = 2
 
 var motion = Vector2(0,50)
 
+var target
+
+func find_target():
+	var data = get_tree().get_nodes_in_group('players')
+	if data.size() > 0:
+		data.shuffle()
+		return data[0]
+
+var bullet = preload('res://bullet.tscn')
+var firerate = 20
+var fireratebuff = 20
+
 func _physics_process(delta):
-	
+	if target == null:
+		target = find_target()
+	else:
+		if not $RayCast2D.is_colliding():
+			fliph = target.global_position.x > global_position.x
+			$RayCast2D.cast_to.x = 300 if fliph else -300 
+			motion.x = 100 if fliph else -100
+		else:
+			motion.x = 0
+			fireratebuff -= 1
+			if fireratebuff == 0:
+				var instance = bullet.instance()
+				instance.motion.x = 200 if fliph else -200
+				instance.global_position = global_position + Vector2(0,-8)
+				instance.id = name
+				instance.dmg = 10
+				instance.target = 'player'
+				get_tree().get_nodes_in_group('proj')[0].add_child(instance)
+				fireratebuff = firerate
 	move_and_slide(motion)