Aldeia RPG

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Suporte ao desenvolvimento de jogos


    Criando jogos em VB.NET - Colisão

    DragonicK
    DragonicK
    Experiente
    Experiente


    Mensagens : 542
    Créditos : 81

    Ficha do personagem
    Nível: 1
    Experiência:
    Criando jogos em VB.NET - Colisão Left_bar_bleue0/0Criando jogos em VB.NET - Colisão Empty_bar_bleue  (0/0)
    Vida:
    Criando jogos em VB.NET - Colisão Left_bar_bleue30/30Criando jogos em VB.NET - Colisão Empty_bar_bleue  (30/30)

    Criando jogos em VB.NET - Colisão Empty Criando jogos em VB.NET - Colisão

    Mensagem por DragonicK Qua Jan 25, 2012 10:15 pm

    Vamos limitar o jogador dentro do form, para que ele não saia da borda.

    Criando jogos em VB.NET - Colisão Colisionup

    Quando a tecla pressionada, altera o jogador para costas. Mas ele somente poderá mover para cima, se não estiver no topo do form.
    Criando jogos em VB.NET - Colisão Colisiondown
    Quando a tecla pressionada, altera o jogador para frente. Mas ele somente poderá mover para baixo, se não estiver no fim do form.
    Criando jogos em VB.NET - Colisão Colisionleft

    Quando a tecla pressionada, altera o jogador para esquerda. Mas ele somente poderá mover para a esquerda, se não estiver no começo do lado esquerdo do form.

    Criando jogos em VB.NET - Colisão Colisionright

    Quando a tecla pressionada, altera o jogador para direita. Mas ele somente poderá mover para a direita, se não estiver no começo do lado direito do form.

    Para eu conseguir explicar melhor, adicione esse código embaixo de DesenharImagem(Anim. Isto é para desenhar um retângulo com as mesmas proporções do personagem.

    Criando jogos em VB.NET - Colisão Playercoord

    Ficará um retângulo azul em volta do personagem.

    Criando jogos em VB.NET - Colisão Playerrect

    Esse retângulo é do personagem, ali estão suas posições, comprimento e altura. É com ele que realizamos a colisão com outro objeto.

    Não precisa adicionar o código abaixo. Ele criará uma pequena linha no quadrado do personagem.

    Criando jogos em VB.NET - Colisão Azulline

    Perceba que o personagem é desenhado a partir daquela linha. Então não se esqueça, a coordenada não é definida pelos pés do personagem. Mas de onde a imagem é desenhada. Você terá que criar seu próprio sistema de coordenadas.

    Volte para seu código, olhe no evento KeyDown a parte onde o personagem move para baixo.

    Agora apague essa parte - (SpriteHeight + 40), dê um play e mova o personagem para baixo.

    Criando jogos em VB.NET - Colisão Spritedown

    Perceba que o personagem sumiu.

    Mas ele somente poderá se mover para a direita, se não estiver no fim do form. A altura do form é 377, enquanto a posição do personagem não for igual ou maior que 377, ele continuará se deslocando. Mas quando chega a 377, o personagem já está desenhado lá embaixo e não o vemos.

    Por este motivo eu adicionei - (SpriteHeight+40) ou 104. Aqui você está dando a impressão de que o form é menor para que o personagem apareça.

    Você deverá ir testando e fazendo os cálculos até chegar a um resultado satisfatório. Isso também vale para o lado direito - (SpriteWidth +10) ou 42.

    Não tenho certeza se me expressei bem, o importante é que treinem e aprendam por si só.
    DragonicK
    DragonicK
    Experiente
    Experiente


    Mensagens : 542
    Créditos : 81

    Ficha do personagem
    Nível: 1
    Experiência:
    Criando jogos em VB.NET - Colisão Left_bar_bleue0/0Criando jogos em VB.NET - Colisão Empty_bar_bleue  (0/0)
    Vida:
    Criando jogos em VB.NET - Colisão Left_bar_bleue30/30Criando jogos em VB.NET - Colisão Empty_bar_bleue  (30/30)

    Criando jogos em VB.NET - Colisão Empty Re: Criando jogos em VB.NET - Colisão

    Mensagem por DragonicK Qua Jan 25, 2012 10:18 pm

    Vamos adicionar uma rocha ao jogo.
    Criando jogos em VB.NET - Colisão Rockb

    Rock

    Declare uma variável com o nome de Rock do tipo bitmap.

    Criando jogos em VB.NET - Colisão Rockvar

    Inicializando Form_Load.
    Não é preciso o uso do MakeTransparency pois o fundo da imagem já é transparente.

    Criando jogos em VB.NET - Colisão Rockload

    Coloque o código para desenhar a pedra logo abaixo de desenhar a Sprite. Aqui, vamos fazer a mesma coisa com o jogador, colocar um retângulo azul em volta.

    Criando jogos em VB.NET - Colisão Rockrect

    Criando jogos em VB.NET - Colisão Rockimg

    No final do form, adicione uma function chamada Colision, ela verifica se um retângulo está dentro do outro.

    Criando jogos em VB.NET - Colisão Colision

    Embaixo de DrawFPS, adicione o código abaixo para desenhar o estado da colisão, verdadeira ou falso.

    Criando jogos em VB.NET - Colisão Drawcolision

    Criando jogos em VB.NET - Colisão Fimcolision

    Aqui não vou fazer um bloqueio na rocha, pois é como eu disse bem acima, crie um sistema de coordenadas. Desse modo você pode facilitar tudo.

    Projeto Aula

      Data/hora atual: Sáb Abr 27, 2024 8:46 pm