Coin Spawner tweaks, grid-free movement on island
parent
626238ddbe
commit
d7049b43ed
|
@ -2,15 +2,15 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="StreamTexture"
|
||||||
path="res://.import/icon.png-9e2c68854eff2ba15efab32e39b37c44.stex"
|
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/gdhexgrid/icon.png"
|
source_file="res://icon.png"
|
||||||
dest_files=[ "res://.import/icon.png-9e2c68854eff2ba15efab32e39b37c44.stex" ]
|
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/HDR_as_SRGB=false
|
||||||
process/invert_color=false
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
stream=false
|
stream=false
|
||||||
size_limit=0
|
size_limit=0
|
||||||
detect_3d=true
|
detect_3d=true
|
||||||
|
|
|
@ -28,6 +28,7 @@ process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/HDR_as_SRGB=false
|
||||||
process/invert_color=false
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
stream=false
|
stream=false
|
||||||
size_limit=0
|
size_limit=0
|
||||||
detect_3d=true
|
detect_3d=true
|
||||||
|
|
|
@ -25,9 +25,9 @@
|
||||||
borderopacity="1.0"
|
borderopacity="1.0"
|
||||||
inkscape:pageopacity="0.0"
|
inkscape:pageopacity="0.0"
|
||||||
inkscape:pageshadow="2"
|
inkscape:pageshadow="2"
|
||||||
inkscape:zoom="0.7"
|
inkscape:zoom="1.979899"
|
||||||
inkscape:cx="193.12383"
|
inkscape:cx="193.12383"
|
||||||
inkscape:cy="-78.795116"
|
inkscape:cy="128.13748"
|
||||||
inkscape:document-units="mm"
|
inkscape:document-units="mm"
|
||||||
inkscape:current-layer="layer1"
|
inkscape:current-layer="layer1"
|
||||||
showgrid="false"
|
showgrid="false"
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<dc:title></dc:title>
|
<dc:title />
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
</rdf:RDF>
|
</rdf:RDF>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
@ -119,7 +119,7 @@
|
||||||
sodipodi:nodetypes="cc" />
|
sodipodi:nodetypes="cc" />
|
||||||
<g
|
<g
|
||||||
id="g2020"
|
id="g2020"
|
||||||
transform="matrix(0.7487091,0,0,0.7487091,22.654087,15.131824)">
|
transform="matrix(0.7487091,0,0,0.7487091,22.011525,15.311364)">
|
||||||
<rect
|
<rect
|
||||||
y="60.764866"
|
y="60.764866"
|
||||||
x="34.11235"
|
x="34.11235"
|
||||||
|
@ -150,5 +150,54 @@
|
||||||
id="path1969"
|
id="path1969"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
sodipodi:nodetypes="ccccccccccccc" />
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:#ffff00;fill-opacity:1;stroke:#241c1c;stroke-width:0.59499997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.28632483"
|
||||||
|
id="path891"
|
||||||
|
cx="71.115189"
|
||||||
|
cy="57.663963"
|
||||||
|
rx="4.9444861"
|
||||||
|
ry="7.4835467" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:#ffff00;fill-opacity:1;stroke:#241c1c;stroke-width:0.59499997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.28632483"
|
||||||
|
id="path893"
|
||||||
|
cx="70.914734"
|
||||||
|
cy="46.973183"
|
||||||
|
rx="3.4076865"
|
||||||
|
ry="4.4099469" />
|
||||||
|
<path
|
||||||
|
style="fill:#ffff00;fill-opacity:1;stroke:#241c1c;stroke-width:0.59499997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.28632483"
|
||||||
|
d="m 76.576478,56.227926 c 0.974202,3.635771 0.665907,6.877365 -0.688596,7.240302 -1.354503,0.362937 -3.24229,-2.290218 -4.216492,-5.925988 -0.974202,-3.635771 -0.665907,-6.877365 0.688596,-7.240302 1.354503,-0.362937 3.24229,2.290218 4.216492,5.925988 z"
|
||||||
|
id="path895"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sssss" />
|
||||||
|
<path
|
||||||
|
style="fill:#ffff00;fill-rule:evenodd;stroke:#c0be08;stroke-width:0.59500003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 67.774315,45.866354 c 0,0 -2.666291,1.274117 -3.073598,2.53906 -0.268239,0.833048 0.668174,2.539061 0.668174,2.539061 l 1.202713,-1.469983 2.004521,-0.400904 z"
|
||||||
|
id="path897"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cscccc" />
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.59499997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.28632483"
|
||||||
|
id="path899"
|
||||||
|
sodipodi:type="arc"
|
||||||
|
sodipodi:cx="-70.017845"
|
||||||
|
sodipodi:cy="-46.00531"
|
||||||
|
sodipodi:rx="1.0151163"
|
||||||
|
sodipodi:ry="1.603617"
|
||||||
|
sodipodi:start="0"
|
||||||
|
sodipodi:end="6.2530804"
|
||||||
|
d="m -69.002729,-46.00531 a 1.0151163,1.603617 0 0 1 -1.007476,1.603571 1.0151163,1.603617 0 0 1 -1.022641,-1.579434 1.0151163,1.603617 0 0 1 0.992083,-1.627345 1.0151163,1.603617 0 0 1 1.037574,1.554938 l -1.014656,0.04827 z"
|
||||||
|
transform="scale(-1)" />
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:0.28627451;stroke:#000000;stroke-width:0.59499997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path901"
|
||||||
|
sodipodi:type="arc"
|
||||||
|
sodipodi:cx="69.808182"
|
||||||
|
sodipodi:cy="46.459103"
|
||||||
|
sodipodi:rx="0.20966499"
|
||||||
|
sodipodi:ry="0.45379427"
|
||||||
|
sodipodi:start="0"
|
||||||
|
sodipodi:end="6.2530784"
|
||||||
|
d="m 70.017847,46.459103 a 0.20966499,0.45379427 0 0 1 -0.208087,0.453781 0.20966499,0.45379427 0 0 1 -0.211219,-0.44695 0.20966499,0.45379427 0 0 1 0.204907,-0.46051 0.20966499,0.45379427 0 0 1 0.214304,0.440018 l -0.20957,0.01366 z" />
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 9.6 KiB |
|
@ -28,6 +28,7 @@ process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/HDR_as_SRGB=false
|
||||||
process/invert_color=false
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
stream=false
|
stream=false
|
||||||
size_limit=0
|
size_limit=0
|
||||||
detect_3d=true
|
detect_3d=true
|
||||||
|
|
|
@ -28,6 +28,7 @@ process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/HDR_as_SRGB=false
|
||||||
process/invert_color=false
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
stream=false
|
stream=false
|
||||||
size_limit=0
|
size_limit=0
|
||||||
detect_3d=true
|
detect_3d=true
|
||||||
|
|
|
@ -28,6 +28,7 @@ process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/HDR_as_SRGB=false
|
||||||
process/invert_color=false
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
stream=false
|
stream=false
|
||||||
size_limit=0
|
size_limit=0
|
||||||
detect_3d=true
|
detect_3d=true
|
||||||
|
|
|
@ -5,7 +5,7 @@ onready var Coin = preload("./Coin.tscn")
|
||||||
# Declare member variables here. Examples:
|
# Declare member variables here. Examples:
|
||||||
# var a = 2
|
# var a = 2
|
||||||
# var b = "text"
|
# var b = "text"
|
||||||
var coin_spread = 50
|
var coin_spread = 100
|
||||||
|
|
||||||
# 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():
|
||||||
|
@ -17,19 +17,22 @@ func _ready():
|
||||||
#func _process(delta):
|
#func _process(delta):
|
||||||
# pass
|
# pass
|
||||||
|
|
||||||
func emit_coins (num, _position = null):
|
func create_coins (num, _position = null):
|
||||||
|
var result = []
|
||||||
for i in range (num):
|
for i in range (num):
|
||||||
var coin = Coin.instance()
|
var coin = Coin.instance()
|
||||||
|
|
||||||
coin.position = position
|
coin.position = position
|
||||||
if _position != null:
|
if _position != null:
|
||||||
coin.position = _position
|
coin.position = _position
|
||||||
|
|
||||||
coin.velocity = Vector2 (rand_range(-coin_spread, coin_spread), rand_range (-coin_spread, coin_spread))
|
coin.velocity = Vector2 (2 * rand_range(-coin_spread, coin_spread), rand_range (-coin_spread, coin_spread))
|
||||||
coin.z_pos = 0
|
coin.z_pos = 0
|
||||||
coin.z_vel = rand_range(300, 800)
|
coin.z_vel = rand_range(300, 800)
|
||||||
add_child(coin)
|
result.push_back(coin)
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
func _unhandled_input(event):
|
func _unhandled_input(event):
|
||||||
if 'position' in event:
|
if 'position' in event:
|
||||||
|
@ -37,4 +40,6 @@ func _unhandled_input(event):
|
||||||
|
|
||||||
if event is InputEventMouseButton:
|
if event is InputEventMouseButton:
|
||||||
if event.button_index == BUTTON_LEFT and event.pressed:
|
if event.button_index == BUTTON_LEFT and event.pressed:
|
||||||
emit_coins(25, relative_pos)
|
var coins = create_coins(25, relative_pos)
|
||||||
|
for coin in coins:
|
||||||
|
add_child(coin)
|
||||||
|
|
|
@ -186,6 +186,7 @@ script = ExtResource( 2 )
|
||||||
z_index = -1
|
z_index = -1
|
||||||
|
|
||||||
[node name="GridHighlight" type="Node2D" parent="World"]
|
[node name="GridHighlight" type="Node2D" parent="World"]
|
||||||
|
visible = false
|
||||||
script = ExtResource( 8 )
|
script = ExtResource( 8 )
|
||||||
|
|
||||||
[node name="UI" type="CanvasLayer" parent="World"]
|
[node name="UI" type="CanvasLayer" parent="World"]
|
||||||
|
|
|
@ -543,7 +543,10 @@ func update_navigation_target_island(start_world: Vector2, target_world: Vector2
|
||||||
player_navigation_path.append(target_world_coord)
|
player_navigation_path.append(target_world_coord)
|
||||||
|
|
||||||
|
|
||||||
func update_player_navigation_target(target_world: Vector2):
|
func update_player_navigation_target(mouse_pos: Vector2):
|
||||||
|
var target_tile = Globals.HexGrid.get_hex_center(Globals.ScreenToHex(mouse_pos, WorldCamera))
|
||||||
|
var target_world = Globals.ScreenToWorld(mouse_pos, WorldCamera)
|
||||||
|
|
||||||
var start_world = PlayerChar.transform.origin
|
var start_world = PlayerChar.transform.origin
|
||||||
|
|
||||||
player_navigation_path = []
|
player_navigation_path = []
|
||||||
|
@ -553,14 +556,17 @@ func update_player_navigation_target(target_world: Vector2):
|
||||||
var player_near_anchor = check_player_near_anchor()
|
var player_near_anchor = check_player_near_anchor()
|
||||||
|
|
||||||
if current_island != null:
|
if current_island != null:
|
||||||
update_navigation_target_island(start_world, target_world)
|
update_navigation_target_island(start_world, target_tile)
|
||||||
|
if current_island.get_tile_by_world_coord(target_tile) != null:
|
||||||
|
player_navigation_path.append(target_world)
|
||||||
|
|
||||||
if len(player_navigation_path) == 0 and player_near_anchor:
|
if len(player_navigation_path) == 0 and player_near_anchor:
|
||||||
start_world = Globals.HexToWorld(anchor_tile)
|
start_world = Globals.HexToWorld(anchor_tile)
|
||||||
|
|
||||||
if current_island == null or (len(player_navigation_path) == 0 and player_near_anchor):
|
if current_island == null or (len(player_navigation_path) == 0 and player_near_anchor):
|
||||||
update_navigation_target_ocean(start_world, target_world)
|
update_navigation_target_ocean(start_world, target_tile)
|
||||||
|
player_navigation_path.append(target_world)
|
||||||
|
|
||||||
var planning_duration_msec = OS.get_system_time_msecs() - start_timestamp
|
var planning_duration_msec = OS.get_system_time_msecs() - start_timestamp
|
||||||
|
|
||||||
if Globals.debug_nav:
|
if Globals.debug_nav:
|
||||||
|
@ -580,7 +586,7 @@ func handle_game_event(event):
|
||||||
if event is InputEventMouseButton:
|
if event is InputEventMouseButton:
|
||||||
# Move main character
|
# Move main character
|
||||||
if event.pressed and event.button_index == BUTTON_LEFT:
|
if event.pressed and event.button_index == BUTTON_LEFT:
|
||||||
update_player_navigation_target (Globals.HexGrid.get_hex_center(Globals.ScreenToHex(get_global_mouse_position(), WorldCamera)))
|
update_player_navigation_target (get_global_mouse_position())
|
||||||
|
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue