final week 6 working death, damage, punch, enemy death
This commit is contained in:
parent
a6fc6acc12
commit
e50ead9360
BIN
augustgamecourse/assets/graphics/environment/foreground.png
Normal file
BIN
augustgamecourse/assets/graphics/environment/foreground.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dqa6ro66e3j1d"
|
||||
path="res://.godot/imported/foreground.png-dbbd7dc92b4c96ae99e46b292c2d728f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/graphics/environment/foreground.png"
|
||||
dest_files=["res://.godot/imported/foreground.png-dbbd7dc92b4c96ae99e46b292c2d728f.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://chroktky8p0g1"
|
||||
path="res://.godot/imported/Player Hurt 48x48.png-a720e51cb19103e76b22ab6c1b81302d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/graphics/player/hurt/Player Hurt 48x48.png"
|
||||
dest_files=["res://.godot/imported/Player Hurt 48x48.png-a720e51cb19103e76b22ab6c1b81302d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
Binary file not shown.
After Width: | Height: | Size: 3.2 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c0oo6kno61i0b"
|
||||
path="res://.godot/imported/Player Punch 64x64.png-d36156dc820906936bd540ab6e3cc9ce.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/graphics/player/punch/Player Punch 64x64.png"
|
||||
dest_files=["res://.godot/imported/Player Punch 64x64.png-d36156dc820906936bd540ab6e3cc9ce.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=15 format=4 uid="uid://diss5ty7548p3"]
|
||||
[gd_scene load_steps=17 format=4 uid="uid://diss5ty7548p3"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://cjdayl6k7xt2s" path="res://assets/graphics/environment/background/forestbackground.png" id="1_7cw2b"]
|
||||
[ext_resource type="PackedScene" uid="uid://0j0320rcnxo7" path="res://scenes/crate.tscn" id="1_8ekmb"]
|
||||
@ -10,6 +10,8 @@
|
||||
[ext_resource type="PackedScene" uid="uid://csewven6s5npw" path="res://scenes/trigger.tscn" id="3_t3xge"]
|
||||
[ext_resource type="PackedScene" uid="uid://dkqrujmfd1dt4" path="res://scenes/coin.tscn" id="3_xdwxn"]
|
||||
[ext_resource type="PackedScene" uid="uid://chg3b7bwi8e5v" path="res://scenes/badguy.tscn" id="10_wtwdm"]
|
||||
[ext_resource type="PackedScene" uid="uid://dw0mifscsrgaw" path="res://scenes/ui.tscn" id="11_41b0s"]
|
||||
[ext_resource type="Texture2D" uid="uid://dqa6ro66e3j1d" path="res://assets/graphics/environment/foreground.png" id="12_1m160"]
|
||||
|
||||
[sub_resource type="TileMapPattern" id="TileMapPattern_pcobp"]
|
||||
tile_data = PackedInt32Array(0, 0, 4, 1, 65536, 4, 2, 65536, 4, 3, 131072, 4)
|
||||
@ -419,11 +421,11 @@ script = ExtResource("1_mpwqj")
|
||||
[node name="Timer" type="Timer" parent="SceneManager"]
|
||||
|
||||
[node name="TileMapLayer" type="TileMapLayer" parent="."]
|
||||
tile_map_data = PackedByteArray("AAACAAUAAAAPAAQAAAADAAUAAAABAAQAAAAEAAUAAAABAAQAAAAFAAUAAAABAAQAAAAHAAQAAAAAAAIAAAAIAAQAAAABAAIAAAAJAAQAAAACAAIAAAAJAAMAAAACAAAAAAAIAAMAAAABAAAAAAAHAAMAAAAAAAAAAAAIAAAAAAAEAAQAAAALAAIAAAAAAAQAAAAMAAIAAAAQAAQAAAAMAAEAAAAPAAMAAAANAAEAAAACAAQAAAAMAAUAAAAAAAQAAAANAAUAAAABAAQAAAAOAAUAAAABAAQAAAAPAAUAAAACAAQAAAAGAAUAAAACAAQAAAAQAAMAAAAAAAQAAAARAAMAAAABAAQAAAASAAMAAAACAAQAAAAUAAMAAAAEAAIAAAAUAAIAAAAPAAMAAAAVAAIAAAAMAAQAAAAWAAIAAAACAAIAAAAWAAEAAAACAAAAAAAVAAEAAAAPAAMAAAAUAAYAAAAAAAQAAAAVAAYAAAABAAQAAAAWAAYAAAACAAQAAAACAAQAAAAEAAAAAAA=")
|
||||
tile_map_data = PackedByteArray("AAACAAUAAAAPAAQAAAADAAUAAAABAAQAAAAEAAUAAAABAAQAAAAFAAUAAAABAAQAAAAHAAQAAAAAAAIAAAAIAAQAAAABAAIAAAAJAAQAAAACAAIAAAAJAAMAAAACAAAAAAAIAAMAAAABAAAAAAAHAAMAAAAAAAAAAAAIAAAAAAAEAAQAAAALAAIAAAAAAAQAAAAMAAIAAAAQAAQAAAAMAAEAAAAPAAMAAAANAAEAAAACAAQAAAAMAAUAAAAAAAQAAAANAAUAAAABAAQAAAAOAAUAAAABAAQAAAAPAAUAAAACAAQAAAAGAAUAAAACAAQAAAAQAAMAAAAAAAQAAAARAAMAAAABAAQAAAASAAMAAAACAAQAAAAUAAMAAAAEAAIAAAAUAAIAAAAPAAMAAAAVAAIAAAAMAAQAAAAWAAIAAAACAAIAAAAWAAEAAAACAAAAAAAVAAEAAAAPAAMAAAAUAAYAAAAAAAQAAAAVAAYAAAABAAQAAAAWAAYAAAACAAQAAAACAAQAAAAEAAAAAAAQAAAAAAAAAAQAAAARAAAAAAACAAQAAAAJAAcAAAAAAAQAAAAKAAcAAAABAAQAAAALAAcAAAABAAQAAAAMAAcAAAABAAQAAAANAAcAAAACAAQAAAAZAAQAAAAPAAQAAAAaAAQAAAABAAQAAAAbAAQAAAAQAAQAAAAbAAMAAAAEAAEAAAAbAAIAAAAQAAMAAAAaAAIAAAABAAQAAAAZAAIAAAAPAAMAAAAZAAMAAAAEAAEAAAAfAAEAAAAAAAQAAAAgAAEAAAABAAQAAAAhAAEAAAABAAQAAAAiAAEAAAABAAQAAAAjAAEAAAACAAQAAAAcAAYAAAAAAAQAAAAdAAYAAAABAAQAAAAeAAYAAAABAAQAAAAfAAYAAAAQAAQAAAAfAAUAAAAEAAEAAAAfAAQAAAAPAAMAAAAgAAQAAAABAAQAAAAhAAQAAAABAAQAAAAiAAQAAAACAAQAAAA=")
|
||||
tile_set = SubResource("TileSet_cs2mx")
|
||||
|
||||
[node name="Floor" type="StaticBody2D" parent="."]
|
||||
position = Vector2(94, 183)
|
||||
position = Vector2(94, 160)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Floor"]
|
||||
@ -456,6 +458,15 @@ metadata/_edit_group_ = true
|
||||
[node name="Coin" parent="coins" instance=ExtResource("3_xdwxn")]
|
||||
position = Vector2(206, 151)
|
||||
|
||||
[node name="Coin4" parent="coins" instance=ExtResource("3_xdwxn")]
|
||||
position = Vector2(396, 155)
|
||||
|
||||
[node name="Coin5" parent="coins" instance=ExtResource("3_xdwxn")]
|
||||
position = Vector2(588, 91)
|
||||
|
||||
[node name="Coin6" parent="coins" instance=ExtResource("3_xdwxn")]
|
||||
position = Vector2(556, -5)
|
||||
|
||||
[node name="Coin2" parent="coins" instance=ExtResource("3_xdwxn")]
|
||||
position = Vector2(263, 89)
|
||||
|
||||
@ -467,7 +478,32 @@ position = Vector2(368, 57)
|
||||
[node name="slime" parent="enemies" instance=ExtResource("10_wtwdm")]
|
||||
position = Vector2(282, 84)
|
||||
|
||||
[node name="slime3" parent="enemies" instance=ExtResource("10_wtwdm")]
|
||||
position = Vector2(414, 20)
|
||||
|
||||
[node name="slime4" parent="enemies" instance=ExtResource("10_wtwdm")]
|
||||
position = Vector2(455, 148)
|
||||
|
||||
[node name="slime5" parent="enemies" instance=ExtResource("10_wtwdm")]
|
||||
position = Vector2(357, 212)
|
||||
|
||||
[node name="slime2" parent="enemies" instance=ExtResource("10_wtwdm")]
|
||||
position = Vector2(106, 149)
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="Control" parent="CanvasLayer" instance=ExtResource("11_41b0s")]
|
||||
offset_left = 10.0
|
||||
offset_top = 8.0
|
||||
offset_right = -6.0
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Parallax2D" type="Parallax2D" parent="."]
|
||||
scroll_scale = Vector2(2, 2)
|
||||
repeat_size = Vector2(320, 0)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Parallax2D"]
|
||||
position = Vector2(160, 130)
|
||||
texture = ExtResource("12_1m160")
|
||||
|
||||
[connection signal="timeout" from="SceneManager/Timer" to="SceneManager" method="resetWorld"]
|
||||
|
@ -1,10 +1,12 @@
|
||||
[gd_scene load_steps=39 format=3 uid="uid://dbgc24hrbtvxm"]
|
||||
[gd_scene load_steps=49 format=3 uid="uid://dbgc24hrbtvxm"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/player.gd" id="1_5qpif"]
|
||||
[ext_resource type="Texture2D" uid="uid://d6d3re6epsh4" path="res://assets/graphics/player/death/Player Death 64x64.png" id="2_t1yra"]
|
||||
[ext_resource type="Texture2D" uid="uid://pdvgf3y1lquv" path="res://assets/graphics/player/idle/Player Idle 48x48.png" id="2_vcmr0"]
|
||||
[ext_resource type="Texture2D" uid="uid://cvh48exhs1ir1" path="res://assets/graphics/player/run/player run 48x48.png" id="3_a03rx"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0kfe5ms2vjbr" path="res://assets/graphics/player/jump/player jump 48x48.png" id="3_mvdmt"]
|
||||
[ext_resource type="Texture2D" uid="uid://chroktky8p0g1" path="res://assets/graphics/player/hurt/Player Hurt 48x48.png" id="3_td76e"]
|
||||
[ext_resource type="Texture2D" uid="uid://c0oo6kno61i0b" path="res://assets/graphics/player/punch/Player Punch 64x64.png" id="6_cp1mx"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_uru55"]
|
||||
atlas = ExtResource("2_t1yra")
|
||||
@ -46,6 +48,22 @@ region = Rect2(384, 0, 48, 48)
|
||||
atlas = ExtResource("2_t1yra")
|
||||
region = Rect2(432, 0, 48, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_tm0rm"]
|
||||
atlas = ExtResource("3_td76e")
|
||||
region = Rect2(0, 0, 48, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_yv45b"]
|
||||
atlas = ExtResource("3_td76e")
|
||||
region = Rect2(48, 0, 48, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_qcxh5"]
|
||||
atlas = ExtResource("3_td76e")
|
||||
region = Rect2(96, 0, 48, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_32phs"]
|
||||
atlas = ExtResource("3_td76e")
|
||||
region = Rect2(144, 0, 48, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_etdvv"]
|
||||
atlas = ExtResource("2_vcmr0")
|
||||
region = Rect2(0, 0, 48, 48)
|
||||
@ -98,6 +116,22 @@ region = Rect2(48, 0, 48, 48)
|
||||
atlas = ExtResource("3_mvdmt")
|
||||
region = Rect2(96, 0, 48, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_m3mm6"]
|
||||
atlas = ExtResource("6_cp1mx")
|
||||
region = Rect2(128, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_651rh"]
|
||||
atlas = ExtResource("6_cp1mx")
|
||||
region = Rect2(192, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_pwqvs"]
|
||||
atlas = ExtResource("6_cp1mx")
|
||||
region = Rect2(256, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_1vc4x"]
|
||||
atlas = ExtResource("6_cp1mx")
|
||||
region = Rect2(320, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_qxesk"]
|
||||
atlas = ExtResource("3_a03rx")
|
||||
region = Rect2(0, 0, 48, 48)
|
||||
@ -169,6 +203,23 @@ animations = [{
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_tm0rm")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_yv45b")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_qcxh5")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_32phs")
|
||||
}],
|
||||
"loop": false,
|
||||
"name": &"hurt",
|
||||
"speed": 12.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_etdvv")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
@ -218,6 +269,23 @@ animations = [{
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_m3mm6")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_651rh")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_pwqvs")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_1vc4x")
|
||||
}],
|
||||
"loop": false,
|
||||
"name": &"punch",
|
||||
"speed": 12.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_qxesk")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
@ -256,7 +324,7 @@ metadata/_edit_group_ = true
|
||||
texture_filter = 1
|
||||
position = Vector2(0, -7)
|
||||
sprite_frames = SubResource("SpriteFrames_wlxdo")
|
||||
animation = &"death"
|
||||
animation = &"idle"
|
||||
autoplay = "idle"
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
@ -264,13 +332,17 @@ shape = SubResource("CircleShape2D_mcosy")
|
||||
debug_color = Color(0.826895, 0.282133, 0.703752, 0.42)
|
||||
|
||||
[node name="RightRay" type="RayCast2D" parent="."]
|
||||
target_position = Vector2(16, 0)
|
||||
target_position = Vector2(19, 0)
|
||||
collide_with_areas = true
|
||||
|
||||
[node name="LeftRay" type="RayCast2D" parent="."]
|
||||
target_position = Vector2(-17, 0)
|
||||
target_position = Vector2(-19, 0)
|
||||
collide_with_areas = true
|
||||
|
||||
[node name="MarkerRight" type="Node2D" parent="."]
|
||||
position = Vector2(12, -5)
|
||||
|
||||
[node name="MarkerLeft" type="Node2D" parent="."]
|
||||
position = Vector2(-15, -5)
|
||||
|
||||
[connection signal="animation_finished" from="AnimatedSprite2D" to="." method="_on_animation_finished"]
|
||||
|
38
augustgamecourse/scenes/ui.tscn
Normal file
38
augustgamecourse/scenes/ui.tscn
Normal file
@ -0,0 +1,38 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://dw0mifscsrgaw"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/ui.gd" id="1_ndnyg"]
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_ndnyg")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 10
|
||||
anchor_right = 1.0
|
||||
grow_horizontal = 2
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Health" type="Label" parent="VBoxContainer/HBoxContainer/MarginContainer"]
|
||||
layout_mode = 2
|
||||
text = "Health : 100"
|
||||
|
||||
[node name="MarginContainer2" type="MarginContainer" parent="VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Coins" type="Label" parent="VBoxContainer/HBoxContainer/MarginContainer2"]
|
||||
layout_mode = 2
|
||||
text = "Coins : 0"
|
||||
horizontal_alignment = 2
|
@ -4,6 +4,8 @@ var coinsCollected:int = 0
|
||||
var player:Resource
|
||||
|
||||
signal playerDeath
|
||||
signal coinsUpdate(amt)
|
||||
signal playerHealth(currentHealth)
|
||||
|
||||
func _ready() -> void:
|
||||
print("Game controller is ready")
|
||||
@ -13,6 +15,7 @@ func _ready() -> void:
|
||||
func coinCollected():
|
||||
coinsCollected +=1
|
||||
print("Game Controller Coin Collected : "+str(coinsCollected))
|
||||
coinsUpdate.emit(coinsCollected)
|
||||
|
||||
func resetPlayer():
|
||||
player.health = player.max_health
|
||||
@ -21,6 +24,7 @@ func playerDamage():
|
||||
#one can not kill what is dead....
|
||||
if player.health >0:
|
||||
player.health -= 20
|
||||
playerHealth.emit(player.health)
|
||||
#is the player dead?
|
||||
if player.health <= 0:
|
||||
#kill him
|
||||
|
@ -7,10 +7,15 @@ const PUSH_FORCE = 700
|
||||
|
||||
var faceLeft = false
|
||||
var living = true
|
||||
var animPlaying="jump"
|
||||
signal playerDead
|
||||
|
||||
# can i push right or left
|
||||
var pushLeftEnabled = false
|
||||
var pushRightEnabled = false
|
||||
var punchLeftEnabled = false
|
||||
var punchRightEnabled = false
|
||||
|
||||
@onready var right_ray: RayCast2D = $RightRay
|
||||
@onready var left_ray: RayCast2D = $LeftRay
|
||||
@onready var marker_right: Node2D = $MarkerRight
|
||||
@ -18,6 +23,7 @@ var pushRightEnabled = false
|
||||
@onready var playerSprite: AnimatedSprite2D = $AnimatedSprite2D
|
||||
|
||||
var pushTarget
|
||||
var punchTarget:Enemy
|
||||
|
||||
var bullet = preload("res://scenes/bullet.tscn")
|
||||
|
||||
@ -26,10 +32,15 @@ func killPlayer():
|
||||
if living:
|
||||
living = false
|
||||
#play death animation
|
||||
playerSprite.play("death")
|
||||
animPlaying="death"
|
||||
playerSprite.play(animPlaying)
|
||||
func hurtPlayer(currentHealth):
|
||||
print("current health is : "+str(currentHealth))
|
||||
animPlaying="hurt"
|
||||
playerSprite.play(animPlaying)
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if living:
|
||||
if living and not animPlaying=="hurt":
|
||||
# Add the gravity.
|
||||
if not is_on_floor():
|
||||
velocity += get_gravity() * delta
|
||||
@ -37,14 +48,23 @@ func _physics_process(delta: float) -> void:
|
||||
# Handle jump.
|
||||
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
|
||||
velocity.y = JUMP_VELOCITY
|
||||
|
||||
if Input.is_action_just_pressed("Shove") && pushLeftEnabled && faceLeft:
|
||||
pushTarget.apply_central_impulse(Vector2(-1,0) * PUSH_FORCE * 1.5)
|
||||
pushLeftEnabled = false
|
||||
if Input.is_action_just_pressed("Shove"):
|
||||
animPlaying="punch"
|
||||
playerSprite.play(animPlaying)
|
||||
if punchLeftEnabled && faceLeft:
|
||||
punchTarget.queue_free()
|
||||
punchLeftEnabled = false
|
||||
if punchRightEnabled && not faceLeft:
|
||||
punchTarget.queue_free()
|
||||
punchRightEnabled = false
|
||||
|
||||
if Input.is_action_just_pressed("Shove") && pushRightEnabled && not faceLeft:
|
||||
pushTarget.apply_central_impulse(Vector2(1,0) * PUSH_FORCE * 1.5)
|
||||
pushRightEnabled=false
|
||||
if pushLeftEnabled && faceLeft:
|
||||
pushTarget.apply_central_impulse(Vector2(-1,0) * PUSH_FORCE * 1.5)
|
||||
pushLeftEnabled = false
|
||||
|
||||
if pushRightEnabled && not faceLeft:
|
||||
pushTarget.apply_central_impulse(Vector2(1,0) * PUSH_FORCE * 1.5)
|
||||
pushRightEnabled=false
|
||||
|
||||
if Input.is_action_just_pressed("shoot"):
|
||||
if faceLeft:
|
||||
@ -71,10 +91,11 @@ func _physics_process(delta: float) -> void:
|
||||
velocity.x = move_toward(velocity.x, 0, SPEED)
|
||||
|
||||
if is_on_floor():
|
||||
if direction == 0:
|
||||
playerSprite.play("idle")
|
||||
else:
|
||||
playerSprite.play("run")
|
||||
if not animPlaying == "punch":
|
||||
if direction == 0:
|
||||
playerSprite.play("idle")
|
||||
else:
|
||||
playerSprite.play("run")
|
||||
else:
|
||||
playerSprite.play("jump")
|
||||
|
||||
@ -90,9 +111,14 @@ func _physics_process(delta: float) -> void:
|
||||
if collider.is_in_group("pushables"):
|
||||
pushLeftEnabled = true
|
||||
pushTarget = collider
|
||||
if collider is Enemy:
|
||||
print("I can punch on left")
|
||||
punchTarget = collider
|
||||
punchLeftEnabled = true
|
||||
else:
|
||||
#do something else
|
||||
pushLeftEnabled = false
|
||||
punchLeftEnabled = false
|
||||
|
||||
if right_ray.is_colliding():
|
||||
var collider = right_ray.get_collider()
|
||||
@ -100,5 +126,21 @@ func _physics_process(delta: float) -> void:
|
||||
if collider.is_in_group("pushables"):
|
||||
pushRightEnabled = true
|
||||
pushTarget = collider
|
||||
if collider is Enemy:
|
||||
print("I can punch on the right")
|
||||
punchTarget = collider
|
||||
punchRightEnabled = true
|
||||
else:
|
||||
pushRightEnabled = false
|
||||
punchRightEnabled = false
|
||||
|
||||
|
||||
func _on_animation_finished() -> void:
|
||||
print("animation finished "+animPlaying)
|
||||
if animPlaying=="hurt":
|
||||
animPlaying="idle"
|
||||
if animPlaying=="death":
|
||||
#send a signal
|
||||
playerDead.emit()
|
||||
if animPlaying=="punch":
|
||||
animPlaying="idle"
|
||||
|
@ -9,6 +9,7 @@ var cratePool:Array = []
|
||||
@onready var enemies: Node = $"../enemies"
|
||||
@onready var player: CharacterBody2D = $"../CharacterBody2D"
|
||||
@onready var timer: Timer = $Timer
|
||||
@onready var ui: Control = $"../CanvasLayer/Control"
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
@ -28,6 +29,11 @@ func _ready() -> void:
|
||||
n.playerDamage.connect(GameController.playerDamage)
|
||||
#GameController signals
|
||||
GameController.playerDeath.connect(killPlayer)
|
||||
GameController.coinsUpdate.connect(ui.coinsUpdate)
|
||||
GameController.playerHealth.connect(ui.healthUpdate)
|
||||
GameController.playerHealth.connect(player.hurtPlayer)
|
||||
#Player signals
|
||||
player.playerDead.connect(playerDead)
|
||||
|
||||
func boxTrap():
|
||||
print("Trigger a box trap!")
|
||||
@ -66,11 +72,12 @@ func crateFactory():
|
||||
func killPlayer():
|
||||
# tell player to die - starts death animation
|
||||
player.killPlayer()
|
||||
if timer.is_stopped():
|
||||
timer.start(4)
|
||||
|
||||
|
||||
func resetWorld():
|
||||
print("screne manager resetting world")
|
||||
GameController.resetPlayer()
|
||||
get_tree().reload_current_scene()
|
||||
|
||||
func playerDead():
|
||||
if timer.is_stopped():
|
||||
timer.start(1)
|
||||
|
10
augustgamecourse/scripts/ui.gd
Normal file
10
augustgamecourse/scripts/ui.gd
Normal file
@ -0,0 +1,10 @@
|
||||
extends Control
|
||||
@onready var health: Label = $VBoxContainer/HBoxContainer/MarginContainer/Health
|
||||
@onready var coins: Label = $VBoxContainer/HBoxContainer/MarginContainer2/Coins
|
||||
|
||||
|
||||
func healthUpdate(amt):
|
||||
health.text = "Health : "+str(amt)
|
||||
|
||||
func coinsUpdate(amt):
|
||||
coins.text = "Coins : "+str(amt)
|
Loading…
Reference in New Issue
Block a user