added doublejump:

This commit is contained in:
pennyrigate 2022-12-17 00:46:54 -05:00
parent 28319efe0d
commit 457333f2b2
3 changed files with 142 additions and 16 deletions

View file

@ -1,5 +1,6 @@
extends KinematicBody2D
##CLEAN UP CODE LATER
##Children
onready var sprite = $Sprite
onready var climb_ray = $ClimbRay
@ -17,7 +18,8 @@ var gravity = 12
var jump_pressure = 0
var jump_force = 150
var current_ladder = null
##Attacking
var can_doublejump = true
var doublejump_force = 120
@ -77,6 +79,7 @@ func _process_walk():
func _process_idle_walk():
velocity.y = 0
can_doublejump = true
#Goto Fall
if !is_on_floor(): current_state = State.FALL
#Goto Jump
@ -90,6 +93,7 @@ func _process_idle_walk():
func _process_jump():
jump_pressure += 1
move(walk_speed,0,true)
check_double_jump()
#Pressure sensitive jump
if jump_pressure == 15 or Input.is_action_just_released("jump"):
velocity.y = -jump_force / 4
@ -97,7 +101,8 @@ func _process_jump():
current_state = State.FALL
func _process_fall():
anims.play("jump")
if anims.get_current_animation() != "doublejump": anims.play("jump")
check_double_jump()
#anims.play("jump")
move(walk_speed,0,true)
#Return to idle
@ -139,7 +144,7 @@ func _process_sword():
func check_jump():
if Input.is_action_just_pressed("jump") && !Input.is_action_pressed("ui_down"):
if Input.is_action_just_pressed("jump"):
#Detach ladder
if current_state == State.CLIMB:
Game.ac_climb.set_stream(null)
@ -154,6 +159,11 @@ func check_jump():
velocity.y = -jump_force
move(walk_speed,0,true)
func check_double_jump():
if Input.is_action_just_pressed("jump") && can_doublejump:
can_doublejump = false
velocity.y = -doublejump_force
anims.play("doublejump")
func move(hsp,vsp,flip:bool):
velocity.x = hsp * axis.x

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=43 format=2]
[gd_scene load_steps=44 format=2]
[ext_resource path="res://objects/player/player.gd" type="Script" id=1]
[ext_resource path="res://graphics/player/sg_walk.png" type="Texture" id=2]
@ -200,6 +200,84 @@ tracks/3/keys = {
"update": 1,
"values": [ null ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("Sprite:rotation_degrees")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=35]
resource_name = "doublejump"
length = 0.3
loop = true
step = 0.038
tracks/0/type = "value"
tracks/0/path = NodePath("Sprite:region_rect")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ Rect2( 0, 0, 20, 20 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Sprite:texture")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 7 ) ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("SwordArea/SwordHitBox:disabled")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ true ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("SwordSprite:texture")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ null ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("Sprite:rotation_degrees")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0, 0.038, 0.076, 0.114, 0.152, 0.19, 0.228, 0.266, 0.3 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 1,
"values": [ 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 360.0 ]
}
[sub_resource type="Animation" id=30]
resource_name = "idle"
@ -254,6 +332,18 @@ tracks/3/keys = {
"update": 1,
"values": [ null ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("Sprite:rotation_degrees")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=31]
resource_name = "jump"
@ -308,6 +398,18 @@ tracks/3/keys = {
"update": 1,
"values": [ null ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("Sprite:rotation_degrees")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=32]
resource_name = "stab"
@ -373,6 +475,18 @@ tracks/4/keys = {
"update": 1,
"values": [ Rect2( 0, 0, 32, 32 ), Rect2( 32, 0, 32, 32 ) ]
}
tracks/5/type = "value"
tracks/5/path = NodePath("Sprite:rotation_degrees")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=33]
resource_name = "walk"
@ -426,6 +540,18 @@ tracks/3/keys = {
"update": 1,
"values": [ null ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("Sprite:rotation_degrees")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="RectangleShape2D" id=34]
extents = Vector2( 6, 7 )
@ -483,6 +609,7 @@ collide_with_bodies = false
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/climb = SubResource( 29 )
anims/doublejump = SubResource( 35 )
anims/idle = SubResource( 30 )
anims/jump = SubResource( 31 )
anims/stab = SubResource( 32 )