cybereality
Thank you very much!
I don't remember any polygons in my game except for a color rect or some tilemap in diagonal? don't think those were the issues though. Anyway, here is my player.gd this is for the character:
extends Actor
onready var BackArmSprite = $Position2D/BackArm
onready var OutfitSleevesBackSprite = $Position2D/OutfitSleevesBack
onready var HeadgearBehindSprite = $Position2D/HeadgearBehind
onready var HairBack1Sprite = $Position2D/HairBack1
onready var HairBack2Sprite = $Position2D/HairBack2
onready var BackLegSprite = $Position2D/BackLeg
onready var BackShoesSprite = $Position2D/BackShoes
onready var BangsBelowBackSprite = $Position2D/BangsBelowBack
onready var TorsoSprite = $Position2D/Torso
onready var UndiesSprite = $Position2D/Undies
onready var WeaponsSprite = $Position2D/Weapons
onready var HeadSprite = $Position2D/Head
onready var HairFrontBaseSprite = $Position2D/HairFrontBase
onready var FrontLegSprite = $Position2D/FrontLeg
onready var ForeShoesSprite = $Position2D/FrontShoes
onready var OutfitSprite = $Position2D/Outfit
onready var BangsBelowSprite = $Position2D/BangsBelow
onready var FrontArmSprite = $Position2D/FrontArm
onready var OutfitSleevesFrontSprite = $Position2D/OutfitSleevesFront
onready var EyesSprite = $Position2D/Eyes
onready var LipsSprite = $Position2D/Lips
onready var NoseSprite = $Position2D/Nose
onready var EyebrowsSprite = $Position2D/Eyebrows
onready var EarringsSprite = $Position2D/Earrings
onready var BangsSideSprite = $Position2D/BangsSide
onready var BangsSprite = $Position2D/Bangs
onready var HeadgearSprite = $Position2D/Headgear
const PlayerClothingLoader = preload("res://Source/Actors/PlayerClothingLoader.gd")
#This is the CURRENT euipped clothing/hair etc:
var curr_BackArm: int = 0
var curr_OutfitSleevesBack: int = 0
var curr_HeadgearBehind: int = 0
var curr_HairBack1: int = 0
var curr_HairBack2: int = 0
var curr_BackLeg: int = 0
var curr_BackShoes: int = 0
var curr_BangsBelowBack: int = 0
var curr_Torso: int = 0
var curr_Undies: int = 0
var curr_Weapons: int = 0
var curr_Head: int = 0
var curr_HairFrontBase: int = 0
var curr_FrontLeg: int = 0
var curr_FrontShoes: int = 0
var curr_Outfit: int = 0
var curr_BangsBelow: int = 0
var curr_FrontArm: int = 0
var curr_OutfitSleeveFront: int = 0
var curr_Eyes: int = 0
var curr_Lips: int = 0
var curr_Nose: int = 0
var curr_Eyebrows: int = 0
var curr_Earrings: int = 0
var curr_BangSide: int = 0
var curr_Bangs: int = 0
var curr_Headgear: int = 0
func _ready():
BackArmSprite.texture = PlayerClothingLoader.BackArm_spritesheet[curr_BackArm]
# OutfitSleevesBackSprite.texture = PlayerClothingLoader.OutfitSleevesBack_spritesheet[0]
HeadgearBehindSprite.texture = PlayerClothingLoader.HeadgearBehind_spritesheet[curr_HeadgearBehind]
HairBack1Sprite.texture = PlayerClothingLoader.HairBack1_spritesheet[curr_HairBack1]
HairBack2Sprite.texture = PlayerClothingLoader.HairBack2_spritesheet[curr_HairBack2]
BackLegSprite.texture = PlayerClothingLoader.BackLeg_spritesheet[curr_BackLeg]
#THIS is for the Buttons for charactercustomization
func _on_ChangeHairBack1_pressed():
curr_HairBack1 = (curr_HairBack1 + 1) % PlayerClothingLoader.HairBack1_spritesheet.size()
HairBack1Sprite.texture = PlayerClothingLoader.HairBack1_spritesheet[curr_HairBack1]
export var stomp_impulse = 1000.0
func _on_EnemyDetector_area_entered(area:Area2D) -> void:
_velocity = calculate_stomp_velocity(_velocity, stomp_impulse)
func _on_EnemyDetector_body_entered(body:PhysicsBody2D) -> void:
queue_free()
func _physics_process(delta: float) -> void:
var is_jump_interrupted: = Input.is_action_just_released("jump") and _velocity.y < 0.0
var direction: = get_direction()
_velocity = calculate_move_velocity(_velocity, direction, speed, is_jump_interrupted)
_velocity = move_and_slide (_velocity, FLOOR_NORMAL)
export var slide_friction = 400
func get_direction() -> Vector2:
return Vector2(
Input.get_action_strength("move_right") - Input.get_action_strength("move_left"),
-1.0 if Input.is_action_just_pressed("jump") and is_on_floor() else 1.0
)
onready var position2D=$Position2D
func calculate_move_velocity(
linear_velocity: Vector2,
direction: Vector2,
speed: Vector2,
is_jump_interrupted: bool
) -> Vector2:
var out: = linear_velocity
out.x = speed.x * direction.x
out.y += gravity * get_physics_process_delta_time()
if direction.y == -1.0:
out.y = speed.y * direction.y
if direction.x == 0:
$AnimationPlayer.play("Idle_Right")
#if Input.action_pressed(KEY_LEFT, 1.0):
# $AnimationPlayer.play("Idle_Left")
if direction.x == 1.0:
position2D.scale.x=1
$AnimationPlayer.play("Run_Right")
if direction.x == -1.0:
position2D.scale.x=-1
$AnimationPlayer.play("Walk_Right")
if Input.is_key_pressed(KEY_SPACE):
var scene = load("res://Assets/Sprites/Items/ForestObjects/Flower001.tscn")
var player = scene.instance()
add_child(player)
player.position = Vector2(30, -200)
if is_jump_interrupted:
out.y = 0.0
return out
# if Input.is_mouse_button_pressed(true):
#func _input(event):
# if Input.is_action_pressed("move_left"):
# $AnimationPlayer.play("Jump")
# scale.x = -1.0
func calculate_stomp_velocity(linear_velocity: Vector2, impulse: float) -> Vector2:
var out: = linear_velocity
out.y = -impulse
return out
#func _ready():
# print("AERTH VERSION 0.0001")
#func _ready():
# $AnimationPlayer.play("Walk")
and this one is for the Actor.gd
extends KinematicBody2D
class_name Actor
const FLOOR_NORMAL: = Vector2.UP
export var speed: = Vector2(300.0, 1000.0)
export var gravity: = 3000.0
var _velocity: = Vector2.ZERO
This one is for the PlayerClothingLoader.gd
extends Node
#These are the selection sprites for loading the character customization
const BackArm_spritesheet = {
0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFBackArm.png")
}
# missing const OutsleevesBack_spritesheet = {
# 0 : preload
#}
const HeadgearBehind_spritesheet = {
0 : preload("res://Assets/Sprites/Items/Clothes/Unisex/Headgear/HGb-F-0004Hood.png")
}
const HairBack1_spritesheet = {
0 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0001.png"),
1 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0002.png"),
2 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0003.png"),
3 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0004.png"),
4 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0005.png"),
5 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0006.png"),
6 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0007.png"),
7 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0008.png")
}
const HairBack2_spritesheet = {
0 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0001.png"),
1 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0002.png"),
2 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0003.png"),
3 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0004.png"),
4 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0005.png"),
5 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0006.png"),
6 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0007.png")
}
const BackLeg_spritesheet = {
0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFBackLeg.png")
}
#const BackShoes_spritesheet = {
# 0 : preload()
#}
# const BangsBelowBack_spritesheet = {
# 0 : preload()
#}
const Torso_spritesheet = {
0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFTorso01.png")
}
# const Undies_spritesheet = {
# 0 : preload
#}
const Weapons_spritesheet = {
0 : preload("res://Assets/Sprites/Items/Weapons/AerthWeapons001.png")
}
const Head_spritesheet = {
0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFHead01.png")
}
const HairFrontBase_spritesheet = {
0 : preload("res://Assets/Sprites/Vanity/Female/Hair/FemaleHairFrontBase0001.png"),
1 : preload("res://Assets/Sprites/Vanity/Female/Hair/FemaleHairFrontBase0002.png")
}
const Frontleg_spritesheet = {
0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFFrontLeg.png")
}
#const FrontShoes_spritesheet = {
# 0 : preload()
#}
#const Outfit_spritesheet = {
# 0 : preload
#}
#const BangsBelow_spritesheet = {
# 0 : preload
#}
const FrontArm_spritesheet = {
0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFFrontArm.png")
}
#const OutfitSleevesFront_spritesheet = {
# 0 : preload ()
#}
const Eyes_spritesheet = {
0 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0001.png"),
1 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0002.png"),
2 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0003.png"),
3 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0004.png"),
4 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0005.png"),
5 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0006.png"),
6 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0007.png"),
7 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0008.png"),
8 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0009.png"),
9 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0010.png"),
10 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0011.png"),
11 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0012.png"),
12 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0013.png"),
13 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0014.png"),
14 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0015.png"),
15 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0016.png"),
16 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0017.png"),
17 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0018.png"),
18 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0019.png"),
19 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0020.png")
}
const Lips_spritesheet = {
0 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0001.png"),
1 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0002.png"),
2 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0003.png"),
3 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0004.png"),
4 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0005.png"),
5 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0006.png"),
6 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0007.png"),
7 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0008.png"),
8 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0009.png"),
9 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0010.png"),
10 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0011.png"),
11 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0012.png"),
12 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0013.png"),
13 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0014.png"),
14 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0015.png"),
15 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0016.png"),
16 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0017.png"),
17 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0018.png")
}
const Nose_spreadsheet = {
0 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0001.png"),
1 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0002.png"),
2 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0003.png"),
3 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0004.png"),
4 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0005.png"),
5 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0006.png"),
6 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0007.png"),
7 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0008.png"),
8 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0009.png"),
9 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0010.png"),
10 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0011.png"),
11 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0012.png")
}
const Eyebrows_spreadsheet = {
0 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0001.png"),
1 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0002.png"),
2 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0003.png"),
3 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0004.png"),
4 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0005.png"),
5 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0006.png"),
6 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0007.png"),
7 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0008.png"),
8 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0009.png"),
9 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0010.png"),
}
const Earrings_spritesheet = {
0 : preload("res://Assets/Sprites/Items/Clothes/Female/Earrings/Earrings0001.png")
}
#const BangsSide_spritesheet = {
# 0 : preload()
#}
const Bangs_spritesheet = {
0 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0001.png"),
1 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0002.png"),
2 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0003.png"),
3 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0004.png"),
4 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0005.png"),
5 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0006.png"),
6 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0007.png"),
7 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0008.png"),
8 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0009.png"),
9 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0010.png"),
10 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0011.png"),
11 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0012.png"),
12 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0013.png"),
13 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0014.png"),
14 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0015.png"),
15 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0016.png")
}
const Headgear_spritesheet = {
0 : preload("res://Assets/Sprites/Items/Clothes/Female/Headgear/HG-0001Crown.png"),
1 : preload("res://Assets/Sprites/Items/Clothes/Female/Headgear/HG-0002BigRibbon.png"),
2 : preload("res://Assets/Sprites/Items/Clothes/Female/Headgear/HG-0003Rose.png"),
3 : preload("res://Assets/Sprites/Items/Clothes/Unisex/Headgear/HG-F-0004Hood.png")
}
This is my Enemy.gd:
extends "res://Source/Actors/Actor.gd"
func _ready() -> void:
set_physics_process(false)
_velocity.x = -speed.x
func _on_StompDetector_body_entered(body: Node) -> void:
if body.global_position.y > get_node("StompDetector").global_position.y:
return
get_node("CollisionShape2D").disabled = true
$AnimationPlayer.play("Enemy0001-Vine-Dead")
_velocity.x = 0
# This code is for delay for something
yield(get_tree().create_timer(0.2), "timeout")
queue_free()
onready var position2D=$Position2D
func _physics_process(delta: float) -> void:
_velocity.y += gravity * delta
if is_on_wall():
_velocity.x *= -1.0
position2D.scale.x *= -1
_velocity.y = move_and_slide(_velocity, FLOOR_NORMAL).y
And these are the errors. I don't know how to fix these. Since I only saw a tutorial on Youtube and I just followed it.

I need to read my stuff more. To be honest, It's embarrassing I don't know what I am doing. Just trying to copy stuff. Still, I'm appreciative of all your help. Most of these came from Youtube. very thankful to their videos.
I will try to sketch some rough draft of the character customization and paste it here so you all know what it is that I am trying to achieve with all these layers of customization.