mirror of
https://github.com/JohnBreaux/Boat-Battle.git
synced 2024-11-15 05:25:57 +00:00
Improve menuing, and convert ships to RigidBody2D for accurate positioning.
This commit is contained in:
parent
e9040293ae
commit
0fd0fa63f0
@ -1,14 +1,13 @@
|
|||||||
[gd_scene load_steps=10 format=2]
|
[gd_scene load_steps=9 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://assets/game/board_blue.png" type="Texture" id=1]
|
[ext_resource path="res://assets/game/board_blue.png" type="Texture" id=1]
|
||||||
[ext_resource path="res://script/title screen/Title-Screen-Background.png" type="Texture" id=2]
|
[ext_resource path="res://script/title screen/Title-Screen-Background.png" type="Texture" id=2]
|
||||||
[ext_resource path="res://script/game/Gameplay.gd" type="Script" id=3]
|
[ext_resource path="res://script/game/Gameplay.gd" type="Script" id=3]
|
||||||
[ext_resource path="res://assets/game/2longShipS.png" type="Texture" id=4]
|
[ext_resource path="res://scenes/ships/2Ship.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://assets/game/5longShipS.png" type="Texture" id=5]
|
[ext_resource path="res://scenes/ships/5Ship.tscn" type="PackedScene" id=5]
|
||||||
[ext_resource path="res://assets/game/3longShipBS.png" type="Texture" id=6]
|
[ext_resource path="res://scenes/ships/3ShipB.tscn" type="PackedScene" id=6]
|
||||||
[ext_resource path="res://assets/game/4longShipS.png" type="Texture" id=7]
|
[ext_resource path="res://scenes/ships/3shipA.tscn" type="PackedScene" id=7]
|
||||||
[ext_resource path="res://assets/game/3longShipAS.png" type="Texture" id=8]
|
[ext_resource path="res://scenes/ships/4Ship.tscn" type="PackedScene" id=8]
|
||||||
[ext_resource path="res://script/game/moveShip.gd" type="Script" id=9]
|
|
||||||
|
|
||||||
[node name="Game" type="Control"]
|
[node name="Game" type="Control"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
@ -23,8 +22,9 @@ __meta__ = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[node name="board_blue" type="Sprite" parent="."]
|
[node name="board_blue" type="Sprite" parent="."]
|
||||||
position = Vector2( 187, 178 )
|
position = Vector2( 18, 18 )
|
||||||
texture = ExtResource( 1 )
|
texture = ExtResource( 1 )
|
||||||
|
centered = false
|
||||||
|
|
||||||
[node name="Title-Screen-Background" type="Sprite" parent="."]
|
[node name="Title-Screen-Background" type="Sprite" parent="."]
|
||||||
show_behind_parent = true
|
show_behind_parent = true
|
||||||
@ -63,30 +63,20 @@ __meta__ = {
|
|||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="2longShipS" type="Sprite" parent="."]
|
[node name="2Ship" parent="." instance=ExtResource( 4 )]
|
||||||
position = Vector2( 600.784, 51.419 )
|
position = Vector2( 529.802, 70.7151 )
|
||||||
texture = ExtResource( 4 )
|
|
||||||
script = ExtResource( 9 )
|
|
||||||
|
|
||||||
[node name="3longShipAS" type="Sprite" parent="."]
|
[node name="3ShipA" parent="." instance=ExtResource( 7 )]
|
||||||
position = Vector2( 599.524, 261.826 )
|
position = Vector2( 434.236, 114.21 )
|
||||||
texture = ExtResource( 8 )
|
|
||||||
script = ExtResource( 9 )
|
|
||||||
|
|
||||||
[node name="3longShipBS" type="Sprite" parent="."]
|
[node name="3ShipB" parent="." instance=ExtResource( 6 )]
|
||||||
position = Vector2( 600.784, 146.543 )
|
position = Vector2( 443.216, 266.865 )
|
||||||
texture = ExtResource( 6 )
|
|
||||||
script = ExtResource( 9 )
|
|
||||||
|
|
||||||
[node name="4longShipS" type="Sprite" parent="."]
|
[node name="4Ship" parent="." instance=ExtResource( 8 )]
|
||||||
position = Vector2( 543.458, 253.006 )
|
position = Vector2( 522.911, 218.599 )
|
||||||
texture = ExtResource( 7 )
|
|
||||||
script = ExtResource( 9 )
|
|
||||||
|
|
||||||
[node name="5longShipS" type="Sprite" parent="."]
|
[node name="5Ship" parent="." instance=ExtResource( 5 )]
|
||||||
position = Vector2( 541.568, 89.2166 )
|
position = Vector2( 607.096, 211.864 )
|
||||||
texture = ExtResource( 5 )
|
|
||||||
script = ExtResource( 9 )
|
|
||||||
|
|
||||||
[connection signal="pressed" from="VBoxContainer/Forfeit" to="." method="_on_Forfeit_pressed"]
|
[connection signal="pressed" from="VBoxContainer/Forfeit" to="." method="_on_Forfeit_pressed"]
|
||||||
[connection signal="about_to_show" from="ConfirmationDialog" to="." method="_on_ConfirmationDialog_about_to_show"]
|
[connection signal="about_to_show" from="ConfirmationDialog" to="." method="_on_ConfirmationDialog_about_to_show"]
|
||||||
|
20
godot_ship/scenes/ships/2Ship.tscn
Normal file
20
godot_ship/scenes/ships/2Ship.tscn
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://script/game/moveShip.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://assets/game/2longShipS.png" type="Texture" id=2]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=1]
|
||||||
|
extents = Vector2( 16, 32 )
|
||||||
|
|
||||||
|
[node name="2Ship" type="RigidBody2D"]
|
||||||
|
input_pickable = true
|
||||||
|
custom_integrator = true
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
position = Vector2( 0, 16 )
|
||||||
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
|
[node name="2longShipS" type="Sprite" parent="."]
|
||||||
|
position = Vector2( 0, 16 )
|
||||||
|
texture = ExtResource( 2 )
|
18
godot_ship/scenes/ships/3ShipB.tscn
Normal file
18
godot_ship/scenes/ships/3ShipB.tscn
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://script/game/moveShip.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://assets/game/3longShipBS.png" type="Texture" id=2]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=1]
|
||||||
|
extents = Vector2( 16, 48 )
|
||||||
|
|
||||||
|
[node name="3ShipB" type="RigidBody2D"]
|
||||||
|
input_pickable = true
|
||||||
|
custom_integrator = true
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
|
[node name="3longShipBS" type="Sprite" parent="."]
|
||||||
|
texture = ExtResource( 2 )
|
18
godot_ship/scenes/ships/3shipA.tscn
Normal file
18
godot_ship/scenes/ships/3shipA.tscn
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://script/game/moveShip.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://assets/game/3longShipAS.png" type="Texture" id=2]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=1]
|
||||||
|
extents = Vector2( 16, 48 )
|
||||||
|
|
||||||
|
[node name="3ShipA" type="RigidBody2D"]
|
||||||
|
input_pickable = true
|
||||||
|
custom_integrator = true
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
|
[node name="3longShipAS" type="Sprite" parent="."]
|
||||||
|
texture = ExtResource( 2 )
|
20
godot_ship/scenes/ships/4Ship.tscn
Normal file
20
godot_ship/scenes/ships/4Ship.tscn
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://script/game/moveShip.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://assets/game/4longShipS.png" type="Texture" id=2]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=1]
|
||||||
|
extents = Vector2( 16, 64 )
|
||||||
|
|
||||||
|
[node name="4Ship" type="RigidBody2D"]
|
||||||
|
input_pickable = true
|
||||||
|
custom_integrator = true
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
position = Vector2( 0, 16 )
|
||||||
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
|
[node name="4longShipS" type="Sprite" parent="."]
|
||||||
|
position = Vector2( 0, 16 )
|
||||||
|
texture = ExtResource( 2 )
|
18
godot_ship/scenes/ships/5Ship.tscn
Normal file
18
godot_ship/scenes/ships/5Ship.tscn
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://script/game/moveShip.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://assets/game/5longShipS.png" type="Texture" id=2]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=1]
|
||||||
|
extents = Vector2( 16, 80 )
|
||||||
|
|
||||||
|
[node name="5Ship" type="RigidBody2D"]
|
||||||
|
input_pickable = true
|
||||||
|
custom_integrator = true
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="5longShipS" type="Sprite" parent="."]
|
||||||
|
texture = ExtResource( 2 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
shape = SubResource( 1 )
|
@ -1,9 +1,4 @@
|
|||||||
extends LineEdit
|
extends LineEdit
|
||||||
|
|
||||||
|
|
||||||
# Declare member variables here. Examples:
|
|
||||||
# var a = 2
|
|
||||||
# var b = "text"
|
|
||||||
|
|
||||||
func _on_Debug_clear_in():
|
func _on_Debug_clear_in():
|
||||||
clear()
|
clear()
|
||||||
|
@ -3,7 +3,7 @@ extends TextEdit
|
|||||||
# 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():
|
||||||
var _errno = MessageBus.connect("print_console", self, "_on_Debug_print_text")
|
var _errno = MessageBus.connect("print_console", self, "_on_Debug_print_text")
|
||||||
pass # Replace with function body.
|
grab_focus()
|
||||||
|
|
||||||
|
|
||||||
func _on_Debug_print_text(text):
|
func _on_Debug_print_text(text):
|
||||||
|
@ -48,7 +48,7 @@ func _input(event):
|
|||||||
# open debug menu
|
# open debug menu
|
||||||
debug_active = !debug_active;
|
debug_active = !debug_active;
|
||||||
# Hand the keyboard focus to the next valid focus
|
# Hand the keyboard focus to the next valid focus
|
||||||
if (!debug_active): find_next_valid_focus().grab_focus()
|
if (!debug_active) && find_next_valid_focus(): find_next_valid_focus().grab_focus()
|
||||||
|
|
||||||
func _on_LineEdit_text_entered(line):
|
func _on_LineEdit_text_entered(line):
|
||||||
emit_signal("clear_in")
|
emit_signal("clear_in")
|
||||||
|
@ -8,6 +8,7 @@ extends Control
|
|||||||
|
|
||||||
# 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():
|
||||||
|
grab_focus()
|
||||||
pass # Replace with function body.
|
pass # Replace with function body.
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
@ -17,3 +18,4 @@ func _ready():
|
|||||||
|
|
||||||
func _on_Forfeit_pressed():
|
func _on_Forfeit_pressed():
|
||||||
queue_free();
|
queue_free();
|
||||||
|
MessageBus.emit_signal("change_scene", "Title")
|
||||||
|
@ -25,7 +25,14 @@ func _ready():
|
|||||||
debug_menu = preload("res://scenes/Debug Menu.tscn")
|
debug_menu = preload("res://scenes/Debug Menu.tscn")
|
||||||
if debug_enabled:
|
if debug_enabled:
|
||||||
add_child(debug_menu.instance())
|
add_child(debug_menu.instance())
|
||||||
_on_scene_start("Title")
|
|
||||||
|
# Ensure the scene doesn't become empty
|
||||||
|
func _process(_delta):
|
||||||
|
# Make sure there's something running
|
||||||
|
# Debug counts as one child
|
||||||
|
if get_child_count() < 1 + int(debug_enabled):
|
||||||
|
MessageBus.emit_signal("change_scene", "Title")
|
||||||
|
pass
|
||||||
|
|
||||||
# Creates a new instance of each menu scene
|
# Creates a new instance of each menu scene
|
||||||
func _on_scene_start(scene):
|
func _on_scene_start(scene):
|
||||||
|
@ -1,29 +1,30 @@
|
|||||||
extends Sprite
|
extends RigidBody2D
|
||||||
|
|
||||||
|
|
||||||
# Declare member variables here. Examples:
|
# Declare member variables here. Examples:
|
||||||
# var a = 2
|
# var a = 2
|
||||||
# var b = "text"
|
# var b = "text"
|
||||||
|
var held = false
|
||||||
|
|
||||||
|
|
||||||
# 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():
|
||||||
pass # Replace with function body.
|
pass # Replace with function body.
|
||||||
|
|
||||||
var dragging = false;
|
|
||||||
var click_radius = 32
|
var click_radius = 32
|
||||||
var orient = 0;
|
var orient = 0;
|
||||||
|
|
||||||
func _input(event):
|
func _input(event):
|
||||||
if event is InputEventMouseButton and event.button_index == BUTTON_LEFT:
|
if event is InputEventMouseButton and event.button_index == BUTTON_LEFT:
|
||||||
if (event.position - position).length() < click_radius:
|
if (event.position - position).length() < click_radius:
|
||||||
if not dragging and event.pressed:
|
if not held and event.pressed:
|
||||||
dragging = true;
|
held = true;
|
||||||
|
|
||||||
if dragging and not event.pressed:
|
if held and not event.pressed:
|
||||||
dragging = false;
|
held = false;
|
||||||
|
position = position.snapped(Vector2(32, 32)) + Vector2(2, 2)
|
||||||
|
|
||||||
if event is InputEventMouseMotion and dragging:
|
if event is InputEventMouseMotion and held:
|
||||||
position = event.position;
|
position = event.position;
|
||||||
|
|
||||||
if event.is_action_pressed("ui_rotate"):
|
if event.is_action_pressed("ui_rotate"):
|
||||||
@ -32,3 +33,15 @@ func _input(event):
|
|||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
#func _process(delta):
|
#func _process(delta):
|
||||||
# pass
|
# pass
|
||||||
|
|
||||||
|
func pickup():
|
||||||
|
if held:
|
||||||
|
return
|
||||||
|
mode = RigidBody2D.MODE_STATIC
|
||||||
|
held = true
|
||||||
|
|
||||||
|
func drop(impulse=Vector2.ZERO):
|
||||||
|
if held:
|
||||||
|
mode = RigidBody2D.MODE_RIGID
|
||||||
|
apply_central_impulse(impulse)
|
||||||
|
held = false
|
||||||
|
@ -1,19 +1,10 @@
|
|||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
|
|
||||||
# Declare member variables here. Examples:
|
|
||||||
# var a = 2
|
|
||||||
# var b = "text"
|
|
||||||
|
|
||||||
|
|
||||||
# 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():
|
||||||
pass # Replace with function body.
|
find_next_valid_focus().grab_focus()
|
||||||
|
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
||||||
#func _process(delta):
|
|
||||||
# pass
|
|
||||||
|
|
||||||
func _on_Button_pressed():
|
func _on_Button_pressed():
|
||||||
queue_free()
|
queue_free()
|
||||||
|
MessageBus.emit_signal("change_scene", "Title")
|
||||||
|
@ -6,17 +6,20 @@ extends Control
|
|||||||
|
|
||||||
# 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():
|
||||||
#$VBoxContainer/Singleplayer.grab_focus()
|
$VBoxContainer/Singleplayer.grab_focus()
|
||||||
pass
|
|
||||||
|
|
||||||
func _on_Singleplayer_pressed():
|
func _on_Singleplayer_pressed():
|
||||||
MessageBus.emit_signal("change_scene", "Singleplayer")
|
MessageBus.emit_signal("change_scene", "Singleplayer")
|
||||||
|
queue_free()
|
||||||
|
|
||||||
func _on_Multiplayer_pressed():
|
func _on_Multiplayer_pressed():
|
||||||
MessageBus.emit_signal("change_scene", "Multiplayer")
|
MessageBus.emit_signal("change_scene", "Multiplayer")
|
||||||
|
queue_free()
|
||||||
|
|
||||||
func _on_Options_pressed():
|
func _on_Options_pressed():
|
||||||
MessageBus.emit_signal("change_scene", "Options")
|
MessageBus.emit_signal("change_scene", "Options")
|
||||||
|
queue_free()
|
||||||
|
|
||||||
func _on_Quit_pressed():
|
func _on_Quit_pressed():
|
||||||
MessageBus.emit_signal("quit")
|
MessageBus.emit_signal("quit")
|
||||||
|
queue_free()
|
||||||
|
Loading…
Reference in New Issue
Block a user