O que há de Novo?
Fórum Outer Space - O maior fórum de games do Brasil

Registre uma conta gratuita hoje para se tornar um membro! Uma vez conectado, você poderá participar neste site adicionando seus próprios tópicos e postagens, além de se conectar com outros membros por meio de sua própria caixa de entrada privada!

  • Anunciando os planos GOLD no Fórum Outer Space
    Visitante, agora você pode ajudar o Fórum Outer Space e receber alguns recursos exclusivos, incluindo navegação sem anúncios e dois temas exclusivos. Veja os detalhes aqui.


.

FastLane

Bam-bam-bam
Mensagens
511
Reações
1.438
Pontos
233
c***lho se fizer metade de tudo isso me comprou; finalmente agora eles aceitam o C# nativamente, só vi vantagens, claro que a microsoft ter investido na empresa não teve nada a ver com isso.
 

Crystal

Mil pontos, LOL!
Mensagens
26.888
Reações
28.606
Pontos
1.179
Queria muito começar a brincar, mas vai me tirar do foco do meu trabalho que é ser Dev Web.

Mas utilizar C# já é uma ideia.
 

Caco Antibes

Mil pontos, LOL!
Mensagens
11.824
Reações
25.292
Pontos
1.139
Tentei fazer uns protótipos na Godot e, putz, não consegui tankar GDscript.

To acostumado demais com linguagens tipo C++ e C#
 

FireFlower

Bam-bam-bam
Mensagens
730
Reações
1.601
Pontos
333
Tentei fazer uns protótipos na Godot e, putz, não consegui tankar GDscript.

To acostumado demais com linguagens tipo C++ e C#
Estou mais ou menos no mesmo barco. De vez em quando abro o Godot, começo a converter algum protótipo, mas continuo voltando para o trabalho interminável de programar tudo do zero com C e SDL2. Mas algo me diz que vou acabar migrando pra ele cedo ou tarde, ter a física e vários efeitos semiprontos é tentador demais. Apesar de também ser uma dor de cabeça fazê-lo se comportar do jeito que eu quero.
 

Brunus

Mil pontos, LOL!
Mensagens
3.705
Reações
3.423
Pontos
1.289
Galera, alguma alma carinhosa poderia me dar umas dicas com erros ridículos e básicos na movimentação?
Estou brincando no godot 4.0.2, e querendo fazer um 'final fight 2,5d'. Pqp tô quebrando a cabeça já na etapa dos controles. Parece que não solta buffer, trava controles. Sei lá, não tô entendendo. O código reconhece que o modelo está no chão, mas não volta o sprite de parado. O personagem faz uns moonwalks tb.
Esse sprite é de um tutorial de um tal Clécio, mas a explicação dele fica no 2d e eu estou apelando na brincadeira.



Clipboard02.jpg

Python:
extends CharacterBody3D

const SPEED = 20
const JUMP_VELOCITY = 20

# Controles na preferencia do projeto
# move_forward(sd) _backward(w) _left(a) _right(d) jump(spaço) attack(J)
#

# Get the gravity from the project settings to be synced with RigidBody nodes.
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
var esta_pulando := false
var esta_movendo := false
var input_dir
var direction
# 1 = ESQUERA 2 = DIREITA
var virado := 0

@onready var animar := $AnimationPlayer

#funcão do jogo- procurar chamar outras funcoes
func _physics_process(delta):
    pega_vetor_de_entrada()
    aplica_movimento()
    gravidade()
    pulo()
    move_and_slide()
    #eu acabei escolhendo colocar sprites virados pra ambos os lados
    #inverter sprites deu mais erros ainda
    if is_on_floor() and virado == 2 and !esta_movendo:
        esta_pulando = false
        animar.play("dparado")
    elif is_on_floor() and virado == 1  and !esta_movendo:
        esta_pulando = false
        animar.play("eparado")
    if Input.is_action_just_released("move_right"):
        esta_movendo = false
    if Input.is_action_just_released("move_left"):
        esta_movendo = false
    if Input.is_action_just_released("move_backward"):
        esta_movendo = false
    if Input.is_action_just_released("move_forward"):
        esta_movendo = false
    #andar p cima
    if input_dir == Vector2(0,-1) && virado == 2:
        animar.play("dcorrendo")
    if input_dir == Vector2(0,-1) && virado == 1:
        animar.play("ecorrendo")
       
    #andar p direita
    if input_dir == Vector2(1,0) and !esta_pulando:
        virado = 2
        esta_movendo = true
        animar.play("dcorrendo")
    if esta_pulando and virado == 2:
        esta_pulando = true
        animar.play("dpulando")
           
    #anda p esquerda
    if input_dir == Vector2(-1,0) and !esta_pulando:
        virado = 1
        esta_movendo = true
        animar.play("ecorrendo")      
    if esta_pulando and virado == 1:
        esta_pulando = true
        animar.play("epulando")              
               
    #andar p baixo
    if input_dir == Vector2(0,1) and virado == 2:
        animar.play("dcorrendo")
    if input_dir == Vector2(0,1) and virado == 1:
        animar.play("ecorrendo")
       
func gravidade():
    # Add the gravity.
    if not is_on_floor():
        velocity.y -= gravity * 0.1 #delta  
   
func pulo():
    # Handle Jump.
    if Input.is_action_just_pressed("jump") and is_on_floor():
        velocity.y = JUMP_VELOCITY
    #até aqui o codigo estaria OK. Abaixo é extra para teste
        esta_pulando = true
   
       
func pega_vetor_de_entrada():  
    # Get the input direction and handle the movement/deceleration.
    # As good practice, you should replace UI actions with custom gameplay actions.
    input_dir = Input.get_vector("move_left", "move_right", "move_forward", "move_backward")

   
func aplica_movimento():  
    direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
    if direction:
        velocity.x = direction.x * SPEED
        velocity.z = direction.z * SPEED
    else:
        velocity.x = move_toward(velocity.x, 0, SPEED)
        velocity.z = move_toward(velocity.z, 0, SPEED)
 
Ultima Edição:


Topo Fundo