Closed Gurigraphics closed 7 years ago
Se colocar isso na parte do código onde executa 60 FPS, vai paralisar o tempo em dia ou noite.
Estava pensando, isso não deixa o mapa pesado? Porque parece que o tempo esta sendo resetado a cada frame. Eu tentei manipular o tempo com o mod do hero, e assim que coloquei para noite, ficou dia. A pergunta é, ele força dia só quando acontece noite, ou ele esta colocando aquela hora o tempo todo e por isso da a impressão de ele estar parado?
Embora esteja funcionando, talvez ter um comando de pause de verdade e dois itens wires com o comando "fica dia" e o comando "fica noite" me daria mais liberdade de design de fases...
Enfim, só uma reflexão rs
Bom ao olhar o código da para disparar em um objeto wirelles, lógica: quando o jogador chegar no andar 8 a variável "Main.dayTime = false;" ou "Main.nightTime=true". Mudando assim o tempo...
O que altera a performance de um jogo é a manipulação de objetos: imagens, personagens, sons, etc. Objetos são "grandes conjuntos de dados e funções". Como aquela página inteira de código, que ele precisa ler e executar a todo instante. Por isso consome memória.
As variáveis elas são dados simples. Armazenam apenas true, false, número, palavra, etc. E servem justamente para ele saber o que deve ser executado ou não.
No nosso caso, se for 1 ele coloca dia, se for 0, coloca noite.
Alterar elas ou não, o programa precisa sempre verificar o valor delas para saber o que fazer. Por isso, praticamente não consome memória, uma vez que o CPU e GPU é capaz de lidar, e precisa lidar, com uma imensidão de variáveis a cada milésimo de segundo.
A pergunta é, ele força dia só quando acontece noite, ou ele esta colocando aquela hora o tempo todo e por isso da a impressão de ele estar parado?
Exato. Causa a impressão que está parado, mas é resetado a todo instante para impedir o tempo de avançar. E também para impedir o surgimento de eventos que também são determinados pela passagem do tempo.
Embora esteja funcionando, talvez ter um comando de pause de verdade e dois itens wires com o comando "fica dia" e o comando "fica noite" me daria mais liberdade de design de fases...
Ok. A primeira tarefa era descobrir como parar o tempo e eventos. Essa questão com wires acho que é o que o Samuel estava fazendo: https://github.com/lukanpeixe/projetocastleroid/issues/30
Obrigado pelo esclarecimento, acho que estou um pouco com aquele feeling de programador pré-histórico, que tinha que polir todo o código várias vezes para rodar liso no DOS haha
Vou deixar a parte de wire por enquanto com o Samuel no #30 mesmo :smile:
Isso continua igual. Os caras do Terraria que fizeram isso muito bem. Eu já tentei fazer jogo bem mais simples tipo Bomberman e travava tudo justamente por causa desses updates constantes.
Em javascript, por exemplo, existe o prototype que cria um objeto que herda as características do objeto principal. Assim, usar centenas de objetos é como usar um único objeto. O que é totalmente diferente que duplicar objetos e sobrecarregar a memória.
Terraria faz justamente isso. A diferença entre os NPCs são apenas aquelas configurações.
E além da estratégia de programação, também influência como a Engine lida com a memória, e também qual a plataforma, lógico. Porque o PC tem bem mais memória que um jogo web.
Se colocar isso na parte do código onde executa 60 FPS, vai paralisar o tempo em dia ou noite.
Os eventos: