Coin + Countdown Timer
Added a coin for player to pick up and a countdown timer
This commit is contained in:
27
Countdown.gd
Normal file
27
Countdown.gd
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
extends Control
|
||||||
|
|
||||||
|
export (int) var minutes =0
|
||||||
|
export (int) var seconds = 0
|
||||||
|
var dsec = 0
|
||||||
|
|
||||||
|
func _physics_process(delta: float) -> void:
|
||||||
|
if seconds > 0 and dsec <= 0:
|
||||||
|
seconds -=1
|
||||||
|
dsec = 10
|
||||||
|
if minutes > 0 and seconds <= 0:
|
||||||
|
minutes -= 1
|
||||||
|
seconds = 60
|
||||||
|
|
||||||
|
if seconds >= 10:
|
||||||
|
$sec.set_text(str(seconds))
|
||||||
|
else:
|
||||||
|
$sec.set_text("0"+str(seconds))
|
||||||
|
|
||||||
|
if dsec >=10:
|
||||||
|
$dsec.set_text(str(dsec))
|
||||||
|
else:
|
||||||
|
$dsec.set_text("0" + str(dsec))
|
||||||
|
|
||||||
|
func _on_Timer_timeout() -> void:
|
||||||
|
dsec-=1
|
||||||
|
pass # Replace with function body.
|
BIN
Sprites/coin.png
Normal file
BIN
Sprites/coin.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 252 B |
34
Sprites/coin.png.import
Normal file
34
Sprites/coin.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/coin.png-b7fabe76c61e67396a7c0402e221b540.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Sprites/coin.png"
|
||||||
|
dest_files=[ "res://.import/coin.png-b7fabe76c61e67396a7c0402e221b540.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=false
|
||||||
|
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=false
|
||||||
|
svg/scale=1.0
|
17
World.gd
17
World.gd
@@ -1,5 +1,22 @@
|
|||||||
extends Node2D
|
extends Node2D
|
||||||
|
|
||||||
|
onready var coin = preload("res://coin.tscn")
|
||||||
|
onready var coin_container = get_node("YSort/coin_container")
|
||||||
|
|
||||||
|
var screensize
|
||||||
|
var score = 0
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
$YSort/Player.position = get_viewport_rect().size / 2
|
$YSort/Player.position = get_viewport_rect().size / 2
|
||||||
|
randomize()
|
||||||
|
screensize = get_viewport_rect().size
|
||||||
|
set_process(true)
|
||||||
|
spawn_coins(5)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
func spawn_coins(num):
|
||||||
|
for i in range(num):
|
||||||
|
var g = coin.instance()
|
||||||
|
coin_container.add_child(g)
|
||||||
|
#g.set_pos(Vector2(rand_range(0, screensize.x-40), rand_range(0, screensize.y-40)))
|
||||||
|
g.position = Vector2(rand_range(0, screensize.x-40), rand_range(0, screensize.y-40))
|
||||||
|
47
World.tscn
47
World.tscn
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=12 format=2]
|
[gd_scene load_steps=13 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Player.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://Player.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://World.gd" type="Script" id=2]
|
[ext_resource path="res://World.gd" type="Script" id=2]
|
||||||
@@ -7,6 +7,7 @@
|
|||||||
[ext_resource path="res://Sprites/forestTreeBig.png" type="Texture" id=5]
|
[ext_resource path="res://Sprites/forestTreeBig.png" type="Texture" id=5]
|
||||||
[ext_resource path="res://snowmen_enemy_blue.tscn" type="PackedScene" id=6]
|
[ext_resource path="res://snowmen_enemy_blue.tscn" type="PackedScene" id=6]
|
||||||
[ext_resource path="res://snowmen_enemy_blue.gd" type="Script" id=7]
|
[ext_resource path="res://snowmen_enemy_blue.gd" type="Script" id=7]
|
||||||
|
[ext_resource path="res://Countdown.gd" type="Script" id=8]
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape2D" id=1]
|
[sub_resource type="CapsuleShape2D" id=1]
|
||||||
radius = 9.0515
|
radius = 9.0515
|
||||||
@@ -163,3 +164,47 @@ position = Vector2( -49.6063, 34.526 )
|
|||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="YSort/wall3"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="YSort/wall3"]
|
||||||
position = Vector2( 0, -4.25 )
|
position = Vector2( 0, -4.25 )
|
||||||
shape = SubResource( 4 )
|
shape = SubResource( 4 )
|
||||||
|
|
||||||
|
[node name="coin_container" type="Control" parent="YSort"]
|
||||||
|
margin_right = 40.0
|
||||||
|
margin_bottom = 40.0
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Countdown" type="Control" parent="."]
|
||||||
|
margin_right = 40.0
|
||||||
|
margin_bottom = 40.0
|
||||||
|
script = ExtResource( 8 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
minutes = 3
|
||||||
|
|
||||||
|
[node name="sec" type="RichTextLabel" parent="Countdown"]
|
||||||
|
modulate = Color( 0.25098, 0.0431373, 0.411765, 1 )
|
||||||
|
self_modulate = Color( 0.25098, 0.0431373, 0.411765, 1 )
|
||||||
|
margin_left = 139.114
|
||||||
|
margin_top = 5.0
|
||||||
|
margin_right = 169.114
|
||||||
|
margin_bottom = 26.0
|
||||||
|
text = "00"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="dsec" type="RichTextLabel" parent="Countdown"]
|
||||||
|
modulate = Color( 0.25098, 0.0431373, 0.411765, 1 )
|
||||||
|
self_modulate = Color( 0.25098, 0.0431373, 0.411765, 1 )
|
||||||
|
margin_left = 158.512
|
||||||
|
margin_top = 4.7622
|
||||||
|
margin_right = 198.512
|
||||||
|
margin_bottom = 44.7622
|
||||||
|
text = "0"
|
||||||
|
|
||||||
|
[node name="Timer" type="Timer" parent="Countdown"]
|
||||||
|
process_mode = 0
|
||||||
|
wait_time = 0.1
|
||||||
|
autostart = true
|
||||||
|
|
||||||
|
[connection signal="timeout" from="Countdown/Timer" to="Countdown" method="_on_Timer_timeout"]
|
||||||
|
10
coin.gd
Normal file
10
coin.gd
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
extends Area2D
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func _on_Node2D_body_entered(body: Node) -> void:
|
||||||
|
if body.get_name() == "Player":
|
||||||
|
queue_free() # Replace with function body.
|
20
coin.tscn
Normal file
20
coin.tscn
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://Sprites/coin.png" type="Texture" id=1]
|
||||||
|
[ext_resource path="res://coin.gd" type="Script" id=2]
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id=1]
|
||||||
|
radius = 6.38067
|
||||||
|
|
||||||
|
[node name="Node2D" type="Area2D"]
|
||||||
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite" parent="."]
|
||||||
|
position = Vector2( 28.3217, 41.6257 )
|
||||||
|
texture = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="Collision" type="CollisionShape2D" parent="."]
|
||||||
|
position = Vector2( 28.4389, 40.6703 )
|
||||||
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
|
[connection signal="body_entered" from="." to="." method="_on_Node2D_body_entered"]
|
Reference in New Issue
Block a user