Avatar do usuário
Tutoriais & Aulas
Colaborador
Colaborador
Autor
Mensagens: 174
Registrado em: Qui Abr 28, 2016 11:37 am
Karma: 245

[NET] [TUTORIAL] Jogos Online com PHP e MySql - PARTE 4

Sex Abr 29, 2016 11:24 am

Autor original: itarodrigo


Título: Criar jogos online PARTE 4 - Pegando e salvando dados com o GM
Versão do GM: X
Dificuldade: Fácil
Link para download da Engine: http://irgames.com.br/tutorial_1/teste_online.gmz
Requer Extensões: Não
Requer DLLs: Não
Tags: wamp, servidor, online, html5, php, mysql

Oi pessoal,

Esta é a última parte dessa sequência de tutoriais voltado para aqueles usuários que têm vontade de criar um jogo online com os dados salvos em bancos de dados.

É pré-requisito para este tutorial, ver os tutoriais anteriores:
Tutorial 1 tutorial-criar-jogos-online-parte-1
Tutorial 2 tutorial-criar-jogos-online-parte-2
Tutorial 3 tutorial-criar-jogos-online-parte-3

Ensinarei nesse tutorial a listar no GameMaker as informações criadas no Banco de Dados criado por nós, nas aulas anteriores.

Lembrando que: Esse tutorial é para testes offline após criado todo o banco de dados e funcionando tudo ok, você poderá contratar um plano de hospedagem com suporte a mysql e php e lançar seu jogo ONLINE para todos terem acesso.

Agora vamos ao que interessa:

1 - Abra o GameMaker e crie um novo projeto.

2 - No projeto, insira uma Room e um Object.

3 - Vamos à configuração do objeto:

Evento Create
//'ranking' é a variável que irá armazenar os dados vindos do banco de dados
ranking = '';
//inserir é a variável que será enviada pra salvar um novo item
inserir = '';
//inseriu é a variavel pra saber se voce já mandou algum comando inserir
inseriu = 0;
//atualizar é a variável que irá acessar o arquivo PHP que lista as informações
atualizar = http_get("http://localhost/gmbr");


Obs: veja que no comando http_get usamos a url local: http://localhost/gmbr, porém, você pode usar qualquer url de qualquer site (tente botar http://google.com e verá que a variável irá retornar o código fonte da página do google).
Obs2: O código retorna o Código Fonte da página e não a parte visual. Por isso que no arquivo 'index.php' criado por nós no tutorial de número 3, nós demos o comando para listar apenas as informações básicas (Dados do usuário).

Evento HTTP (clique em Add Event > Asynchronous > HTTP)
//Não conheço bem o ds_map, mas sei que a variável 'atualizar'
//que usamos no evento create será responsável por criar um
if ds_map_find_value(async_load, "id") == atualizar{
    //verifica se o status (retorno) do site é 0, então tá ok
    if ds_map_find_value(async_load, "status") == 0{
    //pega o texto do site (result) e manda pra variável 'ranking'
    ranking = ds_map_find_value(async_load, "result");
    }else{
    //se der erro, a variável retorna 'nulo'
    ranking = 'nulo';
    }
}

//verifica se 'inseriu' = 1, ou seja, se voce mandou algum comando inserindo no banco
if (inseriu == 1){
if (ds_map_find_value(async_load, "id") == inserir){
    //verifica se o status (retorno) do site é 0, então tá ok
    if ds_map_find_value(async_load, "status") == 0{
        //mostra o texto da inserir.php 'salvo!'
        show_message(ds_map_find_value(async_load, "result"));
        //volta o comando a variável 'inserir' para zero
        inseriu = 0;
        //solicita uma nova atualização
        atualizar = http_get("http://localhost/gmbr");
        }else{
      //se der erro, mostra uma mensagem
      show_message('Erro ao inserir os registros');
      }
   }
}

 
Evento Draw
//a variável 'ranking_ok' irá receber a string ranking com uma alteração
//string_replace_all() troca uma parte da string por outra
//nesse caso ela irá procurar as víruglas e trocar por um jogo da velha
//o jogo da velha faz que a string pule uma linha no GM
ranking_ok = string_replace_all(ranking,',','#');
draw_text(0,0,'Tecle Enter');
//desenha o texto formatado
draw_text(x,y,ranking_ok);


Evento Press ENTER
//randomiza (faz com que os numeros gerados aleatoriamente sejam diferentes 
//cada vez que se executa o jogo)
randomize();
//gera numeros de 0 a 1000
i = irandom_range(0,1000);
//irei inserir um novo usuário chamado italo e uma nova pontuacao aleatória
//usuario=italo & pontuacao=i
dados = 'usuario=italo&pontuacao=' + string(i);
//dou o 'destino' da variável inserir
inserir = http_post_string('http://localhost/gmbr/inserir.php?',dados);
//digo a variável 'inseriu' que já inseri um dado (altero ela pra 1)
inseriu = 1;


4 - Deixe a room com with = 200 e heigth = 500.

5 - Ponha o objeto criado na room e execute o Projeto.

obs: Exportando pra windows, funciona normalmente, caso queira exportar para HTML5, faça o seguinte:

-Abra a pasta do wamp 'c:\wamp\www'
-Crie uma nova pasta com o nome do seu jogo
-Exporte o jogo html5 para essa pasta
-Abra o navegador e acesse o 'localhost/nome da pasta que voce criou'

6 - Basta teclar ENTER e ver o novo registro ser inserido.

7 - Podem baixar a Engine se quiserem (link no topo).

8 - Espero que tenham gostado, aguardo suas dúvidas.
1

Tags:

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante