GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Ontem à(s) 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

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16


Array ou dados EXTERNOS

4 participantes

Ir para baixo

Array ou dados EXTERNOS Empty Array ou dados EXTERNOS

Mensagem por moisesBR Qui 06 Dez 2012, 13:04

Eu estou penando para inserir, modificar dados da array, por que gosto de organizar usando tabulação ao estilo do excel ou o próprio excel mesmo até, xml ou sei lá, mas o editor de scripts do gm não conserva a tabulação como um txt.

Então decidi tentar colocar num arquivo externo. Então surge o problema: Como fazer isso?
quero organizar assim:
fiz isso no script mas tá complicado modificar valores e/ou acrescentar itens.
Preparei uma planilha que modifico qualquer coisa com facilidade e ainda uso codes do programa para fazer o que quero ou até mesmo num arquivo de texto, e depois copio para o script mas a formatação fica a desejar e quando faço o inverso(script para excel ou txt), a tabulação ja era como o 2° exemplo real abaixo! uma bagunça!

Agora gostaria de saber como fazer o gm reconhecer um banco de dados externos no caso o array ou outro modo para que eu possa usar!

Minha organização por tabulação ou espaço:
itens[0,0]="vazio"itens[0,1]= 0itens[0,2]="nada"itens[0,3]="nada"
itens[1,0]="banana"itens[1,1]= 10000itens[1,2]="banana é..."tens[1,3]="1"
itens[2,0]="nabos"itens[2,1]=100itens[2,2]="nabos é..."itens[2,3]="bla "

O que eu não quero:
itens[0,0]="vazio";itens[0,1]= 0;itens[0,2]="nada";itens[0,3]="Aff! Não eu entendo nada nessa zona";
itens[1,0]="bananabananabanana";itens[1,1]= 0;itens[1,2]="banana é...";itens[1,3]="!";
itens[2,0]="zorra";itens[2,1]= 0;itens[2,2]="nabos é...";itens[2,3]="aff ";

Corro disso:
Spoiler:

Agora imagine um com inúmeros dados de uma mesma linha(só suposição):
itens[0,0]=1;itens[0,1]=1;itens[0,2]=1;itens[0,3]=1;itens[0,4]=1;itens[0,5]=1;itens[0,6]=1//etc...
e como os dados não seriam de mesmo tamanho em caracteres... seria um tormento!

Fucei o forum pra valer mas não consegui achar até tentei olhando o tópicodo Jiraya, [DLL]CastRead,2.0, e até testei a engine, mas não consegui fazer o que queria!

Resumindo o que quero para deixar bem claro(já no título):
Eu quero usar array ou dados EXTERNOS! Nada online por enquanto! engine sera apreciada
Obrigado!


Última edição por moisesBR em Qui 06 Dez 2012, 14:02, editado 1 vez(es)
moisesBR
moisesBR

Data de inscrição : 24/10/2009
Reputação : 15
Número de Mensagens : 885
Prêmios : Array ou dados EXTERNOS Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1


http://inprovise.blogspot.com/

Ir para o topo Ir para baixo

Array ou dados EXTERNOS Empty Re: Array ou dados EXTERNOS

Mensagem por Markituh Qui 06 Dez 2012, 14:00

Hmmm, entendo sua situação. Uma alternativa seria usar o formato .csv, que é um acrônimo para Comma Separated Values, ou seja, valores separados por vírgula, o que o faz um formato bem fácil de trabalhar. O próprio Excel lê esse tipo de arquivo. Funciona assim:
Código:
celula, celula, celula // Primeira linha
celula, celula, celula // Segunda linha
.. etc
Achei um script interessante na GMC, que abre e lê um arquivo .csv [1] e retorna uma ds_list de duas dimensões (uma dentro da outra). A lista retornada pela função é a das colunas, e esta por sua vez contém os valores.
Código:
// csv_read(fname)
var fname, file, rowlist, collist;
fname = argument0; // Arquivo
file = file_text_open_read(fname); // Lê o arquivo
rowlist = ds_list_create(); // Cria uma DS List

while(!file_text_eof(file)){
  collist = ds_list_create();
  ds_list_add(rowlist, collist);
  str_to_list(file_text_read_string(file), ",", collist);
  file_text_readln(file);
}
file_text_close(file);
return(rowlist);
Claro que você poderia usar a CastRead para ler mais rápido. Vamos a um exemplo: para pegar o valor da terceira coluna (index 2), na segunda linha (index 1), você poderia usar:
Código:
var rows, columns, value;
linhas = csv_read(fname);
colunas = ds_list_find_value(linhas,1);
valor = ds_list_find_value(colunas,2);
Poderia até ser criado um script com o código acima. Quanto a função "str_to_list()", o autor do post disse que você precisa desta extensão, chamada datafunctions. No mais, só é fazer um script que separe os valores por vírgula.
Razz:
[1]: Que pode ser nomeado para extensão. Desde que o conteúdo do arquivo seja no formato CSV

Agora é com você, William Boner a tarefa de armazenar os valores na array. Bom desenvolvimento!
Se tiver enganchado, só dizer =P
Markituh
Markituh

Games Ranking : Sem avaliações

Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios : Array ou dados EXTERNOS Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Array ou dados EXTERNOS Empty Re: Array ou dados EXTERNOS

Mensagem por PedroX Qui 06 Dez 2012, 14:01

Se você usar execute_file('nomedoarquivo.txt') automaticamente ele vai definir as arrays. É como se ele copiasse tudo para o código. De outro modo seria inviável e muito mais lento.

_________________


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:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : Array ou dados EXTERNOS Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Array ou dados EXTERNOS Empty Re: Array ou dados EXTERNOS

Mensagem por vinians Qui 06 Dez 2012, 14:04

Faça no Excel por exemplo. Depois la no Excel, você exporta para texto (pode ser SDF) separando cada coluna por um separador tipo ";" e cada linha por CRLF. Depois la no GM crie um script que leia este arquivo e coloque em um vetor. Por exemplo supondo que vc fez como dito acima uma tabela de 10 x 10:
Código:

var i, j;
file = file_text_open_read("tabela.txt");
for (i = 0; i < 10; i += 1)
{
    linha = file_text_read_string(file);
    file_text_readln(file);
    for (j = 0; j < 10; j += 1)
  {
        p = string_pos(";", linha);
        if (p > 0)
        {
            s = string_copy(linha, 1, p - 1);
            linha = string_delete(linha, 1, p);
        } else
          s = linha;
        vetor[i, j] = s;
     
  }
  file_text_close(file);
}
Não deu tempo de testar, mas deve funcionar com poucos ajustes. (Exemplo para uma tabela de 10 x 10)
Flws!
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2715
Prêmios : Array ou dados EXTERNOS Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

Array ou dados EXTERNOS Empty Re: Array ou dados EXTERNOS

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos