clegg
4
.editorconfig
Normal file
|
@ -0,0 +1,4 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
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/
|
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://cqgbxo5ljtst1"
|
||||
path="res://.godot/imported/Jack Bros. (VB) OST - Level 2 (Grim Reaper's Cavern).mp3-3091257e7b0c23410e159691a08523a9.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/music/Jack Bros. (VB) OST - Level 2 (Grim Reaper's Cavern).mp3"
|
||||
dest_files=["res://.godot/imported/Jack Bros. (VB) OST - Level 2 (Grim Reaper's Cavern).mp3-3091257e7b0c23410e159691a08523a9.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
BIN
audio/sfx/graze.wav
Normal file
24
audio/sfx/graze.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://bv6v7v5dtvoii"
|
||||
path="res://.godot/imported/graze.wav-b4966ab8ac14ec395505b34def6a89d2.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/sfx/graze.wav"
|
||||
dest_files=["res://.godot/imported/graze.wav-b4966ab8ac14ec395505b34def6a89d2.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=2
|
BIN
audio/sfx/jetpack.ogg
Normal file
19
audio/sfx/jetpack.ogg.import
Normal file
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="oggvorbisstr"
|
||||
type="AudioStreamOggVorbis"
|
||||
uid="uid://bhy8i7yg863n3"
|
||||
path="res://.godot/imported/jetpack.ogg-2c15c13295eac12b575c2dbc89333766.oggvorbisstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/sfx/jetpack.ogg"
|
||||
dest_files=["res://.godot/imported/jetpack.ogg-2c15c13295eac12b575c2dbc89333766.oggvorbisstr"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=true
|
||||
loop_offset=0.6
|
||||
bpm=0.0
|
||||
beat_count=0
|
||||
bar_beats=4
|
BIN
audio/sfx/key.ogg
Normal file
19
audio/sfx/key.ogg.import
Normal file
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="oggvorbisstr"
|
||||
type="AudioStreamOggVorbis"
|
||||
uid="uid://c7h4qdg8gtnhk"
|
||||
path="res://.godot/imported/key.ogg-8695dfd3e7e7137b1f9aef8dd154957d.oggvorbisstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/sfx/key.ogg"
|
||||
dest_files=["res://.godot/imported/key.ogg-8695dfd3e7e7137b1f9aef8dd154957d.oggvorbisstr"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
BIN
audio/sfx/se_g2.ogg
Normal file
19
audio/sfx/se_g2.ogg.import
Normal file
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="oggvorbisstr"
|
||||
type="AudioStreamOggVorbis"
|
||||
uid="uid://ct82ub5u2uoly"
|
||||
path="res://.godot/imported/se_g2.ogg-4df37f1bf3086aadd97a824097bb1dfa.oggvorbisstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/sfx/se_g2.ogg"
|
||||
dest_files=["res://.godot/imported/se_g2.ogg-4df37f1bf3086aadd97a824097bb1dfa.oggvorbisstr"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
BIN
ball_world.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
34
ball_world.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ckoq6h6nlyhq4"
|
||||
path="res://.godot/imported/ball_world.png-014544f3f3132b720d65f63b82ca932b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ball_world.png"
|
||||
dest_files=["res://.godot/imported/ball_world.png-014544f3f3132b720d65f63b82ca932b.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
|
28
bat/bat.gd
Normal file
|
@ -0,0 +1,28 @@
|
|||
extends Node2D
|
||||
|
||||
@onready var startpos = position
|
||||
@export var speed = 1.0
|
||||
@export var sine_distance = 64.0
|
||||
@export var shoot_cooldown = 1.0
|
||||
const BULLET = preload("res://bat/bat_bullet/bat_bullet.tscn")
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
%ShootTimer.start(shoot_cooldown)
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _physics_process(delta):
|
||||
var sine = sin(Time.get_ticks_msec() / 300.0) * sine_distance
|
||||
position.y = startpos.y + sine
|
||||
|
||||
|
||||
func _on_shoot_timer_timeout() -> void:
|
||||
var player = get_owner().get_node("Player")
|
||||
var bullet = BULLET.instantiate()
|
||||
bullet.global_position = global_position
|
||||
get_parent().add_child(bullet)
|
||||
if player.position.x < position.x:
|
||||
bullet.direction = -1
|
||||
else:
|
||||
bullet.direction = 1
|
1
bat/bat.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://dibk7l4v1bbm
|
55
bat/bat.tscn
Normal file
|
@ -0,0 +1,55 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://n8d1t160vvln"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dibk7l4v1bbm" path="res://bat/bat.gd" id="1_dj6ma"]
|
||||
[ext_resource type="Texture2D" uid="uid://1gfwereeox0m" path="res://gren.png" id="4_eu2gq"]
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_libqc"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("4_eu2gq")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("4_eu2gq")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("4_eu2gq")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("4_eu2gq")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("4_eu2gq")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("4_eu2gq")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"default",
|
||||
"speed": 30.0
|
||||
}]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_5bpm1"]
|
||||
size = Vector2(16, 16)
|
||||
|
||||
[node name="Bat" type="Node2D"]
|
||||
script = ExtResource("1_dj6ma")
|
||||
speed = 2.0
|
||||
sine_distance = 32.0
|
||||
|
||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||
sprite_frames = SubResource("SpriteFrames_libqc")
|
||||
autoplay = "default"
|
||||
frame_progress = 0.659971
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="." groups=["death", "enemy_hitbox"]]
|
||||
collision_layer = 8
|
||||
collision_mask = 17
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||
shape = SubResource("RectangleShape2D_5bpm1")
|
||||
|
||||
[node name="ShootTimer" type="Timer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[connection signal="timeout" from="ShootTimer" to="." method="_on_shoot_timer_timeout"]
|
12
bat/bat_bullet/bat_bullet.gd
Normal file
|
@ -0,0 +1,12 @@
|
|||
extends Node2D
|
||||
|
||||
@export var speed = 100.0
|
||||
@export var direction = 1
|
||||
var grazed = false
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
position.x += (speed * direction) * delta
|
||||
|
||||
|
||||
func _on_area_2d_body_entered(body: Node2D) -> void:
|
||||
if !body.is_in_group("player_hitbox"): queue_free()
|
1
bat/bat_bullet/bat_bullet.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://dwqt7eu84wgv7
|
24
bat/bat_bullet/bat_bullet.tscn
Normal file
|
@ -0,0 +1,24 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://jf4rxymi15id"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dwqt7eu84wgv7" path="res://bat/bat_bullet/bat_bullet.gd" id="1_bopwj"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_pxoj5"]
|
||||
size = Vector2(8, 4)
|
||||
|
||||
[node name="BatBullet" type="Node2D"]
|
||||
script = ExtResource("1_bopwj")
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
offset_left = -4.0
|
||||
offset_top = -2.0
|
||||
offset_right = 4.0
|
||||
offset_bottom = 2.0
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="." groups=["enemy_bullet", "hurt"]]
|
||||
collision_layer = 8
|
||||
collision_mask = 19
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||
shape = SubResource("RectangleShape2D_pxoj5")
|
||||
|
||||
[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"]
|
BIN
block.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
34
block.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dla2vwxy8vmt8"
|
||||
path="res://.godot/imported/block.png-b7fed0a755ada244f74f9622a987e81f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://block.png"
|
||||
dest_files=["res://.godot/imported/block.png-b7fed0a755ada244f74f9622a987e81f.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
|
4
camera/camera.gd
Normal file
|
@ -0,0 +1,4 @@
|
|||
extends Camera2D
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
global_position = get_owner().get_node("Player").global_position
|
1
camera/camera.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://d0c1e68rgp1tw
|
32
default_bus_layout.tres
Normal file
|
@ -0,0 +1,32 @@
|
|||
[gd_resource type="AudioBusLayout" load_steps=3 format=3 uid="uid://cbv1d76xmbsru"]
|
||||
|
||||
[sub_resource type="AudioEffectReverb" id="AudioEffectReverb_j3pel"]
|
||||
resource_name = "Reverb"
|
||||
|
||||
[sub_resource type="AudioEffectChorus" id="AudioEffectChorus_j3pel"]
|
||||
resource_name = "Chorus"
|
||||
|
||||
[resource]
|
||||
bus/0/volume_db = -10.9863
|
||||
bus/1/name = &"SFX"
|
||||
bus/1/solo = false
|
||||
bus/1/mute = false
|
||||
bus/1/bypass_fx = false
|
||||
bus/1/volume_db = 0.0
|
||||
bus/1/send = &"Master"
|
||||
bus/2/name = &"Jetpack"
|
||||
bus/2/solo = false
|
||||
bus/2/mute = false
|
||||
bus/2/bypass_fx = false
|
||||
bus/2/volume_db = -18.3091
|
||||
bus/2/send = &"SFX"
|
||||
bus/2/effect/0/effect = SubResource("AudioEffectReverb_j3pel")
|
||||
bus/2/effect/0/enabled = false
|
||||
bus/2/effect/1/effect = SubResource("AudioEffectChorus_j3pel")
|
||||
bus/2/effect/1/enabled = true
|
||||
bus/3/name = &"Music"
|
||||
bus/3/solo = false
|
||||
bus/3/mute = false
|
||||
bus/3/bypass_fx = false
|
||||
bus/3/volume_db = -11.4678
|
||||
bus/3/send = &"Master"
|
66
export_presets.cfg
Normal file
|
@ -0,0 +1,66 @@
|
|||
[preset.0]
|
||||
|
||||
name="Windows Desktop"
|
||||
platform="Windows Desktop"
|
||||
runnable=true
|
||||
advanced_options=false
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="../../demos/cool.exe"
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
seed=0
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.0.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
binary_format/embed_pck=false
|
||||
texture_format/s3tc_bptc=true
|
||||
texture_format/etc2_astc=false
|
||||
binary_format/architecture="x86_64"
|
||||
codesign/enable=false
|
||||
codesign/timestamp=true
|
||||
codesign/timestamp_server_url=""
|
||||
codesign/digest_algorithm=1
|
||||
codesign/description=""
|
||||
codesign/custom_options=PackedStringArray()
|
||||
application/modify_resources=true
|
||||
application/icon=""
|
||||
application/console_wrapper_icon=""
|
||||
application/icon_interpolation=4
|
||||
application/file_version=""
|
||||
application/product_version=""
|
||||
application/company_name=""
|
||||
application/product_name=""
|
||||
application/file_description=""
|
||||
application/copyright=""
|
||||
application/trademarks=""
|
||||
application/export_angle=0
|
||||
application/export_d3d12=0
|
||||
application/d3d12_agility_sdk_multiarch=true
|
||||
ssh_remote_deploy/enabled=false
|
||||
ssh_remote_deploy/host="user@host_ip"
|
||||
ssh_remote_deploy/port="22"
|
||||
ssh_remote_deploy/extra_args_ssh=""
|
||||
ssh_remote_deploy/extra_args_scp=""
|
||||
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
|
||||
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
|
||||
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
|
||||
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
|
||||
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
|
||||
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
|
||||
Start-ScheduledTask -TaskName godot_remote_debug
|
||||
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
|
||||
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
|
||||
Remove-Item -Recurse -Force '{temp_dir}'"
|
22
globals/global_functions.gd
Normal file
|
@ -0,0 +1,22 @@
|
|||
extends Node
|
||||
|
||||
func queue_score(amount):
|
||||
GlobalStats.score_to_add += amount
|
||||
GlobalStats.score_multiplier *= 1.1
|
||||
var hud = get_tree().get_nodes_in_group("hud")[0]
|
||||
hud.multiplier_anims.stop()
|
||||
hud.multiplier_anims.play("multiplier_grow")
|
||||
|
||||
func append_score():
|
||||
GlobalStats.score += GlobalStats.score_to_add
|
||||
GlobalStats.score_to_add = 0
|
||||
GlobalStats.score_multiplier = 1.0
|
||||
var hud = get_tree().get_nodes_in_group("hud")[0]
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if Input.is_action_just_pressed("fullscreen"):
|
||||
if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_WINDOWED:
|
||||
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
|
||||
else:
|
||||
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
|
||||
|
1
globals/global_functions.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://bsjfyh8x2hk32
|
5
globals/global_stats.gd
Normal file
|
@ -0,0 +1,5 @@
|
|||
extends Node
|
||||
|
||||
var score:int = 0
|
||||
var score_to_add:int = 0
|
||||
var score_multiplier:float = 1.0
|
1
globals/global_stats.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://d3y3o1487oqfy
|
BIN
gren.png
Normal file
After Width: | Height: | Size: 762 B |
34
gren.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://1gfwereeox0m"
|
||||
path="res://.godot/imported/gren.png-4d6211da3aba347e96eb6ee724ee433d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://gren.png"
|
||||
dest_files=["res://.godot/imported/gren.png-4d6211da3aba347e96eb6ee724ee433d.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
icon.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>
|
After Width: | Height: | Size: 994 B |
37
icon.svg.import
Normal file
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dq1op562cs6s8"
|
||||
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.svg"
|
||||
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.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
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
4
main.gd
Normal file
|
@ -0,0 +1,4 @@
|
|||
extends Node2D
|
||||
|
||||
func _ready():
|
||||
GlobalStats.score = 0
|
1
main.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://ceuwfjhqeucpr
|
145
main.tscn
Normal file
1
objects/player/jet_particles.gd
Normal file
|
@ -0,0 +1 @@
|
|||
extends CPUParticles2D
|
1
objects/player/jet_particles.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://nvpkqa3y8g04
|
27
objects/player/jet_particles.tscn
Normal file
|
@ -0,0 +1,27 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://dmg28km10q5ja"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://cd68hj3p7r01q" path="res://sprites/particles/fire_particles.png" id="1_idk12"]
|
||||
[ext_resource type="Script" uid="uid://nvpkqa3y8g04" path="res://objects/player/jet_particles.gd" id="2_vu77f"]
|
||||
|
||||
[sub_resource type="Curve" id="Curve_idk12"]
|
||||
_limits = [0.0, 3.0, 0.0, 1.0]
|
||||
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(1, 3), 0.0, 0.0, 0, 0]
|
||||
point_count = 2
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_m4kly"]
|
||||
offsets = PackedFloat32Array(0.146667, 0.526667, 0.806667, 1)
|
||||
colors = PackedColorArray(0.580392, 0.768627, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0.321569, 0)
|
||||
|
||||
[node name="CPUParticles2D" type="CPUParticles2D" groups=["fire_particles"]]
|
||||
amount = 16
|
||||
texture = ExtResource("1_idk12")
|
||||
lifetime = 0.24
|
||||
local_coords = true
|
||||
spread = 0.0
|
||||
gravity = Vector2(-190, 980)
|
||||
tangential_accel_max = 100.0
|
||||
damping_max = 100.0
|
||||
angle_min = -720.0
|
||||
scale_amount_curve = SubResource("Curve_idk12")
|
||||
color_ramp = SubResource("Gradient_m4kly")
|
||||
script = ExtResource("2_vu77f")
|
27
objects/player/jet_particles_weak.tscn
Normal file
|
@ -0,0 +1,27 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://c4dkexe3l6cma"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://cd68hj3p7r01q" path="res://sprites/particles/fire_particles.png" id="1_gl2g5"]
|
||||
[ext_resource type="Script" uid="uid://nvpkqa3y8g04" path="res://objects/player/jet_particles.gd" id="2_td2pe"]
|
||||
|
||||
[sub_resource type="Curve" id="Curve_idk12"]
|
||||
_limits = [0.0, 3.0, 0.0, 1.0]
|
||||
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(1, 3), 0.0, 0.0, 0, 0]
|
||||
point_count = 2
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_m4kly"]
|
||||
offsets = PackedFloat32Array(0.453333, 0.806667, 0.873333, 1)
|
||||
colors = PackedColorArray(0.580392, 0.768627, 1, 1, 1, 0.839216, 0.215686, 1, 1, 0, 0, 1, 1, 0, 0.321569, 0)
|
||||
|
||||
[node name="CPUParticles2D" type="CPUParticles2D" groups=["fire_particles"]]
|
||||
amount = 16
|
||||
texture = ExtResource("1_gl2g5")
|
||||
lifetime = 0.15
|
||||
local_coords = true
|
||||
spread = 0.0
|
||||
gravity = Vector2(-190, 980)
|
||||
tangential_accel_max = 100.0
|
||||
damping_max = 100.0
|
||||
angle_min = -720.0
|
||||
scale_amount_curve = SubResource("Curve_idk12")
|
||||
color_ramp = SubResource("Gradient_m4kly")
|
||||
script = ExtResource("2_td2pe")
|
139
objects/player/player.gd
Normal file
|
@ -0,0 +1,139 @@
|
|||
extends CharacterBody2D
|
||||
|
||||
const WALK_ACCEL = 50.0
|
||||
const WALK_TOPSPEED = 160.0
|
||||
|
||||
const FLY_ACCEL = 50.0
|
||||
const FLY_TOPSPEED = 200.0
|
||||
|
||||
const GRAVITY = 15.0
|
||||
const FAST_FALL_VELOCITY = 500.0
|
||||
|
||||
var downward_velocity = 0.0
|
||||
var max_downward_velocity = 1200.0
|
||||
var fast_fall_max_downward_velocity = 1500.0
|
||||
|
||||
var fuel = 100.0
|
||||
const jetpack_velocity = 10.0
|
||||
|
||||
var score = 0
|
||||
|
||||
var aim_direction = 1
|
||||
|
||||
const BULLET = preload("res://weapons/spreadshot/spread_shot.tscn")
|
||||
const GRAZE_PARTICLES = preload("res://sprites/Player/graze_particles.tscn")
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
var axis = Input.get_axis("ui_left","ui_right")
|
||||
if axis != 0: aim_direction = axis
|
||||
#region ground movement
|
||||
if axis != 0:
|
||||
if velocity.y < 0:
|
||||
move(FLY_ACCEL,FLY_TOPSPEED)
|
||||
else:
|
||||
move(WALK_ACCEL,WALK_TOPSPEED)
|
||||
if is_on_floor():
|
||||
%Sprite.play("walk")
|
||||
else:
|
||||
%Sprite.play("fly")
|
||||
else:
|
||||
velocity.x = move_toward(velocity.x, 0, WALK_ACCEL)
|
||||
%Sprite.play("idle")
|
||||
#endregion
|
||||
#region gun
|
||||
if Input.is_action_just_pressed("shoot"):
|
||||
%ShootSound.play()
|
||||
var bullet = BULLET.instantiate()
|
||||
bullet.global_position = global_position
|
||||
get_parent().add_child(bullet)
|
||||
#endregion
|
||||
#region jetpack flight
|
||||
if Input.is_action_pressed("fly"):
|
||||
if fuel > 0.0:
|
||||
%Sprite.play("fly")
|
||||
fuel -= 40.0 * delta
|
||||
downward_velocity = 0.0
|
||||
if %JetpackSound.is_playing() == false: %JetpackSound.play()
|
||||
if %JetpackSound.pitch_scale < 1.25:
|
||||
%JetpackSound.pitch_scale += 0.4 * delta
|
||||
velocity.y -= jetpack_velocity
|
||||
emit_fire(true)
|
||||
|
||||
else:
|
||||
emit_fire(false)
|
||||
else:
|
||||
if %JetpackSound.pitch_scale > 0.4:
|
||||
%JetpackSound.pitch_scale -= 0.1 * delta
|
||||
emit_fire(false)
|
||||
|
||||
#endregion
|
||||
if is_on_floor():
|
||||
downward_velocity = 0.0
|
||||
GlobalFunctions.append_score()
|
||||
fuel = 100.0
|
||||
silence_jetpack(delta)
|
||||
else:
|
||||
if Input.is_action_pressed("fast_fall"):
|
||||
silence_jetpack(delta)
|
||||
else:
|
||||
%JetpackSound.volume_db = 0.0
|
||||
|
||||
if Input.is_action_pressed("fast_fall"):
|
||||
downward_velocity += FAST_FALL_VELOCITY
|
||||
downward_velocity = clamp(downward_velocity,0.0,fast_fall_max_downward_velocity)
|
||||
velocity.y = clamp(velocity.y,velocity.y,fast_fall_max_downward_velocity)
|
||||
else:
|
||||
downward_velocity += GRAVITY
|
||||
downward_velocity = clamp(downward_velocity,0.0,max_downward_velocity)
|
||||
velocity.y = clamp(velocity.y,velocity.y,max_downward_velocity)
|
||||
fuel -= 1 * delta
|
||||
|
||||
|
||||
|
||||
#jetpack pitch
|
||||
|
||||
velocity.y += downward_velocity * delta
|
||||
move_and_slide()
|
||||
#if event.is_action_pressed()
|
||||
#endregion
|
||||
|
||||
|
||||
func move(acceleration,topspeed):
|
||||
var axis = Input.get_axis("ui_left","ui_right")
|
||||
velocity.x += (axis * acceleration)
|
||||
%Sprite.scale.x = axis
|
||||
velocity.x = clamp(velocity.x,-topspeed,topspeed)
|
||||
|
||||
func silence_jetpack(delta):
|
||||
%JetpackSound.pitch_scale = 1.0
|
||||
%JetpackSound.volume_db -= 50 * delta
|
||||
|
||||
func emit_fire(emit:bool=true,lifetime:float=0.24):
|
||||
get_tree().get_nodes_in_group("fire_particles")[0].emitting = emit
|
||||
get_tree().get_nodes_in_group("fire_particles")[0].lifetime = lifetime
|
||||
get_tree().get_nodes_in_group("fire_particles")[1].emitting = emit
|
||||
get_tree().get_nodes_in_group("fire_particles")[1].lifetime = lifetime
|
||||
|
||||
func _on_area_2d_body_entered(body: Node2D) -> void:
|
||||
if body.is_in_group("death"):
|
||||
get_tree().reload_current_scene()
|
||||
|
||||
|
||||
func _on_area_2d_area_entered(area: Area2D) -> void:
|
||||
#if area.is_in_group("death") or area.is_in_group("hurt"):
|
||||
#get_tree().reload_current_scene()
|
||||
pass
|
||||
|
||||
|
||||
func _on_hurtbox_area_entered(area: Area2D) -> void:
|
||||
get_tree().reload_current_scene()
|
||||
|
||||
|
||||
func _on_graze_hitbox_area_entered(area: Area2D) -> void:
|
||||
if area.is_in_group("enemy_bullet"):
|
||||
if area.get_parent().grazed == false:
|
||||
GlobalFunctions.queue_score(0)
|
||||
var graze_particle = GRAZE_PARTICLES.instantiate()
|
||||
graze_particle.global_position = global_position
|
||||
get_parent().add_child(graze_particle)
|
||||
area.get_parent().grazed = true
|
1
objects/player/player.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://cgo3kf4b37lx7
|
137
objects/player/player.tscn
Normal file
|
@ -0,0 +1,137 @@
|
|||
[gd_scene load_steps=15 format=3 uid="uid://e2tevu6gn5si"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cgo3kf4b37lx7" path="res://objects/player/player.gd" id="1_4flbx"]
|
||||
[ext_resource type="AudioStream" uid="uid://bhy8i7yg863n3" path="res://audio/sfx/jetpack.ogg" id="2_g7ett"]
|
||||
[ext_resource type="Texture2D" uid="uid://bt2xuy2ihej2q" path="res://sprites/Player/clegg_fly.png" id="2_xkryw"]
|
||||
[ext_resource type="AudioStream" uid="uid://ct82ub5u2uoly" path="res://audio/sfx/se_g2.ogg" id="3_ssrue"]
|
||||
[ext_resource type="Texture2D" uid="uid://bi6gfgt0b0voa" path="res://sprites/Player/clegg.png" id="4_m4kly"]
|
||||
[ext_resource type="Texture2D" uid="uid://bce74ak1by42t" path="res://sprites/Player/clegg_walk1.png" id="4_xgwla"]
|
||||
[ext_resource type="Texture2D" uid="uid://bvb5neqj421p" path="res://sprites/Player/clegg_walk2.png" id="5_bi5m7"]
|
||||
[ext_resource type="AudioStream" uid="uid://bv6v7v5dtvoii" path="res://audio/sfx/graze.wav" id="6_ow0dq"]
|
||||
[ext_resource type="PackedScene" uid="uid://dmg28km10q5ja" path="res://objects/player/jet_particles.tscn" id="9_xgwla"]
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_xgwla"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("2_xkryw")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"fly",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("4_m4kly")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"idle",
|
||||
"speed": 15.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("4_m4kly")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"new_animation",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("4_xgwla")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("4_m4kly")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("5_bi5m7")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"walk",
|
||||
"speed": 15.0
|
||||
}]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_sh265"]
|
||||
size = Vector2(28, 34.375)
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_cqmt1"]
|
||||
size = Vector2(27.5, 34)
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_xkryw"]
|
||||
radius = 17.0
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_xgwla"]
|
||||
radius = 2.06155
|
||||
|
||||
[node name="Player" type="CharacterBody2D" groups=["player", "player_hitbox"]]
|
||||
collision_mask = 2
|
||||
script = ExtResource("1_4flbx")
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
visible = false
|
||||
offset_left = -8.0
|
||||
offset_top = -16.0
|
||||
offset_right = 8.0
|
||||
offset_bottom = 16.0
|
||||
|
||||
[node name="Sprite" type="AnimatedSprite2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
sprite_frames = SubResource("SpriteFrames_xgwla")
|
||||
animation = &"fly"
|
||||
|
||||
[node name="CPUParticles2D" parent="Sprite" instance=ExtResource("9_xgwla")]
|
||||
position = Vector2(-6, 17)
|
||||
scale = Vector2(0.5, 0.5)
|
||||
|
||||
[node name="CPUParticles2D2" parent="Sprite" instance=ExtResource("9_xgwla")]
|
||||
position = Vector2(2.5, 17)
|
||||
scale = Vector2(0.5, 0.5)
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(0, -0.1875)
|
||||
shape = SubResource("RectangleShape2D_sh265")
|
||||
|
||||
[node name="Collectionbox" type="Area2D" parent="." groups=["player_hitbox"]]
|
||||
collision_mask = 7
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Collectionbox"]
|
||||
position = Vector2(0.25, 0)
|
||||
shape = SubResource("RectangleShape2D_cqmt1")
|
||||
|
||||
[node name="JetpackSound" type="AudioStreamPlayer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("2_g7ett")
|
||||
bus = &"Jetpack"
|
||||
|
||||
[node name="GrazeSound" type="AudioStreamPlayer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("6_ow0dq")
|
||||
|
||||
[node name="ShootSound" type="AudioStreamPlayer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("3_ssrue")
|
||||
volume_db = 6.559
|
||||
bus = &"SFX"
|
||||
|
||||
[node name="GrazeHitbox" type="Area2D" parent="."]
|
||||
position = Vector2(-3, -4)
|
||||
collision_mask = 8
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="GrazeHitbox"]
|
||||
position = Vector2(3, 4)
|
||||
shape = SubResource("CircleShape2D_xkryw")
|
||||
debug_color = Color(0.797602, 0.0486606, 1, 0.42)
|
||||
|
||||
[node name="Hurtbox" type="Area2D" parent="."]
|
||||
position = Vector2(-1, -10)
|
||||
collision_mask = 8
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hurtbox"]
|
||||
position = Vector2(2, 11.5)
|
||||
shape = SubResource("CircleShape2D_xgwla")
|
||||
debug_color = Color(1, 0, 0.0917967, 0.42)
|
||||
|
||||
[connection signal="area_entered" from="Collectionbox" to="." method="_on_area_2d_area_entered"]
|
||||
[connection signal="body_entered" from="Collectionbox" to="." method="_on_area_2d_body_entered"]
|
||||
[connection signal="area_entered" from="GrazeHitbox" to="." method="_on_graze_hitbox_area_entered"]
|
||||
[connection signal="area_entered" from="Hurtbox" to="." method="_on_hurtbox_area_entered"]
|
29
objects/player/player_bullet/player_bullet.gd
Normal file
|
@ -0,0 +1,29 @@
|
|||
extends Node2D
|
||||
|
||||
var direction = 1
|
||||
@export var speed = Vector2.ZERO
|
||||
@export var range = 1.0
|
||||
@export var infinite_range = true
|
||||
|
||||
func _ready() -> void:
|
||||
var player = get_tree().get_nodes_in_group("player")[0]
|
||||
direction = player.aim_direction
|
||||
if infinite_range == true: %RangeTimer.paused = true
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
position.x += (speed.x * direction) * delta
|
||||
position.y += (speed.y) * delta
|
||||
|
||||
|
||||
func _on_area_2d_area_entered(area: Area2D) -> void:
|
||||
if area.is_in_group("enemy_hitbox"):
|
||||
GlobalFunctions.queue_score(10)
|
||||
area.get_parent().queue_free()
|
||||
queue_free()
|
||||
|
||||
|
||||
func _on_area_2d_body_entered(body: Node2D) -> void:
|
||||
queue_free()
|
||||
|
||||
func _on_range_timer_timeout() -> void:
|
||||
queue_free()
|
1
objects/player/player_bullet/player_bullet.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://cbmi6g10hnfve
|
31
objects/player/player_bullet/player_bullet.tscn
Normal file
|
@ -0,0 +1,31 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://cqqqblpc3j4hn"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cbmi6g10hnfve" path="res://objects/player/player_bullet/player_bullet.gd" id="1_lj6op"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_lj6op"]
|
||||
size = Vector2(8, 8)
|
||||
|
||||
[node name="PlayerBullet" type="Node2D"]
|
||||
script = ExtResource("1_lj6op")
|
||||
speed = Vector2(1000, 0)
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
offset_left = -4.0
|
||||
offset_top = -4.0
|
||||
offset_right = 4.0
|
||||
offset_bottom = 4.0
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="."]
|
||||
collision_layer = 16
|
||||
collision_mask = 14
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||
shape = SubResource("RectangleShape2D_lj6op")
|
||||
|
||||
[node name="RangeTimer" type="Timer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
autostart = true
|
||||
|
||||
[connection signal="area_entered" from="Area2D" to="." method="_on_area_2d_area_entered"]
|
||||
[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"]
|
||||
[connection signal="timeout" from="RangeTimer" to="." method="_on_range_timer_timeout"]
|
12
objects/scoreitem/scoreitem.gd
Normal file
|
@ -0,0 +1,12 @@
|
|||
extends Node2D
|
||||
|
||||
@export var score = 0
|
||||
const PARTICLES = preload("res://objects/scoreitem/scoreitem_particles.tscn")
|
||||
|
||||
func _on_area_2d_area_entered(area: Area2D) -> void:
|
||||
if area.is_in_group("player_hitbox"):
|
||||
GlobalFunctions.queue_score(score)
|
||||
var particles = PARTICLES.instantiate()
|
||||
particles.global_position = global_position
|
||||
get_owner().add_child(particles)
|
||||
queue_free()
|
1
objects/scoreitem/scoreitem.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://8wiyfiyykh6t
|
56
objects/scoreitem/scoreitem.tscn
Normal file
|
@ -0,0 +1,56 @@
|
|||
[gd_scene load_steps=10 format=3 uid="uid://bskdt3t8fae6m"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://8wiyfiyykh6t" path="res://objects/scoreitem/scoreitem.gd" id="1_8u3vk"]
|
||||
[ext_resource type="Texture2D" uid="uid://dr1uub2l0vdh4" path="res://sprites/screw/0c575d08-e62d-4013-9e08-172d0662fcda.png" id="1_e6x4u"]
|
||||
[ext_resource type="Texture2D" uid="uid://csqvymhme5h8t" path="res://sprites/screw/23b869e4-5707-44a8-8bbc-a788d5c71275.png" id="2_8u3vk"]
|
||||
[ext_resource type="Texture2D" uid="uid://bptdaaemdeqt" path="res://sprites/screw/6ca66360-a47d-4690-88f8-b9c160416be3.png" id="3_oad3k"]
|
||||
[ext_resource type="Texture2D" uid="uid://dud5u6ojbsupr" path="res://sprites/screw/72235a50-452c-4104-a5b4-447ee5c42785.png" id="4_e7vhn"]
|
||||
[ext_resource type="Texture2D" uid="uid://dutm1rklnb33t" path="res://sprites/screw/30656deb-ca75-4981-8198-ad555b89764a.png" id="5_dfapo"]
|
||||
[ext_resource type="Texture2D" uid="uid://cvuhonmcq21hk" path="res://sprites/screw/c433a95b-a214-4bdd-b58e-8ef611c6be46.png" id="6_uywcb"]
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_dayts"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("1_e6x4u")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("2_8u3vk")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("3_oad3k")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("4_e7vhn")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("5_dfapo")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("6_uywcb")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"default",
|
||||
"speed": 15.0
|
||||
}]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_e6x4u"]
|
||||
size = Vector2(15, 15)
|
||||
|
||||
[node name="Scoreitem" type="Node2D"]
|
||||
script = ExtResource("1_8u3vk")
|
||||
score = 10
|
||||
|
||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||
scale = Vector2(0.2, 0.2)
|
||||
sprite_frames = SubResource("SpriteFrames_dayts")
|
||||
autoplay = "default"
|
||||
frame_progress = 0.340073
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="."]
|
||||
collision_layer = 4
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||
shape = SubResource("RectangleShape2D_e6x4u")
|
||||
|
||||
[connection signal="area_entered" from="Area2D" to="." method="_on_area_2d_area_entered"]
|
7
objects/scoreitem/scoreitem_particles.gd
Normal file
|
@ -0,0 +1,7 @@
|
|||
extends CPUParticles2D
|
||||
|
||||
func _ready() -> void:
|
||||
emitting = true
|
||||
|
||||
func _on_finished() -> void:
|
||||
queue_free()
|
1
objects/scoreitem/scoreitem_particles.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://bdcxqp8royr5u
|
32
objects/scoreitem/scoreitem_particles.tscn
Normal file
|
@ -0,0 +1,32 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://bsmmvt6hf6m5b"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bdcxqp8royr5u" path="res://objects/scoreitem/scoreitem_particles.gd" id="1_aeam7"]
|
||||
[ext_resource type="AudioStream" uid="uid://c7h4qdg8gtnhk" path="res://audio/sfx/key.ogg" id="2_rwya6"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_aeam7"]
|
||||
offsets = PackedFloat32Array(0, 0.513333, 1)
|
||||
colors = PackedColorArray(1, 0, 0, 1, 1, 1, 0.568627, 1, 1, 1, 1, 1)
|
||||
|
||||
[node name="CPUParticles2D" type="CPUParticles2D"]
|
||||
emitting = false
|
||||
amount = 38
|
||||
lifetime = 0.2
|
||||
one_shot = true
|
||||
speed_scale = 0.5
|
||||
explosiveness = 1.0
|
||||
randomness = 1.0
|
||||
lifetime_randomness = 1.0
|
||||
spread = 154.09
|
||||
gravity = Vector2(0, 630)
|
||||
initial_velocity_min = 251.99
|
||||
initial_velocity_max = 484.86
|
||||
scale_amount_min = 1.5
|
||||
scale_amount_max = 2.5
|
||||
color_ramp = SubResource("Gradient_aeam7")
|
||||
script = ExtResource("1_aeam7")
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource("2_rwya6")
|
||||
autoplay = true
|
||||
|
||||
[connection signal="finished" from="." to="." method="_on_finished"]
|
67
project.godot
Normal file
|
@ -0,0 +1,67 @@
|
|||
; Engine configuration file.
|
||||
; It's best edited using the editor UI and not directly,
|
||||
; since the parameters that go here are not all obvious.
|
||||
;
|
||||
; Format:
|
||||
; [section] ; section goes between []
|
||||
; param=value ; assign values to parameters
|
||||
|
||||
config_version=5
|
||||
|
||||
[application]
|
||||
|
||||
config/name="New Game Project"
|
||||
run/main_scene="uid://cbmgdd1gbmh1x"
|
||||
config/features=PackedStringArray("4.4", "GL Compatibility")
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
[autoload]
|
||||
|
||||
GlobalStats="*res://globals/global_stats.gd"
|
||||
GlobalFunctions="*res://globals/global_functions.gd"
|
||||
|
||||
[display]
|
||||
|
||||
window/size/viewport_width=640
|
||||
window/size/viewport_height=360
|
||||
window/size/mode=3
|
||||
window/size/borderless=true
|
||||
window/stretch/mode="canvas_items"
|
||||
|
||||
[input]
|
||||
|
||||
fly={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":90,"key_label":0,"unicode":122,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
shoot={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":88,"key_label":0,"unicode":120,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
fast_fall={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
fullscreen={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
[layer_names]
|
||||
|
||||
2d_physics/layer_1="Player"
|
||||
2d_physics/layer_2="Collision"
|
||||
2d_physics/layer_3="Pickups"
|
||||
2d_physics/layer_4="Enemy Damage"
|
||||
2d_physics/layer_5="Player Damage"
|
||||
|
||||
[rendering]
|
||||
|
||||
textures/canvas_textures/default_texture_filter=0
|
||||
renderer/rendering_method="gl_compatibility"
|
||||
renderer/rendering_method.mobile="gl_compatibility"
|
||||
2d/snap/snap_2d_transforms_to_pixel=true
|
BIN
spikes.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
34
spikes.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bjirp2g8mawch"
|
||||
path="res://.godot/imported/spikes.png-4a2427e7b6483a335646e762227cfd31.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://spikes.png"
|
||||
dest_files=["res://.godot/imported/spikes.png-4a2427e7b6483a335646e762227cfd31.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/Player/clegg.png
Normal file
After Width: | Height: | Size: 730 B |
34
sprites/Player/clegg.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bi6gfgt0b0voa"
|
||||
path="res://.godot/imported/clegg.png-f207317d2b00342f0190488446638a1b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/Player/clegg.png"
|
||||
dest_files=["res://.godot/imported/clegg.png-f207317d2b00342f0190488446638a1b.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/Player/clegg_fly.png
Normal file
After Width: | Height: | Size: 731 B |
34
sprites/Player/clegg_fly.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bt2xuy2ihej2q"
|
||||
path="res://.godot/imported/clegg_fly.png-7a3ae7abd18b0a1d07fcb24b1df80211.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/Player/clegg_fly.png"
|
||||
dest_files=["res://.godot/imported/clegg_fly.png-7a3ae7abd18b0a1d07fcb24b1df80211.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/Player/clegg_walk1.png
Normal file
After Width: | Height: | Size: 732 B |
34
sprites/Player/clegg_walk1.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bce74ak1by42t"
|
||||
path="res://.godot/imported/clegg_walk1.png-04f69f62c344127763c8b8a4ffb880d2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/Player/clegg_walk1.png"
|
||||
dest_files=["res://.godot/imported/clegg_walk1.png-04f69f62c344127763c8b8a4ffb880d2.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/Player/clegg_walk2.png
Normal file
After Width: | Height: | Size: 732 B |
34
sprites/Player/clegg_walk2.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bvb5neqj421p"
|
||||
path="res://.godot/imported/clegg_walk2.png-3ae137705c65caea8386c5acdc77f85b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/Player/clegg_walk2.png"
|
||||
dest_files=["res://.godot/imported/clegg_walk2.png-3ae137705c65caea8386c5acdc77f85b.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/Player/fly.png
Normal file
After Width: | Height: | Size: 547 B |
34
sprites/Player/fly.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://vlerydf045be"
|
||||
path="res://.godot/imported/fly.png-7465252e024b41cbf1191f44c86e34e9.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/Player/fly.png"
|
||||
dest_files=["res://.godot/imported/fly.png-7465252e024b41cbf1191f44c86e34e9.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
|
32
sprites/Player/graze_particles.tscn
Normal file
|
@ -0,0 +1,32 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://ykg8dydq006a"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bdcxqp8royr5u" path="res://objects/scoreitem/scoreitem_particles.gd" id="1_s0vci"]
|
||||
[ext_resource type="AudioStream" uid="uid://bv6v7v5dtvoii" path="res://audio/sfx/graze.wav" id="2_55vho"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_aeam7"]
|
||||
offsets = PackedFloat32Array(0, 0.513333, 1)
|
||||
colors = PackedColorArray(0, 0.647059, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1)
|
||||
|
||||
[node name="CPUParticles2D" type="CPUParticles2D"]
|
||||
emitting = false
|
||||
amount = 24
|
||||
lifetime = 0.15
|
||||
one_shot = true
|
||||
speed_scale = 0.5
|
||||
explosiveness = 0.6
|
||||
randomness = 1.0
|
||||
lifetime_randomness = 1.0
|
||||
spread = 154.09
|
||||
gravity = Vector2(0, 630)
|
||||
initial_velocity_min = 251.99
|
||||
initial_velocity_max = 484.86
|
||||
scale_amount_min = 1.5
|
||||
scale_amount_max = 2.5
|
||||
color_ramp = SubResource("Gradient_aeam7")
|
||||
script = ExtResource("1_s0vci")
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource("2_55vho")
|
||||
autoplay = true
|
||||
|
||||
[connection signal="finished" from="." to="." method="_on_finished"]
|
BIN
sprites/Player/idle.png
Normal file
After Width: | Height: | Size: 684 B |
34
sprites/Player/idle.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dsdbecphufdey"
|
||||
path="res://.godot/imported/idle.png-9054bf32c1393a8346626db9ba7bc5c5.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/Player/idle.png"
|
||||
dest_files=["res://.godot/imported/idle.png-9054bf32c1393a8346626db9ba7bc5c5.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/Player/player.png
Normal file
After Width: | Height: | Size: 545 B |
34
sprites/Player/player.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b8ouukg7qluae"
|
||||
path="res://.godot/imported/player.png-19fbcaa9e04b2c92e31fc3f42fef7f03.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/Player/player.png"
|
||||
dest_files=["res://.godot/imported/player.png-19fbcaa9e04b2c92e31fc3f42fef7f03.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/Player/walk.png
Normal file
After Width: | Height: | Size: 659 B |
34
sprites/Player/walk.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dujk3or3g5t2d"
|
||||
path="res://.godot/imported/walk.png-0764d042f136ec81ae0a544baafde1ae.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/Player/walk.png"
|
||||
dest_files=["res://.godot/imported/walk.png-0764d042f136ec81ae0a544baafde1ae.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/particles/fire_particles.png
Normal file
After Width: | Height: | Size: 382 B |
34
sprites/particles/fire_particles.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cd68hj3p7r01q"
|
||||
path="res://.godot/imported/fire_particles.png-c65e9f3c38ed4f934213ea612b9b5d07.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/particles/fire_particles.png"
|
||||
dest_files=["res://.godot/imported/fire_particles.png-c65e9f3c38ed4f934213ea612b9b5d07.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/screw/0c575d08-e62d-4013-9e08-172d0662fcda.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dr1uub2l0vdh4"
|
||||
path="res://.godot/imported/0c575d08-e62d-4013-9e08-172d0662fcda.png-85bbaf533684bf5839e709a662631e8d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/screw/0c575d08-e62d-4013-9e08-172d0662fcda.png"
|
||||
dest_files=["res://.godot/imported/0c575d08-e62d-4013-9e08-172d0662fcda.png-85bbaf533684bf5839e709a662631e8d.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/screw/23b869e4-5707-44a8-8bbc-a788d5c71275.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://csqvymhme5h8t"
|
||||
path="res://.godot/imported/23b869e4-5707-44a8-8bbc-a788d5c71275.png-f890a92533200697f912ede7ddc1693f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/screw/23b869e4-5707-44a8-8bbc-a788d5c71275.png"
|
||||
dest_files=["res://.godot/imported/23b869e4-5707-44a8-8bbc-a788d5c71275.png-f890a92533200697f912ede7ddc1693f.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/screw/30656deb-ca75-4981-8198-ad555b89764a.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dutm1rklnb33t"
|
||||
path="res://.godot/imported/30656deb-ca75-4981-8198-ad555b89764a.png-25da34d1e9a235f3f352f5fddc5ff4d5.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/screw/30656deb-ca75-4981-8198-ad555b89764a.png"
|
||||
dest_files=["res://.godot/imported/30656deb-ca75-4981-8198-ad555b89764a.png-25da34d1e9a235f3f352f5fddc5ff4d5.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/screw/6ca66360-a47d-4690-88f8-b9c160416be3.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bptdaaemdeqt"
|
||||
path="res://.godot/imported/6ca66360-a47d-4690-88f8-b9c160416be3.png-531dd690299341ff7bb196737d82cc88.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/screw/6ca66360-a47d-4690-88f8-b9c160416be3.png"
|
||||
dest_files=["res://.godot/imported/6ca66360-a47d-4690-88f8-b9c160416be3.png-531dd690299341ff7bb196737d82cc88.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/screw/72235a50-452c-4104-a5b4-447ee5c42785.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dud5u6ojbsupr"
|
||||
path="res://.godot/imported/72235a50-452c-4104-a5b4-447ee5c42785.png-e0245cc2da48ccbb0f1cd9d05b1a1747.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/screw/72235a50-452c-4104-a5b4-447ee5c42785.png"
|
||||
dest_files=["res://.godot/imported/72235a50-452c-4104-a5b4-447ee5c42785.png-e0245cc2da48ccbb0f1cd9d05b1a1747.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/screw/c433a95b-a214-4bdd-b58e-8ef611c6be46.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cvuhonmcq21hk"
|
||||
path="res://.godot/imported/c433a95b-a214-4bdd-b58e-8ef611c6be46.png-e3e49a812eae468ab20f4b29deda1aab.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/screw/c433a95b-a214-4bdd-b58e-8ef611c6be46.png"
|
||||
dest_files=["res://.godot/imported/c433a95b-a214-4bdd-b58e-8ef611c6be46.png-e3e49a812eae468ab20f4b29deda1aab.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
tilesets/block.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
34
tilesets/block.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b460bcnqqpjum"
|
||||
path="res://.godot/imported/block.png-089e514f545622f39a3d5f4d0387ef86.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tilesets/block.png"
|
||||
dest_files=["res://.godot/imported/block.png-089e514f545622f39a3d5f4d0387ef86.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
|
15
tilesets/death.tres
Normal file
|
@ -0,0 +1,15 @@
|
|||
[gd_resource type="TileSet" load_steps=3 format=3 uid="uid://kdpofvscbp6m"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bjirp2g8mawch" path="res://spikes.png" id="1_mfmc3"]
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_0b4aj"]
|
||||
texture = ExtResource("1_mfmc3")
|
||||
texture_region_size = Vector2i(64, 64)
|
||||
0:0/0 = 0
|
||||
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 32, -32, 32, 32, -32, 32)
|
||||
|
||||
[resource]
|
||||
tile_size = Vector2i(64, 64)
|
||||
physics_layer_0/collision_layer = 1
|
||||
physics_layer_0/collision_mask = 8
|
||||
sources/0 = SubResource("TileSetAtlasSource_0b4aj")
|
38
tilesets/tile.tres
Normal file
|
@ -0,0 +1,38 @@
|
|||
[gd_resource type="TileSet" load_steps=5 format=3 uid="uid://cbvgfixmub3am"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://dla2vwxy8vmt8" path="res://block.png" id="1_br521"]
|
||||
[ext_resource type="Texture2D" uid="uid://b460bcnqqpjum" path="res://tilesets/block.png" id="2_5jwfb"]
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_5jwfb"]
|
||||
texture = ExtResource("1_br521")
|
||||
texture_region_size = Vector2i(64, 64)
|
||||
3:1/0 = 0
|
||||
3:0/0 = 0
|
||||
2:0/0 = 0
|
||||
0:0/0 = 0
|
||||
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 32, -32, 32, 32, -32, 32)
|
||||
1:1/0 = 0
|
||||
2:1/0 = 0
|
||||
3:2/0 = 0
|
||||
3:3/0 = 0
|
||||
2:3/0 = 0
|
||||
1:2/0 = 0
|
||||
0:1/0 = 0
|
||||
1:0/0 = 0
|
||||
2:2/0 = 0
|
||||
1:3/0 = 0
|
||||
0:3/0 = 0
|
||||
0:2/0 = 0
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_uehjq"]
|
||||
texture = ExtResource("2_5jwfb")
|
||||
texture_region_size = Vector2i(32, 32)
|
||||
0:0/0 = 0
|
||||
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
|
||||
[resource]
|
||||
tile_size = Vector2i(32, 32)
|
||||
physics_layer_0/collision_layer = 2
|
||||
physics_layer_0/collision_mask = 31
|
||||
sources/0 = SubResource("TileSetAtlasSource_5jwfb")
|
||||
sources/1 = SubResource("TileSetAtlasSource_uehjq")
|
13
ui/hud.gd
Normal file
|
@ -0,0 +1,13 @@
|
|||
extends Control
|
||||
|
||||
@onready var fuel_meter = $FuelMeter
|
||||
@onready var score_counter = $ScoreCounter
|
||||
@onready var multiplier_anims = $MultiplierAnims
|
||||
@onready var append_score_anims = $AppendScoreAnims
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
var player = get_owner().get_node("Player")
|
||||
fuel_meter.value = player.fuel
|
||||
score_counter.text = "SCORE " + str(GlobalStats.score)
|
||||
%ScoreMultiplier.text = str(snapped(GlobalStats.score_multiplier, 0.1)) + "x"
|
||||
%ScoreToAdd.text = str(GlobalStats.score_to_add)
|
1
ui/hud.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://c0bylwyhxlu28
|
205
ui/hud.tscn
Normal file
|
@ -0,0 +1,205 @@
|
|||
[gd_scene load_steps=8 format=3 uid="uid://by8rt0eurn0uh"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://c0bylwyhxlu28" path="res://ui/hud.gd" id="1_rbyyf"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_276te"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("ScoreMultiplier:theme_override_font_sizes/font_size")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [45]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_rbyyf"]
|
||||
resource_name = "multiplier_grow"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("ScoreMultiplier:theme_override_font_sizes/font_size")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.166667, 0.233333, 0.3),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [45, 55, 60, 55, 45]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_546lt"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_276te"),
|
||||
&"multiplier_grow": SubResource("Animation_rbyyf")
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_7ihmi"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("ScoreToAdd:theme_override_font_sizes/font_size")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [11]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("ScoreToAdd:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(35, 39)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("ScoreToAdd:scale")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1, 1)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("ScoreToAdd:rotation")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_546lt"]
|
||||
resource_name = "append_score"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("ScoreToAdd:theme_override_font_sizes/font_size")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.4),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [11, 31]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("ScoreToAdd:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.399396),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(35, 39), Vector2(136, 12)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("ScoreToAdd:scale")
|
||||
tracks/2/interp = 2
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.2, 0.4, 0.466667, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1, 1), Vector2(-1, -1), Vector2(1, 1), Vector2(1.1, 1.1), Vector2(1, 1)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("ScoreToAdd:rotation")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.4),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 6.28319]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_en2x2"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_7ihmi"),
|
||||
&"append_score": SubResource("Animation_546lt")
|
||||
}
|
||||
|
||||
[node name="Hud" type="Control" groups=["hud"]]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
scale = Vector2(0.5, 0.5)
|
||||
script = ExtResource("1_rbyyf")
|
||||
|
||||
[node name="FuelMeter" type="ProgressBar" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 14.0
|
||||
offset_top = 15.0
|
||||
offset_right = 46.0
|
||||
offset_bottom = 115.0
|
||||
value = 36.0
|
||||
fill_mode = 3
|
||||
|
||||
[node name="ScoreCounter" type="Label" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 76.0
|
||||
offset_top = 16.0
|
||||
offset_right = 127.0
|
||||
offset_bottom = 39.0
|
||||
text = "SCORE"
|
||||
|
||||
[node name="ScoreMultiplier" type="Label" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 0
|
||||
offset_left = 32.0
|
||||
offset_top = -17.0
|
||||
offset_right = 176.0
|
||||
offset_bottom = 126.0
|
||||
theme_override_font_sizes/font_size = 45
|
||||
text = "2.0X"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="ScoreToAdd" type="Label" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 0
|
||||
offset_left = 35.0
|
||||
offset_top = 39.0
|
||||
offset_right = 165.0
|
||||
offset_bottom = 122.0
|
||||
pivot_offset = Vector2(65, 49.5)
|
||||
theme_override_font_sizes/font_size = 11
|
||||
text = "1000"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="MultiplierAnims" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_546lt")
|
||||
}
|
||||
|
||||
[node name="AppendScoreAnims" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_en2x2")
|
||||
}
|
8
weapons/spread_shot.tscn
Normal file
|
@ -0,0 +1,8 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://cwumy5cb7aptn"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_74dyb"]
|
||||
script/source = "extends Node2D
|
||||
"
|
||||
|
||||
[node name="Weapon" type="Node2D"]
|
||||
script = SubResource("GDScript_74dyb")
|
25
weapons/spreadshot/spread_shot.tscn
Normal file
|
@ -0,0 +1,25 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://nipyx404f7rd"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cqqqblpc3j4hn" path="res://objects/player/player_bullet/player_bullet.tscn" id="1_qfcic"]
|
||||
|
||||
[node name="SpreadShot" type="Node2D"]
|
||||
|
||||
[node name="PlayerBullet" parent="." instance=ExtResource("1_qfcic")]
|
||||
speed = Vector2(300, 0)
|
||||
infinite_range = false
|
||||
|
||||
[node name="PlayerBullet4" parent="." instance=ExtResource("1_qfcic")]
|
||||
speed = Vector2(300, 150)
|
||||
infinite_range = false
|
||||
|
||||
[node name="PlayerBullet2" parent="." instance=ExtResource("1_qfcic")]
|
||||
speed = Vector2(300, 300)
|
||||
infinite_range = false
|
||||
|
||||
[node name="PlayerBullet5" parent="." instance=ExtResource("1_qfcic")]
|
||||
speed = Vector2(300, -150)
|
||||
infinite_range = false
|
||||
|
||||
[node name="PlayerBullet3" parent="." instance=ExtResource("1_qfcic")]
|
||||
speed = Vector2(300, -300)
|
||||
infinite_range = false
|