Diferentes estratégias para acessar nodes em uma cena na Godot

  Рет қаралды 981

Guará Programador

Guará Programador

Күн бұрын

Пікірлер: 15
@pbarrosramon
@pbarrosramon 4 ай бұрын
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.
@tota5
@tota5 4 ай бұрын
simplismente fantástico! Aprendi muito!
@palhacoxato
@palhacoxato 4 ай бұрын
Nossa eu quebrando a cabeça aqui de madrugada, aí seu vídeo me deu a resposta que eu precisa manooooo, valeuuu ❤
@greenlevelcreatordev
@greenlevelcreatordev 4 ай бұрын
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
@guaraprogramador
@guaraprogramador 4 ай бұрын
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-l8m
@DARKLEGIONS-l8m 4 ай бұрын
Oi mano infelizmente desistir da godot so futuramente eu voltarei agora eu vou foca mais na pixel art e eu sou o Dark
@guaraprogramador
@guaraprogramador 4 ай бұрын
Foque em uma coisa por vez meu caro, é mais fácil do que tentar aprender tudo de uma vez só.
@YamiDev784
@YamiDev784 4 ай бұрын
Se vc é o Dark eu sou a luz
@eric_brito
@eric_brito 4 ай бұрын
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.
@guaraprogramador
@guaraprogramador 4 ай бұрын
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_brito
@eric_brito 4 ай бұрын
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-xs5qc
@giogio-xs5qc 4 ай бұрын
massa d+
@noo-binho5555
@noo-binho5555 2 ай бұрын
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
@guaraprogramador
@guaraprogramador 2 ай бұрын
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
@noo-binho5555
@noo-binho5555 2 ай бұрын
@@guaraprogramador blz mn vlw
10 AWESOME ADDONS for GODOT 4
5:42
MrElipteach
Рет қаралды 68 М.
O estranho mundo do POO no Godot Engine (e como os nodes funcionam).
20:32
Guará Programador
Рет қаралды 1,2 М.
When you have a very capricious child 😂😘👍
00:16
Like Asiya
Рет қаралды 18 МЛН
人是不能做到吗?#火影忍者 #家人  #佐助
00:20
火影忍者一家
Рет қаралды 20 МЛН
UFC 310 : Рахмонов VS Мачадо Гэрри
05:00
Setanta Sports UFC
Рет қаралды 1,2 МЛН
Godot @export - Everything You Need to Know
6:22
DashNothing
Рет қаралды 32 М.
Netflix Removed React?
20:36
Theo - t3․gg
Рет қаралды 65 М.
A NOVA ERA DO CANAL!!! #gamedev #games
5:46
Peter.2000x
Рет қаралды 96
Propagação e captura de eventos de Input no Godot
15:02
Guará Programador
Рет қаралды 1,5 М.
10+2 AWESOME ADDONS for GODOT 4
8:36
MrElipteach
Рет қаралды 155 М.
Top 6 Jogos Feitos na GODOT (Incluíndo Jogos de JAMs) - Semana 10
7:42
Clécio Espindola GameDev
Рет қаралды 10 М.
Vale a pena usar C# na Godot Engine? (E o que são Bindings)
14:48
Guará Programador
Рет қаралды 4,1 М.