Compare commits

..

44 Commits
3.4 ... 3.x

Author SHA1 Message Date
Benjamin Navarro
fe1ccaea77 [3.x] Add a 2D version of the dynamic split screen demo (#762)
* add a 2D version of the dynamic split screen demo

* refactor the dynamic split screen demo

 - both 2D and 3D scenes have the exact same hierarchy
 - a single camera_controller.gd script instead of one per mode
 - the third viewport for 2D mode has been removed
2025-10-02 17:03:12 -07:00
Aaron Franke
ec368a812b [3.x] Simplify list of branches in the README (#1255) 2025-10-02 15:41:09 -07:00
Aaron Franke
0a826508da [3.x] Delete HTML5 export workflow 2025-10-02 14:39:52 -07:00
Aaron Franke
a2d63288fa [3.x] Update file formatting CI checks to Ubuntu 24.04 2025-10-02 14:39:01 -07:00
Hugo Locurcio
aae565b34a [3.x] Enable physics interpolation in all demos that use physics (#1069)
This also improves visuals in the Voxel and Dynamic Split Screen demos,
and fixes splitscreen mode in the Platformer 2D demo.

Most demos (other than physics tests) have also had their physics FPS
increased to 120. This is done consistency with 4.x, but also for the
benefits it still provides when interpolation are enabled
(lower input lag, more stable simulation).
2024-11-22 16:57:10 +01:00
Hugo Locurcio
d52d430af7 Add a 2D polygons and lines demo (#855) 2024-06-06 00:15:33 +02:00
Hugo Locurcio
bfcd81aa85 Fix file format checks 2023-05-10 02:57:43 +02:00
valentinas
cdffdc025f Remake art assets of the 2D Isometric Game demo 2023-05-10 02:51:20 +02:00
valentinas
ed3e2a1635 Remake art assets of the 2D Role Playing Game demo 2023-05-10 02:43:34 +02:00
valentinas
e292b09d9e Remake art assets of the 2D Grid-based Navigation with Astar demo 2023-05-10 02:30:57 +02:00
valentinas
c17d803a1b Remake art assets of the 2D platformer demo 2023-05-10 02:21:05 +02:00
Rémi Verschelde
c0180d20d1 Update README for new branches, matches Godot upstream 2023-02-28 18:32:32 +01:00
Rémi Verschelde
edee4413e3 CI: Run HTML5 export workflow on 3.x branch only 2023-02-28 17:36:23 +01:00
Rémi Verschelde
3a23fdbe6a Merge pull request #795 from Faless/ws/3.x_fix_disconnect
[3.x] [WebSocket] Fix peer disconnection not closing the network layer.
2023-02-28 16:48:34 +01:00
smix8
c8bb3b874a Rework basic 2D navigation demo for Godot 3.5 and later (#765)
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2023-02-24 23:41:40 +01:00
dev-gilbride
c8f0706055 Check for obstacle before teleporting player in Grid-based Pathfinding with Astar (#771)
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2023-02-24 18:22:48 +01:00
David Briscoe
ccc4354331 Convert 3D navmesh demo to use NavigationAgents (#806)
Co-authored-by: smix8 <52464204+smix8@users.noreply.github.com>
2023-02-24 17:57:50 +01:00
pseidemann
1849640ff8 opensimplexnoise: Fix persistence, tweak documentation URL and layout (#791) 2023-02-22 19:31:51 +01:00
Aaron Franke
3ae7f01a23 Merge pull request #837 from Vilcrow/pong-screen-size-stable
Fixed that the paddles can cross the floor if you run the "Pong" game in the i3 window manager.
2023-01-30 19:49:42 -06:00
S.V.I. Vilcrow
690dd395fd Fixed that the paddles can cross the floor if you run the "Pong" game in the i3 window manager. 2023-01-31 04:24:20 +03:00
Aaron Franke
f85f8b2b4d Merge pull request #831 from moth-boi/master
Fix bomb collisions through walls on 3.5
2023-01-24 17:51:58 -06:00
MotH
7ddaf29f8d Fix bomb collisions through walls 2023-01-24 22:22:15 +01:00
Aaron Franke
b626d3e628 Merge pull request #829 from aaronfranke/readme-post-9e68af3
Update multiple resolutions README with an asset library link
2023-01-23 18:09:44 -06:00
Aaron Franke
a39928fc55 Update multiple resolutions README with an asset library link 2023-01-23 18:06:07 -06:00
M o t H
9e68af38d9 Update projects to Godot 3.5 (#827) 2023-01-23 18:24:56 +01:00
Hugo Locurcio
4357b5b620 Improve 3D global illumination demo (3.x) (#759) 2023-01-17 21:42:16 +01:00
Drikus Roor
24519e58a8 Fix misleading comment in WebRTC Signaling (#812) 2023-01-06 23:09:14 +01:00
Heus-Sueh
219e37b592 Update 4.0 status to beta in the README (#804) 2022-12-10 22:52:00 +01:00
Fabio Alessandrelli
fe6f646c9d [WebSocket] Fix peer disconnection not closing the network layer.
We were removing it from the MultiplayerAPI but not immediately
destroying it (to avoid tricky in-signal de-referencing).
We still need to properly close the connection in this case if we want
the remote peer to be notified immediately.
2022-11-24 17:45:11 +01:00
Rémi Verschelde
06bdeb97dc Clarify that master here tracks 3.x upstream (#764) 2022-08-05 11:42:08 +02:00
Aaron Franke
b1f9f2da48 Merge pull request #720 from Calinou/2d-sprite-shaders-improve-appearance
Improve visual appearance in the 2D Sprite Shaders demo
2022-07-10 18:52:23 -05:00
Hugo Locurcio
d7c7e4ede3 Improve visual appearance in the 2D Sprite Shaders demo
- Scale the sprites up so they take a larger portion of the window.
- Enable mipmaps on the sprite to avoid artifacts at low resolutions.
2022-07-10 18:48:33 -05:00
Aaron Franke
0550497e60 Merge pull request #754 from HaywardMorihara/2d-platformer-pause-comment-update
Docs: 2D Platformer - Update Pause Mode Comments
2022-07-10 17:14:48 -05:00
HaywardMorihara
5c13d21260 Docs: 2D Platformer - Update Pause Mode Comments
I believe this comment got out-of-date (based on the fact that the `Stage` scene seems like something that was in an older version of the demo: 81441c42b7/2d/platformer/Stage.tscn), so updated the commment to reflect the current state of the demo, along with some other information that I thought a developer might find helpful.
2022-07-10 14:34:36 -04:00
Aaron Franke
2f60828e6e Merge pull request #750 from bend-n/patch-2
Fix typos in `webrct_signalling/README.md`
2022-06-15 00:34:54 -04:00
bendn
61d9e0f1ab Fix typos in webrct_signalling/README.md
number 2, fix of #749
2022-06-15 09:48:06 +07:00
Aaron Franke
cd72b05a7d Merge pull request #739 from voylin/FixGuiInputMappingPersistenceKeyMaps3.x
[3.x] GUI Input Mapping Demo Persistent Key Mapping- Fixes #629
2022-05-07 17:04:57 -05:00
Voylin
69758f2523 Fixes #629
Update gui/input_mapping/KeyPersistence.gd

Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
Update gui/input_mapping/KeyPersistence.gd

Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
Update gui/input_mapping/KeyPersistence.gd

Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
2022-05-08 06:55:30 +09:00
Aaron Franke
0f848370fe Merge pull request #729 from voylin/master
Including *.json files to fix #725
2022-05-01 19:13:15 -05:00
Voylin
4618c9b04e Including *.json files to fix #725
There is a problem with the automatically exported HTML5 demos. When they use json files for dialogue by example, as in the JRPG demo, the game gets errors as it can't load those specific *.json files.
Update export_presets.cfg
2022-05-02 09:07:14 +09:00
Aaron Franke
6ddead591a Merge pull request #721 from Calinou/add-multiple-resolutions-demo
Add a demo on supporting multiple resolutions and aspect ratios
2022-04-25 00:05:44 -04:00
Aaron Franke
6eec19b9af Merge pull request #723 from Calinou/multiplayer-pong-tweak-icon
Tweak Multiplayer Pong demo icons to be different from singleplayer
2022-04-19 19:11:56 -05:00
Hugo Locurcio
935e9bbc44 Tweak Multiplayer Pong demo icons to be different from singleplayer
This makes for easier visual grepping after importing all demos
in the project manager.
2022-04-20 00:52:58 +02:00
Hugo Locurcio
59d443e889 Add a demo on supporting multiple resolutions and aspect ratios
This demo intends to showcase what Godot can do in terms of supporting
multiple resolutions and aspect ratios.
2022-04-19 19:59:55 +02:00
675 changed files with 15236 additions and 2955 deletions

View File

@@ -5,7 +5,7 @@ platform="HTML5"
runnable=true
custom_features=""
export_filter="all_resources"
include_filter=""
include_filter="*.json"
exclude_filter=""
export_path=""
script_export_mode=1

View File

@@ -2,6 +2,7 @@ extends CanvasLayer
signal start_game
func show_message(text):
$MessageLabel.text = text
$MessageLabel.show()

View File

@@ -3,6 +3,7 @@ extends Node
export(PackedScene) var mob_scene
var score
func _ready():
randomize()
@@ -50,6 +51,7 @@ func _on_MobTimer_timeout():
# Spawn the mob by adding it to the Main scene.
add_child(mob)
func _on_ScoreTimer_timeout():
score += 1
$HUD.update_score(score)

View File

@@ -20,9 +20,6 @@ mob_scene = ExtResource( 2 )
anchor_right = 1.0
anchor_bottom = 1.0
color = Color( 0.219608, 0.372549, 0.380392, 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Player" parent="." instance=ExtResource( 3 )]

View File

@@ -1,5 +1,6 @@
extends RigidBody2D
func _ready():
$AnimatedSprite.playing = true
var mob_types = $AnimatedSprite.frames.get_animation_names()

View File

@@ -5,6 +5,7 @@ signal hit
export var speed = 400 # How fast the player will move (pixels/sec).
var screen_size # Size of the game window.
func _ready():
screen_size = get_viewport_rect().size
hide()

View File

@@ -17,5 +17,7 @@ force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=true
edit/loop=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

View File

@@ -49,9 +49,6 @@ __meta__ = {
[node name="Control" type="Control" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
__meta__ = {
"_edit_use_anchors_": false
}
[node name="StatesStackDiplayer" parent="Control" instance=ExtResource( 3 )]

View File

@@ -7,9 +7,6 @@ anchor_left = 1.0
anchor_right = 1.0
margin_left = -220.0
margin_bottom = 170.0
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Keys" type="Label" parent="."]
anchor_right = 1.0

View File

@@ -2,6 +2,7 @@ extends Panel
onready var fsm_node = get_node("../../Player/StateMachine")
func _process(_delta):
var states_names = ""
var numbers = ""

View File

@@ -104,6 +104,7 @@ position = Vector2( 110, 0 )
polygon = PoolVector2Array( -20, 0, -20, -20, 20, -20, 20, 0 )
[node name="StateNameDisplayer" type="Label" parent="."]
physics_interpolation_mode = 2
margin_left = -109.0
margin_top = -172.0
margin_right = 110.0
@@ -114,9 +115,6 @@ align = 1
valign = 1
uppercase = true
script = ExtResource( 15 )
__meta__ = {
"_edit_use_anchors_": false
}
[connection signal="state_changed" from="StateMachine" to="BodyPivot/WeaponPivot/Offset/Sword" method="_on_StateMachine_state_changed"]
[connection signal="state_changed" from="StateMachine" to="StateNameDisplayer" method="_on_StateMachine_state_changed"]

View File

@@ -5,6 +5,7 @@ export(float) var speed = 1000.0
onready var root = get_tree().root
func _ready():
set_as_toplevel(true)

View File

@@ -2,6 +2,7 @@ extends Node2D
var bullet = preload("Bullet.tscn")
func _unhandled_input(event):
if event.is_action_pressed("fire"):
fire()
@@ -13,6 +14,6 @@ func fire():
$CooldownTimer.start()
var new_bullet = bullet.instance()
add_child(new_bullet)
new_bullet.position = global_position
new_bullet.direction = owner.look_direction
add_child(new_bullet)

View File

@@ -7,6 +7,7 @@ signal direction_changed(new_direction)
var look_direction = Vector2.RIGHT setget set_look_direction
func take_damage(attacker, amount, effect = null):
if is_a_parent_of(attacker):
return

View File

@@ -6,6 +6,7 @@ onready var jump = $Jump
onready var stagger = $Stagger
onready var attack = $Attack
func _ready():
states_map = {
"idle": idle,

View File

@@ -1,5 +1,6 @@
extends "res://state_machine/state.gd"
func enter():
owner.get_node("AnimationPlayer").play("idle")

View File

@@ -3,6 +3,7 @@ extends "res://state_machine/state.gd"
# The animation only affects the Body Sprite's modulate property so it
# could stack with other animations if we had two AnimationPlayer nodes.
func enter():
owner.get_node("AnimationPlayer").play("stagger")

View File

@@ -2,6 +2,7 @@ extends Label
var start_position = Vector2()
func _ready():
start_position = rect_position

View File

@@ -1,5 +1,6 @@
extends "res://state_machine/state.gd"
# Initialize the state. E.g. change the animation.
func enter():
owner.set_dead(true)

View File

@@ -17,6 +17,7 @@ var horizontal_velocity = Vector2()
var vertical_speed = 0.0
var height = 0.0
func initialize(speed, velocity):
horizontal_speed = speed
if speed > 0.0:

View File

@@ -1,6 +1,7 @@
extends "res://state_machine/state.gd"
# Collection of important methods to handle direction and animation.
func handle_input(event):
if event.is_action_pressed("simulate_damage"):
emit_signal("finished", "stagger")

View File

@@ -1,5 +1,6 @@
extends "on_ground.gd"
func enter():
owner.get_node("AnimationPlayer").play("idle")

View File

@@ -1,7 +1,9 @@
extends "on_ground.gd"
export(float) var max_walk_speed = 450
export(float) var max_run_speed = 700
export(float) var max_walk_speed = 450.0
export(float) var max_run_speed = 700.0
func enter():
speed = 0.0

View File

@@ -4,6 +4,7 @@ extends "../motion.gd"
var speed = 0.0
var velocity = Vector2()
func handle_input(event):
if event.is_action_pressed("jump"):
emit_signal("finished", "jump")

View File

@@ -30,6 +30,7 @@ var combo = [{
var hit_objects = []
func _ready():
# warning-ignore:return_value_discarded
$AnimationPlayer.connect("animation_finished", self, "_on_animation_finished")

View File

@@ -2,6 +2,7 @@ extends Position2D
var z_index_start = 0
func _ready():
#warning-ignore:return_value_discarded
owner.connect("direction_changed", self, "_on_Parent_direction_changed")

View File

@@ -94,6 +94,10 @@ attack={
]
}
[physics]
common/physics_interpolation=true
[rendering]
quality/driver/driver_name="GLES2"

View File

@@ -6,6 +6,7 @@ extends Node
# warning-ignore:unused_signal
signal finished(next_state_name)
# Initialize the state. E.g. change the animation.
func enter():
pass

View File

@@ -17,6 +17,7 @@ var states_stack = []
var current_state = null
var _active = false setget set_active
func _ready():
if not start_state:
start_state = get_child(0).get_path()

View File

@@ -48,6 +48,7 @@ var brush_shape = BrushShapes.CIRCLE;
# in the _draw function for more details).
var bg_color = Color.white
func _ready():
# Get the top left position node. We need this to find out whether or not the mouse is inside the canvas.
TL_node = get_node("TLPos")

View File

@@ -215,8 +215,7 @@ text = "Clear picture"
[node name="SaveFileDialog" type="FileDialog" parent="."]
margin_right = 600.0
margin_bottom = 400.0
rect_min_size = Vector2( 300, 105 )
resizable = true
access = 2
filters = PoolStringArray( "*.png" )
current_dir = "/home/aaronfranke/workspace/godot-demo-projects/2d/gd_paint"
current_path = "/home/aaronfranke/workspace/godot-demo-projects/2d/gd_paint/"

View File

@@ -10,6 +10,7 @@ onready var _parent = get_parent()
onready var save_dialog = _parent.get_node(@"SaveFileDialog")
onready var paint_control = _parent.get_node(@"PaintControl")
func _ready():
# warning-ignore-all:return_value_discarded
# Assign all of the needed signals for the oppersation buttons.

View File

@@ -4,6 +4,7 @@ const CAVE_LIMIT = 1000
onready var cave = $Cave
func _unhandled_input(event):
if event is InputEventMouseMotion and event.button_mask > 0:
var rel_x = event.relative.x

View File

@@ -60,6 +60,11 @@ move_up={
]
}
[physics]
common/physics_fps=120
common/physics_interpolation=true
[rendering]
quality/driver/driver_name="GLES2"

View File

@@ -3,6 +3,7 @@ extends KinematicBody2D
const MOTION_SPEED = 160 # Pixels/second.
const TAN30DEG = tan(deg2rad(30))
func _physics_process(_delta):
var motion = Vector2()
motion.x = Input.get_action_strength("move_right") - Input.get_action_strength("move_left")

View File

@@ -18,3 +18,4 @@ shape = SubResource( 1 )
[node name="Camera2D" type="Camera2D" parent="."]
current = true
process_mode = 0

View File

@@ -2,6 +2,7 @@ extends Node2D
export(PackedScene) var ball_scene = preload("res://ball.tscn")
func _unhandled_input(event):
if event.is_echo():
return

View File

@@ -29,7 +29,9 @@ singletons=[ ]
[physics]
common/physics_fps=120
2d/default_gravity=300
common/physics_interpolation=true
[rendering]

View File

@@ -90,3 +90,4 @@ physics_material_override = SubResource( 10 )
[node name="Camera2D" type="Camera2D" parent="."]
offset = Vector2( 400, 300 )
current = true
process_mode = 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/banner.png-45264389ab2131df9b78c5ec3b246773.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/banner.png"
dest_files=[ "res://.import/banner.png-45264389ab2131df9b78c5ec3b246773.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/bone_pile_1.png-72c582c4f31012bb8009120719983b0c.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/bone_pile_1.png"
dest_files=[ "res://.import/bone_pile_1.png-72c582c4f31012bb8009120719983b0c.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@@ -0,0 +1,20 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://decorations/bone_pile_1.png" type="Texture" id=1]
[sub_resource type="CapsuleShape2D" id=1]
radius = 18.0
height = 28.0
[node name="bone_pile" type="Node2D"]
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="Sprite" type="Sprite" parent="StaticBody2D"]
position = Vector2( 0, -14 )
texture = ExtResource( 1 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
position = Vector2( 0, -15 )
rotation = 1.5708
shape = SubResource( 1 )

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/bone_pile_2.png-f448133711e0ebea56f9e49e956ac902.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/bone_pile_2.png"
dest_files=[ "res://.import/bone_pile_2.png-f448133711e0ebea56f9e49e956ac902.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@@ -0,0 +1,20 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://decorations/bone_pile_2.png" type="Texture" id=1]
[sub_resource type="CapsuleShape2D" id=1]
radius = 13.0
height = 26.0001
[node name="bone_pile" type="Node2D"]
[node name="Sprite" type="Sprite" parent="."]
position = Vector2( 0, -13 )
texture = ExtResource( 1 )
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
position = Vector2( 0, -13 )
rotation = 1.5708
shape = SubResource( 1 )

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/candle.png-223de51ae9e8ec99121079382498836e.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/candle.png"
dest_files=[ "res://.import/candle.png-223de51ae9e8ec99121079382498836e.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@@ -0,0 +1,131 @@
[gd_scene load_steps=14 format=2]
[ext_resource path="res://decorations/sparkle.png" type="Texture" id=1]
[ext_resource path="res://decorations/candle.png" type="Texture" id=2]
[ext_resource path="res://decorations/fire.png" type="Texture" id=3]
[ext_resource path="res://decorations/glow.png" type="Texture" id=4]
[sub_resource type="CanvasItemMaterial" id=1]
particles_animation = true
particles_anim_h_frames = 11
particles_anim_v_frames = 1
particles_anim_loop = false
[sub_resource type="Gradient" id=2]
offsets = PoolRealArray( 0, 0.625698, 1 )
colors = PoolColorArray( 1, 0.584314, 0, 1, 1, 0.84063, 0.226563, 1, 1, 0.584314, 0, 1 )
[sub_resource type="CanvasItemMaterial" id=3]
blend_mode = 1
particles_animation = true
particles_anim_h_frames = 8
particles_anim_v_frames = 1
particles_anim_loop = false
[sub_resource type="Curve" id=4]
max_value = 0.3
_data = [ Vector2( 0, 0 ), 0.0, 1.36377, 0, 0, Vector2( 0.262376, 0.188182 ), 0.41974, 0.41974, 0, 0, Vector2( 1, 0.0295454 ), -1.06101, 0.0, 0, 0 ]
[sub_resource type="Gradient" id=5]
offsets = PoolRealArray( 0, 0.435754, 1 )
colors = PoolColorArray( 1, 0.351563, 0, 1, 0.895996, 0.745333, 0.230999, 1, 1, 0.426842, 0.0234375, 1 )
[sub_resource type="Gradient" id=12]
offsets = PoolRealArray( 0, 0.100559, 0.234637, 0.480447, 0.603352, 1 )
colors = PoolColorArray( 0.714844, 0.714844, 0.714844, 1, 0.382813, 0.382813, 0.382813, 1, 0.601563, 0.601563, 0.601563, 1, 0.229687, 0.229687, 0.229687, 1, 0.0197581, 0.0197581, 0.0197581, 1, 0, 0, 0, 1 )
[sub_resource type="GradientTexture2D" id=9]
gradient = SubResource( 12 )
width = 128
height = 128
fill = 1
fill_from = Vector2( 0.5, 0.5 )
fill_to = Vector2( 0, 0 )
[sub_resource type="Gradient" id=13]
offsets = PoolRealArray( 0.0111732, 0.843575 )
colors = PoolColorArray( 0.648926, 0.648926, 0.648926, 1, 0, 0, 0, 1 )
[sub_resource type="GradientTexture2D" id=10]
gradient = SubResource( 13 )
width = 800
height = 500
fill = 1
fill_from = Vector2( 0.5, 0.5 )
[node name="Node2D" type="Node2D"]
[node name="Sprite" type="Sprite" parent="."]
light_mask = 128
position = Vector2( 0, -11 )
texture = ExtResource( 2 )
[node name="glow" type="CPUParticles2D" parent="Sprite"]
modulate = Color( 1, 0.360784, 0.113725, 1 )
light_mask = 128
position = Vector2( -13, -33.244 )
scale = Vector2( 0.3, 0.5 )
amount = 1
lifetime = 0.8
texture = ExtResource( 4 )
gravity = Vector2( 0, 0 )
[node name="Fire" type="CPUParticles2D" parent="Sprite"]
light_mask = 128
material = SubResource( 1 )
position = Vector2( -13, -35 )
scale = Vector2( 0.6, 0.6 )
amount = 1
lifetime = 0.8
texture = ExtResource( 3 )
gravity = Vector2( 0, 0 )
color_ramp = SubResource( 2 )
anim_speed = 1.0
[node name="Sparkle" type="CPUParticles2D" parent="Sprite"]
light_mask = 128
material = SubResource( 3 )
position = Vector2( -13, -35 )
scale = Vector2( 0.6, 0.6 )
amount = 3
texture = ExtResource( 1 )
emission_shape = 1
emission_sphere_radius = 8.0
gravity = Vector2( 0, -80 )
angular_velocity = 1.0
tangential_accel = 49.54
scale_amount_curve = SubResource( 4 )
color_ramp = SubResource( 5 )
anim_speed = 1.0
[node name="flow front" type="CPUParticles2D" parent="Sprite"]
modulate = Color( 0.94902, 1, 0, 1 )
light_mask = 128
position = Vector2( -13, -28.689 )
scale = Vector2( 0.25, 0.25 )
amount = 1
lifetime = 0.8
texture = ExtResource( 4 )
gravity = Vector2( 0, 0 )
[node name="Light2D2" type="Light2D" parent="."]
light_mask = 2
position = Vector2( -15, -49 )
texture = SubResource( 9 )
color = Color( 1, 0.466667, 0.0352941, 1 )
energy = 2.0
range_height = 450.9
range_item_cull_mask = 145
shadow_buffer_size = 512
shadow_gradient_length = 30.0
shadow_item_cull_mask = 145
[node name="Light2D" type="Light2D" parent="."]
light_mask = 2
texture = SubResource( 10 )
color = Color( 0.709804, 0.388235, 0.313726, 1 )
range_height = 901.9
range_item_cull_mask = 17
shadow_enabled = true
shadow_gradient_length = 20.0
shadow_item_cull_mask = 17

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/coin_pile.png-e6c4ef8bf22301fe805244aafb152afe.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/coin_pile.png"
dest_files=[ "res://.import/coin_pile.png-e6c4ef8bf22301fe805244aafb152afe.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@@ -0,0 +1,20 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://decorations/coin_pile.png" type="Texture" id=1]
[sub_resource type="CapsuleShape2D" id=1]
radius = 12.0
height = 38.0
[node name="coin_pile" type="Node2D"]
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="Sprite" type="Sprite" parent="StaticBody2D"]
position = Vector2( 0, -23 )
texture = ExtResource( 1 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
position = Vector2( 0, -13 )
rotation = 1.5708
shape = SubResource( 1 )

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/crow_looking.png-21ce662085fe50bb572e6cecb19ea02a.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/crow_looking.png"
dest_files=[ "res://.import/crow_looking.png-21ce662085fe50bb572e6cecb19ea02a.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/crow_sleep.png-8118ad8761e95d588250a6deae9ca9c0.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/crow_sleep.png"
dest_files=[ "res://.import/crow_sleep.png-8118ad8761e95d588250a6deae9ca9c0.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/drape_1.png-4cc207f7e61e16248cb4322ecca80e49.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/drape_1.png"
dest_files=[ "res://.import/drape_1.png-4cc207f7e61e16248cb4322ecca80e49.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -2,15 +2,15 @@
importer="texture"
type="StreamTexture"
path="res://.import/isotiles.png-502434fe0d6c3fd8ce67cea5a960c208.stex"
path="res://.import/fire.png-3d46874d6317d8fad2d37ee8071d140d.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://isotiles.png"
dest_files=[ "res://.import/isotiles.png-502434fe0d6c3fd8ce67cea5a960c208.stex" ]
source_file="res://decorations/fire.png"
dest_files=[ "res://.import/fire.png-3d46874d6317d8fad2d37ee8071d140d.stex" ]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/glow.png-412cb028114e1a11dcd8adb3e27078d4.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/glow.png"
dest_files=[ "res://.import/glow.png-412cb028114e1a11dcd8adb3e27078d4.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@@ -0,0 +1,9 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://decorations/shadow_gradient.png" type="Texture" id=1]
[node name="InternalShadow" type="Polygon2D"]
color = Color( 0.0705882, 0.0705882, 0.266667, 0.85098 )
texture = ExtResource( 1 )
polygon = PoolVector2Array( -92, -289, -94, 1, 128, -1, 121, -295 )
uv = PoolVector2Array( -2, -1, -2, 292, 264, 291, 261, -2 )

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/paw_prints.png-f99788aaeccec00607d299cbda1deba3.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/paw_prints.png"
dest_files=[ "res://.import/paw_prints.png-f99788aaeccec00607d299cbda1deba3.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/rug_1.png-73bb18740fb0416ff279c3e2e040e1e3.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/rug_1.png"
dest_files=[ "res://.import/rug_1.png-73bb18740fb0416ff279c3e2e040e1e3.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/shadow_gradient.png-ada77e271da2569a07ee8c308bf8f891.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/shadow_gradient.png"
dest_files=[ "res://.import/shadow_gradient.png-ada77e271da2569a07ee8c308bf8f891.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/sparkle.png-19a635cf744f1090fe6b7df22aa07aa4.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/sparkle.png"
dest_files=[ "res://.import/sparkle.png-19a635cf744f1090fe6b7df22aa07aa4.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/vase_1.png-926d438e092a6711354055578c6046bd.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/vase_1.png"
dest_files=[ "res://.import/vase_1.png-926d438e092a6711354055578c6046bd.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@@ -0,0 +1,19 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://decorations/vase_1.png" type="Texture" id=1]
[sub_resource type="CapsuleShape2D" id=1]
radius = 9.0
[node name="Vase1" type="Node2D"]
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="Sprite" type="Sprite" parent="StaticBody2D"]
position = Vector2( 0, -29 )
texture = ExtResource( 1 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
position = Vector2( 0, -9 )
rotation = 1.5708
shape = SubResource( 1 )

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/vase_2.png-d6cca4a3647dd9b8a230cb201e6f4d32.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/vase_2.png"
dest_files=[ "res://.import/vase_2.png-d6cca4a3647dd9b8a230cb201e6f4d32.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@@ -0,0 +1,20 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://decorations/vase_2.png" type="Texture" id=1]
[sub_resource type="CapsuleShape2D" id=1]
radius = 9.0
height = 18.0
[node name="vase2" type="Node2D"]
[node name="Area2D" type="StaticBody2D" parent="."]
[node name="Sprite" type="Sprite" parent="Area2D"]
position = Vector2( 0, -20 )
texture = ExtResource( 1 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
position = Vector2( 0, -8 )
rotation = 1.5708
shape = SubResource( 1 )

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/wall_skull.png-b65fc438ee51c09cef1ea57aa5c7d6b2.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://decorations/wall_skull.png"
dest_files=[ "res://.import/wall_skull.png-b65fc438ee51c09cef1ea57aa5c7d6b2.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

View File

@@ -0,0 +1,54 @@
extends KinematicBody2D
const MOTION_SPEED = 160 # Pixels/second.
var last_direction = Vector2(1, 0)
var anim_directions = {
"idle": [ # list of [animation name, horizontal flip]
["side_right_idle", false],
["45front_right_idle", false],
["front_idle", false],
["45front_left_idle", false],
["side_left_idle", false],
["45back_left_idle", false],
["back_idle", false],
["45back_right_idle", false],
],
"walk": [
["side_right_walk", false],
["45front_right_walk", false],
["front_walk", false],
["45front_left_walk", false],
["side_left_walk", false],
["45back_left_walk", false],
["back_walk", false],
["45back_right_walk", false],
],
}
func _physics_process(_delta):
var motion = Vector2()
motion.x = Input.get_action_strength("move_right") - Input.get_action_strength("move_left")
motion.y = Input.get_action_strength("move_down") - Input.get_action_strength("move_up")
motion.y /= 2
motion = motion.normalized() * MOTION_SPEED
#warning-ignore:return_value_discarded
var dir = move_and_slide(motion)
if dir.length() > 0:
last_direction = dir
update_animation("walk")
else:
update_animation("idle")
func update_animation(anim_set):
var angle = rad2deg(last_direction.angle()) + 22.5
var slice_dir = floor(angle / 45)
$Sprite.set_animation(anim_directions[anim_set][slice_dir][0])
$Sprite.flip_h = anim_directions[anim_set][slice_dir][1]

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/goblin.png-32452b37152c86975cc3bde34afb02b5.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://player/goblin.png"
dest_files=[ "res://.import/goblin.png-32452b37152c86975cc3bde34afb02b5.stex" ]
[params]
compress/mode=0
compress/lossy_quality=1.0
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

File diff suppressed because it is too large Load Diff

View File

@@ -68,6 +68,11 @@ move_up={
]
}
[physics]
common/physics_fps=120
common/physics_interpolation=true
[rasterizer]
use_pixel_snap=true

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/isotiles.png-525cf6639aba62989bb423b9cdb9e1f3.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://tileset/isotiles.png"
dest_files=[ "res://.import/isotiles.png-525cf6639aba62989bb423b9cdb9e1f3.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@@ -1,15 +1,15 @@
[gd_resource type="TileSet" load_steps=5 format=2]
[ext_resource path="res://isotiles.png" type="Texture" id=1]
[ext_resource path="res://tileset/isotiles.png" type="Texture" id=1]
[sub_resource type="ConvexPolygonShape2D" id=1]
points = PoolVector2Array( 0, -32, 64, 0, 0, 32, -64, 0 )
points = PoolVector2Array( 68, 68, 132, 100, 68, 132, 4, 100 )
[sub_resource type="ConvexPolygonShape2D" id=2]
points = PoolVector2Array( -24, -12, -10, -22, 10, -22, 24, -12, 24, 2, 10, 12, -10, 12, -24, 2 )
points = PoolVector2Array( 5, 67, 17, 59, 41, 59, 53, 67, 53, 83, 41, 91, 21, 91, 5, 83 )
[sub_resource type="ConvexPolygonShape2D" id=3]
points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
points = PoolVector2Array( 2, 86, 82, 46, 82, 70, 2, 110 )
[resource]
0/name = "Base"
@@ -46,10 +46,10 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
2/modulate = Color( 1, 1, 1, 1 )
2/region = Rect2( 28, 220, 140, 140 )
2/tile_mode = 0
2/occluder_offset = Vector2( 70, 70 )
2/navigation_offset = Vector2( 70, 70 )
2/shape_offset = Vector2( 70, 70 )
2/shape_transform = Transform2D( 1, 0, 0, 1, 70, 70 )
2/occluder_offset = Vector2( 0, 0 )
2/navigation_offset = Vector2( 0, 0 )
2/shape_offset = Vector2( 0, 0 )
2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
2/shape = SubResource( 1 )
2/shape_one_way = false
2/shape_one_way_margin = 1.0
@@ -58,7 +58,7 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 1 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 70, 70 )
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
2/z_index = 0
3/name = "Column"
@@ -67,10 +67,10 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
3/modulate = Color( 1, 1, 1, 1 )
3/region = Rect2( 259, 241, 55, 95 )
3/tile_mode = 0
3/occluder_offset = Vector2( 27.5, 47.5 )
3/navigation_offset = Vector2( 27.5, 47.5 )
3/shape_offset = Vector2( 29.5, 47.5 )
3/shape_transform = Transform2D( 1, 0, 0, 1, 29.5, 47.5 )
3/occluder_offset = Vector2( 0, 0 )
3/navigation_offset = Vector2( 0, 0 )
3/shape_offset = Vector2( 0, 0 )
3/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
3/shape = SubResource( 2 )
3/shape_one_way = false
3/shape_one_way_margin = 1.0
@@ -79,7 +79,7 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 2 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 29.5, 47.5 )
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
3/z_index = 0
4/name = "Door1"
@@ -88,10 +88,10 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
4/modulate = Color( 1, 1, 1, 1 )
4/region = Rect2( 54, 426, 85, 110 )
4/tile_mode = 0
4/occluder_offset = Vector2( 42.5, 55 )
4/navigation_offset = Vector2( 42.5, 55 )
4/shape_offset = Vector2( 42.5, 55 )
4/shape_transform = Transform2D( 1, 0, 0, 1, 42.5, 55 )
4/occluder_offset = Vector2( 0, 0 )
4/navigation_offset = Vector2( 0, 0 )
4/shape_offset = Vector2( 0, 0 )
4/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
4/shape = SubResource( 3 )
4/shape_one_way = false
4/shape_one_way_margin = 1.0
@@ -100,6 +100,6 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 3 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 42.5, 55 )
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
4/z_index = 0

View File

@@ -1,6 +1,9 @@
[gd_scene load_steps=2 format=2]
[gd_scene load_steps=3 format=2]
[ext_resource path="res://isotiles.png" type="Texture" id=1]
[ext_resource path="res://tileset/isotiles.png" type="Texture" id=1]
[sub_resource type="OccluderPolygon2D" id=2]
polygon = PoolVector2Array( 0, -100, -67, -68, -66, 0, -1, 33, 66, -2, 64, -67 )
[node name="TilesetEdit" type="Node2D"]
@@ -27,6 +30,10 @@ region_rect = Rect2( 28, 220, 140, 140 )
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Wall/StaticBody2D"]
polygon = PoolVector2Array( -64, 0, 0, 32, 64, 0, 0, -32 )
[node name="LightOccluder2D" type="LightOccluder2D" parent="Wall"]
visible = false
occluder = SubResource( 2 )
[node name="Column" type="Sprite" parent="."]
position = Vector2( 600, 0 )
texture = ExtResource( 1 )
@@ -38,7 +45,7 @@ region_rect = Rect2( 259, 241, 55, 95 )
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Column/StaticBody2D"]
position = Vector2( 2, 0 )
polygon = PoolVector2Array( -24, 2, -10, 12, 10, 12, 24, 2, 24, -12, 10, -22, -10, -22, -24, -12 )
polygon = PoolVector2Array( -27, 7, -14, 20, 16, 20, 28, 4, 24, -12, 10, -22, -10, -22, -24, -12 )
[node name="Door1" type="Sprite" parent="."]
position = Vector2( 800, 0 )

View File

@@ -1,12 +0,0 @@
extends KinematicBody2D
const MOTION_SPEED = 160 # Pixels/second.
func _physics_process(_delta):
var motion = Vector2()
motion.x = Input.get_action_strength("move_right") - Input.get_action_strength("move_left")
motion.y = Input.get_action_strength("move_down") - Input.get_action_strength("move_up")
motion.y /= 2
motion = motion.normalized() * MOTION_SPEED
#warning-ignore:return_value_discarded
move_and_slide(motion)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

View File

@@ -1,20 +0,0 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://troll.gd" type="Script" id=1]
[ext_resource path="res://troll.png" type="Texture" id=2]
[sub_resource type="CircleShape2D" id=1]
radius = 16.0
[node name="Troll" type="KinematicBody2D"]
script = ExtResource( 1 )
[node name="Sprite" type="Sprite" parent="."]
position = Vector2( -4, -28 )
texture = ExtResource( 2 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource( 1 )
[node name="Camera2D" type="Camera2D" parent="."]
current = true

View File

@@ -1,5 +1,6 @@
extends Node
func _on_body_entered(body):
if body.name == "Player":
$"../WinText".show()

View File

@@ -9,6 +9,7 @@ var velocity = Vector2()
onready var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
func _physics_process(delta):
# Horizontal movement code. First, get the player's input.
var walk = WALK_FORCE * (Input.get_action_strength("move_right") - Input.get_action_strength("move_left"))

View File

@@ -66,7 +66,9 @@ multithread/thread_rid_pool_prealloc=60
[physics]
common/physics_fps=120
2d/default_gravity=500
common/physics_interpolation=true
[rendering]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=19 format=2]
[gd_scene load_steps=20 format=2]
[ext_resource path="res://level/obstacle.png" type="Texture" id=2]
[ext_resource path="res://player/player.tscn" type="PackedScene" id=3]
@@ -36,6 +36,21 @@ extents = Vector2( 8, 8 )
[sub_resource type="RectangleShape2D" id=3]
extents = Vector2( 8, 8 )
[sub_resource type="Animation" id=13]
resource_name = "RESET"
tracks/0/type = "value"
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 184, 152 ) ]
}
[sub_resource type="Animation" id=4]
length = 10.0
loop = true
@@ -52,10 +67,8 @@ tracks/0/keys = {
"values": [ Vector2( 184, 152 ), Vector2( 184, 152 ), Vector2( 328.086, 152 ), Vector2( 328.086, 152 ) ]
}
[sub_resource type="Animation" id=5]
resource_name = "leftright"
length = 10.0
loop = true
[sub_resource type="Animation" id=14]
resource_name = "RESET"
tracks/0/type = "value"
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
@@ -63,10 +76,10 @@ tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 1, 5, 6 ),
"transitions": PoolRealArray( 1, 1, 1, 1 ),
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 184, 152 ), Vector2( 184, 152 ), Vector2( 328.086, 152 ), Vector2( 328.086, 152 ) ]
"values": [ Vector2( 88.3493, 296 ) ]
}
[sub_resource type="Animation" id=6]
@@ -128,7 +141,7 @@ tile_data = PoolIntArray( -720908, 0, 0, -720907, 0, 0, -720906, 0, 0, -720905,
position = Vector2( 233.06, 223.436 )
[node name="MovingPlatform1" type="KinematicBody2D" parent="."]
position = Vector2( 274.142, 152 )
position = Vector2( 184, 152 )
[node name="Collision" type="CollisionShape2D" parent="MovingPlatform1"]
shape = SubResource( 3 )
@@ -139,10 +152,11 @@ texture = ExtResource( 2 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="MovingPlatform1"]
autoplay = "leftright"
playback_process_mode = 0
anims/RESET = SubResource( 13 )
anims/leftright = SubResource( 4 )
[node name="MovingPlatform2" type="KinematicBody2D" parent="."]
position = Vector2( 88.3493, 284.689 )
position = Vector2( 88.3493, 296 )
[node name="Collision" type="CollisionShape2D" parent="MovingPlatform2"]
shape = SubResource( 3 )
@@ -153,7 +167,7 @@ texture = ExtResource( 2 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="MovingPlatform2"]
autoplay = "updown"
playback_process_mode = 0
anims/leftright = SubResource( 5 )
anims/RESET = SubResource( 14 )
anims/updown = SubResource( 6 )
[node name="Princess" type="Area2D" parent="."]
@@ -266,5 +280,6 @@ shape = SubResource( 12 )
[node name="Camera2D" type="Camera2D" parent="."]
offset = Vector2( 265, 247 )
current = true
process_mode = 0
[connection signal="body_entered" from="Princess" to="Princess" method="_on_body_entered"]

Some files were not shown because too many files have changed in this diff Show More