Movement and collisions

This commit is contained in:
Andus 2024-03-17 13:43:20 +01:00
parent 53f7f067f7
commit 786882d6bb
45 changed files with 668 additions and 0 deletions

1
.import/.gdignore Normal file
View file

@ -0,0 +1 @@

View file

@ -0,0 +1,3 @@
source_md5="01b82236558e386d91139a12bb1b0bd2"
dest_md5="374c9532333188639722c92100d06ed0"

Binary file not shown.

View file

@ -0,0 +1,3 @@
source_md5="3601380289b44bf0c3d610558a19552b"
dest_md5="d5db2da375448d3d8b5f84fc6e1e5446"

Binary file not shown.

View file

@ -0,0 +1,3 @@
source_md5="3196a70615a1d1f1c96fca3d269ddeff"
dest_md5="4c22a8d7c72569ce9d922ab1d5c3ab8e"

View file

@ -0,0 +1,3 @@
source_md5="47313fa4c47a9963fddd764e1ec6e4a8"
dest_md5="26ea799ea0a3da9e753b3ebe822e0570"

Binary file not shown.

View file

@ -0,0 +1,3 @@
source_md5="3601380289b44bf0c3d610558a19552b"
dest_md5="d5db2da375448d3d8b5f84fc6e1e5446"

Binary file not shown.

View file

@ -0,0 +1,3 @@
source_md5="3601380289b44bf0c3d610558a19552b"
dest_md5="d5db2da375448d3d8b5f84fc6e1e5446"

Binary file not shown.

View file

@ -0,0 +1,3 @@
source_md5="27a08f1607d70c953a7f2811f230feeb"
dest_md5="11a651026126c81c51c3e20449d13abc"

View file

@ -0,0 +1,3 @@
source_md5="786df1e827e0daa922dd80b358441449"
dest_md5="ae48fa74b7c5f461209807a32170d747"

View file

@ -0,0 +1,3 @@
source_md5="6149bf306a9573d48c57194cf74c8424"
dest_md5="263a74b452379a311200d0d03d63ff4d"

View file

@ -0,0 +1,3 @@
source_md5="71d3267c4645cb69b8887e17e8bea9bc"
dest_md5="721e5f3eabfa7a6613ea8ecba79d23cf"

Binary file not shown.

39
Scenes/Game.tscn Normal file

File diff suppressed because one or more lines are too long

55
Scenes/Player.tscn Normal file
View file

@ -0,0 +1,55 @@
[gd_scene load_steps=6 format=2]
[ext_resource path="res://Sprites/player.png" type="Texture" id=1]
[ext_resource path="res://Scripts/Player.gd" type="Script" id=2]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 5, 10.2143 )
[sub_resource type="Animation" id=2]
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath("Sprite:rotation_degrees")
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": [ 0.0 ]
}
[sub_resource type="Animation" id=3]
resource_name = "Walk"
length = 0.8
loop = true
tracks/0/type = "value"
tracks/0/path = NodePath("Sprite:rotation_degrees")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 0,
"values": [ 0.0, 12.5, 25.0, 12.5, 0.0, -12.5, -25.0, -12.5 ]
}
[node name="Player" type="KinematicBody2D"]
scale = Vector2( 0.35, 0.35 )
script = ExtResource( 2 )
[node name="Sprite" type="Sprite" parent="."]
texture = ExtResource( 1 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2( 0, 1.64286 )
scale = Vector2( 1, 1 )
shape = SubResource( 1 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/RESET = SubResource( 2 )
anims/Walk = SubResource( 3 )

View file

@ -0,0 +1,21 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://Sprites/Water/Jug.png" type="Texture" id=1]
[ext_resource path="res://Scripts/WaterThing.gd" type="Script" id=2]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 5, 6 )
[node name="Jug" type="Area2D"]
scale = Vector2( 0.5, 0.5 )
script = ExtResource( 2 )
[node name="Sprite" type="Sprite" parent="."]
texture = ExtResource( 1 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2( 1, 0 )
shape = SubResource( 1 )
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
[connection signal="body_exited" from="." to="." method="_on_body_exited"]

27
Scripts/Player.gd Normal file
View file

@ -0,0 +1,27 @@
extends KinematicBody2D
var speed = 35;
var velocity = Vector2()
func _ready():
pass
func _physics_process(delta):
velocity = Vector2()
if Input.is_action_pressed("down"):
velocity.y += speed
if Input.is_action_pressed("up"):
velocity.y -= speed
if Input.is_action_pressed("left"):
velocity.x -= speed
if Input.is_action_pressed("right"):
velocity.x += speed
if Input.is_action_pressed("right") || Input.is_action_pressed("left") \
|| Input.is_action_pressed("up") || Input.is_action_pressed("down"):
$AnimationPlayer.play("Walk")
else:
$AnimationPlayer.stop()
move_and_slide(velocity)

33
Scripts/WaterThing.gd Normal file
View file

@ -0,0 +1,33 @@
extends Area2D
var broken = false
var hits_left = 2
var player = false
var player_body = null
func replace_numbers(name: String) -> String:
var new_name = name
for i in range(10):
new_name = new_name.replace(str(i), "")
return new_name
func _on_body_entered(body):
if body.name == "Player" and !broken:
player = true
player_body = body
func _on_body_exited(body):
if body.name == "Player" and !broken:
player = false
player_body = null
func _process(delta):
if player && player_body != null:
if Input.is_action_just_pressed("punch"):
if hits_left > 0:
hits_left -= 1
if hits_left == 0 && broken == false:
$Sprite.texture = load("res://Sprites/Water/Broken/" + replace_numbers(name) + ".png")
player_body.scale += Vector2(0.05, 0.05)
broken = true

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 B

View file

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

BIN
Sprites/Water/Jug.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

View file

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

BIN
Sprites/floor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

35
Sprites/floor.png.import Normal file
View file

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

BIN
Sprites/kitchenfloor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

View file

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

BIN
Sprites/player.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

35
Sprites/player.png.import Normal file
View file

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

BIN
Sprites/sidewall.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

View file

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

84
Sprites/tileset.tres Normal file
View file

@ -0,0 +1,84 @@
[gd_resource type="TileSet" load_steps=7 format=2]
[ext_resource path="res://Sprites/kitchenfloor.png" type="Texture" id=1]
[ext_resource path="res://Sprites/wall.png" type="Texture" id=2]
[ext_resource path="res://Sprites/floor.png" type="Texture" id=3]
[ext_resource path="res://Sprites/sidewall.png" type="Texture" id=4]
[sub_resource type="ConvexPolygonShape2D" id=1]
points = PoolVector2Array( 7.9375, 8, 0, 8, 0, 0.015625, 7.9375, 0.015625 )
[sub_resource type="ConvexPolygonShape2D" id=2]
points = PoolVector2Array( 8, 8, 0, 8, 0, 0, 8, 0 )
[resource]
0/name = "floor.png 0"
0/texture = ExtResource( 3 )
0/tex_offset = Vector2( 0, 0 )
0/modulate = Color( 1, 1, 1, 1 )
0/region = Rect2( 0, 0, 8, 8 )
0/tile_mode = 0
0/occluder_offset = Vector2( 0, 0 )
0/navigation_offset = Vector2( 0, 0 )
0/shape_offset = Vector2( 0, 0 )
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
0/shape_one_way = false
0/shape_one_way_margin = 0.0
0/shapes = [ ]
0/z_index = 0
1/name = "wall.png 1"
1/texture = ExtResource( 2 )
1/tex_offset = Vector2( 0, 0 )
1/modulate = Color( 1, 1, 1, 1 )
1/region = Rect2( 0, 0, 8, 8 )
1/tile_mode = 0
1/occluder_offset = Vector2( 0, 0 )
1/navigation_offset = Vector2( 0, 0 )
1/shape_offset = Vector2( 0, 0 )
1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
1/shape = SubResource( 1 )
1/shape_one_way = false
1/shape_one_way_margin = 1.0
1/shapes = [ {
"autotile_coord": Vector2( 0, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 1 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
1/z_index = 0
2/name = "kitchenfloor.png 2"
2/texture = ExtResource( 1 )
2/tex_offset = Vector2( 0, 0 )
2/modulate = Color( 1, 1, 1, 1 )
2/region = Rect2( 0, 0, 8, 8 )
2/tile_mode = 0
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_one_way = false
2/shape_one_way_margin = 0.0
2/shapes = [ ]
2/z_index = 0
3/name = "sidewall.png 3"
3/texture = ExtResource( 4 )
3/tex_offset = Vector2( 0, 0 )
3/modulate = Color( 1, 1, 1, 1 )
3/region = Rect2( 0, 0, 8, 8 )
3/tile_mode = 0
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
3/shapes = [ {
"autotile_coord": Vector2( 0, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 2 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
3/z_index = 0

BIN
Sprites/wall.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

35
Sprites/wall.png.import Normal file
View file

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

7
default_env.tres Normal file
View file

@ -0,0 +1,7 @@
[gd_resource type="Environment" load_steps=2 format=2]
[sub_resource type="ProceduralSky" id=1]
[resource]
background_mode = 2
background_sky = SubResource( 1 )

BIN
icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

35
icon.png.import Normal file
View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.png"
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.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

91
project.godot Normal file
View file

@ -0,0 +1,91 @@
; 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=4
[application]
config/name="H2Grow"
config/icon="res://icon.png"
[display]
window/size/resizable=false
window/vsync/use_vsync=false
[gui]
common/drop_mouse_on_gui_input_disabled=true
[importer_defaults]
texture={
"compress/bptc_ldr": 0,
"compress/hdr_mode": 0,
"compress/lossy_quality": 0.7,
"compress/mode": 0,
"compress/normal_map": 0,
"detect_3d": false,
"flags/anisotropic": false,
"flags/filter": false,
"flags/mipmaps": false,
"flags/repeat": 0,
"flags/srgb": 2,
"process/HDR_as_SRGB": false,
"process/fix_alpha_border": true,
"process/invert_color": false,
"process/normal_map_invert_y": false,
"process/premult_alpha": false,
"size_limit": 0,
"stream": false,
"svg/scale": 1.0
}
[input]
up={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
down={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
left={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
right={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
punch={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":80,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":90,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
[physics]
common/enable_pause_aware_picking=true
[rendering]
quality/driver/driver_name="GLES2"
vram_compression/import_etc=true
vram_compression/import_etc2=false
environment/default_environment="res://default_env.tres"