pandemonium_demo_projects/2d/pong/logic/paddle.gd

31 lines
658 B
GDScript

extends Area2D
const MOVE_SPEED = 100
var _ball_dir
var _up
var _down
onready var _screen_size_y = get_viewport_rect().size.y
func _ready():
var n = String(name).to_lower()
_up = n + "_move_up"
_down = n + "_move_down"
if n == "left":
_ball_dir = 1
else:
_ball_dir = -1
func _process(delta):
# Move up and down based on input.
var input = Input.get_action_strength(_down) - Input.get_action_strength(_up)
position.y = clamp(position.y + input * MOVE_SPEED * delta, 16, _screen_size_y - 16)
func _on_area_entered(area):
if area.name == "Ball":
# Assign new direction.
area.direction = Vector2(_ball_dir, randf() * 2 - 1).normalized()