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

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

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

Mensagem por itarodrigo em Ter 17 Mar 2015, 22:35

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 http://gmbr.forumeiros.com/t32003-tutorial-criar-jogos-online-parte-1
Tutorial 2 http://gmbr.forumeiros.com/t32004-tutorial-criar-jogos-online-parte-2
Tutorial 3 http://gmbr.forumeiros.com/t32005-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
Código:
//'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)
Código:
//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
Código:
//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
Código:
//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.


Última edição por itarodrigo em Sab 04 Abr 2015, 10:16, editado 2 vez(es)

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

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

Mensagem por Gonzo em Qua 18 Mar 2015, 12:05

itarodrigo vou tentar fazer alguma coisa com esse seu sistema no fim de semana, muito bacana cara Smile e vc postou td rapidão, d+ cara, sou teu fâ!

Gonzo

Número de Mensagens : 927
Data de inscrição : 29/05/2012
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

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

Mensagem por itarodrigo em Qua 18 Mar 2015, 12:21

blz gonzo.

vou fazer depois, a pedido de Lupptyr, um tutorial sobre instruções SQL pra usar no mysql.

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

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

Mensagem por fernando.munizerthal em Qui 19 Mar 2015, 14:42

Olá itarodrigo,

Utilizo o mesmo sistema em meu jogo, não li todos os tutoriais, mas utilizo Wamp e PHP para comunicar com meu banco de dados, recebendo e enviando dados..

Mas isso não seria um jogo online, certo? Seria um jogo com a necessidade de conexão com internet..

Meu conceito de jogo online pode estar errado, mas fui iludido achando que era um MultiPlayer ou MMO online hehehe

De qualquer forma ótima iniciativa..

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

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

Mensagem por itarodrigo em Qui 19 Mar 2015, 14:50

online = jogo hospedado em um servidor que não é o seu.

multiplayer = jogo onde todos os jogadores jogam simultaneamente.

a diferença entre um e outro é a questão de jogar sinultaneo ou nao.

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

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

Mensagem por fredcobain em Ter 31 Mar 2015, 10:42

Itarodrigo, essa série sobre manipulação com PHP e MySQL é de grande valia pro fórum.

Vc conseguiu mastigar um conteúdo complexo, mas de grande utilidade para os desenvolvedores. Está de parabéns!

O tutorial está muito bem organizado e muito bem explicado.

Por conta disso eu tenho grande prazer em informar que essa série agora faz parte da staff choice.

Segue link abaixo:
http://gmbr.forumeiros.com/t32086-jogos-online-com-phpmysql-por-itarodrigo#233577

fredcobain

Ranking : Sem avaliações
Número de Mensagens : 691
Idade : 35
Data de inscrição : 14/04/2011
Reputação : 162
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

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

Mensagem por itarodrigo em Ter 31 Mar 2015, 10:48

Fico muito feliz em estar contribuindo com a comunidade, é uma forma de retribuir a ajuda que já recebi de todos vocês aqui.

Abraços

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

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

Mensagem por Gonzo em Sab 04 Abr 2015, 10:24

Aew Itaro segui o tutorial e deu certinho Happy, agora só não sei hospedar em um host kkkkk, olha seria legal um mod desse seu Tutorial com arquivos ini, tó feliz de ter conseguido executar esse tutorial, ele foi muito bem explicado.
vlw.

Gonzo

Número de Mensagens : 927
Data de inscrição : 29/05/2012
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

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

Mensagem por itarodrigo em Sab 04 Abr 2015, 10:30

Fico feliz em saber que deu tudo ok.

Eu trabalho com hospedagens de site (inclusive alguns usuarios aqui do forums hospedam sites comigo) cobro a 5/mes pra quem está aprendendo aqui.

Quanto a questao do arquivo ini, o objetivo se usar banco de dados MySQL, é justamente eliminar arquivos externos.

Abraço

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

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

Mensagem por Gonzo em Sab 04 Abr 2015, 10:36

Só mais uma duvida Itaro como faço pra quando apertar o enter, digitar o nome do usuário e vir a pontuação correspondente ao jogo dele?

Abraço

Gonzo

Número de Mensagens : 927
Data de inscrição : 29/05/2012
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

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

Mensagem por itarodrigo em Sab 04 Abr 2015, 10:41

aí você tem que criar um sistema de digitação, veja esse exemplo: http://gmbr.forumeiros.com/t23775-script-input-box-digitar-dentro-de-caixas-de-texto

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

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

Mensagem por Gonzo em Sab 04 Abr 2015, 12:38

Fiz umas modificações, mais o get_string eu não fiz certo então como seria?

Código:
valor=456//variavel do valor da pontuacao da pra colocar como variavel global

dados =  'usuario=get_string  ("Digite seu nome!","")&pontuacao=' + string(valor);

Gonzo

Número de Mensagens : 927
Data de inscrição : 29/05/2012
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

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

Mensagem por itarodrigo em Sab 04 Abr 2015, 12:46

creio que seja assim:
Código:
dados =  'usuario='+get_string  ("Digite seu nome!","")+'&pontuacao=' + string(valor);

testa aí pra ver.

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

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

Mensagem por Gonzo em Sab 04 Abr 2015, 12:53

funcionou itarodrigo Happy  agora tá funcionando e como que reseta a pontuação xD

vlw

Gonzo

Número de Mensagens : 927
Data de inscrição : 29/05/2012
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

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

Mensagem por itarodrigo em Sab 04 Abr 2015, 13:20

oi,

para modificações no banco além de inserir, você terá que aguardar a aula de MySql.

irei preparar o mais breve possível.

Obs: por enquanto, você pode apagar manualmente indo no phpmysql e deletando os registros.

Abraço.

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

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

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


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