PRIMER COMMIT
2
.gitattributes
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
# Normalize EOL for all files that Git considers text files.
|
||||
* text=auto eol=lf
|
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
# Godot 4+ specific ignores
|
||||
.godot/
|
||||
/android/
|
BIN
BGM-SFX/01_-_Contra_-_NES_-_Title.ogg
Normal file
19
BGM-SFX/01_-_Contra_-_NES_-_Title.ogg.import
Normal file
@ -0,0 +1,19 @@
|
||||
[remap]
|
||||
|
||||
importer="oggvorbisstr"
|
||||
type="AudioStreamOggVorbis"
|
||||
uid="uid://c6xdocgeumijg"
|
||||
path="res://.godot/imported/01_-_Contra_-_NES_-_Title.ogg-35980cf5556e9bb3ccd9237a0eebd257.oggvorbisstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/01_-_Contra_-_NES_-_Title.ogg"
|
||||
dest_files=["res://.godot/imported/01_-_Contra_-_NES_-_Title.ogg-35980cf5556e9bb3ccd9237a0eebd257.oggvorbisstr"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
BIN
BGM-SFX/03_-_Contra_-_NES_-_Jungle.ogg
Normal file
19
BGM-SFX/03_-_Contra_-_NES_-_Jungle.ogg.import
Normal file
@ -0,0 +1,19 @@
|
||||
[remap]
|
||||
|
||||
importer="oggvorbisstr"
|
||||
type="AudioStreamOggVorbis"
|
||||
uid="uid://buick78fh6ono"
|
||||
path="res://.godot/imported/03_-_Contra_-_NES_-_Jungle.ogg-51729c44753525bcf09920b6a1ff8a88.oggvorbisstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/03_-_Contra_-_NES_-_Jungle.ogg"
|
||||
dest_files=["res://.godot/imported/03_-_Contra_-_NES_-_Jungle.ogg-51729c44753525bcf09920b6a1ff8a88.oggvorbisstr"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=true
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
BIN
BGM-SFX/10_-_Contra_-_NES_-_Stage_Clear.ogg
Normal file
19
BGM-SFX/10_-_Contra_-_NES_-_Stage_Clear.ogg.import
Normal file
@ -0,0 +1,19 @@
|
||||
[remap]
|
||||
|
||||
importer="oggvorbisstr"
|
||||
type="AudioStreamOggVorbis"
|
||||
uid="uid://bfg6xiqjtn21e"
|
||||
path="res://.godot/imported/10_-_Contra_-_NES_-_Stage_Clear.ogg-55dd80d47ef2cb948b432f8a2722c36e.oggvorbisstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/10_-_Contra_-_NES_-_Stage_Clear.ogg"
|
||||
dest_files=["res://.godot/imported/10_-_Contra_-_NES_-_Stage_Clear.ogg-55dd80d47ef2cb948b432f8a2722c36e.oggvorbisstr"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
BIN
BGM-SFX/11_-_Contra_-_NES_-_Game_Over.ogg
Normal file
19
BGM-SFX/11_-_Contra_-_NES_-_Game_Over.ogg.import
Normal file
@ -0,0 +1,19 @@
|
||||
[remap]
|
||||
|
||||
importer="oggvorbisstr"
|
||||
type="AudioStreamOggVorbis"
|
||||
uid="uid://bfgv4rmbq256v"
|
||||
path="res://.godot/imported/11_-_Contra_-_NES_-_Game_Over.ogg-463f37e8f2f01fbfc0ba53c03fcc48f9.oggvorbisstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/11_-_Contra_-_NES_-_Game_Over.ogg"
|
||||
dest_files=["res://.godot/imported/11_-_Contra_-_NES_-_Game_Over.ogg-463f37e8f2f01fbfc0ba53c03fcc48f9.oggvorbisstr"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
BIN
BGM-SFX/Contra SFX (10).wav
Normal file
24
BGM-SFX/Contra SFX (10).wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://cbrnse2ul2vn4"
|
||||
path="res://.godot/imported/Contra SFX (10).wav-88f46ff2ea0fa656f181ddb4c50f4aa6.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/Contra SFX (10).wav"
|
||||
dest_files=["res://.godot/imported/Contra SFX (10).wav-88f46ff2ea0fa656f181ddb4c50f4aa6.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
BGM-SFX/Contra SFX (12).wav
Normal file
24
BGM-SFX/Contra SFX (12).wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://bos3aiooloiad"
|
||||
path="res://.godot/imported/Contra SFX (12).wav-0aba2a47b7fdd7fc7ffbceb3a0dd7742.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/Contra SFX (12).wav"
|
||||
dest_files=["res://.godot/imported/Contra SFX (12).wav-0aba2a47b7fdd7fc7ffbceb3a0dd7742.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
BGM-SFX/Contra SFX (13).wav
Normal file
24
BGM-SFX/Contra SFX (13).wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://c4ppyu1lal0js"
|
||||
path="res://.godot/imported/Contra SFX (13).wav-d63e25a1b708476da4e7a530952cb70e.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/Contra SFX (13).wav"
|
||||
dest_files=["res://.godot/imported/Contra SFX (13).wav-d63e25a1b708476da4e7a530952cb70e.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
BGM-SFX/Contra SFX (14).wav
Normal file
24
BGM-SFX/Contra SFX (14).wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://fk3c8vl61ylr"
|
||||
path="res://.godot/imported/Contra SFX (14).wav-0f3d3720bca18b07f85c5d0f4f1748f9.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/Contra SFX (14).wav"
|
||||
dest_files=["res://.godot/imported/Contra SFX (14).wav-0f3d3720bca18b07f85c5d0f4f1748f9.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
BGM-SFX/Contra SFX (15).wav
Normal file
24
BGM-SFX/Contra SFX (15).wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://dl50lvss7ndnp"
|
||||
path="res://.godot/imported/Contra SFX (15).wav-bd79614139fe3928c6cf81178ae304b9.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/Contra SFX (15).wav"
|
||||
dest_files=["res://.godot/imported/Contra SFX (15).wav-bd79614139fe3928c6cf81178ae304b9.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
BGM-SFX/Contra SFX (18).wav
Normal file
24
BGM-SFX/Contra SFX (18).wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://by5830tstw0y7"
|
||||
path="res://.godot/imported/Contra SFX (18).wav-4359ff6a37f6f5e9154b7390a2efddf1.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/Contra SFX (18).wav"
|
||||
dest_files=["res://.godot/imported/Contra SFX (18).wav-4359ff6a37f6f5e9154b7390a2efddf1.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
BGM-SFX/Contra SFX (19).wav
Normal file
24
BGM-SFX/Contra SFX (19).wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://cvf3s8lskc1gf"
|
||||
path="res://.godot/imported/Contra SFX (19).wav-ec1d3f5397eff073541dcef3ae904c36.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/Contra SFX (19).wav"
|
||||
dest_files=["res://.godot/imported/Contra SFX (19).wav-ec1d3f5397eff073541dcef3ae904c36.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
BGM-SFX/Contra SFX (2).wav
Normal file
24
BGM-SFX/Contra SFX (2).wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://durqufkgt8bvq"
|
||||
path="res://.godot/imported/Contra SFX (2).wav-fbd57cd966f38865484db0a5a99050a1.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/Contra SFX (2).wav"
|
||||
dest_files=["res://.godot/imported/Contra SFX (2).wav-fbd57cd966f38865484db0a5a99050a1.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
BGM-SFX/Contra SFX (22).wav
Normal file
24
BGM-SFX/Contra SFX (22).wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://bcuxibpeo6cu5"
|
||||
path="res://.godot/imported/Contra SFX (22).wav-7faf61530a7c5c86d40535d24b3d32a6.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/Contra SFX (22).wav"
|
||||
dest_files=["res://.godot/imported/Contra SFX (22).wav-7faf61530a7c5c86d40535d24b3d32a6.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
BGM-SFX/Contra SFX (29).wav
Normal file
24
BGM-SFX/Contra SFX (29).wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://maxdqq2n72io"
|
||||
path="res://.godot/imported/Contra SFX (29).wav-b9cb7cd45bbd6ee8ccaeedf1c3ccb0b7.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/Contra SFX (29).wav"
|
||||
dest_files=["res://.godot/imported/Contra SFX (29).wav-b9cb7cd45bbd6ee8ccaeedf1c3ccb0b7.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
BGM-SFX/Contra SFX (9).wav
Normal file
24
BGM-SFX/Contra SFX (9).wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://wy28dhu5jvdr"
|
||||
path="res://.godot/imported/Contra SFX (9).wav-73cb587e71e219aaf3ba025ea0cc2856.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/Contra SFX (9).wav"
|
||||
dest_files=["res://.godot/imported/Contra SFX (9).wav-73cb587e71e219aaf3ba025ea0cc2856.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
BGM-SFX/Super C SFX (12).wav
Normal file
24
BGM-SFX/Super C SFX (12).wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://dcnaj44fxtsp"
|
||||
path="res://.godot/imported/Super C SFX (12).wav-9a14d22f4595ae16fa7b872d60805a09.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/Super C SFX (12).wav"
|
||||
dest_files=["res://.godot/imported/Super C SFX (12).wav-9a14d22f4595ae16fa7b872d60805a09.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
BGM-SFX/Super C SFX (13).wav
Normal file
24
BGM-SFX/Super C SFX (13).wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://do6eyu6e3k8af"
|
||||
path="res://.godot/imported/Super C SFX (13).wav-b5ce2d07020ca660090646f51cbe2b82.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://BGM-SFX/Super C SFX (13).wav"
|
||||
dest_files=["res://.godot/imported/Super C SFX (13).wav-b5ce2d07020ca660090646f51cbe2b82.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
Font/PressStart2P.ttf
Normal file
34
Font/PressStart2P.ttf.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://l5qkyo43m28e"
|
||||
path="res://.godot/imported/PressStart2P.ttf-536ec68fbb2e86aeb7eaab44897a9514.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Font/PressStart2P.ttf"
|
||||
dest_files=["res://.godot/imported/PressStart2P.ttf-536ec68fbb2e86aeb7eaab44897a9514.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=1
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
59
Scripts/Boss.gd
Normal file
@ -0,0 +1,59 @@
|
||||
extends Node2D
|
||||
|
||||
var turret1 = 3
|
||||
var turret2 = 3
|
||||
var core = 10
|
||||
|
||||
var turn = true
|
||||
|
||||
var currentBullet = preload("res://scenes/bullet_enemy2.tscn")
|
||||
|
||||
# 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 _on_gun_body_entered(body):
|
||||
if(body.is_in_group("player_bullet")):
|
||||
turret1-=1
|
||||
if(turret1 == 0):
|
||||
$Gun.queue_free()
|
||||
|
||||
func _on_gun_2_body_entered(body):
|
||||
if(body.is_in_group("player_bullet")):
|
||||
turret2-=1
|
||||
if(turret2 == 0):
|
||||
$Gun2.queue_free()
|
||||
|
||||
func _on_core_body_entered(body):
|
||||
if(body.is_in_group("player_bullet")):
|
||||
if(turret1 > 0 || turret2 > 0):
|
||||
return
|
||||
core-=1
|
||||
if(core == 0):
|
||||
$Core.queue_free()
|
||||
$Barrier.queue_free()
|
||||
|
||||
|
||||
func _on_timer_timeout():
|
||||
turn = !turn
|
||||
if(turn && turret1 > 0):
|
||||
var newBullet = currentBullet.instantiate()
|
||||
var lvl = get_tree().get_first_node_in_group("level")
|
||||
lvl.add_child(newBullet)
|
||||
for c in newBullet.get_child_count():
|
||||
newBullet.global_position = $Gun/Sp1.global_position
|
||||
elif(!turn && turret2 > 0):
|
||||
var newBullet = currentBullet.instantiate()
|
||||
var lvl = get_tree().get_first_node_in_group("level")
|
||||
lvl.add_child(newBullet)
|
||||
for c in newBullet.get_child_count():
|
||||
newBullet.global_position = $Gun2/Sp2.global_position
|
||||
|
||||
|
||||
func _on_visible_on_screen_notifier_2d_screen_entered():
|
||||
$Timer.start()
|
39
Scripts/BridgeArea.gd
Normal file
@ -0,0 +1,39 @@
|
||||
extends Area2D
|
||||
|
||||
var phase = 0
|
||||
# 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 _on_body_entered(body):
|
||||
if(body.is_in_group("player") && phase == 0):
|
||||
$Timer.start()
|
||||
|
||||
func process_phases():
|
||||
phase += 1
|
||||
match(phase):
|
||||
1:
|
||||
$AnimationPlayer.play("explosion1")
|
||||
$Sprite2D.global_position = $A1.global_position
|
||||
$Bridge.queue_free()
|
||||
2:
|
||||
$AnimationPlayer.play("explosion1")
|
||||
$Sprite2D.global_position = $A2.global_position
|
||||
$Bridge2.queue_free()
|
||||
3:
|
||||
$AnimationPlayer.play("explosion1")
|
||||
$Sprite2D.global_position = $A3.global_position
|
||||
$Bridge3.queue_free()
|
||||
4:
|
||||
queue_free()
|
||||
|
||||
func _on_animation_player_animation_finished(anim_name):
|
||||
process_phases()
|
||||
|
||||
|
||||
func _on_timer_timeout():
|
||||
process_phases()
|
53
Scripts/BulletSub2.gd
Normal file
@ -0,0 +1,53 @@
|
||||
extends CharacterBody2D
|
||||
|
||||
const SPEED = 180.0
|
||||
var alive = true
|
||||
var angle = 0
|
||||
|
||||
func _ready():
|
||||
var allPlayers = get_tree().get_nodes_in_group("player")
|
||||
for p in allPlayers:
|
||||
add_collision_exception_with(p)
|
||||
|
||||
func _physics_process(delta):
|
||||
var collision = move_and_slide()
|
||||
|
||||
if(collision):
|
||||
for i in get_slide_collision_count():
|
||||
var collidedObj = get_slide_collision(i)
|
||||
if(collidedObj.get_collider().is_in_group("powerupcontainer")):
|
||||
collidedObj.get_collider().explodes()
|
||||
alive = false
|
||||
queue_free()
|
||||
elif(collidedObj.get_collider().is_in_group("enemy")):
|
||||
collidedObj.get_collider().death()
|
||||
queue_free()
|
||||
|
||||
func _on_visible_on_screen_notifier_2d_screen_exited():
|
||||
queue_free()
|
||||
|
||||
func setVelocity(faceDirection):
|
||||
match(faceDirection):
|
||||
"Right":
|
||||
calcFinalVelocity(0)
|
||||
"Left":
|
||||
calcFinalVelocity(180)
|
||||
"Up":
|
||||
calcFinalVelocity(90)
|
||||
"Down":
|
||||
calcFinalVelocity(270)
|
||||
"RightUp":
|
||||
calcFinalVelocity(45)
|
||||
"RightDown":
|
||||
calcFinalVelocity(315)
|
||||
"LeftUp":
|
||||
calcFinalVelocity(135)
|
||||
"LeftDown":
|
||||
calcFinalVelocity(225)
|
||||
|
||||
func calcFinalVelocity(rAngle):
|
||||
angle += rAngle
|
||||
var angle_in_radians = deg_to_rad(angle)
|
||||
velocity.x = SPEED * cos(angle_in_radians)
|
||||
velocity.y = SPEED * sin(angle_in_radians) * -1
|
||||
get_parent().rotation_degrees = angle * -1
|
59
Scripts/Enemy1.gd
Normal file
@ -0,0 +1,59 @@
|
||||
extends CharacterBody2D
|
||||
|
||||
|
||||
const SPEED = 80.0
|
||||
const JUMP_VELOCITY = -200.0
|
||||
var currentVelocity
|
||||
enum states {none, run, jump}
|
||||
var currentState = states.none
|
||||
|
||||
var points = 20
|
||||
|
||||
# Get the gravity from the project settings to be synced with RigidBody nodes.
|
||||
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
|
||||
|
||||
func _ready():
|
||||
velocity.x = -SPEED
|
||||
currentVelocity = velocity.x
|
||||
|
||||
func _physics_process(delta):
|
||||
|
||||
velocity.x = currentVelocity
|
||||
# Add the gravity.
|
||||
if not is_on_floor():
|
||||
velocity.y += gravity * delta
|
||||
if(currentState == states.run):
|
||||
decideAction()
|
||||
else:
|
||||
if(currentState == states.none):
|
||||
currentState = states.run
|
||||
|
||||
var collision = move_and_slide()
|
||||
|
||||
if(collision):
|
||||
for i in get_slide_collision_count():
|
||||
var collidedObj = get_slide_collision(i)
|
||||
if(collidedObj.get_collider().is_in_group("player")):
|
||||
collidedObj.get_collider().death()
|
||||
elif(collidedObj.get_collider().is_in_group("player_bullet")):
|
||||
collidedObj.get_collider().queue_free()
|
||||
var mainNode = get_tree().get_nodes_in_group("main")[0]
|
||||
if(collidedObj.get_collider().is_in_group("id_p1")):
|
||||
mainNode.setP1Score(points)
|
||||
else:
|
||||
mainNode.setP2Score(points)
|
||||
death()
|
||||
|
||||
func decideAction():
|
||||
randomize()
|
||||
if(randi_range(0,1) == 1):
|
||||
velocity.x = -velocity.x
|
||||
$Sprite2D.flip_h = !$Sprite2D.flip_h
|
||||
currentVelocity = velocity.x
|
||||
else:
|
||||
$AnimationPlayer.play("jump")
|
||||
velocity.y = JUMP_VELOCITY
|
||||
currentState = states.jump
|
||||
|
||||
func death():
|
||||
queue_free()
|
50
Scripts/EnemyMachine.gd
Normal file
@ -0,0 +1,50 @@
|
||||
extends Area2D
|
||||
|
||||
var turret_active
|
||||
var can_shot
|
||||
|
||||
var currentBullet = preload("res://scenes/bullet_enemy.tscn")
|
||||
|
||||
var lifes = 3
|
||||
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
if(turret_active):
|
||||
var players = get_tree().get_nodes_in_group("player")
|
||||
if(players.size() > 1):
|
||||
if(abs(players[0].global_position.x - get_parent().global_position.x) < abs(players[1].global_position.x - get_parent().global_position.x)):
|
||||
$Sprite2D.look_at(players[1].global_position)
|
||||
else:
|
||||
$Sprite2D.look_at(players[0].global_position)
|
||||
elif(players.size() == 1 && players[0] != null):
|
||||
$Sprite2D.look_at(players[0].global_position)
|
||||
|
||||
if(can_shot):
|
||||
shot()
|
||||
get_node("cooldown").start()
|
||||
|
||||
func shot():
|
||||
can_shot = false
|
||||
var newBullet = currentBullet.instantiate()
|
||||
var lvl = get_tree().get_first_node_in_group("level")
|
||||
lvl.add_child(newBullet)
|
||||
for c in newBullet.get_child_count():
|
||||
newBullet.get_child(c).calcFinalVelocity(-$Sprite2D.rotation_degrees)
|
||||
newBullet.global_position = $Sprite2D/Aim.global_position
|
||||
|
||||
func _on_cooldown_timeout():
|
||||
can_shot = true
|
||||
|
||||
func _on_visible_on_screen_notifier_2d_screen_entered():
|
||||
turret_active = true
|
||||
$cooldown.start()
|
||||
|
||||
func _on_body_entered(body):
|
||||
if(body.is_in_group("player_bullet")):
|
||||
lifes-= 1
|
||||
body.queue_free()
|
||||
if(lifes == 0):
|
||||
queue_free()
|
36
Scripts/PowerUp1.gd
Normal file
@ -0,0 +1,36 @@
|
||||
extends CharacterBody2D
|
||||
|
||||
# Get the gravity from the project settings to be synced with RigidBody nodes.
|
||||
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
|
||||
var clValue = 300
|
||||
var powerType = 1
|
||||
|
||||
func _ready():
|
||||
generatePowerUp()
|
||||
|
||||
func _physics_process(delta):
|
||||
# Add the gravity.
|
||||
if not is_on_floor():
|
||||
velocity.y += gravity * delta
|
||||
|
||||
if is_on_floor():
|
||||
velocity.x = 0
|
||||
|
||||
var collision = move_and_slide()
|
||||
|
||||
if(collision):
|
||||
for i in get_slide_collision_count():
|
||||
var collidedObj = get_slide_collision(i)
|
||||
if(collidedObj.get_collider().is_in_group("player")):
|
||||
collidedObj.get_collider().currentBullet = collidedObj.get_collider().get("bulletP" + str(powerType))
|
||||
queue_free()
|
||||
|
||||
func setVelocity(xVelocity, yVelocity):
|
||||
velocity.x = clamp(xVelocity, -clValue, clValue)
|
||||
velocity.y = clamp(yVelocity, -clValue, clValue)
|
||||
|
||||
|
||||
func generatePowerUp():
|
||||
randomize()
|
||||
powerType = randi_range(1,2)
|
||||
$Sprite2D.frame = powerType
|
38
Scripts/PowerUpContainer.gd
Normal file
@ -0,0 +1,38 @@
|
||||
extends CharacterBody2D
|
||||
|
||||
const SPEED = 100.0
|
||||
var amplitude = 100.0
|
||||
var elapsed_time = 0.0
|
||||
|
||||
var alive = true
|
||||
|
||||
var powerUp1 = preload("res://scenes/power_up_1.tscn")
|
||||
|
||||
func _physics_process(delta):
|
||||
velocity.x = -SPEED
|
||||
elapsed_time += delta
|
||||
|
||||
var sine_wave = sin(elapsed_time / 0.1)
|
||||
velocity.y = sine_wave * amplitude
|
||||
|
||||
var collision = move_and_slide()
|
||||
|
||||
if(collision):
|
||||
for i in get_slide_collision_count():
|
||||
var collidedObj = get_slide_collision(i)
|
||||
if(collidedObj.get_collider().is_in_group("player_bullet")):
|
||||
explodes()
|
||||
|
||||
func _on_visible_on_screen_notifier_2d_screen_exited():
|
||||
queue_free()
|
||||
|
||||
func explodes():
|
||||
if(!alive):
|
||||
return
|
||||
var newPowerUp = powerUp1.instantiate()
|
||||
var lvl = get_tree().get_first_node_in_group("level")
|
||||
lvl.add_child(newPowerUp)
|
||||
newPowerUp.setVelocity(velocity.x, velocity.y)
|
||||
newPowerUp.global_position = global_position
|
||||
alive = false
|
||||
queue_free()
|
38
Scripts/PowerUpMachine.gd
Normal file
@ -0,0 +1,38 @@
|
||||
extends Area2D
|
||||
|
||||
var alive = true
|
||||
var powerUp1 = preload("res://scenes/power_up_1.tscn")
|
||||
# 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 _on_body_entered(body):
|
||||
if(body.is_in_group("player_bullet")):
|
||||
explodes()
|
||||
|
||||
func _on_animation_player_animation_finished(anim_name):
|
||||
if(anim_name == "opened"):
|
||||
$AnimationPlayer.play("opened_closed")
|
||||
elif(anim_name == "closed"):
|
||||
$AnimationPlayer.play("closed_opened")
|
||||
elif(anim_name == "opened_closed"):
|
||||
$AnimationPlayer.play("closed")
|
||||
elif(anim_name == "closed_opened"):
|
||||
$AnimationPlayer.play("opened")
|
||||
|
||||
func explodes():
|
||||
if(!alive || $AnimationPlayer.current_animation != "opened"):
|
||||
return
|
||||
var newPowerUp = powerUp1.instantiate()
|
||||
var lvl = get_tree().get_first_node_in_group("level")
|
||||
lvl.add_child(newPowerUp)
|
||||
newPowerUp.setVelocity(100, -300)
|
||||
newPowerUp.global_position = global_position
|
||||
alive = false
|
||||
queue_free()
|
3
Scripts/Singleton.gd
Normal file
@ -0,0 +1,3 @@
|
||||
extends Node
|
||||
|
||||
var playerNumbers = 1
|
58
Scripts/bulletNormal.gd
Normal file
@ -0,0 +1,58 @@
|
||||
extends CharacterBody2D
|
||||
|
||||
const SPEED = 180.0
|
||||
var alive = true
|
||||
|
||||
func _ready():
|
||||
var allPlayers = get_tree().get_nodes_in_group("player")
|
||||
for p in allPlayers:
|
||||
add_collision_exception_with(p)
|
||||
|
||||
func _physics_process(delta):
|
||||
var collision = move_and_slide()
|
||||
|
||||
if(collision):
|
||||
for i in get_slide_collision_count():
|
||||
var collidedObj = get_slide_collision(i)
|
||||
if(collidedObj.get_collider().is_in_group("powerupcontainer")):
|
||||
collidedObj.get_collider().explodes()
|
||||
alive = false
|
||||
queue_free()
|
||||
elif(collidedObj.get_collider().is_in_group("enemy")):
|
||||
collidedObj.get_collider().death()
|
||||
var mainNode = get_tree().get_nodes_in_group("main")[0]
|
||||
if(is_in_group("id_p1")):
|
||||
mainNode.setP1Score(collidedObj.get_collider().points)
|
||||
else:
|
||||
mainNode.setP2Score(collidedObj.get_collider().points)
|
||||
queue_free()
|
||||
|
||||
func _on_visible_on_screen_notifier_2d_screen_exited():
|
||||
queue_free()
|
||||
|
||||
func setVelocity(faceDirection):
|
||||
match(faceDirection):
|
||||
"Right":
|
||||
calcFinalVelocity(0)
|
||||
"Left":
|
||||
calcFinalVelocity(180)
|
||||
"Up":
|
||||
calcFinalVelocity(90)
|
||||
"Down":
|
||||
calcFinalVelocity(270)
|
||||
"RightUp":
|
||||
calcFinalVelocity(45)
|
||||
"RightDown":
|
||||
calcFinalVelocity(315)
|
||||
"LeftUp":
|
||||
calcFinalVelocity(135)
|
||||
"LeftDown":
|
||||
calcFinalVelocity(225)
|
||||
|
||||
func calcFinalVelocity(angle):
|
||||
var angle_in_radians = deg_to_rad(angle)
|
||||
velocity.x = SPEED * cos(angle_in_radians)
|
||||
velocity.y = SPEED * sin(angle_in_radians) * -1
|
||||
|
||||
func death():
|
||||
queue_free()
|
52
Scripts/bulletP1.gd
Normal file
@ -0,0 +1,52 @@
|
||||
extends CharacterBody2D
|
||||
|
||||
const SPEED = 180.0
|
||||
var alive = true
|
||||
var angle = 0
|
||||
|
||||
func _ready():
|
||||
var allPlayers = get_tree().get_nodes_in_group("player")
|
||||
for p in allPlayers:
|
||||
add_collision_exception_with(p)
|
||||
|
||||
func _physics_process(delta):
|
||||
var collision = move_and_slide()
|
||||
|
||||
if(collision):
|
||||
for i in get_slide_collision_count():
|
||||
var collidedObj = get_slide_collision(i)
|
||||
if(collidedObj.get_collider().is_in_group("powerupcontainer")):
|
||||
collidedObj.get_collider().explodes()
|
||||
alive = false
|
||||
queue_free()
|
||||
elif(collidedObj.get_collider().is_in_group("enemy")):
|
||||
collidedObj.get_collider().death()
|
||||
queue_free()
|
||||
|
||||
func _on_visible_on_screen_notifier_2d_screen_exited():
|
||||
queue_free()
|
||||
|
||||
func setVelocity(faceDirection):
|
||||
match(faceDirection):
|
||||
"Right":
|
||||
calcFinalVelocity(0)
|
||||
"Left":
|
||||
calcFinalVelocity(180)
|
||||
"Up":
|
||||
calcFinalVelocity(90)
|
||||
"Down":
|
||||
calcFinalVelocity(270)
|
||||
"RightUp":
|
||||
calcFinalVelocity(45)
|
||||
"RightDown":
|
||||
calcFinalVelocity(315)
|
||||
"LeftUp":
|
||||
calcFinalVelocity(135)
|
||||
"LeftDown":
|
||||
calcFinalVelocity(225)
|
||||
|
||||
func calcFinalVelocity(rAngle):
|
||||
angle += rAngle
|
||||
var angle_in_radians = deg_to_rad(angle)
|
||||
velocity.x = SPEED * cos(angle_in_radians)
|
||||
velocity.y = SPEED * sin(angle_in_radians) * -1
|
23
Scripts/bulletP1Parent.gd
Normal file
@ -0,0 +1,23 @@
|
||||
extends Node2D
|
||||
|
||||
const SPEED = 180.0
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
get_child(0).calcFinalVelocity(0)
|
||||
get_child(3).calcFinalVelocity(45)
|
||||
get_child(1).calcFinalVelocity(315)
|
||||
get_child(2).calcFinalVelocity(330)
|
||||
get_child(4).calcFinalVelocity(60)
|
||||
|
||||
var allBullets = get_tree().get_nodes_in_group("player_bullet")
|
||||
for b in allBullets:
|
||||
get_child(0).add_collision_exception_with(b)
|
||||
get_child(1).add_collision_exception_with(b)
|
||||
get_child(2).add_collision_exception_with(b)
|
||||
get_child(3).add_collision_exception_with(b)
|
||||
get_child(4).add_collision_exception_with(b)
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
pass
|
18
Scripts/bullet_p2.gd
Normal file
@ -0,0 +1,18 @@
|
||||
extends Node2D
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
get_child(0).calcFinalVelocity(0)
|
||||
get_child(1).calcFinalVelocity(0)
|
||||
get_child(2).calcFinalVelocity(0)
|
||||
|
||||
var allBullets = get_tree().get_nodes_in_group("player_bullet")
|
||||
for b in allBullets:
|
||||
get_child(0).add_collision_exception_with(b)
|
||||
get_child(1).add_collision_exception_with(b)
|
||||
get_child(2).add_collision_exception_with(b)
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
pass
|
20
Scripts/cam.gd
Normal file
@ -0,0 +1,20 @@
|
||||
extends Camera2D
|
||||
|
||||
const SPEED = 7
|
||||
const OFFSET = 25
|
||||
var target = Vector2()
|
||||
var end
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
target = global_position
|
||||
end = get_tree().get_nodes_in_group("end")[0]
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
if(global_position.x < end.global_position.x):
|
||||
global_position = lerp(global_position, target, delta*SPEED)
|
||||
|
||||
func _on_area_2d_body_entered(body):
|
||||
if(body.is_in_group("player")):
|
||||
target = Vector2(global_position.x + OFFSET, global_position.y)
|
53
Scripts/enemyBullet.gd
Normal file
@ -0,0 +1,53 @@
|
||||
extends CharacterBody2D
|
||||
|
||||
const SPEED = 180.0
|
||||
var alive = true
|
||||
|
||||
func _ready():
|
||||
var allEnemy = get_tree().get_nodes_in_group("enemy")
|
||||
for p in allEnemy:
|
||||
add_collision_exception_with(p)
|
||||
var allPlatforms = get_tree().get_nodes_in_group("ground")
|
||||
for p in allPlatforms:
|
||||
add_collision_exception_with(p)
|
||||
|
||||
|
||||
func _physics_process(delta):
|
||||
var collision = move_and_slide()
|
||||
|
||||
if(collision):
|
||||
for i in get_slide_collision_count():
|
||||
var collidedObj = get_slide_collision(i)
|
||||
if(collidedObj.get_collider().is_in_group("player")):
|
||||
collidedObj.get_collider().death()
|
||||
queue_free()
|
||||
|
||||
func _on_visible_on_screen_notifier_2d_screen_exited():
|
||||
queue_free()
|
||||
|
||||
func setVelocity(faceDirection):
|
||||
match(faceDirection):
|
||||
"Right":
|
||||
calcFinalVelocity(0)
|
||||
"Left":
|
||||
calcFinalVelocity(180)
|
||||
"Up":
|
||||
calcFinalVelocity(90)
|
||||
"Down":
|
||||
calcFinalVelocity(270)
|
||||
"RightUp":
|
||||
calcFinalVelocity(45)
|
||||
"RightDown":
|
||||
calcFinalVelocity(315)
|
||||
"LeftUp":
|
||||
calcFinalVelocity(135)
|
||||
"LeftDown":
|
||||
calcFinalVelocity(225)
|
||||
|
||||
func calcFinalVelocity(angle):
|
||||
var angle_in_radians = deg_to_rad(angle)
|
||||
velocity.x = SPEED * cos(angle_in_radians)
|
||||
velocity.y = SPEED * sin(angle_in_radians) * -1
|
||||
|
||||
func death():
|
||||
queue_free()
|
57
Scripts/enemyBullet2.gd
Normal file
@ -0,0 +1,57 @@
|
||||
extends CharacterBody2D
|
||||
|
||||
const SPEED = 180.0
|
||||
var alive = true
|
||||
|
||||
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
|
||||
|
||||
func _ready():
|
||||
calcFinalVelocity(180)
|
||||
var allEnemy = get_tree().get_nodes_in_group("enemy")
|
||||
for p in allEnemy:
|
||||
add_collision_exception_with(p)
|
||||
var allPlatforms = get_tree().get_nodes_in_group("ground")
|
||||
for p in allPlatforms:
|
||||
add_collision_exception_with(p)
|
||||
|
||||
|
||||
func _physics_process(delta):
|
||||
velocity.y += gravity * delta
|
||||
var collision = move_and_slide()
|
||||
|
||||
if(collision):
|
||||
for i in get_slide_collision_count():
|
||||
var collidedObj = get_slide_collision(i)
|
||||
if(collidedObj.get_collider().is_in_group("player")):
|
||||
collidedObj.get_collider().death()
|
||||
queue_free()
|
||||
|
||||
func _on_visible_on_screen_notifier_2d_screen_exited():
|
||||
queue_free()
|
||||
|
||||
func setVelocity(faceDirection):
|
||||
match(faceDirection):
|
||||
"Right":
|
||||
calcFinalVelocity(0)
|
||||
"Left":
|
||||
calcFinalVelocity(180)
|
||||
"Up":
|
||||
calcFinalVelocity(90)
|
||||
"Down":
|
||||
calcFinalVelocity(270)
|
||||
"RightUp":
|
||||
calcFinalVelocity(45)
|
||||
"RightDown":
|
||||
calcFinalVelocity(315)
|
||||
"LeftUp":
|
||||
calcFinalVelocity(135)
|
||||
"LeftDown":
|
||||
calcFinalVelocity(225)
|
||||
|
||||
func calcFinalVelocity(angle):
|
||||
var angle_in_radians = deg_to_rad(angle)
|
||||
velocity.x = SPEED * cos(angle_in_radians)
|
||||
velocity.y = SPEED * sin(angle_in_radians) * -1
|
||||
|
||||
func death():
|
||||
queue_free()
|
181
Scripts/player1.gd
Normal file
@ -0,0 +1,181 @@
|
||||
extends CharacterBody2D
|
||||
|
||||
|
||||
const SPEED = 100.0
|
||||
const JUMP_VELOCITY = -300.0
|
||||
|
||||
enum player_states {idle, run, jump, crouch, aimUp, water, dead}
|
||||
var current_state = player_states.idle
|
||||
|
||||
var canShot = true
|
||||
|
||||
var normalBullet = preload("res://scenes/bullet_normal.tscn")
|
||||
var bulletP1 = preload("res://scenes/bullet_p1.tscn")
|
||||
var bulletP2 = preload("res://scenes/bullet_p2.tscn")
|
||||
|
||||
var currentBullet = normalBullet
|
||||
|
||||
var minCamera
|
||||
var maxCamera
|
||||
|
||||
# Get the gravity from the project settings to be synced with RigidBody nodes.
|
||||
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
|
||||
|
||||
var direction
|
||||
var vDirection
|
||||
|
||||
func _ready():
|
||||
var allPlayers = get_tree().get_nodes_in_group("player")
|
||||
for p in allPlayers:
|
||||
add_collision_exception_with(p)
|
||||
var cam = get_tree().get_nodes_in_group("camera")
|
||||
minCamera = cam[0].get_node("min")
|
||||
maxCamera = cam[0].get_node("max")
|
||||
|
||||
func _physics_process(delta):
|
||||
# Add the gravity.
|
||||
if not is_on_floor() && current_state != player_states.water:
|
||||
velocity.y += gravity * delta
|
||||
if(current_state != player_states.dead):
|
||||
$AnimationPlayer.play("jump")
|
||||
current_state = player_states.jump
|
||||
else:
|
||||
get_tree().get_nodes_in_group("spawnPoint")[0].global_position.x = global_position.x
|
||||
|
||||
# Handle Jump.
|
||||
if(current_state != player_states.dead):
|
||||
if Input.is_action_just_pressed("ui_accept") and (is_on_floor() || current_state == player_states.water):
|
||||
velocity.y = JUMP_VELOCITY
|
||||
current_state = player_states.jump
|
||||
|
||||
direction = Input.get_axis("ui_left", "ui_right")
|
||||
vDirection = Input.get_axis("ui_up", "ui_down")
|
||||
|
||||
if(vDirection):
|
||||
if is_on_floor():
|
||||
if vDirection > 0:
|
||||
if(current_state == player_states.idle):
|
||||
$AnimationPlayer.play("crouch")
|
||||
current_state = player_states.crouch
|
||||
else:
|
||||
if(current_state == player_states.idle):
|
||||
$AnimationPlayer.play("aim_up")
|
||||
current_state = player_states.aimUp
|
||||
elif current_state == player_states.water:
|
||||
if(vDirection > 0):
|
||||
$AnimationPlayer.play("swim_hide")
|
||||
else:
|
||||
if current_state == player_states.crouch || current_state == player_states.aimUp:
|
||||
current_state = player_states.idle
|
||||
|
||||
if current_state != player_states.crouch && (current_state != player_states.water || !vDirection):
|
||||
if direction:
|
||||
velocity.x = direction * SPEED
|
||||
if is_on_floor():
|
||||
if(!vDirection):
|
||||
if(current_state != player_states.water):
|
||||
$AnimationPlayer.play("run")
|
||||
current_state = player_states.run
|
||||
else:
|
||||
$AnimationPlayer.play("swim")
|
||||
elif(current_state == player_states.water):
|
||||
$AnimationPlayer.play("swim")
|
||||
elif(vDirection > 0):
|
||||
$AnimationPlayer.play("down_right")
|
||||
current_state = player_states.run
|
||||
elif(vDirection < 0):
|
||||
$AnimationPlayer.play("up_right")
|
||||
current_state = player_states.run
|
||||
elif (current_state == player_states.water):
|
||||
if(!vDirection):
|
||||
$AnimationPlayer.play("swim")
|
||||
$spr.flip_h = (direction > 0)
|
||||
else:
|
||||
velocity.x = move_toward(velocity.x, 0, SPEED)
|
||||
if is_on_floor() && current_state != player_states.aimUp:
|
||||
if(current_state != player_states.water):
|
||||
$AnimationPlayer.play("idle")
|
||||
current_state = player_states.idle
|
||||
else:
|
||||
$AnimationPlayer.play("swim_idle")
|
||||
elif(current_state == player_states.water && !vDirection):
|
||||
$AnimationPlayer.play("swim_idle")
|
||||
|
||||
if(global_position.x < minCamera.global_position.x && velocity.x < 0):
|
||||
velocity.x = 0
|
||||
elif(global_position.x > maxCamera.global_position.x && velocity.x > 0):
|
||||
velocity.x = 0
|
||||
var collision = move_and_slide()
|
||||
|
||||
if(current_state != player_states.dead):
|
||||
if(collision):
|
||||
for i in get_slide_collision_count():
|
||||
var collidedObj = get_slide_collision(i)
|
||||
if(collidedObj.get_collider().is_in_group("water")):
|
||||
current_state = player_states.water
|
||||
elif(collidedObj.get_collider().is_in_group("powerup")):
|
||||
currentBullet = get("bulletP" + str(collidedObj.get_collider().powerType))
|
||||
collidedObj.get_collider().queue_free()
|
||||
elif(collidedObj.get_collider().is_in_group("enemy") || collidedObj.get_collider().is_in_group("enemy_bullet")):
|
||||
death()
|
||||
|
||||
if(Input.is_action_just_pressed("p1_shoot") && canShot):
|
||||
var newBullet = currentBullet.instantiate()
|
||||
var lvl = get_tree().get_first_node_in_group("level")
|
||||
lvl.add_child(newBullet)
|
||||
var faceDirection = getFacingDirection()
|
||||
if(currentBullet == normalBullet):
|
||||
get_tree().get_nodes_in_group("main")[0].createSFX(10)
|
||||
|
||||
for c in newBullet.get_child_count():
|
||||
newBullet.get_child(c).setVelocity(faceDirection)
|
||||
newBullet.get_child(c).add_to_group("id_p1")
|
||||
newBullet.global_position = get_node("SpawnPositions/Aim_" + faceDirection).global_position
|
||||
canShot = false
|
||||
$Timer.start()
|
||||
|
||||
|
||||
func getFacingDirection():
|
||||
var fDirection = ""
|
||||
|
||||
if(!vDirection && !direction):
|
||||
if($spr.flip_h):
|
||||
fDirection = "Right"
|
||||
else:
|
||||
fDirection = "Left"
|
||||
elif(direction):
|
||||
if(direction > 0):
|
||||
fDirection = "Right"
|
||||
else:
|
||||
fDirection = "Left"
|
||||
|
||||
if(vDirection):
|
||||
if(vDirection < 0):
|
||||
fDirection += "Up"
|
||||
else:
|
||||
fDirection += "Down"
|
||||
elif(vDirection):
|
||||
if(vDirection < 0):
|
||||
fDirection += "Up"
|
||||
else:
|
||||
fDirection += "Down"
|
||||
|
||||
return fDirection
|
||||
|
||||
func _on_timer_timeout():
|
||||
canShot = true
|
||||
|
||||
func death():
|
||||
get_tree().get_nodes_in_group("main")[0].createSFX(18)
|
||||
$AnimationPlayer.play("death")
|
||||
current_state = player_states.dead
|
||||
velocity.x = 0
|
||||
set_collision_layer_value(1, false)
|
||||
set_collision_mask_value(1, false)
|
||||
$Respawn.start()
|
||||
|
||||
func _on_respawn_timeout():
|
||||
var main = get_tree().get_nodes_in_group("main")[0]
|
||||
main.lives_p1 -= 1
|
||||
main.respawnP1()
|
||||
queue_free()
|
178
Scripts/player2.gd
Normal file
@ -0,0 +1,178 @@
|
||||
extends CharacterBody2D
|
||||
|
||||
|
||||
const SPEED = 100.0
|
||||
const JUMP_VELOCITY = -300.0
|
||||
|
||||
enum player_states {idle, run, jump, crouch, aimUp, water, dead}
|
||||
var current_state = player_states.idle
|
||||
|
||||
var canShot = true
|
||||
|
||||
var normalBullet = preload("res://scenes/bullet_normal.tscn")
|
||||
var bulletP1 = preload("res://scenes/bullet_p1.tscn")
|
||||
var bulletP2 = preload("res://scenes/bullet_p2.tscn")
|
||||
|
||||
var currentBullet = normalBullet
|
||||
|
||||
# Get the gravity from the project settings to be synced with RigidBody nodes.
|
||||
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
|
||||
|
||||
var direction
|
||||
var vDirection
|
||||
|
||||
var minCamera
|
||||
var maxCamera
|
||||
|
||||
func _ready():
|
||||
var allPlayers = get_tree().get_nodes_in_group("player")
|
||||
for p in allPlayers:
|
||||
add_collision_exception_with(p)
|
||||
var cam = get_tree().get_nodes_in_group("camera")
|
||||
minCamera = cam[0].get_node("min")
|
||||
maxCamera = cam[0].get_node("max")
|
||||
|
||||
func _physics_process(delta):
|
||||
# Add the gravity.
|
||||
if not is_on_floor() && current_state != player_states.water:
|
||||
velocity.y += gravity * delta
|
||||
if(current_state != player_states.dead):
|
||||
$AnimationPlayer.play("jump")
|
||||
current_state = player_states.jump
|
||||
else:
|
||||
get_tree().get_nodes_in_group("spawnPoint")[0].global_position.x = global_position.x
|
||||
|
||||
# Handle Jump.
|
||||
if(current_state != player_states.dead):
|
||||
if Input.is_action_just_pressed("H") and (is_on_floor() || current_state == player_states.water):
|
||||
velocity.y = JUMP_VELOCITY
|
||||
current_state = player_states.jump
|
||||
|
||||
direction = Input.get_axis("A", "D")
|
||||
vDirection = Input.get_axis("W", "S")
|
||||
|
||||
if(vDirection):
|
||||
if is_on_floor():
|
||||
if vDirection > 0:
|
||||
if(current_state == player_states.idle):
|
||||
$AnimationPlayer.play("crouch")
|
||||
current_state = player_states.crouch
|
||||
else:
|
||||
if(current_state == player_states.idle):
|
||||
$AnimationPlayer.play("aim_up")
|
||||
current_state = player_states.aimUp
|
||||
elif current_state == player_states.water:
|
||||
if(vDirection > 0):
|
||||
$AnimationPlayer.play("swim_hide")
|
||||
else:
|
||||
if current_state == player_states.crouch || current_state == player_states.aimUp:
|
||||
current_state = player_states.idle
|
||||
|
||||
if current_state != player_states.crouch && (current_state != player_states.water || !vDirection):
|
||||
if direction:
|
||||
velocity.x = direction * SPEED
|
||||
if is_on_floor():
|
||||
if(!vDirection):
|
||||
if(current_state != player_states.water):
|
||||
$AnimationPlayer.play("run")
|
||||
current_state = player_states.run
|
||||
else:
|
||||
$AnimationPlayer.play("swim")
|
||||
elif(current_state == player_states.water):
|
||||
$AnimationPlayer.play("swim")
|
||||
elif(vDirection > 0):
|
||||
$AnimationPlayer.play("down_right")
|
||||
current_state = player_states.run
|
||||
elif(vDirection < 0):
|
||||
$AnimationPlayer.play("up_right")
|
||||
current_state = player_states.run
|
||||
elif (current_state == player_states.water):
|
||||
if(!vDirection):
|
||||
$AnimationPlayer.play("swim")
|
||||
$spr.flip_h = (direction > 0)
|
||||
else:
|
||||
velocity.x = move_toward(velocity.x, 0, SPEED)
|
||||
if is_on_floor() && current_state != player_states.aimUp:
|
||||
if(current_state != player_states.water):
|
||||
$AnimationPlayer.play("idle")
|
||||
current_state = player_states.idle
|
||||
else:
|
||||
$AnimationPlayer.play("swim_idle")
|
||||
elif(current_state == player_states.water && !vDirection):
|
||||
$AnimationPlayer.play("swim_idle")
|
||||
|
||||
if(global_position.x < minCamera.global_position.x && velocity.x < 0):
|
||||
velocity.x = 0
|
||||
elif(global_position.x > maxCamera.global_position.x && velocity.x > 0):
|
||||
velocity.x = 0
|
||||
var collision = move_and_slide()
|
||||
|
||||
if(current_state != player_states.dead):
|
||||
if(collision):
|
||||
for i in get_slide_collision_count():
|
||||
var collidedObj = get_slide_collision(i)
|
||||
if(collidedObj.get_collider().is_in_group("water")):
|
||||
current_state = player_states.water
|
||||
elif(collidedObj.get_collider().is_in_group("powerup")):
|
||||
currentBullet = get("bulletP" + str(collidedObj.get_collider().powerType))
|
||||
collidedObj.get_collider().queue_free()
|
||||
elif(collidedObj.get_collider().is_in_group("enemy") || collidedObj.get_collider().is_in_group("enemy_bullet")):
|
||||
death()
|
||||
|
||||
if(Input.is_action_just_pressed("G") && canShot):
|
||||
var newBullet = currentBullet.instantiate()
|
||||
var lvl = get_tree().get_first_node_in_group("level")
|
||||
lvl.add_child(newBullet)
|
||||
var faceDirection = getFacingDirection()
|
||||
for c in newBullet.get_child_count():
|
||||
newBullet.get_child(c).setVelocity(faceDirection)
|
||||
newBullet.get_child(c).add_to_group("id_p2")
|
||||
newBullet.global_position = get_node("SpawnPositions/Aim_" + faceDirection).global_position
|
||||
canShot = false
|
||||
$Timer.start()
|
||||
|
||||
|
||||
func getFacingDirection():
|
||||
var fDirection = ""
|
||||
|
||||
if(!vDirection && !direction):
|
||||
if($spr.flip_h):
|
||||
fDirection = "Right"
|
||||
else:
|
||||
fDirection = "Left"
|
||||
elif(direction):
|
||||
if(direction > 0):
|
||||
fDirection = "Right"
|
||||
else:
|
||||
fDirection = "Left"
|
||||
|
||||
if(vDirection):
|
||||
if(vDirection < 0):
|
||||
fDirection += "Up"
|
||||
else:
|
||||
fDirection += "Down"
|
||||
elif(vDirection):
|
||||
if(vDirection < 0):
|
||||
fDirection += "Up"
|
||||
else:
|
||||
fDirection += "Down"
|
||||
|
||||
return fDirection
|
||||
|
||||
func _on_timer_timeout():
|
||||
canShot = true
|
||||
|
||||
func death():
|
||||
$AnimationPlayer.play("death")
|
||||
current_state = player_states.dead
|
||||
velocity.x = 0
|
||||
set_collision_layer_value(1, false)
|
||||
set_collision_mask_value(1, false)
|
||||
$Respawn.start()
|
||||
|
||||
|
||||
func _on_respawn_timeout():
|
||||
var main = get_tree().get_nodes_in_group("main")[0]
|
||||
main.lives_p2 -= 1
|
||||
main.respawnP2()
|
||||
queue_free()
|
19
Shaders/player_2.gdshader
Normal file
@ -0,0 +1,19 @@
|
||||
shader_type canvas_item;
|
||||
|
||||
void fragment() {
|
||||
// Get the color of the pixel from the texture.
|
||||
vec4 pixel = texture(TEXTURE, UV);
|
||||
|
||||
// Get the blue component of the pixel color.
|
||||
float blue_component = pixel.b;
|
||||
|
||||
// If the blue component is greater than 0.5, set the pixel color to red.
|
||||
if (blue_component > 0.7) {
|
||||
pixel.r = 0.8;
|
||||
pixel.g = 0.0;
|
||||
pixel.b = 0.0;
|
||||
}
|
||||
|
||||
// Set the pixel color to the shader's output.
|
||||
COLOR = pixel;
|
||||
}
|
BIN
Sprites/contraj1.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
34
Sprites/contraj1.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bem0puvhvb2fn"
|
||||
path="res://.godot/imported/contraj1.png-762e83162787823eb82b241f95edf972.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/contraj1.png"
|
||||
dest_files=["res://.godot/imported/contraj1.png-762e83162787823eb82b241f95edf972.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
|
BIN
Sprites/contraj2.png
Normal file
After Width: | Height: | Size: 6.6 KiB |
34
Sprites/contraj2.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dklxajofta1kd"
|
||||
path="res://.godot/imported/contraj2.png-95f5253cf90ba22f9d971f36df9c2c87.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/contraj2.png"
|
||||
dest_files=["res://.godot/imported/contraj2.png-95f5253cf90ba22f9d971f36df9c2c87.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
|
BIN
Sprites/enemigo_base.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
34
Sprites/enemigo_base.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://wcxuabeva6d1"
|
||||
path="res://.godot/imported/enemigo_base.png-824de64affbc2e1b4f06250c46d800a3.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/enemigo_base.png"
|
||||
dest_files=["res://.godot/imported/enemigo_base.png-824de64affbc2e1b4f06250c46d800a3.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
|
BIN
Sprites/enemigo_selva.png
Normal file
After Width: | Height: | Size: 883 B |
34
Sprites/enemigo_selva.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bf5u01k4o15gy"
|
||||
path="res://.godot/imported/enemigo_selva.png-f672a455652f4df8086d24162a24a969.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/enemigo_selva.png"
|
||||
dest_files=["res://.godot/imported/enemigo_selva.png-f672a455652f4df8086d24162a24a969.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
|
BIN
Sprites/enemigos.png
Normal file
After Width: | Height: | Size: 14 KiB |
34
Sprites/enemigos.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c7ke8gv6cxquv"
|
||||
path="res://.godot/imported/enemigos.png-926a2695b8608c0d85aa17604106ae78.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/enemigos.png"
|
||||
dest_files=["res://.godot/imported/enemigos.png-926a2695b8608c0d85aa17604106ae78.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
|
BIN
Sprites/explosiones.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
34
Sprites/explosiones.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ccwai1enfyly1"
|
||||
path="res://.godot/imported/explosiones.png-6cf8d066f14951667a8ccebcfbaf99c8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/explosiones.png"
|
||||
dest_files=["res://.godot/imported/explosiones.png-6cf8d066f14951667a8ccebcfbaf99c8.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
|
BIN
Sprites/j1_down.png
Normal file
After Width: | Height: | Size: 529 B |
34
Sprites/j1_down.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ddjnqffxnohth"
|
||||
path="res://.godot/imported/j1_down.png-886e02f0a9cf0dea0f9a5d02a5efa342.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/j1_down.png"
|
||||
dest_files=["res://.godot/imported/j1_down.png-886e02f0a9cf0dea0f9a5d02a5efa342.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
|
BIN
Sprites/j1_idle.png
Normal file
After Width: | Height: | Size: 803 B |
34
Sprites/j1_idle.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bxrthk1syjq0q"
|
||||
path="res://.godot/imported/j1_idle.png-04053815b9506b8db363cd0c8c309aba.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/j1_idle.png"
|
||||
dest_files=["res://.godot/imported/j1_idle.png-04053815b9506b8db363cd0c8c309aba.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
|
BIN
Sprites/j1_run.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
34
Sprites/j1_run.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://42jbdfqg673e"
|
||||
path="res://.godot/imported/j1_run.png-bdb07bd89070f87a520003b2ea38c11e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/j1_run.png"
|
||||
dest_files=["res://.godot/imported/j1_run.png-bdb07bd89070f87a520003b2ea38c11e.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
|
BIN
Sprites/j1_salto.png
Normal file
After Width: | Height: | Size: 960 B |
34
Sprites/j1_salto.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bbmsw2jai28mv"
|
||||
path="res://.godot/imported/j1_salto.png-cf30ff555b12ffcb29cdb6ede643a7f2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/j1_salto.png"
|
||||
dest_files=["res://.godot/imported/j1_salto.png-cf30ff555b12ffcb29cdb6ede643a7f2.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
|
BIN
Sprites/j1_water.png
Normal file
After Width: | Height: | Size: 543 B |
34
Sprites/j1_water.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://87jobbti0q8i"
|
||||
path="res://.godot/imported/j1_water.png-2b46fb5509083a0025998dc5a61e493c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/j1_water.png"
|
||||
dest_files=["res://.godot/imported/j1_water.png-2b46fb5509083a0025998dc5a61e493c.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
|
BIN
Sprites/j2_down.png
Normal file
After Width: | Height: | Size: 472 B |
34
Sprites/j2_down.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bmy5lnam18kd5"
|
||||
path="res://.godot/imported/j2_down.png-c71e1b58503fe5c350dcffa4d257dec6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/j2_down.png"
|
||||
dest_files=["res://.godot/imported/j2_down.png-c71e1b58503fe5c350dcffa4d257dec6.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
|
BIN
Sprites/j2_idle.png
Normal file
After Width: | Height: | Size: 761 B |
34
Sprites/j2_idle.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cu1lqdueootwm"
|
||||
path="res://.godot/imported/j2_idle.png-6963da30c660cf7b3b9003511edd9df8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/j2_idle.png"
|
||||
dest_files=["res://.godot/imported/j2_idle.png-6963da30c660cf7b3b9003511edd9df8.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
|
BIN
Sprites/j2_run.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
34
Sprites/j2_run.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d2s5hb5xk1wky"
|
||||
path="res://.godot/imported/j2_run.png-19d5d40d9235b02d8f8b35e087ebc982.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/j2_run.png"
|
||||
dest_files=["res://.godot/imported/j2_run.png-19d5d40d9235b02d8f8b35e087ebc982.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
|
BIN
Sprites/j2_salto.png
Normal file
After Width: | Height: | Size: 879 B |
34
Sprites/j2_salto.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dx8dwdthq742y"
|
||||
path="res://.godot/imported/j2_salto.png-42631490d7ea1d87710c137cf8d9a324.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/j2_salto.png"
|
||||
dest_files=["res://.godot/imported/j2_salto.png-42631490d7ea1d87710c137cf8d9a324.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
|
BIN
Sprites/maquina_boss_arma.png
Normal file
After Width: | Height: | Size: 295 B |
34
Sprites/maquina_boss_arma.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bq3id50u04uu0"
|
||||
path="res://.godot/imported/maquina_boss_arma.png-c1070235a296cca31acbb380d2ef58ee.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/maquina_boss_arma.png"
|
||||
dest_files=["res://.godot/imported/maquina_boss_arma.png-c1070235a296cca31acbb380d2ef58ee.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
|
BIN
Sprites/maquina_boss_base - copia.png
Normal file
After Width: | Height: | Size: 641 B |
34
Sprites/maquina_boss_base - copia.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ck83usvgfx4qq"
|
||||
path="res://.godot/imported/maquina_boss_base - copia.png-492cde579cc7e833f59a9943d32ed8de.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/maquina_boss_base - copia.png"
|
||||
dest_files=["res://.godot/imported/maquina_boss_base - copia.png-492cde579cc7e833f59a9943d32ed8de.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
|
BIN
Sprites/maquina_boss_base.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
34
Sprites/maquina_boss_base.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://1dfeq4hqwq5m"
|
||||
path="res://.godot/imported/maquina_boss_base.png-22226a46ac9a227af4c6670b0c702e6c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/maquina_boss_base.png"
|
||||
dest_files=["res://.godot/imported/maquina_boss_base.png-22226a46ac9a227af4c6670b0c702e6c.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
|
BIN
Sprites/maquina_boss_vida.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
34
Sprites/maquina_boss_vida.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://plxgkoh6d7nj"
|
||||
path="res://.godot/imported/maquina_boss_vida.png-60749f875859152865c8a93f974ab75b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/maquina_boss_vida.png"
|
||||
dest_files=["res://.godot/imported/maquina_boss_vida.png-60749f875859152865c8a93f974ab75b.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
|
BIN
Sprites/maquinas.png
Normal file
After Width: | Height: | Size: 7.8 KiB |
34
Sprites/maquinas.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://crk8h5dnwf6i8"
|
||||
path="res://.godot/imported/maquinas.png-e7f38aea2e76f068807c04f85c7985e7.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/maquinas.png"
|
||||
dest_files=["res://.godot/imported/maquinas.png-e7f38aea2e76f068807c04f85c7985e7.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
|
BIN
Sprites/muerte_j1.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
34
Sprites/muerte_j1.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b0x8mf13gbktm"
|
||||
path="res://.godot/imported/muerte_j1.png-30d31631e4261fd4e2232bdd926c9e71.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/muerte_j1.png"
|
||||
dest_files=["res://.godot/imported/muerte_j1.png-30d31631e4261fd4e2232bdd926c9e71.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
|
BIN
Sprites/muerte_j2.png
Normal file
After Width: | Height: | Size: 1.1 KiB |