7 Commits

Author SHA1 Message Date
James
b81a581fd2 alpha8 2023-12-04 20:41:31 +00:00
James
20a92b40d9 tidy 2023-12-04 19:57:09 +00:00
James
8a6bc5937c tidy 2023-12-04 19:46:14 +00:00
James
92cafad56a finish new maps 2023-12-04 19:42:47 +00:00
James
b0d7acdbba begin redo maps 2023-12-04 19:20:43 +00:00
James
033a1c21da finish zoom/scroll 2023-12-04 18:04:59 +00:00
James
4faeccff10 scroll/zoom 2023-12-04 16:34:30 +00:00
23 changed files with 213 additions and 867 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
# Godot 4+ specific ignores
.godot/
bin/
android/

View File

@@ -1,18 +1,7 @@
extends RigidBody2D
# 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 _integrate_forces(state: PhysicsDirectBodyState2D):
var contact_count = state.get_contact_count()
#print("aa")
for i in range(contact_count):
#print("bb")
var collider_object = state.get_contact_collider_object(i)
@@ -27,6 +16,5 @@ func handle_player_collision(player: Player):
$"..".drop()
player.drop()
func handle_pool_collision(pool: Pool):
$"..".exchange_with(pool)

30
Camera2D.gd Normal file
View File

@@ -0,0 +1,30 @@
extends Camera2D
var last_mouse_position = Vector2.ZERO
func _ready():
set_process_input(true)
func _input(event):
if event is InputEventMouseButton:
if event.button_index == MOUSE_BUTTON_MIDDLE and event.pressed:
last_mouse_position = get_global_mouse_position()
elif event.button_index == MOUSE_BUTTON_MIDDLE and not event.pressed:
last_mouse_position = Vector2.ZERO
if event.button_index == MOUSE_BUTTON_WHEEL_DOWN and event.pressed:
zoom_towards_mouse(Vector2(0.9, 0.9))
elif event.button_index == MOUSE_BUTTON_WHEEL_UP and event.pressed:
zoom_towards_mouse(Vector2(1.1, 1.1))
elif event is InputEventMouseMotion:
if last_mouse_position != Vector2.ZERO:
var mouse_motion = event.relative
var drag_offset = mouse_motion / zoom
position -= drag_offset
last_mouse_position = get_global_mouse_position()
func zoom_towards_mouse(zoom_factor):
var previous_mouse_position := get_local_mouse_position()
zoom *= zoom_factor
var diff = previous_mouse_position - get_local_mouse_position()
offset += diff

View File

@@ -1,9 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://ckv0180aypptf"]
[ext_resource type="Texture2D" uid="uid://1g54esg7yd35" path="res://images/crosshair.png" id="1_7vv1r"]
[node name="Crosshair" type="Node2D"]
[node name="Sprite2D" type="Sprite2D" parent="."]
scale = Vector2(0.05, 0.05)
texture = ExtResource("1_7vv1r")

View File

@@ -34,14 +34,14 @@ package/signed=true
package/app_category=2
package/retain_data_on_uninstall=false
package/exclude_from_recents=false
package/show_in_android_tv=false
package/show_in_app_library=true
package/show_as_launcher_app=false
launcher_icons/main_192x192=""
launcher_icons/adaptive_foreground_432x432=""
launcher_icons/adaptive_background_432x432=""
graphics/opengl_debug=false
xr_features/xr_mode=0
xr_features/hand_tracking=0
xr_features/hand_tracking_frequency=0
xr_features/passthrough=0
screen/immersive_mode=true
screen/support_small=true
screen/support_normal=true
@@ -199,6 +199,9 @@ permissions/write_sms=false
permissions/write_social_stream=false
permissions/write_sync_settings=false
permissions/write_user_dictionary=false
xr_features/hand_tracking=0
xr_features/hand_tracking_frequency=0
xr_features/passthrough=0
[preset.1]
@@ -210,7 +213,7 @@ custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="bin/alpha6.x86_64"
export_path="bin/alpha8.x86_64"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
@@ -250,7 +253,7 @@ custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path=""
export_path="bin/alpha8_macos.zip"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
@@ -265,7 +268,7 @@ custom_template/release=""
debug/export_console_wrapper=1
application/icon=""
application/icon_interpolation=4
application/bundle_identifier=""
application/bundle_identifier="uk.co.jhodges"
application/signature=""
application/app_category="Games"
application/short_version="1.0"
@@ -273,6 +276,7 @@ application/version="1.0"
application/copyright=""
application/copyright_localized={}
application/min_macos_version="10.12"
application/export_angle=0
display/high_res=true
xcode/platform_build="14C18"
xcode/sdk_version="13.1"
@@ -306,6 +310,7 @@ codesign/entitlements/app_sandbox/files_downloads=0
codesign/entitlements/app_sandbox/files_pictures=0
codesign/entitlements/app_sandbox/files_music=0
codesign/entitlements/app_sandbox/files_movies=0
codesign/entitlements/app_sandbox/files_user_selected=0
codesign/entitlements/app_sandbox/helper_executables=[]
codesign/custom_options=PackedStringArray()
notarization/notarization=0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 B

View File

@@ -1,92 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://iskh4m3ltqul"]
[ext_resource type="Script" path="res://Button.gd" id="1_rygkg"]
[sub_resource type="LabelSettings" id="LabelSettings_kd1xo"]
font_size = 32
[node name="MapSelect" type="Node2D"]
[node name="Title" type="Label" parent="."]
offset_left = 27.0
offset_top = 127.0
offset_right = 196.0
offset_bottom = 175.0
text = "Map Select"
label_settings = SubResource("LabelSettings_kd1xo")
[node name="Button" type="Button" parent="."]
offset_left = 24.0
offset_top = 261.0
offset_right = 199.0
offset_bottom = 324.0
text = "RGB"
script = ExtResource("1_rygkg")
map_path = "res://maps/rgb.tscn"
[node name="Button2" type="Button" parent="."]
offset_left = 29.0
offset_top = 186.0
offset_right = 204.0
offset_bottom = 249.0
text = "Source"
script = ExtResource("1_rygkg")
map_path = "res://maps/source.tscn"
[node name="Button3" type="Button" parent="."]
offset_left = 25.0
offset_top = 332.0
offset_right = 200.0
offset_bottom = 395.0
text = "CMY"
script = ExtResource("1_rygkg")
map_path = "res://maps/cmy.tscn"
[node name="Button4" type="Button" parent="."]
offset_left = 397.0
offset_top = 188.0
offset_right = 572.0
offset_bottom = 251.0
text = "Rare"
script = ExtResource("1_rygkg")
map_path = "res://maps/rare.tscn"
[node name="Button5" type="Button" parent="."]
offset_left = 213.0
offset_top = 185.0
offset_right = 388.0
offset_bottom = 248.0
text = "Seperated"
script = ExtResource("1_rygkg")
map_path = "res://maps/seperated.tscn"
[node name="Button6" type="Button" parent="."]
offset_left = 208.0
offset_top = 260.0
offset_right = 383.0
offset_bottom = 323.0
text = "RGB Sections"
script = ExtResource("1_rygkg")
map_path = "res://maps/rgb_sections.tscn"
[node name="Drop" type="CheckBox" parent="."]
offset_left = 33.0
offset_top = 74.0
offset_right = 194.0
offset_bottom = 105.0
text = "Drop on Collision"
[node name="Title2" type="Label" parent="."]
offset_left = 24.0
offset_top = 14.0
offset_right = 193.0
offset_bottom = 62.0
text = "Options"
label_settings = SubResource("LabelSettings_kd1xo")
[connection signal="pressed" from="Button" to="Button" method="_on_pressed"]
[connection signal="pressed" from="Button2" to="Button2" method="_on_pressed"]
[connection signal="pressed" from="Button3" to="Button3" method="_on_pressed"]
[connection signal="pressed" from="Button4" to="Button4" method="_on_pressed"]
[connection signal="pressed" from="Button5" to="Button5" method="_on_pressed"]
[connection signal="pressed" from="Button6" to="Button6" method="_on_pressed"]

View File

@@ -11,7 +11,7 @@ func _on_pressed():
return
var sim = load("res://sim.tscn").instantiate()
var map = load(map_path).instantiate()
sim.add_child(map)
var map = load(map_path).new()
map.create_map(sim)
get_tree().root.add_child(sim)
get_node("/root/MapSelect").queue_free()

12
map_select/map_select.gd Normal file
View File

@@ -0,0 +1,12 @@
extends Node2D
# 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):
if Input.is_action_just_pressed("escape"):
get_tree().quit() # default behavior

View File

@@ -0,0 +1,59 @@
[gd_scene load_steps=4 format=3 uid="uid://iskh4m3ltqul"]
[ext_resource type="Script" path="res://map_select/map_select.gd" id="1_w7uu4"]
[ext_resource type="Script" path="res://map_select/Button.gd" id="2_ykkpr"]
[sub_resource type="LabelSettings" id="LabelSettings_kd1xo"]
font_size = 32
[node name="MapSelect" type="Node2D"]
script = ExtResource("1_w7uu4")
[node name="Title" type="Label" parent="."]
offset_left = 29.0
offset_top = 17.0
offset_right = 198.0
offset_bottom = 65.0
text = "Map Select"
label_settings = SubResource("LabelSettings_kd1xo")
[node name="Button" type="Button" parent="."]
offset_left = 26.0
offset_top = 165.0
offset_right = 201.0
offset_bottom = 228.0
text = "Rare"
script = ExtResource("2_ykkpr")
map_path = "res://maps/rare.gd"
[node name="Button2" type="Button" parent="."]
offset_left = 211.0
offset_top = 80.0
offset_right = 386.0
offset_bottom = 143.0
text = "Large"
script = ExtResource("2_ykkpr")
map_path = "res://maps/large.gd"
[node name="Button7" type="Button" parent="."]
offset_left = 26.0
offset_top = 250.0
offset_right = 201.0
offset_bottom = 313.0
text = "Sections"
script = ExtResource("2_ykkpr")
map_path = "res://maps/sections.gd"
[node name="Button8" type="Button" parent="."]
offset_left = 24.0
offset_top = 80.0
offset_right = 199.0
offset_bottom = 143.0
text = "Small"
script = ExtResource("2_ykkpr")
map_path = "res://maps/small.gd"
[connection signal="pressed" from="Button" to="Button" method="_on_pressed"]
[connection signal="pressed" from="Button2" to="Button2" method="_on_pressed"]
[connection signal="pressed" from="Button7" to="Button7" method="_on_pressed"]
[connection signal="pressed" from="Button8" to="Button8" method="_on_pressed"]

View File

@@ -1,29 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://ce4ed87hyb1o3"]
[ext_resource type="PackedScene" uid="uid://bpd3l1iyb13h2" path="res://pool.tscn" id="2_u62jc"]
[node name="Map" type="Node2D"]
[node name="M" parent="." instance=ExtResource("2_u62jc")]
modulate = Color(1, 0, 1, 1)
position = Vector2(260, 209)
scale = Vector2(0.447214, 0.447214)
mana_r = 100
mana_g = 0
mana_b = 100
[node name="C" parent="." instance=ExtResource("2_u62jc")]
modulate = Color(0, 1, 1, 1)
position = Vector2(886, 210)
scale = Vector2(0.447214, 0.447214)
mana_r = 0
mana_g = 100
mana_b = 100
[node name="Y" parent="." instance=ExtResource("2_u62jc")]
modulate = Color(1, 1, 0, 1)
position = Vector2(583, 502)
scale = Vector2(0.447214, 0.447214)
mana_r = 100
mana_g = 100
mana_b = 0

17
maps/large.gd Normal file
View File

@@ -0,0 +1,17 @@
var root
func create_map(_root):
root=_root
poolcircle(Vector2(0,0),2000,100,1000,1000,1000)
root.get_node("Camera2D").zoom=Vector2(0.2,0.2)
func poolcircle(pos: Vector2, radius, count, r,g,b):
for n in range(1,count+1):
var new_pool: Pool = load("res://pool.tscn").instantiate()
var t=(float(n)/count)*3.141*2
new_pool.position = pos + (Vector2(sin(t),cos(t))*radius)
new_pool.mana_r=r
new_pool.mana_g=g
new_pool.mana_b=b
new_pool.get_node("StaticBody2D/CollisionShape2D2").disabled=true;
root.call_deferred("add_child",new_pool)

18
maps/rare.gd Normal file
View File

@@ -0,0 +1,18 @@
var root
func create_map(_root):
self.root=_root
poolcircle(Vector2(0,0),0,1,10,0,0)
poolcircle(Vector2(0,0),2000,100,0,5000,0)
root.get_node("Camera2D").zoom=Vector2(0.3,0.3)
func poolcircle(pos: Vector2, radius, count, r,g,b):
for n in range(1,count+1):
var new_pool: Pool = load("res://pool.tscn").instantiate()
var t=(float(n)/count)*3.141*2
new_pool.position = pos + (Vector2(sin(t),cos(t))*radius)
new_pool.mana_r=r
new_pool.mana_g=g
new_pool.mana_b=b
new_pool.get_node("StaticBody2D/CollisionShape2D2").disabled=true;
root.call_deferred("add_child",new_pool)

View File

@@ -1,29 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://bts7n21b8v8os"]
[ext_resource type="PackedScene" uid="uid://bpd3l1iyb13h2" path="res://pool.tscn" id="1_ivbwl"]
[node name="Map" type="Node2D"]
[node name="Red" parent="." instance=ExtResource("1_ivbwl")]
modulate = Color(1, 0, 0, 1)
position = Vector2(260, 209)
scale = Vector2(0.1, 0.1)
mana_r = 10
mana_g = 0
mana_b = 0
[node name="Green" parent="." instance=ExtResource("1_ivbwl")]
modulate = Color(0, 1, 0, 1)
position = Vector2(886, 210)
scale = Vector2(1, 1)
mana_r = 0
mana_g = 1000
mana_b = 0
[node name="Blue" parent="." instance=ExtResource("1_ivbwl")]
modulate = Color(0, 0, 1, 1)
position = Vector2(583, 502)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100

View File

@@ -1,29 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://de5ghicw2skkg"]
[ext_resource type="PackedScene" uid="uid://bpd3l1iyb13h2" path="res://pool.tscn" id="1_icig8"]
[node name="Map" type="Node2D"]
[node name="Red" parent="." instance=ExtResource("1_icig8")]
modulate = Color(1, 0, 0, 1)
position = Vector2(260, 209)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Green" parent="." instance=ExtResource("1_icig8")]
modulate = Color(0, 1, 0, 1)
position = Vector2(886, 210)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Blue" parent="." instance=ExtResource("1_icig8")]
modulate = Color(0, 0, 1, 1)
position = Vector2(583, 502)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100

View File

@@ -1,541 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://65vslfrgjtly"]
[ext_resource type="PackedScene" uid="uid://bpd3l1iyb13h2" path="res://pool.tscn" id="2_caufp"]
[node name="Map" type="Node2D"]
[node name="Red" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(540, 177)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Green" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(779, 119)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Blue" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(722, 502)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Red2" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(513, 210)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red3" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(449, 250)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red4" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(196, 312)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red5" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(332, 287)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red6" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(597, 85)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red7" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(483, 229)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red8" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(259, 310)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red9" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(628, 13)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red10" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(561, 154)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red11" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(600, 47)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red12" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(164, 309)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red13" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(289, 288)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red14" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(410, 263)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red15" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(366, 273)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red16" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(581, 118)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Green2" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(775, 85)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green3" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(790, 161)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green4" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(823, 219)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green5" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(1145, 410)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green6" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(860, 273)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green7" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(1019, 374)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green8" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(1082, 396)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green9" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(1121, 403)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green10" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(773, 50)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green11" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(963, 342)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green12" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(842, 250)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green13" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(811, 185)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green14" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(770, 15)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green15" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(983, 363)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green16" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(1051, 384)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green17" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(941, 336)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Blue2" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(763, 511)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue3" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(803, 525)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue4" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(829, 534)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue5" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(933, 650)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue6" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(916, 631)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue7" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(362, 512)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue8" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(293, 588)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue9" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(698, 498)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue10" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(392, 494)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue11" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(336, 537)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue12" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(253, 646)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue13" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(662, 485)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue14" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(269, 616)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue15" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(878, 578)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue16" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(317, 561)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue17" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(626, 482)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue18" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(898, 606)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue19" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(853, 552)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Green18" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(885, 295)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Green19" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 1, 0, 1)
position = Vector2(914, 320)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 100
mana_b = 0
[node name="Red17" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(259, 310)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red18" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(227, 310)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red19" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(3, 323)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red20" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(29, 325)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red21" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(56, 320)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red22" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(93, 318)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Red23" parent="." instance=ExtResource("2_caufp")]
modulate = Color(1, 0, 0, 1)
position = Vector2(131, 317)
scale = Vector2(0.316228, 0.316228)
mana_r = 100
mana_g = 0
mana_b = 0
[node name="Blue20" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(598, 476)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue21" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(564, 471)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue22" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(530, 466)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue23" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(491, 462)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue24" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(458, 468)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100
[node name="Blue25" parent="." instance=ExtResource("2_caufp")]
modulate = Color(0, 0, 1, 1)
position = Vector2(428, 478)
scale = Vector2(0.316228, 0.316228)
mana_r = 0
mana_g = 0
mana_b = 100

25
maps/sections.gd Normal file
View File

@@ -0,0 +1,25 @@
var root
func create_map(root):
self.root=root
poolcircle(Vector2(0,0),200,32,100,0,0)
poolcircle(Vector2(600,0),200,32,0,100,0)
poolcircle(Vector2(1200,0),200,32,0,0,100)
poolcircle(Vector2(0,600),200,32,0,50,50)
poolcircle(Vector2(600,600),200,32,50,0,50)
poolcircle(Vector2(1200,600),200,32,50,50,0)
poolcircle(Vector2(600,200),2000,100,1000,1000,1000)
func poolcircle(pos: Vector2, radius, count, r,g,b):
for n in range(1,count+1):
var new_pool: Pool = load("res://pool.tscn").instantiate()
var t=(float(n)/count)*3.141*2
new_pool.position = pos + (Vector2(sin(t),cos(t))*radius)
new_pool.mana_r=r
new_pool.mana_g=g
new_pool.mana_b=b
new_pool.get_node("StaticBody2D/CollisionShape2D2").disabled=true;
root.call_deferred("add_child",new_pool)

View File

@@ -1,53 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://bc64eh8p22erv"]
[ext_resource type="PackedScene" uid="uid://bpd3l1iyb13h2" path="res://pool.tscn" id="1_uxair"]
[node name="Map" type="Node2D"]
[node name="Pool" parent="." instance=ExtResource("1_uxair")]
modulate = Color(1, 1, 1, 1)
position = Vector2(576, 106)
scale = Vector2(1.73205, 1.73205)
mana_r = 1000
mana_g = 1000
mana_b = 1000
[node name="Pool2" parent="." instance=ExtResource("1_uxair")]
modulate = Color(1, 1, 1, 1)
position = Vector2(568, 249)
scale = Vector2(1.73205, 1.73205)
mana_r = 1000
mana_g = 1000
mana_b = 1000
[node name="Pool3" parent="." instance=ExtResource("1_uxair")]
modulate = Color(1, 1, 1, 1)
position = Vector2(573, 390)
scale = Vector2(1.73205, 1.73205)
mana_r = 1000
mana_g = 1000
mana_b = 1000
[node name="Pool4" parent="." instance=ExtResource("1_uxair")]
modulate = Color(1, 1, 1, 1)
position = Vector2(573, 557)
scale = Vector2(1.73205, 1.73205)
mana_r = 1000
mana_g = 1000
mana_b = 1000
[node name="Pool5" parent="." instance=ExtResource("1_uxair")]
modulate = Color(1, 0, 0, 1)
position = Vector2(217, 331)
scale = Vector2(1, 1)
mana_r = 1000
mana_g = 0
mana_b = 0
[node name="Pool6" parent="." instance=ExtResource("1_uxair")]
modulate = Color(0, 1, 0, 1)
position = Vector2(927, 324)
scale = Vector2(1, 1)
mana_r = 0
mana_g = 1000
mana_b = 0

16
maps/small.gd Normal file
View File

@@ -0,0 +1,16 @@
var root
func create_map(_root):
root=_root
poolcircle(Vector2(0,0),200,16,100,100,100)
func poolcircle(pos: Vector2, radius, count, r,g,b):
for n in range(1,count+1):
var new_pool: Pool = load("res://pool.tscn").instantiate()
var t=(float(n)/count)*3.141*2
new_pool.position = pos + (Vector2(sin(t),cos(t))*radius)
new_pool.mana_r=r
new_pool.mana_g=g
new_pool.mana_b=b
new_pool.get_node("StaticBody2D/CollisionShape2D2").disabled=true;
root.call_deferred("add_child",new_pool)

View File

@@ -1,13 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://dh05x28usoabl"]
[ext_resource type="PackedScene" uid="uid://bpd3l1iyb13h2" path="res://pool.tscn" id="2_3xoru"]
[node name="Map" type="Node2D"]
[node name="Pool" parent="." instance=ExtResource("2_3xoru")]
modulate = Color(1, 1, 1, 1)
position = Vector2(596, 330)
scale = Vector2(1.73205, 1.73205)
mana_r = 1000
mana_g = 1000
mana_b = 1000

View File

@@ -11,14 +11,10 @@ config_version=5
[application]
config/name="RGB Physics Life"
run/main_scene="res://map_select.tscn"
config/features=PackedStringArray("4.1", "Mobile")
run/main_scene="res://map_select/map_select.tscn"
config/features=PackedStringArray("4.2", "Mobile")
config/icon="res://images/icon.svg"
[display]
window/size/resizable=false
[input]
move_up={
@@ -68,7 +64,3 @@ escape={
2d/default_gravity=0.0
2d/default_linear_damp=0.0
2d/default_angular_damp=0.0
[rendering]
renderer/rendering_method="mobile"

42
sim.gd
View File

@@ -4,48 +4,18 @@ var spawn_position=Vector2(100,100);
# Called when the node enters the scene tree for the first time.
func _ready():
setup_edge_collisions()
func setup_edge_collisions():
var screen_size = get_viewport_rect().size
# Create a StaticBody2D for each edge
for i in range(4):
var body = StaticBody2D.new()
body.collision_layer=4 #walls
add_child(body)
var shape = CollisionShape2D.new()
body.add_child(shape)
var rect_shape = RectangleShape2D.new()
shape.shape = rect_shape
# Adjust size and position based on the edge
match i:
0: # Top
rect_shape.extents = Vector2(screen_size.x / 2, 10)
body.position = Vector2(screen_size.x / 2, 0)
1: # Bottom
rect_shape.extents = Vector2(screen_size.x / 2, 10)
body.position = Vector2(screen_size.x / 2, screen_size.y)
2: # Left
rect_shape.extents = Vector2(10, screen_size.y / 2)
body.position = Vector2(0, screen_size.y / 2)
3: # Right
rect_shape.extents = Vector2(10, screen_size.y / 2)
body.position = Vector2(screen_size.x, screen_size.y / 2)
pass
func _input(event):
if event.is_action_pressed("escape"):
get_tree().change_scene_to_file("res://map_select.tscn")
get_tree().change_scene_to_file("res://map_select/map_select.tscn")
get_node("/root/Sim").queue_free()
if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
spawn_position=event.position
spawn_position=get_global_mouse_position()
spawn()
$Timer.stop()
if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_RIGHT:
spawn_position=event.position
spawn_position=get_global_mouse_position()
$Timer.start()
func _on_timer_timeout():
@@ -78,6 +48,8 @@ func spawn():
if collision.collider.get_parent() is Pool:
collision.collider.get_parent()._on_decay_timer_timeout()
return
var marker = load("res://crosshair.tscn").instantiate()
var marker = Sprite2D.new()
marker.position = new_player.get_node("Body2D").position
marker.scale=Vector2(0.1,0.1)
marker.texture = load("res://images/crosshair.png")
add_child(marker)

View File

@@ -1,18 +1,13 @@
[gd_scene load_steps=4 format=3 uid="uid://bpy475nyq5ea1"]
[gd_scene load_steps=5 format=3 uid="uid://bpy475nyq5ea1"]
[ext_resource type="Script" path="res://sim.gd" id="1_wbm7g"]
[ext_resource type="Script" path="res://Debug.gd" id="2_iqnjl"]
[ext_resource type="Script" path="res://TimerSS.gd" id="3_7b3mn"]
[ext_resource type="Script" path="res://Camera2D.gd" id="4_g4kw0"]
[node name="Sim" type="Node2D"]
script = ExtResource("1_wbm7g")
[node name="Debug" type="Label" parent="."]
offset_right = 67.0
offset_bottom = 26.0
text = "debug"
script = ExtResource("2_iqnjl")
[node name="Timer" type="Timer" parent="."]
wait_time = 0.3
@@ -21,5 +16,16 @@ wait_time = 60.0
autostart = true
script = ExtResource("3_7b3mn")
[node name="Camera2D" type="Camera2D" parent="."]
script = ExtResource("4_g4kw0")
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="Debug" type="Label" parent="CanvasLayer"]
offset_right = 67.0
offset_bottom = 26.0
text = "debug"
script = ExtResource("2_iqnjl")
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
[connection signal="timeout" from="TimerSS" to="TimerSS" method="_on_timeout"]