ADD: player can jump.
parent
52436feb3d
commit
89df0e6b75
|
@ -0,0 +1,39 @@
|
|||
extends Node
|
||||
|
||||
var this = null
|
||||
var state_name = 'Jump'
|
||||
var m_ratio = 0.0
|
||||
var m_jump_state = null
|
||||
var m_speed = 0.7
|
||||
|
||||
func _ready():
|
||||
pass
|
||||
|
||||
func _state_process(delta):
|
||||
if m_jump_state != null:
|
||||
m_jump_state.call(delta)
|
||||
else:
|
||||
m_ratio = 0.25
|
||||
m_jump_state = self.go_up
|
||||
|
||||
func go_up(delta):
|
||||
var sprite = this.get_node('Sprite2D')
|
||||
m_ratio += m_speed * delta
|
||||
sprite.scale.x = m_ratio
|
||||
sprite.scale.y = m_ratio
|
||||
|
||||
if m_ratio >= 0.38:
|
||||
m_jump_state = self.go_down
|
||||
|
||||
func go_down(delta):
|
||||
var sprite = this.get_node('Sprite2D')
|
||||
m_ratio -= m_speed * delta
|
||||
sprite.scale.x = m_ratio
|
||||
sprite.scale.y = m_ratio
|
||||
|
||||
if m_ratio <= 0.25:
|
||||
this.to_normal()
|
||||
queue_free()
|
||||
|
||||
|
||||
|
|
@ -31,3 +31,10 @@ func is_dead():
|
|||
func to_dead():
|
||||
m_state = preload("res://Actor/Dead.gd").new()
|
||||
m_state.this = self
|
||||
|
||||
func is_jump():
|
||||
return m_state.state_name == 'Jump'
|
||||
|
||||
func to_jump():
|
||||
m_state = preload("res://Actor/Jump.gd").new()
|
||||
m_state.this = self
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
[ext_resource type="Texture2D" uid="uid://blr8qcmuqs5vl" path="res://icon.svg" id="2_itibm"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_e2sef"]
|
||||
radius = 6.0
|
||||
radius = 3.16228
|
||||
|
||||
[node name="Actor" type="CharacterBody2D" groups=["actors"]]
|
||||
script = ExtResource("1_0612w")
|
||||
|
|
|
@ -7,6 +7,9 @@ var m_shoot_timer = 0.0
|
|||
func _physics_process(dt):
|
||||
var delta = Vector2(0, 0)
|
||||
|
||||
if Input.is_action_just_pressed("player_jump") and $Actor.is_normal():
|
||||
$Actor.to_jump()
|
||||
|
||||
if Input.is_action_just_pressed("player_shoot") \
|
||||
and m_shoot_timer >= m_shoot_time \
|
||||
and not $Actor.is_dead():
|
||||
|
@ -32,7 +35,7 @@ func _physics_process(dt):
|
|||
delta = delta.normalized()
|
||||
$Actor.m_dir = delta
|
||||
|
||||
if $Actor.is_normal():
|
||||
if $Actor.is_normal() or $Actor.is_jump():
|
||||
$Actor.velocity = delta * $Actor.m_speed
|
||||
|
||||
$Actor.move_and_slide()
|
||||
|
|
|
@ -42,6 +42,11 @@ player_shoot={
|
|||
"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)
|
||||
]
|
||||
}
|
||||
player_jump={
|
||||
"deadzone": 0.5,
|
||||
"events": [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":32,"key_label":0,"unicode":32,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
[rendering]
|
||||
|
||||
|
|
Loading…
Reference in New Issue