summaryrefslogtreecommitdiff
path: root/zombie.gd
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi92@disroot.org>2026-11-13 23:51:27 +0100
committerXavier Del Campo Romero <xavi92@disroot.org>2026-11-14 00:03:24 +0100
commit3a6d2c7b2629b7ee6f759d9e7a4509cf4dbcd7d9 (patch)
tree22ae66447b07bd22a0e95a1bb002e48534aff29d /zombie.gd
parent64493452fcf9cebd67774aee32704589a949e6ef (diff)
downloadnj26-master.tar.gz
Add Spatial, box and zombie scenesHEADmaster
Diffstat (limited to 'zombie.gd')
-rw-r--r--zombie.gd92
1 files changed, 92 insertions, 0 deletions
diff --git a/zombie.gd b/zombie.gd
new file mode 100644
index 0000000..aa024c9
--- /dev/null
+++ b/zombie.gd
@@ -0,0 +1,92 @@
+class_name Zombie extends RigidBody
+
+enum Dir {
+ none
+ up
+ down
+ left
+ right
+}
+
+var dir = Dir.none
+var lastdir
+var tlast = 0
+var frame_i = 0
+
+var images: Dictionary = {}
+
+# Called when the node enters the scene tree for the first time.
+func _ready():
+ pass # Replace with function body.
+
+func _physics_process(delta):
+ var updown = ((Input.get_action_strength("p1_down")
+ - Input.get_action_strength("p1_up")) * 2 * delta)
+ var rightleft = ((Input.get_action_strength("p1_right")
+ - Input.get_action_strength("p1_left")) * 2 * delta)
+
+
+ if rightleft:
+ if rightleft > 0:
+ dir = Dir.right
+ else:
+ dir = Dir.left
+ elif updown:
+ if updown > 0:
+ dir = Dir.up
+ else:
+ dir = Dir.down
+ else:
+ dir = Dir.none
+
+ self.translate(Vector3(rightleft, 0, updown))
+
+func getid() -> String:
+ var id = ""
+
+ match dir:
+ Dir.none:
+ id += "n"
+ Dir.up:
+ id += "f"
+ Dir.down:
+ id += "b"
+ Dir.left:
+ id += "l"
+ Dir.right:
+ id += "r"
+
+ id += String(frame_i)
+ return id
+
+func setimg(id: String):
+ var mesh = get_node("MeshInstance")
+ var material = mesh.get_surface_material(0).duplicate()
+
+ material.albedo_texture = images[id]
+ mesh.set_surface_material(0, material)
+
+# Called every frame. 'delta' is the elapsed time since the previous frame.
+func _process(delta):
+ tlast += delta
+
+ if tlast > 0.15:
+ tlast = 0
+ frame_i += 1
+
+ if frame_i >= 8:
+ frame_i = 0
+
+ if lastdir != dir:
+ tlast = 0
+ frame_i = 0
+
+ lastdir = dir
+ setimg(getid())
+
+func _init():
+ for f in ["n", "f", "b", "l", "r"]:
+ for i in range(8):
+ var id = f + String(i)
+ var path = "res://zombie/" + id + ".png"
+ images[id] = load(path)