Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extends KinematicBody2D
- #Godot Basic Platform Player Script
- #Copyright (C) 2021 Kristofer Occhipinti - Films By Kris
- #http://filmsbykris.com
- #This program is free software: you can redistribute it and/or modify
- #it under the terms of the GNU General Public License as published by
- #the Free Software Foundation version 3 of the License.
- #
- #This program is distributed in the hope that it will be useful,
- #but WITHOUT ANY WARRANTY; without even the implied warranty of
- #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- #GNU General Public License for more details.
- #
- #You should have received a copy of the GNU General Public License
- #along with this program. If not, see <http://www.gnu.org/licenses/>.
- export (int) var speed = 500
- export (int) var jump_speed = -500
- export (int) var gravity = 800
- export (float, 0, 1.0) var friction = 0.1
- export (float, 0, 1.0) var acceleration = 0.25
- var velocity = Vector2.ZERO
- onready var sprite = $Sprite
- func get_input():
- walk()
- jump()
- func walk():
- var dir = 0
- if Input.is_action_pressed("walk_right"):
- dir += 1
- sprite.flip_h = 0
- if Input.is_action_pressed("walk_left"):
- dir -= 1
- sprite.flip_h = 1
- if dir != 0:
- velocity.x = lerp(velocity.x, dir * speed, acceleration)
- else:
- velocity.x = lerp(velocity.x, 0, friction)
- func jump():
- if Input.is_action_just_pressed("jump"):
- if is_on_floor():
- velocity.y = jump_speed
- func animation():
- if velocity.x > 1 || velocity.x < -1:
- sprite.play("walk")
- else:
- sprite.play("stand")
- func _physics_process(delta):
- get_input()
- animation()
- velocity.y += gravity * delta
- velocity = move_and_slide(velocity, Vector2.UP)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement