modification du sprite du robot et fix en tout genre
This commit is contained in:
@@ -1,48 +0,0 @@
|
||||
@tool
|
||||
extends Node2D
|
||||
|
||||
|
||||
@export var color_1_texture : Texture
|
||||
@export var color_2_texture : Texture
|
||||
@export var outline_texture : Texture
|
||||
|
||||
@export_tool_button("Redraw", "Callable") var redraw_action = func(): create_image()
|
||||
|
||||
func _ready():
|
||||
create_image()
|
||||
|
||||
func create_image():
|
||||
|
||||
var image := Image.create(TEXTURE_SIZE,TEXTURE_SIZE, false, Image.FORMAT_RGBA8)
|
||||
|
||||
if color_2_texture:
|
||||
var color_2_image = color_2_texture.get_image()
|
||||
color_2_image.resize(TEXTURE_SIZE,TEXTURE_SIZE)
|
||||
|
||||
image.blend_rect(
|
||||
modulated_image(color_2_image, COLOR_PALETTE.pick_random()),
|
||||
Rect2i(0,0,TEXTURE_SIZE,TEXTURE_SIZE),
|
||||
Vector2i.ZERO
|
||||
)
|
||||
if color_1_texture:
|
||||
var color_1_image = color_1_texture.get_image()
|
||||
color_1_image.resize(TEXTURE_SIZE,TEXTURE_SIZE)
|
||||
image.blend_rect(
|
||||
modulated_image(color_1_image, COLOR_PALETTE.pick_random()),
|
||||
Rect2i(0,0,TEXTURE_SIZE,TEXTURE_SIZE),
|
||||
Vector2i.ZERO
|
||||
)
|
||||
if outline_texture:
|
||||
var outline_image = outline_texture.get_image()
|
||||
outline_image.resize(TEXTURE_SIZE,TEXTURE_SIZE)
|
||||
image.blend_rect(outline_image, Rect2i(0,0,TEXTURE_SIZE,TEXTURE_SIZE),Vector2i.ZERO)
|
||||
|
||||
ImageTexture.create_from_image(image)
|
||||
|
||||
func modulated_image(i : Image, color : Color) -> Image:
|
||||
var ret = i.duplicate()
|
||||
for x in i.get_size().x:
|
||||
for y in i.get_size().y:
|
||||
ret.set_pixel(x,y, i.get_pixel(x,y)*color)
|
||||
return ret
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
uid://by1m5q6q53xxp
|
||||
BIN
entities/player/assets/sprites/movement_particles.png
Normal file
BIN
entities/player/assets/sprites/movement_particles.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
40
entities/player/assets/sprites/movement_particles.png.import
Normal file
40
entities/player/assets/sprites/movement_particles.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dompaj451gklw"
|
||||
path="res://.godot/imported/movement_particles.png-73ae8918518d662da464b8dc83b128a2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://entities/player/assets/sprites/movement_particles.png"
|
||||
dest_files=["res://.godot/imported/movement_particles.png-73ae8918518d662da464b8dc83b128a2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
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/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
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
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 850 KiB After Width: | Height: | Size: 1.4 MiB |
BIN
entities/player/assets/sprites/shadow.png
Normal file
BIN
entities/player/assets/sprites/shadow.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 980 B |
40
entities/player/assets/sprites/shadow.png.import
Normal file
40
entities/player/assets/sprites/shadow.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ys5fis3gsnoy"
|
||||
path="res://.godot/imported/shadow.png-2953b62e89f155ac07f4529236b51b5f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://entities/player/assets/sprites/shadow.png"
|
||||
dest_files=["res://.godot/imported/shadow.png-2953b62e89f155ac07f4529236b51b5f.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
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/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
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,8 +1,9 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://bgvbgeq46wee2"]
|
||||
[gd_scene format=3 uid="uid://bgvbgeq46wee2"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://das7twcy5153p" path="res://entities/player/scripts/player.gd" id="1_abrql"]
|
||||
[ext_resource type="Texture2D" uid="uid://c7ff87jniga5m" path="res://entities/player/assets/sprites/robot.png" id="1_symyc"]
|
||||
[ext_resource type="Texture2D" uid="uid://bf6nw4onkhavr" path="res://common/icons/shovel.svg" id="3_yqrof"]
|
||||
[ext_resource type="Texture2D" uid="uid://dompaj451gklw" path="res://entities/player/assets/sprites/movement_particles.png" id="2_bls4j"]
|
||||
[ext_resource type="Texture2D" uid="uid://ys5fis3gsnoy" path="res://entities/player/assets/sprites/shadow.png" id="2_fkugw"]
|
||||
[ext_resource type="Texture2D" uid="uid://c7ff87jniga5m" path="res://entities/player/assets/sprites/robot.png" id="4_bls4j"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_sglur"]
|
||||
radius = 27.0
|
||||
@@ -10,44 +11,156 @@ radius = 27.0
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_abrql"]
|
||||
radius = 40.0
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_yqrof"]
|
||||
colors = PackedColorArray(0.145098, 0.423529, 0.635294, 1, 0.12549, 0.294118, 0.545098, 1)
|
||||
[sub_resource type="Curve" id="Curve_fkugw"]
|
||||
_data = [Vector2(0, 0.14473677), 0.0, 0.0, 0, 0, Vector2(0.972549, 0.2654798), 0.0, 0.0, 0, 0]
|
||||
point_count = 2
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_3wlsy"]
|
||||
gradient = SubResource("Gradient_yqrof")
|
||||
fill = 1
|
||||
fill_from = Vector2(0.5, 0.380342)
|
||||
fill_to = Vector2(1, 0.0726496)
|
||||
[sub_resource type="Gradient" id="Gradient_bls4j"]
|
||||
offsets = PackedFloat32Array(0, 0.77729255, 1)
|
||||
colors = PackedColorArray(0.5803922, 0.7058824, 0.8862745, 1, 0.5785, 0.70829165, 0.89, 1, 0.5785, 0.70829165, 0.89, 0)
|
||||
|
||||
[node name="Player" type="CharacterBody2D"]
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_fkugw"]
|
||||
atlas = ExtResource("4_bls4j")
|
||||
region = Rect2(3048, 0, 762, 1080)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_8fjmc"]
|
||||
atlas = ExtResource("4_bls4j")
|
||||
region = Rect2(3810, 0, 762, 1080)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_qiwj3"]
|
||||
atlas = ExtResource("4_bls4j")
|
||||
region = Rect2(2286, 0, 762, 1080)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_26q78"]
|
||||
atlas = ExtResource("4_bls4j")
|
||||
region = Rect2(0, 0, 762, 1080)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_bectd"]
|
||||
atlas = ExtResource("4_bls4j")
|
||||
region = Rect2(5334, 0, 762, 1080)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_wvtmh"]
|
||||
atlas = ExtResource("4_bls4j")
|
||||
region = Rect2(762, 0, 762, 1080)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_7thud"]
|
||||
atlas = ExtResource("4_bls4j")
|
||||
region = Rect2(4572, 0, 762, 1080)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_a1qjk"]
|
||||
atlas = ExtResource("4_bls4j")
|
||||
region = Rect2(1524, 0, 762, 1080)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_a1qjk"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_fkugw")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"back",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_8fjmc")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"back_left",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_qiwj3")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"back_right",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_26q78")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"front",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_bectd")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"front_left",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_wvtmh")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"front_right",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_7thud")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"left",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_a1qjk")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"right",
|
||||
"speed": 5.0
|
||||
}]
|
||||
|
||||
[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_bls4j"]
|
||||
|
||||
[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_fkugw"]
|
||||
states/StateMachine/node = SubResource("AnimationNodeStateMachine_bls4j")
|
||||
states/StateMachine/position = Vector2(386, 91)
|
||||
|
||||
[node name="Player" type="CharacterBody2D" unique_id=447849413]
|
||||
script = ExtResource("1_abrql")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(-2, -18)
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=414557251]
|
||||
position = Vector2(0, -17)
|
||||
shape = SubResource("CircleShape2D_sglur")
|
||||
|
||||
[node name="InteractArea2D" type="Area2D" parent="."]
|
||||
[node name="Shadow" type="Sprite2D" parent="." unique_id=875064259]
|
||||
modulate = Color(0, 0, 0, 0.60784316)
|
||||
position = Vector2(-1, 13)
|
||||
scale = Vector2(0.35897446, 0.3589744)
|
||||
texture = ExtResource("2_fkugw")
|
||||
|
||||
[node name="InteractArea2D" type="Area2D" parent="." unique_id=1048722411]
|
||||
position = Vector2(0, -12)
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InteractArea2D"]
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InteractArea2D" unique_id=1242017003]
|
||||
shape = SubResource("CircleShape2D_abrql")
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
position = Vector2(0, -46)
|
||||
scale = Vector2(0.08, 0.08)
|
||||
texture = ExtResource("1_symyc")
|
||||
[node name="CPUParticles2D" type="CPUParticles2D" parent="InteractArea2D" unique_id=1489736082]
|
||||
position = Vector2(-8.4703295e-22, 12)
|
||||
scale = Vector2(0.22803418, 0.22803418)
|
||||
amount = 3
|
||||
texture = ExtResource("2_bls4j")
|
||||
lifetime = 0.4
|
||||
gravity = Vector2(0, 100)
|
||||
scale_amount_curve = SubResource("Curve_fkugw")
|
||||
color_ramp = SubResource("Gradient_bls4j")
|
||||
|
||||
[node name="HideEyes" type="Sprite2D" parent="."]
|
||||
[node name="Sprite" type="AnimatedSprite2D" parent="." unique_id=638545037]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
position = Vector2(8.125, -26.195)
|
||||
scale = Vector2(0.347656, 0.253906)
|
||||
texture = SubResource("GradientTexture2D_3wlsy")
|
||||
position = Vector2(0.99999994, -17)
|
||||
scale = Vector2(0.0656168, 0.065616846)
|
||||
sprite_frames = SubResource("SpriteFrames_a1qjk")
|
||||
animation = &"back"
|
||||
|
||||
[node name="ItemSprite" type="Sprite2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
modulate = Color(0.164706, 0.898039, 0.984314, 1)
|
||||
position = Vector2(8.25, -27.32)
|
||||
scale = Vector2(0.403333, 0.403333)
|
||||
texture = ExtResource("3_yqrof")
|
||||
[node name="FloatAnimationPlayer" type="AnimationPlayer" parent="." unique_id=929823261]
|
||||
|
||||
[node name="AnimationTree" type="AnimationTree" parent="." unique_id=563415659]
|
||||
tree_root = SubResource("AnimationNodeStateMachine_fkugw")
|
||||
|
||||
@@ -4,6 +4,7 @@ class_name Player
|
||||
const ACTION_AREA_UPDATE_TIME=0.05 # When creating an action_zone, we make sure that the area setup correctly by waiting a little
|
||||
const MAX_REACH = 100
|
||||
const HOLDING_ITEM_SPRITE_SIZE = 20.
|
||||
const TURN_ANIMATION_MINIMUM_THRESHOLD = 0.2
|
||||
|
||||
signal player_updated(player: Player)
|
||||
signal upgraded
|
||||
@@ -73,19 +74,8 @@ func _process(delta):
|
||||
|
||||
func _on_inventory_updated(_inventory: Inventory):
|
||||
setup_preview_zone(data.inventory.get_item())
|
||||
var item : Item = data.inventory.get_item()
|
||||
if item:
|
||||
var item_texture = item.icon
|
||||
%ItemSprite.texture = item_texture
|
||||
%ItemSprite.scale = Vector2(
|
||||
1./(item_texture.get_width()/HOLDING_ITEM_SPRITE_SIZE),
|
||||
1./(item_texture.get_height()/HOLDING_ITEM_SPRITE_SIZE)
|
||||
)
|
||||
%HideEyes.visible = item != null
|
||||
%ItemSprite.visible = item != null
|
||||
emit_signal("player_updated", self)
|
||||
|
||||
|
||||
func calculate_direction():
|
||||
var input_direction: Vector2 = Input.get_vector("move_left", "move_right", "move_up", "move_down")
|
||||
|
||||
@@ -102,14 +92,32 @@ func calculate_direction():
|
||||
input_direction = self.global_position.direction_to(instruction.position)
|
||||
|
||||
velocity = input_direction * speed
|
||||
if input_direction.x:
|
||||
flip_character(input_direction.x > 0)
|
||||
|
||||
turn_animate(input_direction)
|
||||
|
||||
|
||||
func flip_character(face_right = true):
|
||||
$Sprite.flip_h = not face_right
|
||||
%ItemSprite.position.x = abs(%ItemSprite.position.x) * (1 if face_right else -1)
|
||||
%HideEyes.position.x = abs(%ItemSprite.position.x) * (1 if face_right else -1)
|
||||
func turn_animate(input_direction):
|
||||
if input_direction.x > TURN_ANIMATION_MINIMUM_THRESHOLD:
|
||||
if input_direction.y > TURN_ANIMATION_MINIMUM_THRESHOLD:
|
||||
%Sprite.play("front_right")
|
||||
elif input_direction.y < -TURN_ANIMATION_MINIMUM_THRESHOLD:
|
||||
%Sprite.play("back_right")
|
||||
else:
|
||||
%Sprite.play("right")
|
||||
elif input_direction.x < -TURN_ANIMATION_MINIMUM_THRESHOLD:
|
||||
if input_direction.y > TURN_ANIMATION_MINIMUM_THRESHOLD:
|
||||
%Sprite.play("front_left")
|
||||
elif input_direction.y < -TURN_ANIMATION_MINIMUM_THRESHOLD:
|
||||
%Sprite.play("back_left")
|
||||
else:
|
||||
%Sprite.play("left")
|
||||
else:
|
||||
if input_direction.y > TURN_ANIMATION_MINIMUM_THRESHOLD:
|
||||
%Sprite.play("front")
|
||||
elif input_direction.y < -TURN_ANIMATION_MINIMUM_THRESHOLD:
|
||||
%Sprite.play("back")
|
||||
else:
|
||||
%Sprite.play("front")
|
||||
|
||||
func can_interact(interactable : Interactable):
|
||||
return interactable.can_interact(self)
|
||||
|
||||
Reference in New Issue
Block a user