Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
RPG tático
3 participantes
Página 1 de 1
RPG tático
Galera, eu to trabalhando num projeto de um RPG tático, que funciona baseado em turnos, e me veio uma dúvida..
Procurei por tutoriais e engines sobre como fazer o alcance do personagem (movimento e ataque) aparecer quando você clica nele, e quase todos me apresentaram uma única solução: Posicionar objetos "chão" em todas as tiles da room e usar ds map/list/priority pra verificar uma por uma quais tiles estão dentro do alcance do personagem..
Não existe outro meio de se fazer isso? Desse jeito não consome mta memória por ter que fazer um objeto em cada espaço livre e verificar um por um?
As engines não apresentaram problemas de memória, mas elas não eram jogos completos, e não tinha mais nada que pudesse consumir memória além desses códigos, meu medo é que fique muito pesado quando estiver efetivamente dentro de um jogo
Se vocês puderem me ajudar, eu agradeço
E a título de curiosidade, eu montei um sistema que quando eu clico no personagem ele cria objetos em cada um dos espaços que estão dentro do alcance dele, aí quando eu quero mover eu guardo as coordenadas do objeto clicado e movo até elas, o problema é que da maneira que eu fiz, se tiver apenas uma fileira de paredes encostadas no personagem e o alcance dele for de 3, ele consegue andar depois das paredes, onde teoricamente seria impossível de ele chegar, e eu não sei como resolver isso.
Agradeço se vcs puderem me ajudar (:
Fotos:
Procurei por tutoriais e engines sobre como fazer o alcance do personagem (movimento e ataque) aparecer quando você clica nele, e quase todos me apresentaram uma única solução: Posicionar objetos "chão" em todas as tiles da room e usar ds map/list/priority pra verificar uma por uma quais tiles estão dentro do alcance do personagem..
Não existe outro meio de se fazer isso? Desse jeito não consome mta memória por ter que fazer um objeto em cada espaço livre e verificar um por um?
As engines não apresentaram problemas de memória, mas elas não eram jogos completos, e não tinha mais nada que pudesse consumir memória além desses códigos, meu medo é que fique muito pesado quando estiver efetivamente dentro de um jogo
Se vocês puderem me ajudar, eu agradeço
E a título de curiosidade, eu montei um sistema que quando eu clico no personagem ele cria objetos em cada um dos espaços que estão dentro do alcance dele, aí quando eu quero mover eu guardo as coordenadas do objeto clicado e movo até elas, o problema é que da maneira que eu fiz, se tiver apenas uma fileira de paredes encostadas no personagem e o alcance dele for de 3, ele consegue andar depois das paredes, onde teoricamente seria impossível de ele chegar, e eu não sei como resolver isso.
Agradeço se vcs puderem me ajudar (:
Fotos:
- Spoiler:
bootzin- Data de inscrição : 28/01/2010
Reputação : 5
Número de Mensagens : 136
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: RPG tático
O saim resolveu meu problema com este script a muito tempo atrás :
https://gmbr.forumeiros.com/t22545-movimento-tabuleiro-razao-para-array
Não sei se é assim que você quer, mas o código é aparentemente simples, só que consome um certo processamento quando o alcance é alto.
https://gmbr.forumeiros.com/t22545-movimento-tabuleiro-razao-para-array
Não sei se é assim que você quer, mas o código é aparentemente simples, só que consome um certo processamento quando o alcance é alto.
Zero.- Data de inscrição : 19/08/2010
Reputação : 47
Número de Mensagens : 1300
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Re: RPG tático
Muito obrigado, FlyAway, era bem isso que eu estava querendo mesmo..
Eu tinha tentado fazer algo como o A* partindo do obj_passo e indo até o player, e se ele não encontrasse um caminho menor do que o movimento do player, ele se destruía, mas acabou consumindo processo demais e levava um ou dois segundos pra aparecer o alcance :/
E vc ficou com a mesma dúvida minha a respeito de movimentação na diagonal.. Vc chegou a achar a resposta? O maior problema pra mim é que o "custo" de se andar na diagonal é levemente maior do que o custo de andar uma casa e menor do que o custo de andar duas..
Eu tinha tentado fazer algo como o A* partindo do obj_passo e indo até o player, e se ele não encontrasse um caminho menor do que o movimento do player, ele se destruía, mas acabou consumindo processo demais e levava um ou dois segundos pra aparecer o alcance :/
E vc ficou com a mesma dúvida minha a respeito de movimentação na diagonal.. Vc chegou a achar a resposta? O maior problema pra mim é que o "custo" de se andar na diagonal é levemente maior do que o custo de andar uma casa e menor do que o custo de andar duas..
bootzin- Data de inscrição : 28/01/2010
Reputação : 5
Número de Mensagens : 136
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: RPG tático
na vdd eu parei com o outro projeto, mas infelizmente não achei solução, mas matemáticamente com as diagonais o jogo flui melhor.
Zero.- Data de inscrição : 19/08/2010
Reputação : 47
Número de Mensagens : 1300
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Re: RPG tático
Eu fiz um RPG tático e me deparei com esse problema e ainda usava o game maker lite, então para resolver fiz umas "gambiarras" que até deram certo, agora como eu tenho GMs estou tentando fazer uma nova versão com o código melhorado, porém eu paralisei o projeto para participar do CQ.
Em breve eu vou retomar o projeto e quando terminar a parte de movimentação posso te passar uma engine, estou sem tempo agora mas depois eu posso fazer, o problema é que ainda tem as "gambiarras". O jogo é o que esta em minha assinatura
Em breve eu vou retomar o projeto e quando terminar a parte de movimentação posso te passar uma engine, estou sem tempo agora mas depois eu posso fazer, o problema é que ainda tem as "gambiarras". O jogo é o que esta em minha assinatura
Tanker GT- Games Ranking :
Notas recebidas : C
Data de inscrição : 08/10/2011
Reputação : 11
Número de Mensagens : 106
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Re: RPG tático
Poste a engine, seria mto bom termos no arsenal, ainda podemos melhorar o código também
Zero.- Data de inscrição : 19/08/2010
Reputação : 47
Número de Mensagens : 1300
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Re: RPG tático
Então, galera, eu acredito que tenha conseguido o resultado que eu estava esperando.. procurei uma porrada de engine e textos sobre A*, e acabei conseguindo montar algo bem funcional, que eu ainda não achei bugs, então agradeceria as críticas
Meus sinceros agradecimentos ao Saim, ele me ajudou muito a concluir meu projeto, bem como ao Mark, autor desse tópico aqui: AI for TD using mp_grid
Vou postar a engine aqui pra vocês e amanhã posto ela na sessão de engines, pq agr vou dormir
Engine de movimento baseado em turnos por Bootzin
Mais uma vez, agradeço as críticas, digam o que acham
Meus sinceros agradecimentos ao Saim, ele me ajudou muito a concluir meu projeto, bem como ao Mark, autor desse tópico aqui: AI for TD using mp_grid
Vou postar a engine aqui pra vocês e amanhã posto ela na sessão de engines, pq agr vou dormir
Engine de movimento baseado em turnos por Bootzin
Mais uma vez, agradeço as críticas, digam o que acham
Última edição por bootzin em Qui 31 Jul 2014, 01:38, editado 1 vez(es) (Motivo da edição : Corrigir o link)
bootzin- Data de inscrição : 28/01/2010
Reputação : 5
Número de Mensagens : 136
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: RPG tático
Não conseguiu o movimento diagonal tb n ?
Zero.- Data de inscrição : 19/08/2010
Reputação : 47
Número de Mensagens : 1300
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Re: RPG tático
Consegui sim, só desativei porque estava pensando no meu jogo e achei que funcionaria melhor sem o movimento na diagonal..
Tem uma função no script scr_move que é o que determina o ponto de partida e o destino da instância, nela o último argumento é "allowdiag" cujos valores 0 e 1 determinam se o personagem pode ou não andar na diagonal (0-não;1-sim)..
-----EDIT-----
Na verdade essa função só permite que o personagem se movimente na diagonal, mas a previsão do alcance não se dá na diagonal, então tem lugares que ele conseguiria atingir se movendo na diagonal, mas ele não se move porque a previsão do movimento se dá apenas em vertical e horizontal..
Eu posso tentar corrigir isso, mas não vou mexer nisso agora porque meu jogo só vai permitir horizontal e vertical mesmo, talvez depois eu corrija isso, se vocês tiverem sugestões, eu tento implementar
Tem uma função no script scr_move que é o que determina o ponto de partida e o destino da instância, nela o último argumento é "allowdiag" cujos valores 0 e 1 determinam se o personagem pode ou não andar na diagonal (0-não;1-sim)..
-----EDIT-----
Na verdade essa função só permite que o personagem se movimente na diagonal, mas a previsão do alcance não se dá na diagonal, então tem lugares que ele conseguiria atingir se movendo na diagonal, mas ele não se move porque a previsão do movimento se dá apenas em vertical e horizontal..
Eu posso tentar corrigir isso, mas não vou mexer nisso agora porque meu jogo só vai permitir horizontal e vertical mesmo, talvez depois eu corrija isso, se vocês tiverem sugestões, eu tento implementar
bootzin- Data de inscrição : 28/01/2010
Reputação : 5
Número de Mensagens : 136
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: RPG tático
Eu vou dar uma olhada e tentar adaptar, outro problema que vi é se uma criatura ocupar mais de 1 quadrado
Zero.- Data de inscrição : 19/08/2010
Reputação : 47
Número de Mensagens : 1300
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Re: RPG tático
Quanto a isso a solução é até bem simples, é só alterar o tamanho da grid.. Por ex, eu uso a grid 48x48 nesse jogo, se eu tiver um bicho 96x96 é só eu rodar o script com a grid 96 e adaptar o custo do movimento, no caso seria duas vezes mais para o mesmo resultado, entendeu?
bootzin- Data de inscrição : 28/01/2010
Reputação : 5
Número de Mensagens : 136
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: RPG tático
Eu baixei sua engine e ela é bem diferente do que eu achava.
Da até vergonha de postar porque minha engine não usa list,ds_map nem grid agora estou na dúvida se era realmente isso que você queria porque minha engine é muito diferente da sua, a minha serve para movimentar um peça respeitando o limite de casas e sem passar por cima de obstáculos, se não era isso que você queria desconsidere.
http://www.mediafire.com/download/sp0c79aa32tblrk/Engine+Turnos.gmz
Depois fale mais sobre os projetos de vocês, esse estilo de jogo é um dos meus favoritos
Da até vergonha de postar porque minha engine não usa list,ds_map nem grid agora estou na dúvida se era realmente isso que você queria porque minha engine é muito diferente da sua, a minha serve para movimentar um peça respeitando o limite de casas e sem passar por cima de obstáculos, se não era isso que você queria desconsidere.
http://www.mediafire.com/download/sp0c79aa32tblrk/Engine+Turnos.gmz
Depois fale mais sobre os projetos de vocês, esse estilo de jogo é um dos meus favoritos
Tanker GT- Games Ranking :
Notas recebidas : C
Data de inscrição : 08/10/2011
Reputação : 11
Número de Mensagens : 106
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» Jogo de plataforma (Tiro - Guerra)
» CT - Comando Tático
» [Projeto] [C++]Sistema de Batalha RPG Tático
» CT - Comando Tático
» [Projeto] [C++]Sistema de Batalha RPG Tático
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos