[Tutorial] Game genérico

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Qualidade [Tutorial] Game genérico

Mensagem por saim em Qua 27 Abr 2011, 11:41

Título: Um jogo que "cria" jogos
Nível: Intermediário/Avançado
Versão: Pro (mas fazendo o download, você meio que TERÁ pro)
Descrição: Só uma idéia que eu tive, funcionou, achei bacana e resolvi compartilhar.
Introdução: Comecei com essa idéia pra poder programar e testar uns códigos longe do game maker, mas percebi que o potencial da idéia é bem grande.
Basicamente, trata-se de criar um executável que não faz nada além de ler arquivos de texto e executá-los. Pra isso, basta criar um arquivo no game maker, criar uma room e, no create event dessa room, você coloca:
Código:
arquivoDoJogo=file_find_first(working_directory+"*.txt", fa_archive)
execute_file(arquivoDoJogo);
Isso já te permite fazer o essencial: programar longe do game maker, usando o bloco de notas do windows. Mas como fazer isso? É disso que vou falar de agora em diante.

Criando recursos: Um jogo normal tem objetos, sprites, entre outras coisas. Muitos jogos têm só objetos e sprites. No game maker, ao criar um recurso qualquer, ele recebe uma id que pode ser chamada ao longo de todo o jogo. Logo, trata-se de uma variável global. Então, a primeira coisa a ser feita é declarar os recursos a serem utilizados no jogo como globais. Exemplo:
Código:
globalvar obj_player, obj_wall, obj_enemy, spr_player, spr_wall, spr_enemy;
Daí, a próxima coisa a ser feita é definir o que é cada uma dessas variáveis, tipo:
Código:
obj_player=object_add();
obj_wall=object_add();
obj_enemy=object_add();
spr_player=...
Parei no sprite porque existem várias formas de se criar um sprite ao longo do jogo.
O que foi feito até agora: definimos, na primeira linha do arquivo .txt quais serão as variáveis globais a serem utilizadas ao longo do jogo e criamos os objetos. Veja que, via de regra, a primeira linha já deve ter todos os objetos do jogo. Mas como saber de antemão todos os objetos a ser utilizados? A meu ver, isso é impossível, mas não precisamos escrever a primeira linha completamente, ela pode ir sendo modificada à medida que se fizer necessário. Só que pra isso não gerar uma grande confusão, a programação deve ser muito bem organizada. Trataremos disso também, mais tarde, mas voltemos ao nosso código.
Nós adicionamos 3 objetos, com todas as variáveis no valor default, mas nenhum deles faz nada. Ainda.

Como eu vejo que o tutorial ficará imenso, deixo pra vocês descobrirem como importar cada recurso. O manual é seu amigo e funções com "_add" ou "_create", também. Exemplos:
Código:
sprite_add(fname,imgnumb,removeback,smooth,xorig,yorig);
background_add(fname,removeback,smooth);
background_create_gradient(w,h,col1,col2,kind);
sound_add(fname,kind,preload);
path_add();
timeline_add();
font_add(name,size,bold,italic,first,last);
room_add();

Organizando recursos: Você deve estar pensando: "é, isso é possível, mas o arquivo vai ficar absurdamente grande e bagunçado". Se você parar de ler agora e ir programar, sim, mas tenho algumas dicas pra deixar seu arquivo organizado. Aliás, seus arquivos organizados.
Isso mesmo, um arquivo pra cada recurso. Se pra cada som e cada imagem é necessário importar um arquivo, porque não fazer o mesmo com objetos, paths, timelines, etc? No arquivo principal, declare as variáveis e crie os objetos, mas não defina o que eles fazem. Pra isso, mande executar outro arquivo de texto, no qual você adiciona os eventos. Além disso, eu gosto de importar os sprites nesse arquivo do objeto, também, de forma que isso saia do arquivo principal. Importar as rooms de outros arquivos também é uma boa idéia. Assim, a cara do arquivo principal fica mais ou menos assim:
Código:
globalvar obj_player, obj_enemy, spr_player, spr_enemy, room_play;

obj_player=object_add();
obj_enemy=object_add();

room_play=room_add();

execute_file(arquivo do obj_player); //adiciona os eventos e sprites ao obj_player
execute_file(arquivo do obj_enemy); //adiciona os eventos e sprites ao obj_enemy

execute_file(arquivo da room_play); //define todos os parâmetros da room_play

room_goto(room_play); //vai até a room_play
"Vixi, saim, aí o arquivo principal tem que se chamar sempre "00000.txt", senão o jogo não vai executar ele primeiro!".
Caramba, como você é observador! É verdade, eu pedi pro jogo executar o primeiro arquivo .txt que ele achar. Mas que disse que arquivos de texto têm que ter a extensão .txt? Segredo: não importa a extensão do seu arquivo de texto, o game maker lê ele numa boa!
Assim, arquivos com objetos podem ter extensão .obj, arquivos com rooms podem ter extensão .room e assim por diante. Você escolhe a extensão que quiser. "Uau! E será que poderíamos alterar nosso executável pra procurar um arquivo com uma extensão pré-definida, diferente da .txt?" Pare de se adiantar... Mas já que tocamos no assunto, podemos sim. Eu recomendo usar algo totalmente aleatório e despretensioso. Algo como a extensão .saim, o que acha?
Uma dica: sempre crie os objetos antes de incluir seus eventos. Isso evita erros como "unknown variable", que aparece ao tentar, por exemplo, criar evento de colisão com um objeto que ainda não foi criado.

Mais uma coisa: podemos usar pastas, também, pra não trocar as bolas. Assim como o game maker, colocaremos os objetos na pasta "objetos", as imagens na pasta "sprites", e assim por diante. Alterando mais uma vez o arquivo-motor do nosso jogo, ele fica com essa cara:
Código:
globalvar obj_player, obj_enemy, spr_player, spr_enemy, room_play;

obj_player=object_add();
obj_enemy=object_add();

room_play=room_add();

var MASK;
MASK=working_directory+"\objetos\"
execute_file(MASK+"player.obj"); //adiciona os eventos e sprites ao obj_player
execute_file(MASK+"enemy.obj"); //adiciona os eventos e sprites ao obj_enemy

MASK=working_directory+"\rooms\"
execute_file(MASK+"play.room"); //define todos os parâmetros da room_play

room_goto(room_play); //vai até a room_play
Bem simples, o arquivo, não ficou? Na verdade, ele será tão complexo quanto seu jogo será cheio de recursos.

Objetos e rooms: Tá legal, eu não deveria ter que escrever isso, mas que tipo de tutorial deixa tudo pra ser pesquisado no manual? A seguir, vou mostrar alguns arquivos típicos pra adição de objetos e rooms. Primeiro, objetos:
Código:
var FILE;
FILE=working_directory+"\sprites\casa.bmp";

spr_casa=sprite_add(FILE, 1, 0, 1, 0, 0);
object_set_sprite(obj_casa, spr_casa);

object_event_add(obj_casa, ev_create, 0, '
depth=1
if (place_meeting(x, y, obj_brancas) || place_meeting(x, y, obj_pretas))
   livre=false
   else livre=true
')
Isso foi copiado de um arquivo real. Repare na função "object_event_add", que cria os eventos, e nas aspas. O game maker não considera que aspas duplas (") sejam iguais a aspas simples ('), mas permite usar qualquer uma das duas. Assim, um valor de texto que começe com aspas duplas só pode terminar com aspas duplas e vice-versa. Por isso, sempre crie o evento começando com as aspas que você MENOS usa. Isso te permitirá trabalhar com valores de texto dentro do código.
Pra organizar, coloque o texto correspondente ao código do evento em linhas separadas daquelas da função "object_event_add". Pesquise um pouco sobre identação, também.
Agora, um exemplo típico de uma room:
Código:
room_set_width(rm_tabu, 8*32);
room_set_height(rm_tabu, 8*32);

room_set_code(rm_tabu, '
var spr_tabu, i, j;

var FILE;
FILE=working_directory+"\sprites\tabuleiro.bmp"

spr_tabu=sprite_add(FILE, 1, 0, 1, 0, 0 );

draw_sprite(spr_tabu, 0, 0, 0);

for(i=0; i<8; i+=1){
   for(j=0; j<8; j+=1){
      if (draw_getpixel(i, j)==$ffff00){
         instance_create(32*i+16, 32*j+16, obj_brancas);
         }
      if (draw_getpixel(i, j)==$0000ff){
         instance_create(32*i+16, 32*j+16, obj_pretas);
         }
      if (draw_getpixel(i, j)!=$ffffff){
         instance_create(32*i, 32*j, obj_casa);
         }
      }
   }
sprite_delete(spr_tabu);
')
Faço as mesmas observações com relação à função "room_set_code", que define o create event da room.
Esse arquivo tem uma solução pra pergunta que você está se coçando pra fazer: "Terei que visualizar mentalmente a posição de cada objeto na room?" A resposta é não. Você pode criar um código de cores num minimapa em .bmp. Pra cada ponto da grid, um ponto correspondente na imagem, pra cada cor de cada pixel na imagem, um objeto correspondente na grid. Note que, obviamente, esse arquivo tem que ser executado antes de ir para a room.

Templates: Você pode criar objetos com códigos-padrão pra usar em vários jogos. Por exemplo, um personagem de plataforma, um goomba, pareder quadradas, sei lá, e depois, com novos arquivos, adicionar (ou até excluir) eventos, personalizando o objeto. Exemplo:
Código:
//plataform player template
execute_file("player.draw", 16, 32) //desenha e define o sprite

object_event_add(obj_player, ev_create, 0, '
hsp=4;          //velocidade horizontal
vsp=0;          //velocidade vertical
pulo=10;        //velocidade quando pula
gravidade=0.5;  //quanto será adicionado à velocidade vertica
dir=vk_right;    //tecla pra andar à direita
esq=vk_left;    //tecla pra andar à esquerda
cima=vk_up;      //tecla pra andar acima
baixo=vk_down;  //tecla pra andar abaixo
parede=obj_wall; //o objeto que servirá como parede
piso=obj_wall;  //o objeto que servirá como piso
')

object_event_add(obj_player, ev_step, 1, '
repeat(hsp){
 if !place_meeting(x+keyboard_check(dir)-keyboard_check(esq), y, parede){
  x=median(0, room_width, x+keyboard_check(dir)-keyboard_check(esq));
  }
 }

grav=(!place_meeting(x, y+1, piso))*gravidade;
vsp=vsp+grav-(grav==0)*keyboard_check_pressed(cima)*pulo;
if vsp!=0
 if !place_meeting(x, y+vsp, piso){
  y+=vsp;
  }
  else{
  while(!place_meeting(x, y+sign(vsp), piso)){
    y+=sign(vsp);
    }
  vsp=0;
  }
')
Provavelmente (ainda não cheguei a testar) é possível substituir "obj_player" por "argument0" e esse código pararia de definir o nome do seu objeto. Fazer o mesmo pra "obj_wall".
Pra fazer ele lidar com inimigos, pode-se adicionar, atravé de outros arquivos, mais e mais eventos, inclusive eventos do mesmo tipo que já foram adicionados. Seria o equivalente a incluir um pedaço de código depois daquele já existente.

scripts: Você não percebeu que eu não falei nada sobre a importação de scripts, percebeu? Ah, bom, então deixa esse assunto pra outro dia... Ih, agora falei!
Bom, eu ia deixar as desvantagens pro final do tutorial, mas já que VOCÊ tocou nesse assunto, vamos lá: não é possível importar scripts com o jogo rodando. Mas isso não é o fim do jogo genérico. Existem formas de contornar isso. Uma forma é colocar o script todo num arquivo e chamá-lo usando execute_file, ao invés do simples nome do arquivo, mas nosso amigo MatheusReis me mostrou uma forma de colocar o conteúdo do arquivo numa string:
Código:
var filefrom, res_str, res2;
filefrom=file_text_open_read(argument0);
//
res_str=file_text_read_string(filefrom)+"
";
file_text_readln(filefrom);
while(!file_text_eof(filefrom)){
res2=res_str;
res_str=res2+file_text_read_string(filefrom)+"
";
file_text_readln(filefrom)};
file_text_close(filefrom);
return (res_str);
Esse script lê o arquivo dado como argumento e retorna uma string com seu conteúdo.
Ambas soluções funcionam, mas são lentas. Portanto, use apenas em períodos de teste. Um jogo profissional, genérico ou não, deve ter seus scripts inclusos no executável.

Notepad++: Uma coisa que você deve estar se perguntando é "como farei pra saber se não cometi nenhum erro bobo, como escrever errado o nome da função ou esquecer de fechar um parêntese? Como programar sem os highlites (aquela colorida bacana que o game maker dá no seu código)?". Bom, o notepad++ é um programa leve que pode solucionar o problema.
Para adicionar GML, baixe esse outro arquivo (que eu que fiz Smile ), vá em "view\used-defined dialogue", clique em Import (na versão em português está do avesso, "exportar"), selecione o arquivo, feche e reabra o notepad++. Depois, vá em "Language" e GML estará disponível.
Lembre-se que alguns cuidados deverão ser tomados, como um espaço antes dos nomes das funções, senão os highlights não funcionam.

Fim Bom, acho que falei de tudo. Qualquer coisa que eu tenha esquecido, volto aqui e edito de novo. Ainda tenho que falar das vantagens e desvantagens, mas isso não faz parte do tutorial (ou faz?). De qualquer forma, fica aqui o fim da aula, você está dispensado e o resto é conversa de corredor.

Vantagens: Aqui são só algumas que eu pensei
- Você pode enviar seus jogos por qualquer e-mail, pra alguém que tenha o executável, afinal são só arquivos de texto, imagem, etc, enfim, não haverá aquela maldita proteção antivírus que barra seus executáveis.
- Com o mesmo raciocínio, pode publicar o código-fonte de seus jogos em sites, pra jogadores cuja rede é de extrema restrição a downloads.
- Outras pessoas podem modificar seus jogos com facilidade. Sei que muitos aqui vêem isso como desvantagem, mas lembrem-se que counter-strike foi uma modificação do half-life. Enfim, pode ser divertido ver o que outras pessoas farão com suas idéias.
- Se isso não te convenceu, use um sistema de encriptação com a senha dentro do executável, como uma constante. Com esses programas de decriptação, acaba sendo uma forma mais segura de proteger seus códigos do que incluí-los no executável.
- Você pode criar templates de objetos e usar em diversos jogos diferentes.
- Em pouco tempo você estará fera nessa forma de programar e um passo à frente pra aprender outras linguagens.
- Você pode criar suas próprias extensões.
- Organizar os objetos em arquivos separados pode facilitar a visualização de diversos objetos ao mesmo tempo.
- Importando os objetos ou executando arquivos externos, você pode alterar seus códigos em tempo real - isso mesmo, com o jogo rodando - bastando executar o arquivo novamente (em caso de importação, talvez fosse interessante deletar o objeto antes de importá-lo, o que é possível desde que você preveja essa opção desde a primeira versão).

Desvantagens conhecidas:
- Não há o manual do game maker à mão. Mas você pode ver as funções, com argumentos, aqui nesse tópico ou baixar o manual em pdf nesse outro.
- Scripts. Já falei bastante sobre isso.

Mais: O pulo do gato, não se ensina. Eis aqui um arquivo que serve como jogo genérico. Ele lê vários arquivos da extensão .saim e os executa. Pra selecionar o arquivo, use as setas (pra cima/pra baixo) ou o mouse. Pra selecionar e executar o arquivo, aperte espaço, enter ou dê um clique duplo. Se não houver um arquivo da extensão .saim na pasta, ele perguntará qual extensão você quer usar.
link


Última edição por saim em Qua 26 Out 2011, 11:26, editado 4 vez(es)

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial] Game genérico

Mensagem por Assassino em Qua 27 Abr 2011, 11:57

Já ouvi falar desse método no Game Maker, só não me lembro onde, enfim o que importa é que funfa mesmo, e para quem já tem experiencia em GML não terá dúvida nem problemas, aaa quem não entendeu por que o código "var" eu explico: var serve para declarar uma variável descartável, depois quando eu tiver mais tempo posso explicar melhor por que agora estou meio ocupado. FLW!
= EDIT: ========================================================
É não será preciso eu dizer a descrição do código var pois seu tutorial está perfeito, então eu saquei bem para que isso aê serve, até acho que já fiz antes para executar códigos em um arquivo de texto, bom seu tutorial está ótimo e completo se eu não estiver enganado eu me lembrei e aprendi agora alguns tipos.
FLW!


Última edição por weslleyvieira em Qua 27 Abr 2011, 15:08, editado 1 vez(es)

Assassino

Número de Mensagens : 390
Idade : 20
Data de inscrição : 13/08/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://rockstarfamilies.blogspot.com/

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial] Game genérico

Mensagem por Alex FC em Qua 27 Abr 2011, 11:58

Função inútil? Eu já fiz algo parecido. Tentei fazer um editor para os códigos embutido (Não queria usar o notepad), mas não consegui e deixei o projeto parado. Iria ser o RSS Maker ou Game Maker Engine.

Eu particularmente prefiro instalar o GM no meu pen drive. Mas para quem quer aprender, usar esse sistema será muito bom.

Agora, não sei se é proibido, pois é um Game Maker Pro completo, da pra fazer tudo assim.

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial] Game genérico

Mensagem por saim em Qua 27 Abr 2011, 12:04

weslleyvieira escreveu:quem não entendeu por que o código "var" eu explico: var serve para declarar uma variável descartável, depois quando eu tiver mais tempo posso explicar melhor por que agora estou meio ocupado. FLW!
Eu tenho um tutorial sobre variáveis na minha assinatura, quem quiser, pode dar uma olhada! Happy

Alex FC escreveu:Agora, não sei se é proibido, pois é um Game Maker Pro completo, da pra fazer tudo assim.
Não deve ser proibido, senão haveriam formas de restringir. E não dá pra fazer TUDO. Além de ser muito mais trabalhoso, existem aquelas limitações mencionadas.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial] Game genérico

Mensagem por saim em Sex 14 Out 2011, 01:18

Moçada, fiz mudanças radicais no texto do tutorial e, em breve, adicionarei alguns exemplos.
Estou postando aqui embaixo pra chamar quem ainda não leu, quem já tinha lido a versão anterior e quem avalia se o tutorial deve permanecer aprovado ou não (particularmente, eu acho que agora sim, ele deveria estar aprovado).

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial] Game genérico

Mensagem por GameMakerTutoriais em Dom 27 Maio 2012, 13:22


Adorei o tutorial! Obrigado por ter disponibilizado o syntax highlighter pro Notepad++. Smile

Só essas partes que achei estranho:

No game maker, ao criar um recurso qualquer, ele recebe uma id que pode ser chamada ao longo de todo o jogo. Logo, trata-se de uma variável global.

No caso, seria uma constante global. Pode-se perceber que, mesmo usando sprite_replace ou sprite_assign, por exemplo, o valor continua sempre o mesmo.

Basicamente, trata-se de criar um executável que não faz nada além de ler arquivos de texto e executá-los. Pra isso, basta criar um arquivo no game maker, criar uma room e, no create event dessa room, você coloca:

Código:

arquivoDoJogo=file_find_first(working_directory+"*.txt", fa_archive)
execute_file(arquivoDoJogo);

A working_directory não aponta o diretório do jogo, ela aponta o caminho de onde o jogo foi chamado. Se você chamar o jogo que está no drive "D" navegando pelo drive "C", ela apontará para o drive "C".

O local real do jogo é sempre o primeiro parâmetro de chamada (parameter_string(0)).

Valeu! Muito bom tuto! Very Happy

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial] Game genérico

Mensagem por GabrielXavier em Sex 30 Nov 2012, 14:24

Saim otimo tutorial to estudando ele para ver se consigo faser algo mas não consegui configurar meu notepad aqui um print da interface dele:

Você poderia me ajudar a configurar meu nottepad?
Baixei ele no link que você deixou(baixei ontem deve ser a ultima versão neh).

Eu ja comecei a entender como funciona ate ja fiz um teste de criar um objeto e cosegui sem CRTL+C/CRTL+V , mas digitar os codigos fica dificil d+ no bloco de notas.

Cara você esta de parabens li dois tutos seus muito bons mesmo impossivél não aprender!
Continue assim!

GabrielXavier

Ranking : Nota A
Número de Mensagens : 359
Data de inscrição : 25/02/2012
Notas recebidas : A
Reputação : 15
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 1

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial] Game genérico

Mensagem por saim em Sab 01 Dez 2012, 10:35

Oi, Gabrielgeh!

Faz tempo que usei uma versão em português... Como tem esse erro nas palavras "importar" e "exportar", presumi que haveriam mais erros. Sem falar que os tutoriais da internet estão todos em inglês. Mas DEVE ser em visualizar - é um nome parecido com "view" e está na mesma posição, a partir da esquerda. A opção "user-defined-language" é a décima opção, o que equivale à última do segundo conjunto de opções. Aí, você vai ter que verificar se a diferença entre "exportar" e "importar" já foi corrigida ou não...

Uma coisa que vai facilitar a digitação é ir em settings (configurações) - preferences - Backup/Auto-Completion e, em Auto-Completion, escolher "word completion" e escolher "desde o primeiro caractere". Isso não vai trazer de volta a lista de constantes e funções do game maker, que nós nos acostumamos tanto, mas vai fazer com que CADA palavra que você tenha digitado no arquivo apareça na lista de auto-completar. Isso evita que você erre o nome de variáveis. Gostei tanto que agora eu programo no notepad++ mesmo estando em casa, e depois copio-colo pro game maker.
Claro que eu coloquei o caminho em inglês, porque não tenho a versão em português aqui, mas não é difícil traduzir.

Outra coisa que eu acho que o notepad++ é superior ao game maker é a função "search in all opened files". Se você está programando um jogo razoavelmente complexo, pode abrir vários objetos ao mesmo tempo. Aí, se você quer mudar o nome de uma variável ou sei lá, alguma coisa que você sabe que aparece em vários objetos - mas não tem certeza se lembra em quais são eles - pode abrir todos ao mesmo tempo e usar essa função. É meio auto-explicativo, aparece uma lista no pé da página com a linha em que o texto aparece, dentro de uma aba com o nome do arquivo em que ele está.

Por fim, uma opção bem útil também é clicar com o botão direito na aba do arquivo e selecionar a opção "clone to other view". Você pode trabalhar simultaneamente em trechos da primeira e da última linha de um arquivo, que jamais caberiam na mesma tela. Também já salvou minha vida, algumas vezes...

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial] Game genérico

Mensagem por GabrielXavier em Dom 02 Dez 2012, 14:47

Saim consegui colocar o arquivo!
Se outro membro tiver dificuldade o caminho é:
Linguagem/Define you Language.../Exportar...
Ai você seleciona o arquivo que o Saim disponibilizou.

Obrigado pela ajuda Saim!
Abraços.

GabrielXavier

Ranking : Nota A
Número de Mensagens : 359
Data de inscrição : 25/02/2012
Notas recebidas : A
Reputação : 15
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 1

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial] Game genérico

Mensagem por Conteúdo patrocinado Hoje à(s) 10:29


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum