diff --git a/Game.gd b/Game.gd new file mode 100644 index 0000000..de516bb --- /dev/null +++ b/Game.gd @@ -0,0 +1,44 @@ +extends Node2D + +var player_score = 0 +var player_name = "Unknown" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + player_name = get_player_name() + update_player_text() + +# Update the score text when the score changes +func update_score_text(): + var score_text = "Score: {score}".format({"score": player_score}) + $ButtonContainer/PlayerScore.text = score_text + +func update_player_text(): + var player_text = "Hello {name}".format({"name": player_name}) + $ButtonContainer/PlayerName.text = player_text + +func _on_ClickerButton_pressed(): + player_score += 5 + update_score_text() + +# Are we running in the web? +func is_web_env(): + return OS.has_feature('JavaScript') + +# Get the player name from the HTML shell +func get_player_name(): + var name = "Unknown" + if is_web_env(): + name = JavaScript.eval("getPlayerName()") + return name + +func exit_game(score): + if is_web_env(): + JavaScript.eval("finishGame({score})".format({"score": score})) + else: + get_tree().quit() + + +func _on_QuitButton_pressed(): + exit_game(player_score) diff --git a/Game.tscn b/Game.tscn index 5ce68d7..62ea45d 100644 --- a/Game.tscn +++ b/Game.tscn @@ -1,3 +1,53 @@ -[gd_scene format=2] +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://kenpixel_future.ttf" type="DynamicFontData" id=1] +[ext_resource path="res://Game.gd" type="Script" id=2] + +[sub_resource type="DynamicFont" id=1] +size = 32 +font_data = ExtResource( 1 ) + +[sub_resource type="DynamicFont" id=2] +size = 20 +font_data = ExtResource( 1 ) [node name="MainWindow" type="Node2D"] +script = ExtResource( 2 ) + +[node name="ButtonContainer" type="VBoxContainer" parent="."] +margin_left = 247.0 +margin_top = 194.0 +margin_right = 838.0 +margin_bottom = 402.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="PlayerName" type="Label" parent="ButtonContainer"] +margin_right = 591.0 +margin_bottom = 40.0 +custom_fonts/font = SubResource( 1 ) +text = "Hello Player" + +[node name="PlayerScore" type="Label" parent="ButtonContainer"] +margin_top = 44.0 +margin_right = 591.0 +margin_bottom = 84.0 +custom_fonts/font = SubResource( 1 ) +text = "Score: 0" + +[node name="ClickerButton" type="Button" parent="ButtonContainer"] +margin_top = 88.0 +margin_right = 591.0 +margin_bottom = 119.0 +custom_fonts/font = SubResource( 2 ) +text = "Click Me!" + +[node name="QuitButton" type="Button" parent="ButtonContainer"] +margin_top = 123.0 +margin_right = 591.0 +margin_bottom = 154.0 +custom_fonts/font = SubResource( 2 ) +text = "I'm Done" +[connection signal="pressed" from="ButtonContainer/ClickerButton" to="." method="_on_ClickerButton_pressed"] +[connection signal="pressed" from="ButtonContainer/QuitButton" to="." method="_on_QuitButton_pressed"] diff --git a/README.md b/README.md index af0e671..9699e07 100644 --- a/README.md +++ b/README.md @@ -26,3 +26,7 @@ Godot devs) can be found between the `` and [js-from-godot]: https://docs.godotengine.org/en/stable/getting_started/workflow/export/exporting_for_web.html#calling-javascript-from-script [custom-html-shell]: https://docs.godotengine.org/en/stable/tutorials/platform/customizing_html5_shell.html#doc-customizing-html5-shell [custom-fixed-size-template]: https://github.com/godotengine/godot/blob/master/misc/dist/html/fixed-size.html + +## Credits + +* [Fonts by Kenney](https://opengameart.org/content/kenney-fonts) diff --git a/kenpixel_future.ttf b/kenpixel_future.ttf new file mode 100644 index 0000000..719f8dd Binary files /dev/null and b/kenpixel_future.ttf differ