Entrar
Últimos assuntos
» Preciso de ajudapor AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Qui 18 Abr 2024, 18:28
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
[AJUDA?] Room 2000x2000 lagando
+5
cascavelo
Dr.XGB
RafaelCazarotto
Mário Valney
bimorx
9 participantes
Página 2 de 2
Página 2 de 2 • 1, 2
Re: [AJUDA?] Room 2000x2000 lagando
E GENTE NÃO FALA LEG, LEG É PERNA EM INGLÊS, FALEM LAG COM A
TODO MUNDO FALA LEG N SEI PQ. :/
kkkkkkkkkkkkkkkkkkk, concordo, mas eu sempre falo LAG xD
...
bem, sim Lol-King, seria um modo muito mais trabalhoso porem com maior desempenho e jogabilidade, eu to fritando a cabeça em alguns topicos e videos no youtube, mas não faço a minima ideia de como aplicar mesmo grid em meu projeto, pois o player deveria reconhecer alguns objetos em volta dele mesmo para poder colidir e etc.. mas como checar "if distance_to_image(surface) < ## " ou algo do tipo... n tem como O.o a menos q eu usasse algo chamado get_pixel ou algo assim, mas isso ainda n conheço, to apenas tentando entender grid pra aplicar, mas se for preciso vou tentar entender o get_pixel D:
---
e Wallcraft, eu ja vi este topico :/ oq ele diz realmente ajuda bastante na programação em geral, porém não reduziu o lag do meu jogo, eu tenho 30 fps enquanto estou na superficie, quanto mais eu cavo pra baixo (mais instancias aparecem na tela) o fps cai pra 20, 16, 10, e vai só caindo quanto mais fundo, menos fps =(
bimorx- Data de inscrição : 24/01/2010
Reputação : 0
Número de Mensagens : 153
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [AJUDA?] Room 2000x2000 lagando
Mas no caso você não usaria surface pra colidir.
Como no meu exemplo anterior, pra por exemplo verificar o primeiro zero vc usaria
Aplicando o conceito in-game para descubrir qual o valor daquela posição dentro da grid você faria o seguinte:
*Pega uma coordenada x e y
*Divide, cada um, x e y pelo tamanho de cada tileset (se é 32x32, divida por 32), e o resultado da divisão você aplica um floor.
Se você quiser eu te passo um vídeo em inglês da matemática por traz deste conceito(aplicada no flash, mas o kra desenha explica muito bem ).
Como no meu exemplo anterior, pra por exemplo verificar o primeiro zero vc usaria
- Código:
grid[0,0]
Aplicando o conceito in-game para descubrir qual o valor daquela posição dentro da grid você faria o seguinte:
*Pega uma coordenada x e y
*Divide, cada um, x e y pelo tamanho de cada tileset (se é 32x32, divida por 32), e o resultado da divisão você aplica um floor.
- Código:
grid[floor(x/32),floor(y/32)]
Se você quiser eu te passo um vídeo em inglês da matemática por traz deste conceito(aplicada no flash, mas o kra desenha explica muito bem ).
L0l-King- Data de inscrição : 04/04/2010
Reputação : 1
Número de Mensagens : 148
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [AJUDA?] Room 2000x2000 lagando
ja pensou em enverter? tipo
- Código:
instance_deactivate_all();
instance_activate_region(view_xview[0],view_yview[0],view_wview[0],view_hview[0]+128,false,true);
Crovux- Data de inscrição : 07/01/2012
Reputação : 6
Número de Mensagens : 169
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [AJUDA?] Room 2000x2000 lagando
Crovux escreveu:ja pensou em enverter? tipopois ai ia desativar todos e so ativar esta região.. ao contrario de antes que ativava todos menos esta região... Posso estar enganado, mas acho que é isso!
- Código:
instance_deactivate_all();
instance_activate_region(view_xview[0],view_yview[0],view_wview[0],view_hview[0]+128,false,true);
Se você lesse o tópico por inteiro, veria que isso já foi sugerido.
O problema dele são objetos demais.
L0l-King- Data de inscrição : 04/04/2010
Reputação : 1
Número de Mensagens : 148
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [AJUDA?] Room 2000x2000 lagando
Lol-King, hmm... acho q entendi um pouco... mas, como, por exemplo, eu faria pra verificar uma grid proxima ao player? ou como eu criaria um sprite ou objeto dentro desa grid? isso q me explode a cabeça O.õ
bimorx- Data de inscrição : 24/01/2010
Reputação : 0
Número de Mensagens : 153
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [AJUDA?] Room 2000x2000 lagando
Não é pra ter um objeto, esqueça isso, você só deve desenhar como tileset, e apenas um objeto vai ter uma grid do mapa inteiro.
Pra verificar o valor do grid próximo ao player ou onde ele está você faria algo como:
Pra verificar o valor do grid próximo ao player ou onde ele está você faria algo como:
- Código:
grid[floor(obj_player.x / 32), floor(obj_player.y / 32)]
L0l-King- Data de inscrição : 04/04/2010
Reputação : 1
Número de Mensagens : 148
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [AJUDA?] Room 2000x2000 lagando
sim sim, é oq eu to precisando, olha, eu aprendi GRAÇAS A DEUS, criar um terreno aleatorio usando APENAS surfaces, não deu lag nenhum ainda pois é 1 surface do tamanho da room, demora o "loading" enquanto desenha essa surface mas depois o jogo fica perfeito, PORÉM, eu preciso fazer o player colidir com os blocos né, por que se não ele vai cair no infinito, e tambem preciso quebrar estes blocos. Lol-King, cara, mto obrigado pela ajuda, vo tentar fazer algo baseado neste comando q vc mandou, tipo, verificar a grid q esteja mais perto e criar apenas blocos invisiveis solidos nessas grids, apenas para colisão do personagem e tal, vou tentar aprender grid... rsrsrs
VLWWW!!!
VLWWW!!!
bimorx- Data de inscrição : 24/01/2010
Reputação : 0
Número de Mensagens : 153
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [AJUDA?] Room 2000x2000 lagando
Assim, já que o terreno é gerado seria algo do tipo a geração:
Assim que você monta a grid, o problema disso tudo é que não tem métodos que facilitem o uso, como usar as funções de colisão, tudo deve ser feito a mão.
- Código:
//faz de conta que desenhou algum bloco aqui na posição x,y
obj_terrain.grid[floor(x/32),floor(y/32)] = 0
Assim que você monta a grid, o problema disso tudo é que não tem métodos que facilitem o uso, como usar as funções de colisão, tudo deve ser feito a mão.
L0l-King- Data de inscrição : 04/04/2010
Reputação : 1
Número de Mensagens : 148
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [AJUDA?] Room 2000x2000 lagando
hmm, dxa ver se eu entendi, se eu colocar obj_terreno .grid[tal,tal] o obj_terreno automaticamente será alinhado à ela na room?
[EDIT] Ótimo!!, consegui criar grids com valores diferentes (-1 é o ceu, 0 é terra com grama, 1 é terra, 2 é pedra) e consegui tambem colocar pedra aleatoriamente mudando o valor da grid, isso vai facilitar no futuro eu acho... mas enfim, agora o meu maior problema é: como vou fazer para o player colidir com a grid em q tem valores diferentes de -1?
eu precisava fazer um sistema tipo o q está nesse video: https://www.youtube.com/watch?v=8OKrwOK6Gjg
por favor, abre o video e coloque em 2:15 exatamente, nessa hora mostra como o cara fez para gerar blocos solidos em volta de tudo q está no player q não seja CÉU (valor -1).
tem alguma idéia?
[EDIT] Ótimo!!, consegui criar grids com valores diferentes (-1 é o ceu, 0 é terra com grama, 1 é terra, 2 é pedra) e consegui tambem colocar pedra aleatoriamente mudando o valor da grid, isso vai facilitar no futuro eu acho... mas enfim, agora o meu maior problema é: como vou fazer para o player colidir com a grid em q tem valores diferentes de -1?
eu precisava fazer um sistema tipo o q está nesse video: https://www.youtube.com/watch?v=8OKrwOK6Gjg
por favor, abre o video e coloque em 2:15 exatamente, nessa hora mostra como o cara fez para gerar blocos solidos em volta de tudo q está no player q não seja CÉU (valor -1).
tem alguma idéia?
bimorx- Data de inscrição : 24/01/2010
Reputação : 0
Número de Mensagens : 153
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [AJUDA?] Room 2000x2000 lagando
Perdão pela demora, mas é que trabalhar e faculdade às vezes não me dá tempo nem pra suspirar
Interessante o conceito desse kra.
Ele gera just-in-time(executar só quando é preciso) a geração das máscaras de colisão.
Ele faz algo do tipo:
*deixa armazenado a posição do player x e y da grid(tipo, 12 e 10)
* faça um for de -3 a +3, e dentro dele faça outro for ninhado de mesmo range(-3 a +3)
o que tu vai fazer é bem simples, verificando o valor da grid desta maneira:
Interessante o conceito desse kra.
Ele gera just-in-time(executar só quando é preciso) a geração das máscaras de colisão.
Ele faz algo do tipo:
*deixa armazenado a posição do player x e y da grid(tipo, 12 e 10)
* faça um for de -3 a +3, e dentro dele faça outro for ninhado de mesmo range(-3 a +3)
o que tu vai fazer é bem simples, verificando o valor da grid desta maneira:
- Código:
//digamos que I e J são as tuas variáveis de contador/iteração do for
terreno.grid[i+(posição x na grid do player),j+(posição y na grid do player)]
//depois pra saber onde desenhar o objeto com a máscara do bloco faça o seguinte
//crie um novo bloco de acordo com o valor do grid naquela posição(no caso do -1 vc não cria nada)
bloco.x = i+(posição x na grid do player) * 32
bloco.y = j+(posição y na grid do player) * 32
//importante também é que a criação destes blocos deve ser feita no Begin Step,
// e depois no End Step destruir TODOS OS BLOCOS,
// porque senão a medida que explorar o mapa você ficaria com objetos demais
// Ou senão usar um alarm que executa de 5 em 5 frames todo o código acima
Última edição por L0l-King em Ter 12 Mar 2013, 12:46, editado 1 vez(es)
L0l-King- Data de inscrição : 04/04/2010
Reputação : 1
Número de Mensagens : 148
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [AJUDA?] Room 2000x2000 lagando
Sem problema, entendo q é dificil ter tempo, e nem é prioridade isso aqui pra vc, rlx
Cara eu preciso começar a pensar de jeito mais logico.... eu tava conversando ontem com o Gabriel Schneider, e ele me deu a MESMA solução e deu certo, exatamente isso!! bem, acho q minhas duvidas se foram por enquanto, pelo menos essa, pois agora ja consegui criar um map random, apenas usando grids e surfaces, e colidindo apenas em torno do player. Muiiiiiiiiitissimo o brigado Lol-King, e ao Gabriel Schneider tbm (q nem ta aki nos posts kkk). VLw mesmooo, precisando de alguma ajuda só me falar tamo ae !
Vlw a todos q tentaram tambem, é claro
Cara eu preciso começar a pensar de jeito mais logico.... eu tava conversando ontem com o Gabriel Schneider, e ele me deu a MESMA solução e deu certo, exatamente isso!! bem, acho q minhas duvidas se foram por enquanto, pelo menos essa, pois agora ja consegui criar um map random, apenas usando grids e surfaces, e colidindo apenas em torno do player. Muiiiiiiiiitissimo o brigado Lol-King, e ao Gabriel Schneider tbm (q nem ta aki nos posts kkk). VLw mesmooo, precisando de alguma ajuda só me falar tamo ae !
Vlw a todos q tentaram tambem, é claro
bimorx- Data de inscrição : 24/01/2010
Reputação : 0
Número de Mensagens : 153
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Página 2 de 2 • 1, 2
Página 2 de 2
Permissões neste sub-fórum
Não podes responder a tópicos