Fala Guará! Mais um vídeo muito ótimo! Também considero utilizar o @export como a melhor forma de acessar nodes filhos. Porém um ponto importante que eu vejo que muita gente ignora é: acessar métodos dos filhos através do próprio pai não é o padrão que os criadores da Godot desenharam para a Engine. Por exemplo: filho.método(). O padrão ideal seria o próprio filho processar o que precisa no seu próprio script e - se precisar - chamar métodos do pai através de get_parent().métodoDoPai() ou owner.métodoDoPai(), que é muito menos custoso computacionalmente. Ou mesmo, o filho "avisar" o pai através dos SIGNALS para que o pai faça o processamento necessário. Entender isso foi um divisor de águas pra mim, e hoje eu faço bem menos referências aos nodes filhos, tendo em vista que eu posso conectar os signals na própria IDE, e pelo fato de cada filho fazer a sua devida responsabilidade. Abraço.
@tota54 ай бұрын
simplismente fantástico! Aprendi muito!
@palhacoxato4 ай бұрын
Nossa eu quebrando a cabeça aqui de madrugada, aí seu vídeo me deu a resposta que eu precisa manooooo, valeuuu ❤
@greenlevelcreatordev4 ай бұрын
Ei man me tire uma dúvida: Criei uma Area2D e esta area está conectada ao meu characterbody onde se o player (CharacterBody) entrar na area ele irá enviar um sinal chamado "player_entered" só que queria saber qual é o melhor método para o Nó conseguir receber este sinal sendo que o mesmo está em outra cena. Tentei usa o getnode mas tou tendo problemas na versão mobile. Por que pelo que vi não posso realizar conexões se os mesmos nós não tiverem na mesma cena. Explicando melhor: O nó que irá receber este sinal está em outra cena do tipo Control. Mas quero um método que não irá afetar ou sobrecarregar o desempenho do meu projeto ou da própria engine ensi
@guaraprogramador4 ай бұрын
Fala ai meu caro, então eu quero primeiro ver se eu entendi o seu problema, você simplesmente quer conectar esse sinal "player_entered", em cenas diferentes. Nesse caso, como você até mencionou o Control (que é o nó de interface) então minha sugestão é você usar o export. Assumindo que você consegue interagir tanto com o Control e a Area2D direto pelo editor, você pode usar um export pra poder especificar qual node vai receber a conexão, e ai por código é só você conectar o sinal, e ai garantindo que um node foi selecionado pelo editor, então a conexão será garantida. Lembrando que essa é a minha hipótese baseado na sua pergunta, eu não sei qual é o contexto que o seu jogo está e por isso essa é a primeira ideia que me vem a cabeça. Qualquer coisa, faz essa pergunta novamente no servidor do discord do canal que ai lá a gente até consegue te ajudar melhor
@DARKLEGIONS-l8m4 ай бұрын
Oi mano infelizmente desistir da godot so futuramente eu voltarei agora eu vou foca mais na pixel art e eu sou o Dark
@guaraprogramador4 ай бұрын
Foque em uma coisa por vez meu caro, é mais fácil do que tentar aprender tudo de uma vez só.
@YamiDev7844 ай бұрын
Se vc é o Dark eu sou a luz
@eric_brito4 ай бұрын
Legal que export e findChild são semelhantes a serializar e find da Unity. Que possuem as mesmas vantagens e desvantagens. Tem ainda algumas pessoas mais preocupadas com a escalabilidade, que preferem find e não gostam de serializar, para não criar dependências e tal, enquanto tem outros que dizem para não usar find nunca pq é pesado kkk. Me bateram 2 dúvidas: É mais leve usar grupos ou layers para detectar os triggers (Áreas 2D na Godot)? Essas strings em argumentos ou ifs, tipo essa de grupos não pesam no desempenho não? Se é melhor converter antes para hash e tals.
@guaraprogramador4 ай бұрын
Opa fala ai meu claro. Pois é, essas semelhanças em design é bem comum no mundo das game engines. Sobre as suas perguntas: 1. É mais leve usar grupos ou layers para detectar os triggers (Áreas 2D na Godot)? Esses dois tem propósitos diferentes e a escolha depende do contexto. Layers são para categorizar objetos para verificação de colisão, e "grupos" são usados para categorizar nodes de uma maneira que você pode chamar métodos ou aplicar mudanças simultâneas. 2. Essas strings em argumentos ou ifs, tipo essa de grupos não pesam no desempenho não? Se é melhor converter antes para hash e tals. Vai ter um impacto não muito notável em desempenho na minha opinião, só em casos muito específicos que desempenho for absolutamente crítico que você vai preocupar com isso. No geral, usar Strings é perfeitamente aceitável, e talvez mais legível em código.
@eric_brito4 ай бұрын
Agradeço as dicas. Isso me lembrou algo interessante sobre desempenho que vi no CodeMonkey e num forum, que são as três formas de obter um alvo: trigger, overlap ou distancia da entidade via script. Há algumas coisas interessantes como a forma do colisor, o tipo de cálculo (as operações e a quantidade de condicionais desse cálculo) afetando no desempenho. Seria legal se um dia vc quiser abordar isso, pois é bastante usado nas detecções de inimigos e interações.
@giogio-xs5qc4 ай бұрын
massa d+
@noo-binho55552 ай бұрын
Como faço pra pegar um valor por colisão?? Tipo, meu jogo tem várias plataforma, aí a normal ele pula 1m , se ele tiver na plataforma elástica o player tem q pegar o quanto a plataforma multiplica o pulo dele , aí se ela multiplica por 2 ele ir pular 2m
@guaraprogramador2 ай бұрын
Opa fala ai, então nesse caso específico não seria apenas como você acessa um node na cena, mas como essas coisas são organizadas em código, mas a lógica (pelo menos uma que eu consiga pensar agora) seria mais ou menos o seguinte: cada plataforma tem um multiplicador de pulo que você define. No momento da colisão do player com uma plataforma, ele pega esse valor e ajusta a altura do pulo. No código do player, você detecta a colisão e modifica a força do pulo usando esse multiplicador. Se a plataforma for elástica, ele multiplica o pulo, e se for uma plataforma normal, o pulo volta ao padrão. Se precisar de uma moral maior para resolver o seu problema, manda ele lá na comunidade do discord e a gente vai tentar ajudar com a sua situação, dentro do que for possível. Tmj