sexta-feira, 4 de maio de 2012

[Tedi] Jogo Multiplayer Online Basico (mplay)

Qualidade
Nome: Jogo Multiplayer Online Basico (mplay)
Blogueiro: Tedi
Descrissao: Tutorial para fazer um jogo simples, muito parecido com o tuto do Froidz mas eu editei umas partes pra deixar mais simples!
Versao: Pro
Foto(s):


Tutorial:
1º passo: Crie um sprite qualquer, pode ser um quadrado, qualquer coisa para ser os players (como os quadradinhos da IMG)

2º passo: Crie 3 objetos, um objeto para o player: pl, outro objeto para o player 2: pl2, e outro objeto para controlar tudo: obj_controlador.

3º passo: no objeto controlador crie um evento create e coloque um codigo assim:
Spoiler:

No codigo acima nós estabelecemos uma conexão TCP/IP, na qual nós se conectamos por um endereço da Net ou um IP. Depois ele vê se a conexão funcionou, se nao ele mostra algumas opções (Tentar + que da um game_restart, ou Sair). Se a conexão funcionar, ele vai ao processo de salas, ele verifica se há salas criadas, se existir ele entrara na existente, se não ele criara uma sala, as salas são apenas para 2 pessoas, se 2 pessoas entrerem na sala, ela vai ser considerada inexistente, então um 3º player terá que criar outra sala e assim sucessivamente.


4º passo: Ainda no evento create, crie outro codigo assim:
Código:
global.nome2=""
mplay_data_mode(true)

1º ele cria a variavel Nome2 q é o nome do player 2
depois ela coloca as mensagens em modo seguro de envio.

depois disso crie um evento step e coloque o codigo:
Código:
//Lendo mensagens
{
  while (mplay_message_receive(0))
  {
    messid = mplay_message_id();
    val = mplay_message_value();
    // Checando mensagens
    if (messid == 1) pl2.x=val;
    if (messid == 2) pl2.y=val;
    if (messid == 3) global.nome2=val;
    }
}


Esse codigo foi feito pelo Froidz, eu só acressentei a parte do global.nome2.
esse codigo é a checagem de mensagens, a 1ª pega o X do pl2, a 2ª o Y, e a 3ª o nome do tio que ta do outro lado da linha!

5º passo: Crie um evento Draw e faça assim:
1º - crie um quadrado, eu fiz vertical gradient, mas pode ser qualquer um, coloque assim as cordenadas:
x1 - 0
y1 - 0
x2 - 160
y2 - 40

2º - crie rapidamente uma fonte qualquer com a letra tamanho 12, e coloque no evento draw do obj_controle esta fonte alinhada no centro,

3º - Coloque uma cor qualquer se quiser.

4º - crie um codigo assim:
Código:
draw_text(x+80,y,"Nome: " + global.nome)
draw_text(x+80,y+20,"Nome: " + global.nome2)

No codigo acima vc basicamente escreve o seu nome e em baixo o nome do outro "tiusinho" cara.


Pronto, acabamos o obj_controle, se vc sobrevivel até aqui, o resto é molesinha.

vamos começar a contar os passos do 0
1º passo: no objeto PL (player) coloque a sprite criada no inicio, e crie um evento step e coloque um codigo assim:
Código:
if keyboard_check(vk_up) then y-=3
if keyboard_check(vk_down) then y+=3
if keyboard_check(vk_left) then x-=3
if keyboard_check(vk_right) then x+=3

Esse codigo esta no tuto do froidz, ele simplesmente cria um movimento com as setas do teclado.

2º passo: Crie outro codigo no evento step e coloque assim:
Código:
mplay_message_send(0,1,x)
mplay_message_send(0,2,y)
mplay_message_send(0,3,global.nome)

isso envia as mensagens do player a todos ous outro.

3º passo: Coloque no objeto pl2 (player2), a sprite.

4º passo: Agora crie uma room, coloque o objeto obj_controlador na room no primeiro quadradinho, e coloque os 2 pl em qualquer lugar!!

Agora é só rodar, mas para conseguir ver os 2 player você deve salvar um executavel!!!

DICA: para ficar mais original, coloque o Depth do obj_control -100 para os obj pl nao passarem por cima dele

FIM
Creditos:
Froidz - por fazer o tuto original
Eu - por acrecentar coisas
O Help do GM - por me auxiliar

Nenhum comentário:

Postar um comentário