Add menu system and scene navigation
The changes include: - Moving script files to scripts/ directory - Creating Start menu scene with Play/Quit buttons - Adding scene switching between menu and gameplay - Creating theme for menu buttons - Adding ESC key to return to menu
This commit is contained in:
parent
83ff6ef14d
commit
49988ae674
14 changed files with 202 additions and 6 deletions
31
scripts/ball.gd
Normal file
31
scripts/ball.gd
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
extends CharacterBody2D
|
||||
|
||||
const SPEED : float = 310.0
|
||||
|
||||
@export var paddle_0 : Node2D
|
||||
@export var paddle_1 : Node2D
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
initialize()
|
||||
|
||||
func _physics_process(_delta: float) -> void:
|
||||
var collision = move_and_collide(velocity * _delta)
|
||||
if collision:
|
||||
velocity = velocity.bounce(collision.get_normal())
|
||||
|
||||
func initialize():
|
||||
var extra_offset = 0.0 if randf() < 0.5 else PI
|
||||
var angle = extra_offset + randf_range(-PI/3.0, PI/3.0)
|
||||
velocity = Vector2(cos(angle), sin(angle)).normalized() * SPEED
|
||||
position = get_viewport_rect().size / 2.0
|
||||
|
||||
func _on_screen_exited() -> void:
|
||||
#Update Score
|
||||
if position.x <0.0:
|
||||
paddle_1.increment_score()
|
||||
else:
|
||||
paddle_0.increment_score()
|
||||
#Reint After 1 second
|
||||
await get_tree().create_timer(1.0).timeout
|
||||
initialize()
|
||||
Loading…
Add table
Add a link
Reference in a new issue