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
» player não consegue andar
por 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


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

3 participantes

Ir para baixo

[TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 Empty [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3

Mensagem por itarodrigo Ter 17 Mar 2015, 17:08

Título: Criar jogos online PARTE 3 - Pegando dados pelo PHP
Versão do GM: X
Dificuldade: Avançado
Link para download da Engine: X
Requer Extensões: Não
Requer DLLs: Não
Tags: wamp, servidor, online, html5, php, mysql

Oi pessoal,

Esta é a terceira parte do tutorial 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:
Tutorial 1 https://gmbr.forumeiros.com/t32003-tutorial-criar-jogos-online-parte-1
Tutorial 2 https://gmbr.forumeiros.com/t32004-tutorial-criar-jogos-online-parte-2

Ensinarei nesse tutorial como pegar os dados salvos em uma tabela e como salvar novos dados, através do PHP.

Porque é vou mostrar em PHP e não direto no GM?
Simples: o GM ainda não tem uma opção de conexão direta com banco de dados mysql, por isso iremos usar eventos assíncronos para acessar os arquivos PHP e nos mostrar as informações.

Um detalhe importante é que no cabeçalho desse tutorial, eu marquei o nível de dificuldade Avançado visto que para entender bem esse tutorial, você precisará ter alguma noção de PHP e comandos SQL (não pretendo nesse tutorial ensinar PHP ou SQL, poderei fazê-lo em outro momento).

Vamos ao que interessa:

1 - Abra 'meu computador', navegue até 'c:\wamp\www' (pois é o diretório de instalação padrão do WAMP).

2 - Nele, crie uma pasta com um nome qualquer (no exemplo irei usar 'gmbr'):
[TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 21

Obs: Cada pasta representa um site, você pode criar quantos desejar.

3 - Dentro do diretório criado, crie um arquivo de texto (pode usar o bloco de notas mesmo), e salve com o nome 'index.php':
[TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 22

4 - Abra o arquivo e copie o código abaixo nele e salve:
Código:
<?php
//a linha abaixo permite que qualquer pessoa possa acessar a página para obter dados
header('Access-Control-Allow-Origin: *');

//conecta ao banco de dados (host, usuario, senha, banco)
//claro que, quando o jogo tiver online, você terá que alterar os dados de login
$mysqli = new mysqli("localhost", "root", "", "nome_do_jogo");

//se der erro, mostra na tela (não gosto de botar isso online, só no localhost mesmo)
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

//as variáveis em PHP iniciam por $
//criei uma variável chamada $query (poderia ser qualquer nome)
//ela irá armazenar meu comando SQL
//
//select = selecionar
//* = todos
//from = da tabela
//ranking = nome da tabela
//order by = ordenar por
//potuacao = campo que deve ser ordenado
//desc = de trás pra frente (do menor para o maior)
//select * from ranking = selecionar todos registros da tabela ranking ordenado pelo campo pontuacao do menor pro maior
$query = $mysqli->query('select * from ranking order by pontuacao desc');

//aqui criarei um loop que irá 'andar' cada registro da minha tabela
//
//crio aqui um loop (while) que irá pegar cada registro e escreve-lo na tela
//
//while = loop
//$ranking = variavel que irá armazenar meus dados
//$query = variável criada anteriormente com meu comando SQL
//fetch_object = "cria um objeto com o registro atual"
//
//while ($ranking = $query->fetch_object()){ = enquanto (ranking recebe informacoes do comando SQL em forma de objeto)
while ($ranking = $query->fetch_object()){
//
//echo = escreve na tela
//$ranking->usuario = no objeto ranking eu pego o campo usuário (criado em nosso banco de dados)
//. = serve pra contatenar (unir) strings
//' - ' = insiro um espaço um travessão e outro espaço
//. = concateno novamente
//$ranking->usuario = no objeto ranking eu pego o campo pontuação (criado em nosso banco de dados)
//. = concateno novamente
//, = uso uma vírgula para dividir os dados em um por linha
//
//echo $ranking->usuario.' - '.$ranking->pontuacao.',' = escreva na tela = usuario - pontuacao,
echo $ranking->usuario.' - '.$ranking->pontuacao.',';
}

?>

5 - Salve o arquivo, abra seu navegador, digite localhost

6 - Na parte de baixo em 'Your Projects', clique no nome da pasta que você criou:
[TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 23

Obs: Se ao clicar no link o Wamp não abrir seu site corretamente, você pode digitar o endereço: localhost/nome_da_pasta (nesse caso 'localhost/gmbr'):
[TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 24

Para corrigir essa falha, abra o arquivo 'c:\wamp\www\index.php' procure a linha:
Código:
$projectContents .= '<li><a href="'.($suppress_localhost ? 'http://' : '').$file.'">'.$file.'</a></li>';
altere para
Código:
$projectContents .= '<li><a href="'.($suppress_localhost ? 'http://localhost/' : '').$file.'">'.$file.'</a></li>';

7 - Se deu tudo ok, você verá esse resultado:
[TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 25

8 - Agora vamos incluir um novo dado no Banco de Dados.

9 - Na pasta do seu site/projeto, dentro de c:\wamp\www, crie um novo arquivo chamado inserir.php, da mesma forma que criou o anterior:
[TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 26

10 - Cole o código abaixo no arquivo e depois salve:
Código:
<?php
//conecta ao banco de dados (host, usuario, senha, banco)
//claro que, quando o jogo tiver online, você terá que alterar os dados de login
$mysqli = new mysqli("localhost", "root", "", "nome_do_jogo");

//se der erro, mostra na tela (não gosto de botar isso online, só no localhost mesmo)
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

//crio duas variáveis para receber os novos dados (usuario e pontuacao)
$usuario = $_POST['usuario'];
$pontuacao = $_POST['pontuacao'];

//insert into = inserir na tabela...
//ranking = nome da tabela
//(usuario, pontuacao) = devo listar os campos que irão receber novos dados (não devo listar o campo ID)
//values = valores que serão inclusos
//("'.$usuario.'", "'.$pontuacao.'") = perceba que os dados devem estar entre aspas duplas "", aspas simples '' e pontos de contatenacao ..
//insert into ranking (usuario, pontuacao) values ("'.$usuario.'", "'.$pontuacao.'") = inserir na tabela ranking nos campos (usuario e pontuacao) os valores recebidos nas variáveis acima ($usuario e $pontuacao)
$mysqli->query('insert into ranking (usuario, pontuacao) values ("'.$usuario.'", "'.$pontuacao.'")');

echo 'Salvo!';

?>

Fiz umas alterações no tutorial e irei mostrar como inserir os dados, apenas no GM mesmo, pois fica mais prático pra mim.

Tutorial 4 https://gmbr.forumeiros.com/t32008-tutorial-criar-jogos-online-parte-4

EDIÇÃO 1: Alterado o arquivo index.php para que o mesmo use vírgula para separar os campos ao invés de
Em 17 de março de 2015
EDIÇÃO 2: Alterado o arquivo inserir.php para que o mesmo exiba uma imagem confirmando que os dados foram salvos Em 17 de março de 2015


Última edição por itarodrigo em Sex 12 Jun 2015, 21:15, editado 10 vez(es)
itarodrigo
itarodrigo

Data de inscrição : 28/08/2010
Reputação : 52
Número de Mensagens : 599
Prêmios : [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 Empty

Medalhas x 0 Tutoriais x 4 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

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

Mensagem por Lupptyr Ter 17 Mar 2015, 17:23

Este tutorial é para jogo http: ?
Ou e se não for, tem como usar o WAMP pra criar online normal pela engine mesmo?
Lupptyr
Lupptyr

Data de inscrição : 06/03/2015
Reputação : 1
Número de Mensagens : 28
Prêmios : [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 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

Ir para o topo Ir para baixo

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

Mensagem por itarodrigo Ter 17 Mar 2015, 17:32

O tutorial serve tanto para jogos HTML5 quanto para jogos para windows.

Ainda não testei em jogos para android.

O WAMP cria um servidor local offline na sua máquina, onde você pode criar o seu banco de dados e testar seu jogo de uma forma mais rápida antes de colocá-lo online.

Depois que o jogo tiver pronto, basta salvar os arquivos offline e hospedá-los em um site qualquer.

Abraço.
itarodrigo
itarodrigo

Data de inscrição : 28/08/2010
Reputação : 52
Número de Mensagens : 599
Prêmios : [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 Empty

Medalhas x 0 Tutoriais x 4 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

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

Mensagem por Lupptyr Ter 17 Mar 2015, 17:40

Beleza valeu, ótimo tutorial cara, seguinte, tu vai continuar a colocar tutoriais ainda? tipo hoje?
Lupptyr
Lupptyr

Data de inscrição : 06/03/2015
Reputação : 1
Número de Mensagens : 28
Prêmios : [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 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

Ir para o topo Ir para baixo

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

Mensagem por itarodrigo Ter 17 Mar 2015, 17:50

to pensando em fazer o quarto tutorial ainda hoje sim, mostrando como ver os dados no GM.

abraço.
itarodrigo
itarodrigo

Data de inscrição : 28/08/2010
Reputação : 52
Número de Mensagens : 599
Prêmios : [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 Empty

Medalhas x 0 Tutoriais x 4 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

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

Mensagem por Lupptyr Ter 17 Mar 2015, 17:53

To querendo me ''profissionalizar'' no setor de Networking. xD

''Profissionalizar'' não real, digo ficar ''expert'' no assunto xD.
Lupptyr
Lupptyr

Data de inscrição : 06/03/2015
Reputação : 1
Número de Mensagens : 28
Prêmios : [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 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

Ir para o topo Ir para baixo

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

Mensagem por itarodrigo Ter 17 Mar 2015, 18:02

Legal, acho networking um termo muito abrangente, qual área específica você quer estudar?
itarodrigo
itarodrigo

Data de inscrição : 28/08/2010
Reputação : 52
Número de Mensagens : 599
Prêmios : [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 Empty

Medalhas x 0 Tutoriais x 4 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

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

Mensagem por ekuhnen Qui 11 Jun 2015, 15:05

também funciona com andoid, só pra constar
ekuhnen
ekuhnen

Data de inscrição : 05/10/2012
Reputação : 3
Número de Mensagens : 47
Prêmios : [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 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

Ir para o topo Ir para baixo

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

Mensagem por itarodrigo Qui 11 Jun 2015, 19:16

interessante que testei em windows e android e funciona legal sim, porém, em html5 não está funcionando.

alguém conseguiu fazer rodar ou sabe se precisa configurar algo a mais fora o que passei no tutorial?

abraços.

RESOLVIDO E ATUALIZADO NO TUTORIAL
itarodrigo
itarodrigo

Data de inscrição : 28/08/2010
Reputação : 52
Número de Mensagens : 599
Prêmios : [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3 Empty

Medalhas x 0 Tutoriais x 4 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

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

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