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
Array 3D não suportado ?
+2
Gonçalves
Zero.
6 participantes
Página 1 de 2
Página 1 de 2 • 1, 2
Array 3D não suportado ?
Eu tentei usa uma array 3d do tipo : variavel[i,a,o] e qndo executei o jogo apareceu um erro de que não era suportado. por quê ? T-T
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: Array 3D não suportado ?
O GM só suporta arrays bidimensionais mesmo, infelizmente. Tem alguns métodos que encontrei na internet mas achei muito gambiarra, mas caso queira tentar:
http://gmc.yoyogames.com/index.php?showtopic=414085
http://gmc.yoyogames.com/index.php?showtopic=571988
http://gmc.yoyogames.com/index.php?showtopic=414085
http://gmc.yoyogames.com/index.php?showtopic=571988
Gonçalves- Games Ranking :
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Reputação : 79
Número de Mensagens : 1013
Prêmios :
x 0 x 4 x 0
x 2 x 0 x 0
x 0 x 0 x 0
Re: Array 3D não suportado ?
Gambiarra é oq eu vou ter q fazer sem poder usar uma array 3D T-T , mas vlw ai.
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: Array 3D não suportado ?
O que você está querendo fazer exatamente? Talvez poderia estar usando ds_map ou grid...
Gonçalves- Games Ranking :
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Reputação : 79
Número de Mensagens : 1013
Prêmios :
x 0 x 4 x 0
x 2 x 0 x 0
x 0 x 0 x 0
Re: Array 3D não suportado ?
tenho o numero jogodador, tenho o monstro do jogador, e a 3º iria ser a habilidade desse monstro do jogador. Só q tem numeros de habs, e talvez eu fosse usar pra outras coisas tb.
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: Array 3D não suportado ?
Seria isso né?
- Código:
variable[player_id,monster_id,skill_id]
Gonçalves- Games Ranking :
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Reputação : 79
Número de Mensagens : 1013
Prêmios :
x 0 x 4 x 0
x 2 x 0 x 0
x 0 x 0 x 0
Re: Array 3D não suportado ?
sim, seria um script da habilidade.
tipo assim :
habilidade[1,1,1] = scr_tempestade // o slot 1 do monstros 1 do player 1 , é a habilidade tempestade.
habilidade[1,1,2] = scr_terremoto // o slot 2 do monstros 1 do player 1 , é a habilidade terremoto.
e assim vai .
tipo assim :
habilidade[1,1,1] = scr_tempestade // o slot 1 do monstros 1 do player 1 , é a habilidade tempestade.
habilidade[1,1,2] = scr_terremoto // o slot 2 do monstros 1 do player 1 , é a habilidade terremoto.
e assim vai .
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: Array 3D não suportado ?
Cara... Eu já precisei achei que fosse precisar de uma array 3D e o brendan me quebrou um galho de forma sensacional.
O que ele fez foi dividir uma array 1D em 3 (ou foram 9?) partes e, num script rápido com 3 argumentos, transformar a array 1D em uma 3D. Eu não lembro o script, vou dar uma procurada, mas a forma de usar era assim:
Vou procurar a solução de novo e volto a postar aqui.
Edit: achei! Poxa, fiquei me sentindo um mal-agradecido, agora, por só ter mencionado o Brendan. Teve muita gente genial postando naquele tópico, muitas soluções alternativas. Só que eu gravei a do Brendan por dividir o limite da array em partes iguais. Nem sempre é o que você quer.
O que ele fez foi dividir uma array 1D em 3 (ou foram 9?) partes e, num script rápido com 3 argumentos, transformar a array 1D em uma 3D. Eu não lembro o script, vou dar uma procurada, mas a forma de usar era assim:
- Código:
função[array3D(i, j, k)] := valor;
Vou procurar a solução de novo e volto a postar aqui.
Edit: achei! Poxa, fiquei me sentindo um mal-agradecido, agora, por só ter mencionado o Brendan. Teve muita gente genial postando naquele tópico, muitas soluções alternativas. Só que eu gravei a do Brendan por dividir o limite da array em partes iguais. Nem sempre é o que você quer.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Array 3D não suportado ?
Saim, eu li o tópico todo! kkkkk achei interessante, mas, me perdi qndo li isso : "é mais fácil elevar o número na potência da razão inversa pra fazer esse cálculo" KKKKKKKKKKKKKK oq é isso cara ? suponho q o Brendan seja o GameMakerTutorias certo ? então, não entendi nada doq ele falou, mas entendi os dos demais (Jiraya). E como usar esse script ?
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: Array 3D não suportado ?
Moço, se você for usar banco de dados, qual a real utilidade de uma array desse tamanho? o.õ
Gabreel- Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Game Maker Studio 2.0
- Javascript
- Outros
Re: Array 3D não suportado ?
n entendi gabreel u.u exemplifique pf hauhsuahs
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: Array 3D não suportado ?
Imagino que isso seja pro Vosturia, certo?FlyAway escreveu:n entendi gabreel u.u exemplifique pf hauhsuahs
Se sim, você vai ter que ter um banco dados, e pode (deve) puxar as habilidades de lá.
Se não, você pode fazer um banco de dados pra fazer a mesma coisa que você faria com as arrays, passando os argumentos correspondentes.
Gabreel- Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Game Maker Studio 2.0
- Javascript
- Outros
Re: Array 3D não suportado ?
ah, tendi, mas n é pro vosturia, esse projeto ja era, meu irmão mudou ele inteiro '-' , nem é mais esse o nome hsuahsuash
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: Array 3D não suportado ?
Elevar o número na potência da razão inversa é o modo nerd de dizer: tirar a raiz quadrada / cúbica / quarta / etc.FlyAway escreveu:Saim, eu li o tópico todo! kkkkk achei interessante, mas, me perdi qndo li isso : "é mais fácil elevar o número na potência da razão inversa pra fazer esse cálculo" KKKKKKKKKKKKKK oq é isso cara ? suponho q o Brendan seja o GameMakerTutorias certo ? então, não entendi nada doq ele falou, mas entendi os dos demais (Jiraya). E como usar esse script ?
No caso, a raiz cúbica de 32000 é 31. Então você pode dizer que cada indice poderia ir de 0 a 30. Ele estava falando sobre o script do Jiraya.
Estou vendo se acho uma solução sem repetições.
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Re: Array 3D não suportado ?
Bem, o saim disse q conseguiu, se n , espero a conclusão, vou realmente precisar de uma array 3d =/
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: Array 3D não suportado ?
Conseguir, não consegui. Só entendi e concordei com a idéia. Como disse, acabei percebendo que não precisava de muitas dimensões, mas de muitas arrays.
É o seguinte... você quer um valor pra cada combinação de índices da sua array, certo? Bom, e se todas as combinações estivessem numa única array? Te atende? Claro que atende, não seja ranzinza!
O que o script faz é pegar os 3 argumentos e espalhar os valores em posições da array. Você divide a array em pedaços suficientes pra garantir que não vai repetir o índice.
Algo como o primeiro índice ser a primeira casa decimal, o segundo ser a segunda casa decimal e assim por diante. A posição da 3D[1, 5, 9] seria, na 1D, [159]. O script divide igualmente o limite de 32000 elementos da array, sem risco de sobreposição. É, fica um monte de espaço em branco na array, mesmo, mas o computador não se importa. É só não usar esses espaços como se eles estivessem preenchidos.
Eu não lembro como isso foi feito, não vou lembrar agora (talvez, outro dia, mas não acho que vá fazer). Lembro que a solução binária foi a que achei mais da hora, me pareceu mais simples e a divisão ficava melhor. Mas pode ser porque ela se adequava melhor à situação. De cabeça, assim, a potenciação me soa mais lógica.
Enfim, jeito tem. Você tem uma prévia de quantos elementos cada índice pode precisar?
É o seguinte... você quer um valor pra cada combinação de índices da sua array, certo? Bom, e se todas as combinações estivessem numa única array? Te atende? Claro que atende, não seja ranzinza!
O que o script faz é pegar os 3 argumentos e espalhar os valores em posições da array. Você divide a array em pedaços suficientes pra garantir que não vai repetir o índice.
Algo como o primeiro índice ser a primeira casa decimal, o segundo ser a segunda casa decimal e assim por diante. A posição da 3D[1, 5, 9] seria, na 1D, [159]. O script divide igualmente o limite de 32000 elementos da array, sem risco de sobreposição. É, fica um monte de espaço em branco na array, mesmo, mas o computador não se importa. É só não usar esses espaços como se eles estivessem preenchidos.
Eu não lembro como isso foi feito, não vou lembrar agora (talvez, outro dia, mas não acho que vá fazer). Lembro que a solução binária foi a que achei mais da hora, me pareceu mais simples e a divisão ficava melhor. Mas pode ser porque ela se adequava melhor à situação. De cabeça, assim, a potenciação me soa mais lógica.
Enfim, jeito tem. Você tem uma prévia de quantos elementos cada índice pode precisar?
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Array 3D não suportado ?
Olha, eu quero apenas arrays 3D do tipo, habilidade[i,a,o]. Eu entendi o script do jiraya, mas dependendo dos valores na array havia possibilidade de sobreposição, um certo conflito no índice. O jeito binário eu n entendi mto, pois n conheço o método. Mas agora me veio uma ideia '-' . eu posso usar algo do tipo habilidade[string(i)+string(a)+string(o)] e juntar esses valores, sim claro q eu n faria essa junção de strings no indice da array, eu guardaria em uma var e ela seria o indice da array, mas é possivel ? se o limite for 32000, então nunca chegará nem perto, pq usarei apenas arrays 3D, onde o primeiro valor varia de 1 a 8, o segundo de 1 a 9 e o terceiro de 1 a 5. Esse metódo é válido pro meu caso ?
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: Array 3D não suportado ?
Eu usei ds_list dentro de ds_list dentro de ds_list, ai criei scripts para manusea-las.
Só não te passo as minhas porque elas estão modificadas pro meu jogo(cerca de 60% do código é personalizado).
Só não te passo as minhas porque elas estão modificadas pro meu jogo(cerca de 60% do código é personalizado).
Re: Array 3D não suportado ?
Vamos lá. Eu não tenho certeza se entendi o que você chamou de "primeiro" e "terceiro", então vou tentar o seguinte...
array[a, b, c], onde
"a" varia de 0 a 7,
"b" varia de 0 a 8, e
"c" varia de 0 a 5
Você poderia usar algo assim
array[script(a, b, c)]
O script poderia ser assim:
array[a, b, c], onde
"a" varia de 0 a 7,
"b" varia de 0 a 8, e
"c" varia de 0 a 5
Você poderia usar algo assim
array[script(a, b, c)]
O script poderia ser assim:
- Código:
var a, b, c;
a := argument0;
b := argument1;
c := argument2;
// o valor máximo de cada argumento será somado de 1, para o cálculo
var max_a, max_b, max_c;
max_a = 8; max_b = 9; max_c = 6; // já somados
return(a + b * max_a + c * max_a * max_b)
- Código:
var i, j, k, alt;
alt := 20; // um ponto na altura
for(i := 0; i < 8; i += 1){
for(j := 0; j < 9; j += 1){
for(k := 0; k < 6; k += 1){
draw_text(20, alt, "valor[" + string(k) + "," + string(j) + "," + string(i) + "]=" + string(script(k, i, j)));
alt += 20;
}
}
}
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Array 3D não suportado ?
Entendi, vou testar, mas a minha idéia n é valida n ? pq se fosse, n teria como dar nenhum conflito.
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
Página 1 de 2 • 1, 2
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos