Player throw back the ball from walk or idle state
This commit is contained in:
parent
1aff1c2e38
commit
332c0fb0e1
16 changed files with 165 additions and 25 deletions
22
scripts/ball/ball.gd
Normal file
22
scripts/ball/ball.gd
Normal file
|
@ -0,0 +1,22 @@
|
|||
class_name Ball
|
||||
extends CharacterBody2D
|
||||
|
||||
const Y_OFFSET = -10
|
||||
var speed = 100
|
||||
var target = Vector2.ZERO
|
||||
@onready var tile_map: TileMap = get_parent()
|
||||
|
||||
func _ready():
|
||||
target.y += Y_OFFSET
|
||||
var player = get_node("/root/Main/TileMap/Player")
|
||||
assert(player)
|
||||
player.hit.connect(_on_player_hit)
|
||||
|
||||
func _physics_process(delta):
|
||||
position = position.move_toward(target, delta * speed)
|
||||
|
||||
func _on_player_hit():
|
||||
var rand_cell: Vector2i = tile_map.get_random_top_cell()
|
||||
tile_map.reset_and_set_target_cell(rand_cell)
|
||||
target = tile_map.map_to_local(rand_cell) + Vector2(0, Y_OFFSET)
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue