00:28
This commit is contained in:
@@ -3,11 +3,13 @@ extends KinematicBody2D
|
||||
export (NodePath) var city
|
||||
export (NodePath) var market
|
||||
export (NodePath) var company
|
||||
export (NodePath) var moneyframe
|
||||
export (Vector2) var spawn
|
||||
|
||||
|
||||
var speed_spawn = 500
|
||||
var speed_spawn = 400
|
||||
var speed_phys = 5
|
||||
var speed_phys_max = 550
|
||||
var dest = 0
|
||||
|
||||
var current_target = null
|
||||
@@ -28,8 +30,10 @@ func _ready():
|
||||
func state_next():
|
||||
velocity = Vector2.ZERO
|
||||
oldNodePosHitAngle = null
|
||||
current_target = null
|
||||
dest+=1
|
||||
|
||||
|
||||
func _process(delta):
|
||||
if dest == 0:
|
||||
move_to_pos(spawn, delta)
|
||||
@@ -52,7 +56,8 @@ func _process(delta):
|
||||
wait_final-=delta
|
||||
if wait_final <= 0: state_next()
|
||||
elif dest == 8:
|
||||
remove_and_skip()
|
||||
get_node(moneyframe).incMoney()
|
||||
queue_free()
|
||||
|
||||
|
||||
func move_to_node(np, delta):
|
||||
@@ -90,6 +95,7 @@ func move_to_pos(pos, delta):
|
||||
if angle_prev != angle_post:
|
||||
state_next()
|
||||
|
||||
|
||||
func radius():
|
||||
return get_node("sprite").texture.get_width()*get_node("sprite").transform.get_scale().x/2
|
||||
|
||||
@@ -99,6 +105,9 @@ func _physics_process(delta):
|
||||
|
||||
velocity = move_and_slide(velocity, Vector2(0, -1))
|
||||
|
||||
if velocity.length() > speed_phys_max:
|
||||
velocity = velocity.normalized() * speed_phys_max
|
||||
|
||||
if current_target != null:
|
||||
var slide_count = get_slide_count()
|
||||
if slide_count:
|
||||
|
||||
@@ -7,10 +7,15 @@ onready var btnAdd = get_node("btnAdd")
|
||||
onready var city_parent = get_node("city_parent")
|
||||
onready var market_parent = get_node("market_parent")
|
||||
onready var bringman_parent = get_node("bringman_parent")
|
||||
onready var money_frame = get_node("moneyframe")
|
||||
|
||||
onready var button_diam = btnAdd.texture.get_width()*btnAdd.transform.get_scale().x
|
||||
|
||||
|
||||
func _ready():
|
||||
randomize()
|
||||
|
||||
|
||||
func _input(event):
|
||||
if event is InputEventMouseButton and event.button_index == BUTTON_LEFT && event.pressed:
|
||||
if (event.position - btnAdd.position).length() < button_diam/2:
|
||||
@@ -27,13 +32,14 @@ func spawn():
|
||||
|
||||
var vec_start = Vector2(0, 1).rotated(rot)
|
||||
|
||||
var diag = sqrt(2*pow(button_diam/2, 2))
|
||||
|
||||
bm.position = btnAdd.position + (vec_start * -(button_diam/2 - bm.radius()))
|
||||
bm.spawn = btnAdd.position + (vec_start * -(button_diam/2 + bm.radius()))
|
||||
bm.spawn = btnAdd.position + (vec_start * -(diag + bm.radius()))
|
||||
bm.market = market.get_path()
|
||||
bm.city = city.get_path()
|
||||
bm.company = btnAdd.get_path()
|
||||
|
||||
print("spawn", bm.position)
|
||||
bm.moneyframe = money_frame.get_path()
|
||||
|
||||
bringman_parent.add_child(bm)
|
||||
|
||||
|
||||
51
Source/scripts/moneyframe.gd
Normal file
51
Source/scripts/moneyframe.gd
Normal file
@@ -0,0 +1,51 @@
|
||||
extends Node2D
|
||||
|
||||
var money_display = 0.0
|
||||
var money_target = 0
|
||||
|
||||
onready var label = get_node("label")
|
||||
|
||||
var ticker_speed = 1
|
||||
|
||||
|
||||
func incMoney():
|
||||
money_target += 135
|
||||
|
||||
|
||||
func _process(delta):
|
||||
if updateMoney(delta):
|
||||
renderMoney()
|
||||
|
||||
func updateMoney(delta):
|
||||
if money_display == money_target:
|
||||
return false
|
||||
var diff = money_target - money_display
|
||||
if diff < 2:
|
||||
money_display = money_target
|
||||
return true
|
||||
|
||||
delta = diff * delta * ticker_speed
|
||||
if abs(delta) >= abs(diff):
|
||||
money_display = money_target
|
||||
return true
|
||||
|
||||
money_display += delta
|
||||
return true
|
||||
|
||||
|
||||
func renderMoney():
|
||||
var v = round(money_display)
|
||||
var hundreds = floor(v / 100)
|
||||
var cents = v - hundreds*100
|
||||
|
||||
var lblstr = str(hundreds).pad_zeros(2) + "." + str(cents).pad_zeros(2)
|
||||
|
||||
label.text = lblstr
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user