Skip to content

Commit c9f1967

Browse files
authored
Merge pull request #83 from endlessm/simple-scoring
Simple scoring
2 parents 794a015 + 22daff6 commit c9f1967

File tree

8 files changed

+459
-552
lines changed

8 files changed

+459
-552
lines changed

addons/block_code/examples/pong_game/ball_spawn_area.tscn

Lines changed: 0 additions & 9 deletions
This file was deleted.

addons/block_code/examples/pong_game/hud.gd

Lines changed: 0 additions & 19 deletions
This file was deleted.

addons/block_code/examples/pong_game/hud.tscn

Lines changed: 0 additions & 57 deletions
This file was deleted.

addons/block_code/examples/pong_game/pong_game.gd

Lines changed: 0 additions & 33 deletions
This file was deleted.

addons/block_code/examples/pong_game/pong_game.tscn

Lines changed: 347 additions & 433 deletions
Large diffs are not rendered by default.

addons/block_code/examples/pong_game/space.tscn

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
[gd_scene load_steps=5 format=3 uid="uid://cg8ibi18um3vg"]
1+
[gd_scene load_steps=6 format=3 uid="uid://cg8ibi18um3vg"]
22

33
[ext_resource type="Texture2D" uid="uid://ceiq8wmlnnnif" path="res://addons/block_code/examples/pong_game/assets/space.png" id="1_un3yo"]
4+
[ext_resource type="Texture2D" uid="uid://dijemw7iilr2m" path="res://addons/block_code/examples/pong_game/assets/line.png" id="2_0avsa"]
45

56
[sub_resource type="RectangleShape2D" id="RectangleShape2D_q267f"]
67
size = Vector2(2688, 512)
@@ -59,3 +60,11 @@ shape = SubResource("RectangleShape2D_bqkwh")
5960
[node name="CollisionShape2D5" type="CollisionShape2D" parent="PaddleBounds"]
6061
position = Vector2(960, 540)
6162
shape = SubResource("RectangleShape2D_lyev5")
63+
64+
[node name="Lines" type="Sprite2D" parent="."]
65+
unique_name_in_owner = true
66+
texture_repeat = 2
67+
position = Vector2(960, 536)
68+
texture = ExtResource("2_0avsa")
69+
region_enabled = true
70+
region_rect = Rect2(0, 0, 20, 1100)
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
@tool
2+
class_name SimpleScoring
3+
extends CanvasLayer
4+
5+
@export var score_left: int:
6+
set = _set_score_left
7+
8+
@export var score_right: int:
9+
set = _set_score_right
10+
11+
@onready var _score_labels = {
12+
"left": %PlayerLeftScore,
13+
"right": %PlayerRightScore,
14+
}
15+
16+
const _POSITIONS_FOR_PLAYER = {
17+
"1": "left",
18+
"2": "right",
19+
}
20+
21+
22+
func get_custom_class():
23+
return "SimpleScoring"
24+
25+
26+
func _set_score_left(new_score_left):
27+
score_left = new_score_left
28+
if not is_node_ready():
29+
await ready
30+
if score_left:
31+
_update_label("left", score_left)
32+
33+
34+
func _set_score_right(new_score_right):
35+
score_right = new_score_right
36+
if not is_node_ready():
37+
await ready
38+
if score_right:
39+
_update_label("right", score_right)
40+
41+
42+
func _update_label(player, score):
43+
_score_labels[player].text = str(score)
44+
45+
46+
## Sets the score for one player.
47+
func set_player_score(player: String, score: int):
48+
var text = _score_labels[player].text
49+
if str(score) != text:
50+
_score_labels[player].text = str(score)
51+
52+
53+
static func get_custom_blocks() -> Array[Block]:
54+
var b: Block
55+
var block_list: Array[Block] = []
56+
57+
for player in _POSITIONS_FOR_PLAYER:
58+
b = CategoryFactory.BLOCKS["statement_block"].instantiate()
59+
b.block_type = Types.BlockType.EXECUTE
60+
b.block_format = "Set player %s score to {score: INT}" % player
61+
b.statement = "score_%s = {score}" % _POSITIONS_FOR_PLAYER[player]
62+
b.category = "Scoring"
63+
block_list.append(b)
64+
65+
b = CategoryFactory.BLOCKS["statement_block"].instantiate()
66+
b.block_type = Types.BlockType.EXECUTE
67+
b.block_format = "Change player %s score by {score: INT}" % player
68+
b.statement = "score_%s += {score}" % _POSITIONS_FOR_PLAYER[player]
69+
b.category = "Scoring"
70+
block_list.append(b)
71+
72+
return block_list
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
[gd_scene load_steps=2 format=3 uid="uid://bis7afjjuwypq"]
2+
3+
[ext_resource type="Script" path="res://addons/block_code/simple_nodes/simple_scoring/simple_scoring.gd" id="1_yyb01"]
4+
5+
[node name="SimpleScoring" type="CanvasLayer" groups=["hud"]]
6+
script = ExtResource("1_yyb01")
7+
8+
[node name="PlayerLeftScore" type="Label" parent="."]
9+
unique_name_in_owner = true
10+
offset_left = 240.0
11+
offset_right = 717.0
12+
offset_bottom = 1080.0
13+
pivot_offset = Vector2(240, 176)
14+
size_flags_horizontal = 3
15+
size_flags_vertical = 1
16+
theme_override_font_sizes/font_size = 200
17+
text = "0"
18+
horizontal_alignment = 1
19+
20+
[node name="PlayerRightScore" type="Label" parent="."]
21+
unique_name_in_owner = true
22+
offset_left = 1200.0
23+
offset_right = 1677.0
24+
offset_bottom = 1080.0
25+
pivot_offset = Vector2(240, 176)
26+
size_flags_horizontal = 3
27+
size_flags_vertical = 1
28+
theme_override_font_sizes/font_size = 200
29+
text = "0"
30+
horizontal_alignment = 1

0 commit comments

Comments
 (0)