[Pedido Script] de Movemento Isometrico

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

Resolvido [Pedido Script] de Movemento Isometrico

Mensagem por !!Game Play!! em Seg 08 Abr 2013, 15:59

Quais os código que usam para o player irem nestas direções :


(A) (W)
↖ ↗

↙ ↘
(S) (D)


*Teclas Pressionadas Não Importante , estou pedindo só script

Meio em diagonal , tipo isométrico , se alguém puder ajudar , ficarei grato , ate mais !


Última edição por !!Game Play!! em Seg 08 Abr 2013, 18:45, editado 1 vez(es)

!!Game Play!!

Número de Mensagens : 159
Idade : 19
Data de inscrição : 24/12/2011
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.blackcubestudio.tkk/

Voltar ao Topo Ir em baixo

Resolvido Re: [Pedido Script] de Movemento Isometrico

Mensagem por MagnetBomber em Seg 08 Abr 2013, 16:09

você coloca +ou- isso:
Código:

hspeed=5
vspeed=5
é só trocar 5 pela velocidade. por exemplo, pra esquerda:
Código:

hspeed=-5
pra direita:
Código:

hspeed=5
pra cima:
Código:

vspeed=-5
pra baixo:
Código:

vspeed=5
depois é só juntar vspeed com hspeed como no primeiro exemplo, e ele vai na diagonal!

MagnetBomber

Ranking : Nota C
Número de Mensagens : 206
Idade : 15
Data de inscrição : 07/04/2013
Notas recebidas : C
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Pedido Script] de Movemento Isometrico

Mensagem por saim em Seg 08 Abr 2013, 16:11

Eu definiria as direções, guardaria-as numa array e movimentaria em função das teclas apertadas.
>create<
Código:
dir[0] = 45;  tecla[0] = ord("W");
dir[1] = 135; tecla[1] = ord("A");
dir[2] = 225; tecla[2] = ord("S");
dir[3] = 315; tecla[3] = ord("D");
>step<
Código:
for(i = 0; i < 4; i += 1){
   if (keyboard_check(tecla[i])){
      direction = dir[i];
      }
   }
Esse é só um rascunho. Não define a velocidade nem permite que se aperte mais de uma tecla ao mesmo tempo. Mas é uma base de raciocínio pra você poder desenvolver a engine.

off: Agora, me diz uma coisa... Comovocê fez pra "escrever" as setas?

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [Pedido Script] de Movemento Isometrico

Mensagem por !!Game Play!! em Seg 08 Abr 2013, 18:06

Obrigado por comentarem man , mas infelizmente meu problema ainda não ta solucionado , tipo o script que o MagnetBomber me deu , só faz andar pro lado e pro outro , não vai pra cima e pra baixo . Não sei se coloquei o código aqui errado mas eu fiz o seguinte :

"if keyboard_check_pressed (vk_left)
{
hspeed=5
vspeed=5
}

if keyboard_check_pressed (vk_right)
{
hspeed=5
vspeed=5
}

if keyboard_check_pressed (vk_up)
{
vspeed=-5
hspeed=-5
}

if keyboard_check_pressed (vk_down)
{
vspeed=5
hspeed=5
}"


Se tiver do jeito que você explicou , sinto-lhe dizer que não funcionou , se puder pelo menos fazer uma engine , ou me da um exemplo melhor ficarei grato

E saim eu não entendi nada do seu código muito bem , como você mesmo disse é um rascunho , se puder me explicar melhor , ajudaria muito.
Eu achei as teclas no Wikipédia
olha ai http://pt.wikipedia.org/wiki/Seta_(s%C3%ADmbolo)

!!Game Play!!

Número de Mensagens : 159
Idade : 19
Data de inscrição : 24/12/2011
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.blackcubestudio.tkk/

Voltar ao Topo Ir em baixo

Resolvido Re: [Pedido Script] de Movemento Isometrico

Mensagem por Adilson Thiago Vieira em Seg 08 Abr 2013, 18:12

Deve funcionar,testa ai:
Código:

if keyboard_check_pressed (vk_left)
hspeed=-5
if keyboard_check_released(vk_left)
hspeed=0

if keyboard_check_pressed (vk_right)
hspeed=5
if keyboard_check_released(vk_right)
hspeed=0

if keyboard_check_pressed (vk_up)
vspeed=-5
if keyboard_check_released(vk_up)
vspeed=0

if keyboard_check_pressed (vk_down)
vspeed=5
if keyboard_check_released(vk_down)
hspeed=0

Adilson Thiago Vieira

Ranking : Sem avaliações
Número de Mensagens : 367
Idade : 19
Data de inscrição : 17/10/2012
Notas recebidas : D+C+C+D
Reputação : 25
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Pedido Script] de Movemento Isometrico

Mensagem por willcraft2 em Seg 08 Abr 2013, 18:18

ta ai:
Código:

if keyboard_check_pressed (ord('W'))
{
y=y-5
}

if keyboard_check_pressed (ord('A'))
{
x=x-5
}

if keyboard_check_pressed (ord('S'))
{
y=y+5
}

if keyboard_check_pressed (ord('D'))
{
x=x+5
}

willcraft2

Ranking : Nota D
Número de Mensagens : 682
Idade : 16
Data de inscrição : 06/04/2012
Notas recebidas : D + D
Reputação : 42
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Pedido Script] de Movemento Isometrico

Mensagem por !!Game Play!! em Seg 08 Abr 2013, 18:19

Adilson Thiago Vieira seu código ate funcionou bem , mas eu meio que não especifiquei , eu quero que ele ande em diagonal em apenas uma tecla tipo , baixo ou W , não ter que aperta meia lua tipo <-- | (lado)e(baixo).
v

!!Game Play!!

Número de Mensagens : 159
Idade : 19
Data de inscrição : 24/12/2011
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.blackcubestudio.tkk/

Voltar ao Topo Ir em baixo

Resolvido Re: [Pedido Script] de Movemento Isometrico

Mensagem por Adilson Thiago Vieira em Seg 08 Abr 2013, 18:27

Entao veja se é isto que voce que manow: =]
Código:

if keyboard_check_pressed (ord("A"))
motion_set(135,5)
if keyboard_check_released(ord("A"))
speed=0

if keyboard_check_pressed (ord("W"))
motion_set(45,5)
if keyboard_check_released(ord("W"))
speed=0

if keyboard_check_pressed (ord("S"))
motion_set(225,5)
if keyboard_check_released(ord("S"))
speed=0

if keyboard_check_pressed (ord("D"))
motion_set(315,5)
if keyboard_check_released(ord("D"))
speed=0

Adilson Thiago Vieira

Ranking : Sem avaliações
Número de Mensagens : 367
Idade : 19
Data de inscrição : 17/10/2012
Notas recebidas : D+C+C+D
Reputação : 25
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Pedido Script] de Movemento Isometrico

Mensagem por !!Game Play!! em Seg 08 Abr 2013, 18:30

Pronto . Este foi , obrigado man , ajudou muito !

!!Game Play!!

Número de Mensagens : 159
Idade : 19
Data de inscrição : 24/12/2011
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.blackcubestudio.tkk/

Voltar ao Topo Ir em baixo

Resolvido Re: [Pedido Script] de Movemento Isometrico

Mensagem por Tiago Lima em Seg 08 Abr 2013, 18:30

Uma adaptação no código você postou:

Código:
if keyboard_check_pressed (vk_left)
{
hspeed=-5;
vspeed=5;
}

if keyboard_check_pressed (vk_right)
{
hspeed=5;
vspeed=-5;
}

if keyboard_check_pressed (vk_up)
{
vspeed=-5;
hspeed=-5;
}

if keyboard_check_pressed (vk_down)
{
vspeed=5;
hspeed=5;
}

Não testei por que meu computador está ocupado renderizando um video, mas tente entender a lógica da coisa, e adapte a sua necessidade.

Edit: Meu pc tá tão lento que o tempo que demorou pra postar deu pra te responderem... rsrsrs e o video tá só em 56%...

Tiago Lima

Ranking : Nota C
Número de Mensagens : 199
Data de inscrição : 14/07/2008
Notas recebidas : C
Reputação : 17
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.youtube.com/user/CanalNexteLevel

Voltar ao Topo Ir em baixo

Resolvido Re: [Pedido Script] de Movemento Isometrico

Mensagem por saim em Ter 09 Abr 2013, 08:21

!!Game Play!! escreveu:E saim eu não entendi nada do seu código muito bem , como você mesmo disse é um rascunho , se puder me explicar melhor , ajudaria muito.
Colocando comentários nos códigos
>create<
Código:
// armazena as direções e teclas em arrays
dir[0] = 45;  tecla[0] = ord("W"); // tecla "W", 45°
dir[1] = 135; tecla[1] = ord("A"); // tecla "A", 135°
dir[2] = 225; tecla[2] = ord("S"); // tecla "S", 225°
dir[3] = 315; tecla[3] = ord("D"); // tecla "D", 315°
>step<
Código:
// num "for", verifica qual tecla está apertada e define a direção
for(i = 0; i < 4; i += 1){ // pra cada tecla definida na array
   if (keyboard_check(tecla[i])){ // se ela está apertada
      direction = dir[i]; // define a direção
      }
   }

Esse "for" é o mesmo que dizer:
Código:
if (keyboard_check(tecla[0])){ // se a tecla[0] ("W")está apertada
   direction = dir[0]; // define a direção como dir[0] (45°)
   }
if (keyboard_check(tecla[1])){ // se a tecla[1] ("A")está apertada
   direction = dir[1]; // define a direção como dir[1] (135°)
   }
if (keyboard_check(tecla[2])){ // se a tecla[2] ("S")está apertada
   direction = dir[2]; // define a direção como dir[2] (225°)
   }
if (keyboard_check(tecla[3])){ // se a tecla[3] ("D")está apertada
   direction = dir[3]; // define a direção como dir[3] (315°)
   }
A falha do código é que ele não define a velocidade e dá prioridade às últimas teclas da array (por exemplo, se "W" e "D" forem apertadas ao mesmo tempo, a direção será 315°). Tudo fácil de resolver, mas requer definições suas, como por exemplo... você QUER definir a velocidade (ou quer a velocidade constante o tempo todo, só a direção que muda)? Você quer que uma direção tenha prioridade sobre a outra ou prefere uma média delas, no caso de mais teclas apertadas ao mesmo tempo? E, por falar nisso, as direções são essas mesmas ou você preferiria 30-150-210-330?

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [Pedido Script] de Movemento Isometrico

Mensagem por Conteúdo patrocinado Hoje à(s) 19:53


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