Uniquement se reposer sur is_on_wall() ne fonctionne pas, car move_and_slide() parfois ne nous indique pas qu'une collision avec un mur a eu lieu. ça doit être à cause d'un pixel de décalage ou un truc du genre. Pour palier au soucis, j'utilise deux RayCast, un à gauche et un à droite. si ils sont trigger, alors ça veut dire qu'un mur est dans le coin. Ils sont uniquement sensibles aux plateformes. Voilà voilà, maintenant s'accrocher au mur ne nécessite plus de maintenir la touche de direction dans le bon sens.
227 lines
6.0 KiB
Plaintext
227 lines
6.0 KiB
Plaintext
[gd_scene load_steps=31 format=3 uid="uid://dv0mokf4eogm7"]
|
|
|
|
[ext_resource type="Script" path="res://princesse.gd" id="1_dkp7s"]
|
|
[ext_resource type="Texture2D" uid="uid://dr7fyh2rufsyj" path="res://sprite/princess_falling_direction.png" id="2_hholp"]
|
|
[ext_resource type="Texture2D" uid="uid://cc2vjgg2dw27g" path="res://sprite/princess_falling.png" id="3_kbaya"]
|
|
[ext_resource type="Texture2D" uid="uid://bwod37xemy88x" path="res://sprite/princess.png" id="4_iiu2b"]
|
|
[ext_resource type="Texture2D" uid="uid://b1624w7katr05" path="res://sprite/princess_jumping_impulsion.png" id="5_njcte"]
|
|
[ext_resource type="Texture2D" uid="uid://c2xtcu5ysgi7o" path="res://sprite/princess_jumping.png" id="6_srvje"]
|
|
[ext_resource type="Texture2D" uid="uid://d23lmsjrjw1mk" path="res://sprite/princess_wall_stick.png" id="7_8dix4"]
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_i248f"]
|
|
atlas = ExtResource("2_hholp")
|
|
region = Rect2(0, 0, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_e23c2"]
|
|
atlas = ExtResource("2_hholp")
|
|
region = Rect2(0, 50, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_fyqwp"]
|
|
atlas = ExtResource("3_kbaya")
|
|
region = Rect2(0, 0, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_mxdjd"]
|
|
atlas = ExtResource("3_kbaya")
|
|
region = Rect2(0, 50, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_yxjwj"]
|
|
atlas = ExtResource("4_iiu2b")
|
|
region = Rect2(0, 0, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_yqpcg"]
|
|
atlas = ExtResource("5_njcte")
|
|
region = Rect2(0, 0, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_8yyph"]
|
|
atlas = ExtResource("5_njcte")
|
|
region = Rect2(0, 50, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_ftqux"]
|
|
atlas = ExtResource("5_njcte")
|
|
region = Rect2(0, 100, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_du0hw"]
|
|
atlas = ExtResource("6_srvje")
|
|
region = Rect2(0, 0, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_gu3eg"]
|
|
atlas = ExtResource("6_srvje")
|
|
region = Rect2(0, 50, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_0nfn2"]
|
|
atlas = ExtResource("4_iiu2b")
|
|
region = Rect2(0, 50, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_wo2be"]
|
|
atlas = ExtResource("4_iiu2b")
|
|
region = Rect2(0, 100, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_4j10n"]
|
|
atlas = ExtResource("4_iiu2b")
|
|
region = Rect2(0, 150, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_kwlld"]
|
|
atlas = ExtResource("4_iiu2b")
|
|
region = Rect2(0, 200, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_57mjl"]
|
|
atlas = ExtResource("4_iiu2b")
|
|
region = Rect2(0, 250, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_34pfo"]
|
|
atlas = ExtResource("7_8dix4")
|
|
region = Rect2(0, 0, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_xck10"]
|
|
atlas = ExtResource("7_8dix4")
|
|
region = Rect2(0, 50, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_1qhca"]
|
|
atlas = ExtResource("7_8dix4")
|
|
region = Rect2(0, 100, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_bljfu"]
|
|
atlas = ExtResource("7_8dix4")
|
|
region = Rect2(0, 150, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_fvex7"]
|
|
atlas = ExtResource("7_8dix4")
|
|
region = Rect2(0, 200, 24, 50)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_qw8g6"]
|
|
atlas = ExtResource("7_8dix4")
|
|
region = Rect2(0, 250, 24, 50)
|
|
|
|
[sub_resource type="SpriteFrames" id="SpriteFrames_q52wx"]
|
|
animations = [{
|
|
"frames": [{
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_i248f")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_e23c2")
|
|
}],
|
|
"loop": true,
|
|
"name": &"falling_diagonals",
|
|
"speed": 5.0
|
|
}, {
|
|
"frames": [{
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_fyqwp")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_mxdjd")
|
|
}],
|
|
"loop": true,
|
|
"name": &"falling_straight",
|
|
"speed": 5.0
|
|
}, {
|
|
"frames": [{
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_yxjwj")
|
|
}],
|
|
"loop": true,
|
|
"name": &"idle",
|
|
"speed": 5.0
|
|
}, {
|
|
"frames": [{
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_yqpcg")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_8yyph")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_ftqux")
|
|
}],
|
|
"loop": true,
|
|
"name": &"jump_impulsion",
|
|
"speed": 5.0
|
|
}, {
|
|
"frames": [{
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_du0hw")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_gu3eg")
|
|
}],
|
|
"loop": true,
|
|
"name": &"jumping",
|
|
"speed": 5.0
|
|
}, {
|
|
"frames": [{
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_yxjwj")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_0nfn2")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_wo2be")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_4j10n")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_kwlld")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_57mjl")
|
|
}],
|
|
"loop": true,
|
|
"name": &"walk",
|
|
"speed": 10.0
|
|
}, {
|
|
"frames": [{
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_34pfo")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_xck10")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_1qhca")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_bljfu")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_fvex7")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_qw8g6")
|
|
}],
|
|
"loop": true,
|
|
"name": &"wall_stick",
|
|
"speed": 5.0
|
|
}]
|
|
|
|
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_6r7th"]
|
|
height = 52.0
|
|
|
|
[node name="Princesse" type="CharacterBody2D"]
|
|
script = ExtResource("1_dkp7s")
|
|
WALKING_SPEED = 250
|
|
FALLING_SPEED = 275
|
|
JUMPING_SPEED = 275
|
|
WALK_INCR_AIR = 6
|
|
|
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
|
sprite_frames = SubResource("SpriteFrames_q52wx")
|
|
animation = &"idle"
|
|
|
|
[node name="wall_detect_left" type="RayCast2D" parent="."]
|
|
target_position = Vector2(-10, 0)
|
|
collision_mask = 16
|
|
|
|
[node name="Camera2D" type="Camera2D" parent="."]
|
|
zoom = Vector2(2, 2)
|
|
|
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
|
position = Vector2(2, 0)
|
|
shape = SubResource("CapsuleShape2D_6r7th")
|
|
|
|
[node name="wall_detect_right" type="RayCast2D" parent="."]
|
|
target_position = Vector2(14, 0)
|
|
collision_mask = 16
|