first commit
This commit is contained in:
50
code/player.gd
Normal file
50
code/player.gd
Normal file
@@ -0,0 +1,50 @@
|
||||
extends CharacterBody2D
|
||||
|
||||
var speed = 16*16; # godot transformation per second
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
var texts = [];
|
||||
var lastChange = 0;
|
||||
var hit = 0;
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
RenderingServer.set_default_clear_color(Color.BLACK)
|
||||
var root = get_node("../")
|
||||
var texturespace = root.get_meta("resourcepack");
|
||||
for text in ["player-w1","player-w2"]:
|
||||
texts.append(load("res://"+texturespace+"/text/"+text+".png"))
|
||||
|
||||
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _physics_process(delta: float) -> void:
|
||||
var movedelta = Vector2.ZERO
|
||||
if not self.get_meta("can_walk"):
|
||||
return
|
||||
|
||||
if Input.is_action_pressed("movedown"):
|
||||
movedelta.y += 1
|
||||
if Input.is_action_pressed("moveup"):
|
||||
movedelta.y -= 1
|
||||
if Input.is_action_pressed("moveleft"):
|
||||
movedelta.x -= 1
|
||||
if Input.is_action_pressed("moveright"):
|
||||
movedelta.x += 1
|
||||
|
||||
if movedelta.length() > 0:
|
||||
movedelta = movedelta.normalized() * speed
|
||||
move_and_collide(Vector2((movedelta * delta).x,0))
|
||||
move_and_collide(Vector2(0,(movedelta * delta).y))
|
||||
lastChange += delta
|
||||
if lastChange > 0.4:
|
||||
lastChange = 0
|
||||
hit += 1
|
||||
if hit > texts.size()-1:
|
||||
hit = 0
|
||||
get_node("Sprite2D").texture = texts[hit]
|
||||
get_node("Walk").play()
|
||||
func _process(delta: float) -> void:
|
||||
var camera = get_node("../cam")
|
||||
var campos: Vector2 = camera.position
|
||||
camera.position = campos.lerp(self.position, 1.0 - exp(-8 * delta))
|
||||
Reference in New Issue
Block a user