mirror of
https://github.com/JohnBreaux/Boat-Battle.git
synced 2024-11-15 05:25:57 +00:00
Partial fire functionality added.
Currently hides all ship placement UI and makes visible all fire functionality. The crosshair currently does not snap to a grid. The ships are saved in an area of location objects holding the length, orientation, and coordinates of the ship.
This commit is contained in:
parent
6e5471cc66
commit
c87a1d031c
@ -0,0 +1,3 @@
|
||||
source_md5="f6d6cf59e576f46ace6228c7c6fbcd43"
|
||||
dest_md5="5fbfd5548d2fd8ed92f2a987ce11d3c4"
|
||||
|
Binary file not shown.
BIN
godot_ship/assets/game/RedCrosshair.png
Normal file
BIN
godot_ship/assets/game/RedCrosshair.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 237 B |
34
godot_ship/assets/game/RedCrosshair.png.import
Normal file
34
godot_ship/assets/game/RedCrosshair.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/RedCrosshair.png-ed59a214d85db7c21233257c8daddbef.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/game/RedCrosshair.png"
|
||||
dest_files=[ "res://.import/RedCrosshair.png-ed59a214d85db7c21233257c8daddbef.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=9 format=2]
|
||||
[gd_scene load_steps=11 format=2]
|
||||
|
||||
[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]
|
||||
@ -8,6 +8,8 @@
|
||||
[ext_resource path="res://scenes/ships/3ShipB.tscn" type="PackedScene" id=6]
|
||||
[ext_resource path="res://scenes/ships/3shipA.tscn" type="PackedScene" id=7]
|
||||
[ext_resource path="res://scenes/ships/4Ship.tscn" type="PackedScene" id=8]
|
||||
[ext_resource path="res://assets/game/RedCrosshair.png" type="Texture" id=9]
|
||||
[ext_resource path="res://script/game/Gameplay/Crosshair.gd" type="Script" id=10]
|
||||
|
||||
[node name="Game" type="Control"]
|
||||
anchor_right = 1.0
|
||||
@ -38,6 +40,11 @@ __meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Crosshair" type="Sprite" parent="."]
|
||||
visible = false
|
||||
texture = ExtResource( 9 )
|
||||
script = ExtResource( 10 )
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
anchor_left = 0.912
|
||||
anchor_top = 0.932
|
||||
@ -131,7 +138,19 @@ __meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Fire" type="Button" parent="."]
|
||||
visible = false
|
||||
margin_left = 443.545
|
||||
margin_top = 264.473
|
||||
margin_right = 528.545
|
||||
margin_bottom = 318.473
|
||||
text = "FIRE"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[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="pressed" from="Confirm Placement" to="." method="_on_Confirm_Placement_pressed"]
|
||||
[connection signal="pressed" from="Clear" to="." method="_on_Clear_pressed"]
|
||||
[connection signal="pressed" from="Fire" to="." method="_on_Fire_pressed"]
|
||||
|
@ -1,7 +1,12 @@
|
||||
extends Control
|
||||
|
||||
onready var Ships = ["2Ship", "3ShipA", "3ShipB", "4Ship", "5Ship"]
|
||||
onready var Crosshair
|
||||
|
||||
class Location:
|
||||
var Coor: Vector2
|
||||
var Length: int
|
||||
var Orientation: bool #vertical is true, (Trueship = vertical) (Falseship = horizontal)
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
@ -25,10 +30,50 @@ func _on_Confirm_Placement_pressed():
|
||||
print ("Placement: ", valid)
|
||||
if valid == false:
|
||||
get_node("AcceptDialog").popup()
|
||||
return valid # Replace with function body.
|
||||
else:
|
||||
#Saves the location of ships and length of ship into an array
|
||||
var shipLocation = []
|
||||
for ship in Ships:
|
||||
var location = Location.new()
|
||||
location.Coor = get_node(ship).position
|
||||
location.Length = get_node(ship).get("ship_length")
|
||||
location.Orientation = get_node(ship).get("vertical")
|
||||
shipLocation.append(location)
|
||||
|
||||
#print out the array for testing
|
||||
for x in shipLocation:
|
||||
print("Ship Length: ", x.Length, ", Ship Orientation: ", x.Orientation, "Ship Coor: ", x.Coor)
|
||||
|
||||
#Hides the ship placement UI
|
||||
var confirmButton = get_node("Confirm Placement")
|
||||
var clearButton = get_node("Clear")
|
||||
var ship1 = get_node("2Ship")
|
||||
var ship2 = get_node("3ShipA")
|
||||
var ship3 = get_node("3ShipB")
|
||||
var ship4 = get_node("4Ship")
|
||||
var ship5 = get_node("5Ship")
|
||||
confirmButton.visible = false
|
||||
clearButton.visible = false
|
||||
ship1.visible = false
|
||||
ship2.visible = false
|
||||
ship3.visible = false
|
||||
ship4.visible = false
|
||||
ship5.visible = false
|
||||
|
||||
#Changes to firing mode, makes the fireing mode UI visible (The location of this can be changed later. This position is for testing)
|
||||
var crosshair = get_node("Crosshair")
|
||||
var fireButton = get_node("Fire")
|
||||
crosshair.visible = true
|
||||
fireButton.visible = true
|
||||
return valid # Replace with function body.
|
||||
|
||||
func _on_Clear_pressed():
|
||||
for ship in Ships:
|
||||
get_node(ship).clear()
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
func _on_Fire_pressed():
|
||||
var crosshair = get_node("Crosshair")
|
||||
print("Fire at position: ", crosshair.position)
|
||||
pass # Replace with function body.
|
||||
|
29
godot_ship/script/game/Gameplay/Crosshair.gd
Normal file
29
godot_ship/script/game/Gameplay/Crosshair.gd
Normal file
@ -0,0 +1,29 @@
|
||||
extends Sprite
|
||||
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
var snapped = false #when snapped if true crosshair stops following mouse
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
func _physics_process(delta):
|
||||
if snapped == false:
|
||||
position += (get_global_mouse_position() - position)/10
|
||||
|
||||
func _input(event):
|
||||
#Check if left click is being clicked and the sprite is visible (i.e only checks for inputs after ship positions are confirmed)
|
||||
if event is InputEventMouseButton and event.button_index == BUTTON_LEFT and visible == true:
|
||||
#Locks the position of the crosshair with left click
|
||||
snapped = true
|
||||
if event is InputEventMouseButton and event.button_index == BUTTON_RIGHT and visible == true:
|
||||
#Unlocks the position of the crosshair with right click
|
||||
snapped = false
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
Loading…
Reference in New Issue
Block a user