1
1
extends Node
2
- var score = 0 # 分数
3
- var killed_count = 0 # 击毁石头的数量
4
- var game_active = true # 游戏状态标志
5
- var ball_scene = preload ("res://scenes/ball.tscn" ) # 加载球对象场景
6
- var ball_explosion_scene = preload ("res://scenes/ball_explosion.tscn" ) # 加载球爆炸对象场景
7
- var ball_expired_scene = preload ("res://scenes/ball_expired.tscn" ) # 加载球自然消失对象场景
2
+ var score = 0 # 分数
3
+ var killed_count = 0 # 击毁石头的数量
4
+ var game_active = true # 游戏状态标志
5
+ var ball_scene = preload ("res://scenes/ball.tscn" ) # 加载球对象场景
6
+ var ball_explosion_scene = preload ("res://scenes/ball_explosion.tscn" ) # 加载球爆炸对象场景
7
+ var ball_expired_scene = preload ("res://scenes/ball_expired.tscn" ) # 加载球自然消失对象场景
8
8
var split_scene = preload ("res://scenes/split.tscn" )
9
9
10
- const INIT_TIMER_INTERVAL = 1.0 # 初始生成间隔
11
- var timer_interval = INIT_TIMER_INTERVAL # 初始生成间隔
10
+ const INIT_TIMER_INTERVAL = 1.0 # 初始生成间隔
11
+ var timer_interval = INIT_TIMER_INTERVAL # 初始生成间隔
12
12
13
13
const INIT_BALL_SHRINK_SPEED = 0.15
14
14
15
- var ball_shrink_speed = INIT_BALL_SHRINK_SPEED # 当前难度下,小球掉落速度
15
+ var ball_shrink_speed = INIT_BALL_SHRINK_SPEED # 当前难度下,小球掉落速度
16
16
const MAX_BALL_SHRINK_SPEED = 10
17
17
"""最快小球缩减速度"""
18
18
19
19
@export var suction_level = 0
20
20
@onready var score_label = $ CanvasLayer/ScoreLabel
21
21
@onready var history_label = $ CanvasLayer/History
22
22
23
- const GENERATE_PADDING = 100
23
+ const GENERATE_PADDING = 100
24
24
"""生成的边距"""
25
25
const MIN_GENERATE_INTERVAL = 0.4
26
26
"""最短生成间隔"""
@@ -35,19 +35,18 @@ func _ready():
35
35
var theme = preload ("res://assets/fonts/unifont-16.0.02.otf" )
36
36
$ CanvasLayer/RestartButton .theme = theme
37
37
38
- $ Timer .start () # 开始生成球
38
+ $ Timer .start () # 开始生成球
39
39
print ("start!" )
40
40
var engine_version = Engine .get_version_info ()
41
41
var project_ver = ProjectSettings .get_setting ("application/config/version" )
42
42
$ CanvasLayer/Version .text = "engine_version: %d .%d .%d \n project_ver: %s " % [
43
- engine_version .major ,
44
- engine_version .minor ,
43
+ engine_version .major ,
44
+ engine_version .minor ,
45
45
engine_version .patch ,
46
46
project_ver
47
47
]
48
48
49
49
50
-
51
50
# 生成一个随机位置的球
52
51
func spawn_ball ():
53
52
var ball = ball_scene .instantiate ()
@@ -83,7 +82,7 @@ func update_ui():
83
82
]
84
83
var history_label_text = "\n "
85
84
for i in range (len (user_killed_history )):
86
- history_label_text += "%d : %d \n " % [i + 1 , user_killed_history [i ]]
85
+ history_label_text += "%d : %d \n " % [i + 1 , user_killed_history [i ]]
87
86
history_label .text = "history: %s " % [history_label_text ]
88
87
89
88
@@ -115,7 +114,7 @@ func _on_ball_clicked(ball_dead_position, ball_dead_scale):
115
114
func _on_ball_expired (ball_dead_position ):
116
115
if ! game_active :
117
116
return
118
- score -= 2 # 扣分幅度大于加分
117
+ score -= 2 # 扣分幅度大于加分
119
118
120
119
# 增加消失效果
121
120
var ball_expired = ball_expired_scene .instantiate ()
@@ -141,15 +140,15 @@ func game_over():
141
140
142
141
# 批量删除
143
142
for ball in balls :
144
- ball .queue_free () # 安全删除节点
143
+ ball .queue_free () # 安全删除节点
145
144
146
145
var animations = get_tree ().get_nodes_in_group ("ball_animations" )
147
146
for animation in animations :
148
- animation .queue_free () # 安全删除节点
147
+ animation .queue_free () # 安全删除节点
149
148
150
149
# 可选:立即强制释放内存
151
- Engine .get_main_loop ().process_frame # 等待一帧
152
- RenderingServer .force_draw () # 强制渲染刷新
150
+ Engine .get_main_loop ().process_frame # 等待一帧
151
+ RenderingServer .force_draw () # 强制渲染刷新
153
152
154
153
$ CanvasLayer/GameOverLabel .visible = true
155
154
$ CanvasLayer/RestartButton .visible = true
0 commit comments