pushable in large

This commit is contained in:
Booklordofthedings 2024-08-18 12:28:17 +02:00
parent e1f2423761
commit 3c1309de47
4 changed files with 25 additions and 6 deletions

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=12 format=4 uid="uid://ctc0arg3efa5k"] [gd_scene load_steps=13 format=4 uid="uid://ctc0arg3efa5k"]
[ext_resource type="PackedScene" uid="uid://ba6afuig8bqrg" path="res://levels/LevelBase.tscn" id="1_87xn7"] [ext_resource type="PackedScene" uid="uid://ba6afuig8bqrg" path="res://levels/LevelBase.tscn" id="1_87xn7"]
[ext_resource type="Texture2D" uid="uid://c3m4os8kteaix" path="res://textures/level01-spritesheet.png" id="2_wqskp"] [ext_resource type="Texture2D" uid="uid://c3m4os8kteaix" path="res://textures/level01-spritesheet.png" id="2_wqskp"]
@ -8,6 +8,7 @@
[ext_resource type="PackedScene" uid="uid://cpa66thuxma15" path="res://objects/MirrorOrb.tscn" id="7_dyi0e"] [ext_resource type="PackedScene" uid="uid://cpa66thuxma15" path="res://objects/MirrorOrb.tscn" id="7_dyi0e"]
[ext_resource type="PackedScene" uid="uid://br6fngf5208j0" path="res://objects/ResizableBlock.tscn" id="8_ec71m"] [ext_resource type="PackedScene" uid="uid://br6fngf5208j0" path="res://objects/ResizableBlock.tscn" id="8_ec71m"]
[ext_resource type="PackedScene" uid="uid://d17jpcgayfg6i" path="res://objects/BoxPushable_1.tscn" id="8_o0q03"] [ext_resource type="PackedScene" uid="uid://d17jpcgayfg6i" path="res://objects/BoxPushable_1.tscn" id="8_o0q03"]
[ext_resource type="PackedScene" uid="uid://biaxahxft1xo0" path="res://objects/box_pushable_2.tscn" id="9_swmgt"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_e817v"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_e817v"]
texture = ExtResource("2_wqskp") texture = ExtResource("2_wqskp")
@ -128,10 +129,10 @@ shader_parameter/scroll_speed = 0.02
[node name="Player" parent="." index="0"] [node name="Player" parent="." index="0"]
position = Vector2(-542, 331) position = Vector2(-542, 331)
jump_strength_max = 400
[node name="UI" parent="UILayer" index="0"] [node name="UI" parent="UILayer" index="0"]
mouse_filter = 2 mouse_filter = 2
scale_duration = 0.5
[node name="HBoxContainer" parent="UILayer/UI" index="0"] [node name="HBoxContainer" parent="UILayer/UI" index="0"]
mouse_filter = 0 mouse_filter = 0
@ -174,3 +175,6 @@ collision_layer = 1
[node name="BoxPushable1" parent="." index="10" instance=ExtResource("8_o0q03")] [node name="BoxPushable1" parent="." index="10" instance=ExtResource("8_o0q03")]
position = Vector2(-228, 320) position = Vector2(-228, 320)
[node name="BoxPushable2" parent="." index="11" instance=ExtResource("9_swmgt")]
position = Vector2(40, 309)

View file

@ -8,7 +8,7 @@ size = Vector2(34, 32)
[node name="BoxPushable1" type="CharacterBody2D"] [node name="BoxPushable1" type="CharacterBody2D"]
collision_layer = 16 collision_layer = 16
collision_mask = 5 collision_mask = 21
script = ExtResource("1_tf1fy") script = ExtResource("1_tf1fy")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]

View file

@ -0,0 +1,7 @@
[gd_scene load_steps=2 format=3 uid="uid://biaxahxft1xo0"]
[ext_resource type="PackedScene" uid="uid://d17jpcgayfg6i" path="res://objects/BoxPushable_1.tscn" id="1_pnjdf"]
[node name="BoxPushable1" instance=ExtResource("1_pnjdf")]
scale = Vector2(2, 2)
collision_mask = 21

View file

@ -4,6 +4,7 @@ extends CharacterBody2D
@export var gravity = 50 @export var gravity = 50
var jump_count = 1 var jump_count = 1
@export var jump_strength = 100 @export var jump_strength = 100
@export var jump_strength_max = 300
var is_touching_floor : bool = true var is_touching_floor : bool = true
var jump_buffer_timer : float var jump_buffer_timer : float
var coyote_timer : float = 0.2 # 200 millisecond buffer var coyote_timer : float = 0.2 # 200 millisecond buffer
@ -58,12 +59,19 @@ func _physics_process(delta):
if(get_slide_collision_count() > 0): if(get_slide_collision_count() > 0):
for i in get_slide_collision_count(): for i in get_slide_collision_count():
var box = get_slide_collision(i).get_collider() as Box var box = get_slide_collision(i).get_collider() as Box
if box and velocity.y >= 0: if scale.x == 2:
box.velocity.x = velocity.x*0.8 if box and velocity.y >= 0:
box.velocity.x = velocity.x*0.8
else:
if box and velocity.y >= 0 and box.scale.x < 2:
box.velocity.x = velocity.x*0.8
# print(jump_count) # Uncomment for debugging # print(jump_count) # Uncomment for debugging
func Jump(): func Jump():
velocity.y = -1 * jump_strength if scale.x == 1:
velocity.y = -1 * jump_strength
elif scale.x == 2:
velocity.y = -1 * jump_strength_max
jump_count = 0 jump_count = 0
is_touching_floor = false is_touching_floor = false