hola, tengo una duda, como ago para que dejado pulsado el boton para nadar sea infinito pero que para saltar fuera del tilemap agua siga siendo pulsandolo??? Esque tengo que estar pulsando constantemente para nadar y es molesto
se me ocurre un Timer, que cada segundo o medio segundo ejecute la accion de salto, pero activando el timer cuando el jugador esta en el agua y con tu boton presionado.
He visto que el boton tiene (is_action_just_pressed) , se puede crear una funcion que pueda cambiarlo solo cuando se usa nadar a (is_action_pressed) para que no tenga limites y se deje pulsado para nadar ???
Justo es lo que buscaba.
Me sirve un monton el tuto
hola, tengo una duda, como ago para que dejado pulsado el boton para nadar sea infinito pero que para saltar fuera del tilemap agua siga siendo pulsandolo??? Esque tengo que estar pulsando constantemente para nadar y es molesto
se me ocurre un Timer, que cada segundo o medio segundo ejecute la accion de salto, pero activando el timer cuando el jugador esta en el agua y con tu boton presionado.
@@Kyme-Game-Studios como ago yo eso? Tiene usted 1video?
@@Kyme-Game-Studiosextends CharacterBody2D
# --------- VARIABLES ---------- #
@export_category("Player Properties") # You can tweak these changes according to your likings
@export var move_speed : float = 400
@export var jump_force : float = 600
@export var gravity : float = 30
var GRAVITY = 30
var JUMP = -600
@export_category("Toggle Functions") # Double jump feature is disable by default (Can be toggled from inspector)
var is_grounded : bool = false
var is_in_swim = false
@export var gravedad_nadar : float = 0.25
@export var velocidad_nadar : float = 10
@export var fuerza_nadar : float = -200
@onready var player_sprite = $AnimatedSprite2D
@onready var spawn_point = %SpawnPoint
@onready var particle_trails = $ParticleTrails
@onready var death_particles = $DeathParticles
# --------- BUILT-IN FUNCTIONS ---------- #
func _process(_delta):
# Calling functions
movement()
player_animations()
flip_player()
# --------- CUSTOM FUNCTIONS ---------- #
#
func movement():
# Gravity
if !is_on_floor():
velocity.y += gravity
# Move Player
var inputAxis = Input.get_axis("Left", "Right")
velocity = Vector2(inputAxis * move_speed, velocity.y)
move_and_slide()
# Player jump
func _physics_process(delta):
if not is_on_floor():
if(!is_in_swim):
velocity.y += GRAVITY * delta
else:
velocity.y = clampf(velocity.y + (GRAVITY * delta * gravedad_nadar), -1000, velocidad_nadar)
if Input.is_action_just_pressed("Jump"):
if is_on_floor():
velocity.y = JUMP
if is_in_swim == true:
velocity.y += fuerza_nadar
# Handle Player Animations
func player_animations():
particle_trails.emitting = false
if is_on_floor():
if abs(velocity.x) > 0:
particle_trails.emitting = true
player_sprite.play("Walk", 1.5)
else:
player_sprite.play("Idle")
elif (is_in_swim):
player_sprite.play("SWIM")
else:
player_sprite.play("Jump")
# Flip player sprite based on X velocity
func flip_player():
if velocity.x < 0:
player_sprite.flip_h = true
elif velocity.x > 0:
player_sprite.flip_h = false
# Tween Animations
func _on_nadar_swim_state_changed(in_swim):
is_in_swim = in_swim
Asi es como lo tengo
tiene usted un video creado para aprender eso de timer?
He visto que el boton tiene (is_action_just_pressed) , se puede crear una funcion que pueda cambiarlo solo cuando se usa nadar a (is_action_pressed) para que no tenga limites y se deje pulsado para nadar ???