Conectar-se
Quem está conectado
23 usuários online :: 2 usuários cadastrados, Nenhum Invisível e 21 Visitantes

Katerp, Willy

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 24/12/2011
Número de Mensagens : 159
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.blackcubestudio.tkk/

[Pedido Script] de Movemento Isometrico

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)
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/04/2013
Número de Mensagens : 206
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Pedido Script] de Movemento Isometrico

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!
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [Pedido Script] de Movemento Isometrico

em Seg 08 Abr 2013, 16:11
Reputação da mensagem: 100% (1 votos)
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?
avatar
Data de inscrição : 24/12/2011
Número de Mensagens : 159
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.blackcubestudio.tkk/

Re: [Pedido Script] de Movemento Isometrico

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)
avatar
Ranking : Sem avaliações
Notas recebidas : D+C+C+D
Data de inscrição : 17/10/2012
Número de Mensagens : 367
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Pedido Script] de Movemento Isometrico

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
avatar
Ranking : Nota D
Notas recebidas : D + D
Data de inscrição : 06/04/2012
Número de Mensagens : 682
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Pedido Script] de Movemento Isometrico

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
}
avatar
Data de inscrição : 24/12/2011
Número de Mensagens : 159
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.blackcubestudio.tkk/

Re: [Pedido Script] de Movemento Isometrico

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
avatar
Ranking : Sem avaliações
Notas recebidas : D+C+C+D
Data de inscrição : 17/10/2012
Número de Mensagens : 367
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Pedido Script] de Movemento Isometrico

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
avatar
Data de inscrição : 24/12/2011
Número de Mensagens : 159
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.blackcubestudio.tkk/

Re: [Pedido Script] de Movemento Isometrico

em Seg 08 Abr 2013, 18:30
Pronto . Este foi , obrigado man , ajudou muito !
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 14/07/2008
Número de Mensagens : 199
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuáriohttp://www.youtube.com/user/CanalNexteLevel

Re: [Pedido Script] de Movemento Isometrico

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%...
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [Pedido Script] de Movemento Isometrico

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?
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum