Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Multi direções com personagens isométricos

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
leandroz3ta
Novato
Novato
Reações: 0
Mensagens: 13

Multi direções com personagens isométricos

Mensagem por leandroz3ta » Seg Out 10, 2016 11:00 pm

Olá pessoal.
Estou com uma dúvida simples.
Estou criando um jogo estilo Pokemon GO.
Criei a movimentação do personagem em 360º  e preciso que seja selecionado o sprite correspondente a direção em que o personagem se desloca.
Os sprites são isométricos para facilitar este processo.
Como faço este procedimento via código?

Avatar do usuário
Drako
Novato
Novato
Reações: 0
Mensagens: 16

Re: Multi direções com personagens isométricos

Mensagem por Drako » Ter Out 11, 2016 2:30 am

Uma maneira simples de se fazer isso é definindo constantes para as direções:

Código: Selecionar todos

// Defina como macros!
RIGHT : 000
LEFT  : 180
UP    : 090
DOWN  : 270
E por ai vai... Defina para cada direção seu ângulo correspondente. Depois você deve definir as configurações inicias no seu objeto "player":

Código: Selecionar todos

dir := 270; // Ângulo inicial
spr := spr_down; // Sprite inicial
Você pode fazer a verificação da direção e apontar o sprite que deve ser exibido, dessa maneira:

Código: Selecionar todos

switch (keyboard_key) {
    case vk_right:
        dir := RIGHT;
        spr := spr_right;
    break;
    case vk_left:
        dir := LEFT;
        spr := spr_left;
    break;
    case vk_up:
        dir := UP;
        spr := spr_up;
    break;
    case vk_down:
        dir := DOWN;
        spr := spr_down;
    break;
}
Obs: Este é um exemplo, meramente "ilustrativo". Tem como objetivo apenas "dar uma ideia" de como o processo, em questão pode ser executado!
Qualquer um pode escrever um código que o computador entenda. Bons programadores escrevem códigos que os humanos entendam.

Avatar do usuário
leandroz3ta
Novato
Novato
Reações: 0
Mensagens: 13

Re: Multi direções com personagens isométricos

Mensagem por leandroz3ta » Ter Out 11, 2016 11:18 pm

Drako escreveu:Uma maneira simples de se fazer isso é definindo constantes para as direções:

Código: Selecionar todos

// Defina como macros!
RIGHT : 000
LEFT  : 180
UP    : 090
DOWN  : 270
E por ai vai... Defina para cada direção seu ângulo correspondente. Depois você deve definir as configurações inicias no seu objeto "player":

Código: Selecionar todos

dir := 270; // Ângulo inicial
spr := spr_down; // Sprite inicial
Você pode fazer a verificação da direção e apontar o sprite que deve ser exibido, dessa maneira:

Código: Selecionar todos

switch (keyboard_key) {
    case vk_right:
        dir := RIGHT;
        spr := spr_right;
    break;
    case vk_left:
        dir := LEFT;
        spr := spr_left;
    break;
    case vk_up:
        dir := UP;
        spr := spr_up;
    break;
    case vk_down:
        dir := DOWN;
        spr := spr_down;
    break;
}
Obs: Este é um exemplo, meramente "ilustrativo". Tem como objetivo apenas "dar uma ideia" de como o processo, em questão pode ser executado!
Cara valeu pelas dicas! Uma coisa que esqueci de mencionar no tópico é que toda a movimentação do personagem será feita por clique de mouse, ou seja, ele seguirá para a direção onde ou o clique na tela, com isso o ângulo irá variar :loco:
entendi um pouco da lógica dos breaks, mas ainda estou confuso em como irei definir em qual momento irei virar para leste, oeste, norte,nordeste, noroeste, sul, sudeste, sudoeste... :pc:

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes