Skip to content
Snippets Groups Projects
Commit 7842743d authored by Frederic Aust's avatar Frederic Aust
Browse files

## GameSettings:

* Parameter *length* und *speed* des Obstacle hinzugefuegt
* Beim Start wird mit Defaultwerten initialisiert, fall configfiles geladen werden in der Werte fehlen
* In der update_settings Funktion wird nun geprueft, ob die Variablen im Objekt data enthalten sind, um Null-Exceptions zu vermeiden

## Obstacle:
* Die Geschwindigkeit ist nun statisch und wird im Settings Window eingestellt

## SettingsWindow:
* Eingabemaske fuer Obstacle *length* und *speed* erstellt
* Inhalt zentriert
* Einstellung Obstacle *length* vorerst ausgeblendet
parent 8b1d1aab
Branches
No related tags found
1 merge request!8# Einfuehrung der von oben nach unten fallenden Hindernisse
...@@ -35,6 +35,9 @@ var player_one_speed ...@@ -35,6 +35,9 @@ var player_one_speed
var player_two_length var player_two_length
var player_two_speed var player_two_speed
var obstacle_length
var obstacle_speed
var path="data.json" var path="data.json"
var default_data = { var default_data = {
...@@ -68,6 +71,10 @@ var default_data = { ...@@ -68,6 +71,10 @@ var default_data = {
"player_two":{ "player_two":{
"length":60, "length":60,
"speed":300 "speed":300
},
"obstacle":{
"length":60,
"speed":500
} }
} }
...@@ -75,12 +82,12 @@ var data = default_data ...@@ -75,12 +82,12 @@ var data = default_data
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
reset_data() # Initialize Values
load_data() load_data()
pass # Replace with function body. pass # Replace with function body.
func load_data(): func load_data():
var file = File.new() var file = File.new()
if not file.file_exists(path): if not file.file_exists(path):
reset_data() reset_data()
return return
...@@ -127,6 +134,10 @@ func save_data(): ...@@ -127,6 +134,10 @@ func save_data():
"player_two":{ "player_two":{
"length":$"/root/GameSettings".player_two_length, "length":$"/root/GameSettings".player_two_length,
"speed":$"/root/GameSettings".player_two_speed "speed":$"/root/GameSettings".player_two_speed
},
"obstacle":{
"length":$"/root/GameSettings".obstacle_length,
"speed":$"/root/GameSettings".obstacle_speed
} }
} }
var file var file
...@@ -140,33 +151,65 @@ func reset_data(): ...@@ -140,33 +151,65 @@ func reset_data():
update_settings() update_settings()
func update_settings(): func update_settings():
if data.has("game"):
if data["game"].has("playtime_per_step"):
game_playtime_per_step = data["game"]["playtime_per_step"] as float game_playtime_per_step = data["game"]["playtime_per_step"] as float
if data["game"].has("wins_to_reset"):
game_wins_to_reset = data["game"]["wins_to_reset"] as int game_wins_to_reset = data["game"]["wins_to_reset"] as int
if data["game"].has("port"):
game_port= data["game"]["port"] as int game_port= data["game"]["port"] as int
if data.has("image"):
if data["image"].has("format"):
var format = data["image"]["format"] var format = data["image"]["format"]
if format == "RGB8": if format == "RGB8":
image_rgb =true image_rgb =true
else: else:
image_rgb = false; image_rgb = false;
if data["image"].has("height"):
image_heigth = data["image"]["height"] as int image_heigth = data["image"]["height"] as int
if data["image"].has("width"):
image_width = data["image"]["width"] as int image_width = data["image"]["width"] as int
if data.has("trainer"):
if data["trainer"].has("ip"):
trainer_ip = data["trainer"]["ip"] trainer_ip = data["trainer"]["ip"]
trainer_port = data["trainer"]["port"] as int if data["trainer"].has("ip"):
trainer_port = data["trainer"]["ip"] as int
if data["trainer"].has("position"):
trainer_position = data["trainer"]["position"] trainer_position = data["trainer"]["position"]
if data["trainer"].has("realtime_enabled"):
trainer_realtime_enabled = data["trainer"]["realtime_enabled"] as bool trainer_realtime_enabled = data["trainer"]["realtime_enabled"] as bool
if data.has("ball"):
if data["ball"].has("height"):
ball_height =data["ball"]["height"] as int ball_height =data["ball"]["height"] as int
if data["ball"].has("width"):
ball_width = data["ball"]["width"] as int ball_width = data["ball"]["width"] as int
if data["ball"].has("speed_min"):
ball_speed_min = data["ball"]["speed_min"] as int ball_speed_min = data["ball"]["speed_min"] as int
if data["ball"].has("speed_max"):
ball_speed_max = data["ball"]["speed_max"] as int ball_speed_max = data["ball"]["speed_max"] as int
if data["ball"].has("speed_increment"):
ball_speed_increment = data["ball"]["speed_increment"] as int ball_speed_increment = data["ball"]["speed_increment"] as int
if data.has("player_one"):
if data["player_one"].has("length"):
player_one_length = data["player_one"]["length"] as int player_one_length = data["player_one"]["length"] as int
if data["player_one"].has("speed"):
player_one_speed = data["player_one"]["speed"] as int player_one_speed = data["player_one"]["speed"] as int
if data.has("player_two"):
if data["player_two"].has("length"):
player_two_length = data["player_two"]["length"] as int player_two_length = data["player_two"]["length"] as int
if data["player_two"].has("speed"):
player_two_speed = data["player_two"]["speed"] as int player_two_speed = data["player_two"]["speed"] as int
if data.has("obstacle"):
if data["obstacle"].has("length"):
obstacle_length = data["obstacle"]["length"] as int
if data["obstacle"].has("speed"):
obstacle_speed = data["obstacle"]["speed"] as int
extends StaticBody2D extends StaticBody2D
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
var min_speed = 300
var max_speed = 700
var speed=0 var speed=0
var start_position var start_position
var playing = false var playing = false
...@@ -17,7 +11,7 @@ var bottom_position ...@@ -17,7 +11,7 @@ var bottom_position
func _ready(): func _ready():
randomize() randomize()
#speed = rand_range(min_speed, max_speed) #speed = rand_range(min_speed, max_speed)
speed = 500 speed = $"/root/GameSettings".obstacle_speed
obstacle_size =$CollisionShape2D.shape.extents obstacle_size =$CollisionShape2D.shape.extents
top_position = 0- obstacle_size.y top_position = 0- obstacle_size.y
......
...@@ -43,6 +43,9 @@ func update_gui(): ...@@ -43,6 +43,9 @@ func update_gui():
$VBoxContainer/grid_settings/vbox_player_two_settings/grid_player_two_settings/input_player_two_length.text = str($"/root/GameSettings".player_two_length) $VBoxContainer/grid_settings/vbox_player_two_settings/grid_player_two_settings/input_player_two_length.text = str($"/root/GameSettings".player_two_length)
$VBoxContainer/grid_settings/vbox_player_two_settings/grid_player_two_settings/input_player_two_speed.text = str($"/root/GameSettings".player_two_speed) $VBoxContainer/grid_settings/vbox_player_two_settings/grid_player_two_settings/input_player_two_speed.text = str($"/root/GameSettings".player_two_speed)
$VBoxContainer/grid_settings/vbox_obstacle_settings/grid_obstacle_settings/input_obstacle_length.text = str($"/root/GameSettings".obstacle_length)
$VBoxContainer/grid_settings/vbox_obstacle_settings/grid_obstacle_settings/input_obstacle_speed.text = str($"/root/GameSettings".obstacle_speed)
func _on_input_trainer_position_pressed(): func _on_input_trainer_position_pressed():
if $VBoxContainer/grid_settings/vbox_trainer_settings/grid_trainer_settings/input_trainer_position.is_pressed(): if $VBoxContainer/grid_settings/vbox_trainer_settings/grid_trainer_settings/input_trainer_position.is_pressed():
...@@ -78,6 +81,9 @@ func _on_but_save_pressed(): ...@@ -78,6 +81,9 @@ func _on_but_save_pressed():
$"/root/GameSettings".player_two_length = $VBoxContainer/grid_settings/vbox_player_two_settings/grid_player_two_settings/input_player_two_length.text as int $"/root/GameSettings".player_two_length = $VBoxContainer/grid_settings/vbox_player_two_settings/grid_player_two_settings/input_player_two_length.text as int
$"/root/GameSettings".player_two_speed = $VBoxContainer/grid_settings/vbox_player_two_settings/grid_player_two_settings/input_player_two_speed.text as int $"/root/GameSettings".player_two_speed = $VBoxContainer/grid_settings/vbox_player_two_settings/grid_player_two_settings/input_player_two_speed.text as int
$"/root/GameSettings".obstacle_length = $VBoxContainer/grid_settings/vbox_obstacle_settings/grid_obstacle_settings/input_obstacle_length.text as int
$"/root/GameSettings".obstacle_speed = $VBoxContainer/grid_settings/vbox_obstacle_settings/grid_obstacle_settings/input_obstacle_speed.text as int
$"/root/GameSettings".save_data() $"/root/GameSettings".save_data()
print("new values") print("new values")
......
...@@ -28,17 +28,17 @@ anchor_left = 0.5 ...@@ -28,17 +28,17 @@ anchor_left = 0.5
anchor_top = 0.5 anchor_top = 0.5
anchor_right = 0.5 anchor_right = 0.5
anchor_bottom = 0.5 anchor_bottom = 0.5
margin_left = -141.5 margin_left = -173.5
margin_top = -181.0 margin_top = -206.0
margin_right = 141.5 margin_right = 173.5
margin_bottom = 181.0 margin_bottom = 206.0
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="grid_settings" type="GridContainer" parent="VBoxContainer"] [node name="grid_settings" type="GridContainer" parent="VBoxContainer"]
margin_right = 347.0 margin_right = 347.0
margin_bottom = 278.0 margin_bottom = 332.0
columns = 3 columns = 3
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
...@@ -421,27 +421,90 @@ margin_left = 43.0 ...@@ -421,27 +421,90 @@ margin_left = 43.0
margin_right = 101.0 margin_right = 101.0
margin_bottom = 24.0 margin_bottom = 24.0
[node name="VSeparator5" type="HSeparator" parent="VBoxContainer"] [node name="HSeparator8" type="HSeparator" parent="VBoxContainer/grid_settings"]
margin_top = 282.0
margin_right = 163.0
margin_bottom = 286.0
[node name="VSeparator5" type="HSeparator" parent="VBoxContainer/grid_settings"]
margin_left = 167.0
margin_top = 282.0
margin_right = 171.0
margin_bottom = 286.0
[node name="HSeparator3" type="HSeparator" parent="VBoxContainer/grid_settings"]
margin_left = 175.0
margin_top = 282.0 margin_top = 282.0
margin_right = 347.0 margin_right = 347.0
margin_bottom = 286.0 margin_bottom = 286.0
[node name="but_save" type="Button" parent="VBoxContainer"] [node name="vbox_obstacle_settings" type="VBoxContainer" parent="VBoxContainer/grid_settings"]
margin_top = 290.0 margin_top = 290.0
margin_right = 163.0
margin_bottom = 332.0
[node name="lbl_title_obstacle_settings" type="Label" parent="VBoxContainer/grid_settings/vbox_obstacle_settings"]
margin_right = 163.0
margin_bottom = 14.0
text = "Obstacle:"
[node name="grid_obstacle_settings" type="GridContainer" parent="VBoxContainer/grid_settings/vbox_obstacle_settings"]
margin_top = 18.0
margin_right = 163.0
margin_bottom = 42.0
columns = 2
[node name="lbl_obstacle_length" type="Label" parent="VBoxContainer/grid_settings/vbox_obstacle_settings/grid_obstacle_settings"]
visible = false
margin_right = 58.0
margin_bottom = 14.0
text = "Length"
[node name="input_obstacle_length" type="LineEdit" parent="VBoxContainer/grid_settings/vbox_obstacle_settings/grid_obstacle_settings"]
visible = false
margin_left = 47.0
margin_right = 105.0
margin_bottom = 24.0
editable = false
[node name="lbl_obstacle_speed" type="Label" parent="VBoxContainer/grid_settings/vbox_obstacle_settings/grid_obstacle_settings"]
margin_top = 5.0
margin_right = 39.0
margin_bottom = 19.0
text = "Speed"
[node name="input_obstacle_speed" type="LineEdit" parent="VBoxContainer/grid_settings/vbox_obstacle_settings/grid_obstacle_settings"]
margin_left = 43.0
margin_right = 101.0
margin_bottom = 24.0
[node name="VSeparator6" type="VSeparator" parent="VBoxContainer/grid_settings"]
margin_left = 167.0
margin_top = 290.0
margin_right = 171.0
margin_bottom = 332.0
[node name="VSeparator7" type="HSeparator" parent="VBoxContainer"]
margin_top = 336.0
margin_right = 347.0
margin_bottom = 340.0
[node name="but_save" type="Button" parent="VBoxContainer"]
margin_top = 344.0
margin_right = 347.0 margin_right = 347.0
margin_bottom = 310.0 margin_bottom = 364.0
text = "Save" text = "Save"
[node name="but_cancel" type="Button" parent="VBoxContainer"] [node name="but_cancel" type="Button" parent="VBoxContainer"]
margin_top = 314.0 margin_top = 368.0
margin_right = 347.0 margin_right = 347.0
margin_bottom = 334.0 margin_bottom = 388.0
text = "Cancel" text = "Cancel"
[node name="but_reset" type="Button" parent="VBoxContainer"] [node name="but_reset" type="Button" parent="VBoxContainer"]
margin_top = 338.0 margin_top = 392.0
margin_right = 347.0 margin_right = 347.0
margin_bottom = 358.0 margin_bottom = 412.0
text = "Reset" text = "Reset"
[connection signal="pressed" from="VBoxContainer/grid_settings/vbox_trainer_settings/grid_trainer_settings/input_trainer_position" to="." method="_on_input_trainer_position_pressed"] [connection signal="pressed" from="VBoxContainer/grid_settings/vbox_trainer_settings/grid_trainer_settings/input_trainer_position" to="." method="_on_input_trainer_position_pressed"]
[connection signal="pressed" from="VBoxContainer/but_save" to="." method="_on_but_save_pressed"] [connection signal="pressed" from="VBoxContainer/but_save" to="." method="_on_but_save_pressed"]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment