mirror of
				https://github.com/JohnBreaux/Boat-Battle.git
				synced 2025-02-04 12:28:35 +00:00 
			
		
		
		
	Snap only when on board
- snaps only when placed on board - Returns to original position if it isn't
This commit is contained in:
		| @@ -1,4 +1,4 @@ | |||||||
| [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] | ||||||
| @@ -9,9 +9,6 @@ | |||||||
| [ext_resource path="res://scenes/ships/3shipA.tscn" type="PackedScene" id=7] | [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://scenes/ships/4Ship.tscn" type="PackedScene" id=8] | ||||||
|  |  | ||||||
| [sub_resource type="RectangleShape2D" id=1] |  | ||||||
| extents = Vector2( 7.27765, 175.36 ) |  | ||||||
|  |  | ||||||
| [node name="Game" type="Control"] | [node name="Game" type="Control"] | ||||||
| anchor_right = 1.0 | anchor_right = 1.0 | ||||||
| anchor_bottom = 0.889 | anchor_bottom = 0.889 | ||||||
| @@ -72,41 +69,33 @@ __meta__ = { | |||||||
|  |  | ||||||
| [node name="2Ship" parent="." instance=ExtResource( 4 )] | [node name="2Ship" parent="." instance=ExtResource( 4 )] | ||||||
| position = Vector2( 529.802, 70.7151 ) | position = Vector2( 529.802, 70.7151 ) | ||||||
|  | collision_layer = 3 | ||||||
|  | contacts_reported = 1 | ||||||
|  | contact_monitor = true | ||||||
|  |  | ||||||
| [node name="3ShipA" parent="." instance=ExtResource( 7 )] | [node name="3ShipA" parent="." instance=ExtResource( 7 )] | ||||||
| position = Vector2( 434.236, 114.21 ) | position = Vector2( 434.236, 114.21 ) | ||||||
|  | collision_layer = 3 | ||||||
|  | contacts_reported = 1 | ||||||
|  | contact_monitor = true | ||||||
|  |  | ||||||
| [node name="3ShipB" parent="." instance=ExtResource( 6 )] | [node name="3ShipB" parent="." instance=ExtResource( 6 )] | ||||||
| position = Vector2( 443.216, 266.865 ) | position = Vector2( 443.216, 266.865 ) | ||||||
|  | collision_layer = 3 | ||||||
|  | contacts_reported = 1 | ||||||
|  | contact_monitor = true | ||||||
|  |  | ||||||
| [node name="4Ship" parent="." instance=ExtResource( 8 )] | [node name="4Ship" parent="." instance=ExtResource( 8 )] | ||||||
| position = Vector2( 522.911, 218.599 ) | position = Vector2( 522.911, 218.599 ) | ||||||
|  | collision_layer = 3 | ||||||
|  | contacts_reported = 1 | ||||||
|  | contact_monitor = true | ||||||
|  |  | ||||||
| [node name="5Ship" parent="." instance=ExtResource( 5 )] | [node name="5Ship" parent="." instance=ExtResource( 5 )] | ||||||
| position = Vector2( 607.096, 211.864 ) | position = Vector2( 607.096, 211.864 ) | ||||||
|  | collision_layer = 3 | ||||||
| [node name="Borders" type="Area2D" parent="."] | contacts_reported = 1 | ||||||
| position = Vector2( 8.87946, 176.974 ) | contact_monitor = true | ||||||
| gravity_vec = Vector2( 0, 0 ) |  | ||||||
| gravity = 0.0 |  | ||||||
|  |  | ||||||
| [node name="CollisionShape2D" type="CollisionShape2D" parent="Borders"] |  | ||||||
| shape = SubResource( 1 ) |  | ||||||
| one_way_collision_margin = 0.0 |  | ||||||
|  |  | ||||||
| [node name="CollisionShape2D2" type="CollisionShape2D" parent="Borders"] |  | ||||||
| position = Vector2( 343, 0 ) |  | ||||||
| shape = SubResource( 1 ) |  | ||||||
|  |  | ||||||
| [node name="CollisionShape2D3" type="CollisionShape2D" parent="Borders"] |  | ||||||
| position = Vector2( 171.26, -168.324 ) |  | ||||||
| rotation = 1.5708 |  | ||||||
| shape = SubResource( 1 ) |  | ||||||
|  |  | ||||||
| [node name="CollisionShape2D4" type="CollisionShape2D" parent="Borders"] |  | ||||||
| position = Vector2( 171.26, 173.677 ) |  | ||||||
| rotation = 1.5708 |  | ||||||
| shape = SubResource( 1 ) |  | ||||||
|  |  | ||||||
| [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"] | ||||||
|   | |||||||
							
								
								
									
										18
									
								
								godot_ship/script/game/Border.gd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								godot_ship/script/game/Border.gd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | extends Area2D | ||||||
|  |  | ||||||
|  | # Declare member variables here. Examples: | ||||||
|  | # var a = 2 | ||||||
|  | # var b = "text" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Called when the node enters the scene tree for the first time. | ||||||
|  | func _ready(): | ||||||
|  | 	pass # Replace with function body. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Called every frame. 'delta' is the elapsed time since the previous frame. | ||||||
|  | #func _process(delta): | ||||||
|  | #	pass | ||||||
|  |  | ||||||
|  | func _on_Border_body_entered(body): | ||||||
|  | 	print(body) | ||||||
| @@ -5,11 +5,12 @@ extends RigidBody2D | |||||||
| # var a = 2 | # var a = 2 | ||||||
| # var b = "text" | # var b = "text" | ||||||
| var held = false | var held = false | ||||||
|  | var originalPos | ||||||
|  | var snapOriginalPos = 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 | ||||||
|  |  | ||||||
| var click_radius = 16 | var click_radius = 16 | ||||||
| var orient = 0; | var orient = 0; | ||||||
| @@ -22,9 +23,16 @@ func _input(event): | |||||||
| 				 | 				 | ||||||
| 		if held and not event.pressed: | 		if held and not event.pressed: | ||||||
| 			held = false; | 			held = false; | ||||||
| 			position = position.snapped(Vector2(32, 32)) + Vector2(2, 2) | 			if (position.x > 17.4 and position.x < 337.5) and (position.y > 20.2 and position.y < 335.5): | ||||||
|  | 				position = position.snapped(Vector2(32, 32)) + Vector2(2, 2) | ||||||
|  | 			else: | ||||||
|  | 				position = originalPos | ||||||
|  | 				 | ||||||
| 			 | 			 | ||||||
| 	if event is InputEventMouseMotion and held: | 	if event is InputEventMouseMotion and held: | ||||||
|  | 		if snapOriginalPos == false: | ||||||
|  | 			originalPos = position | ||||||
|  | 			snapOriginalPos = true | ||||||
| 		position = event.position; | 		position = event.position; | ||||||
| 		 | 		 | ||||||
| 	if event.is_action_pressed("ui_rotate"): | 	if event.is_action_pressed("ui_rotate"): | ||||||
| @@ -45,3 +53,4 @@ func drop(impulse=Vector2.ZERO): | |||||||
| 		mode = RigidBody2D.MODE_RIGID | 		mode = RigidBody2D.MODE_RIGID | ||||||
| 		apply_central_impulse(impulse) | 		apply_central_impulse(impulse) | ||||||
| 		held = false | 		held = false | ||||||
|  | 		snapOriginalPos = false | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user