Entrar
Últimos assuntos
» Retorno da GMBR!!!por theguitarmester Ter 19 Mar 2024, 22:38
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16
» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05
» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55
» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39
» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28
» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01
Movimentação a 45 de dois personagens
5 participantes
Página 1 de 1
Movimentação a 45 de dois personagens
Bom eu estou trabalhando em um simples jogo, onde existem dois jogadores que tem como objetivo fazer o gol no adversário, só que existe um problema que não vejo onde pode está o erro. Quando ambos estao se movimentando na mesma direção, 45 graus especificamente, eles não se movem, apenas um pode se movimentar a 45 por vez.
Outro erro é que quando o personagem B esta se movimentando a 45 graus ele nao consegue chutar (apenas o personagem B, que possui codigo similar ao personagem A).
Codigo PErsonagem B, Step e create:
create:
Step:
Personagem A:
o codigo do personagem A é o mesmo do Personagem B, só que nas variaveis globais nao possui o B na frente do nome, nem as variaveis locais possui B na frente.
PS:
o personagem B se movimenta pelas setas, chuta com "p" e da o boost com "o".
o personagem A se movimenta por "w,a,s,d", cuta com com "c" e da boost com "v".
Outro erro é que quando o personagem B esta se movimentando a 45 graus ele nao consegue chutar (apenas o personagem B, que possui codigo similar ao personagem A).
Codigo PErsonagem B, Step e create:
create:
- Código:
/// Variaveis
global.mvspeedB = 4;
keySpaceB = ord("P");
keyBoostB = ord("O");
Step:
- Código:
/// Eventos Continuos
var krB, klB, kupB, kdB, kpB;
kpB = keyboard_check_pressed(keySpaceB);
krB = keyboard_check(vk_right);
kupB = keyboard_check(vk_up);
klB = keyboard_check(vk_left);
kdB = keyboard_check(vk_down);
kbB = keyboard_check(keyBoostB);
if(krB or kdB or kupB or klB){
if(krB){
global.direcaoB = 0;
image_xscale = -1;
}
if(klB){
global.direcaoB = 180;
image_xscale = 1;
}
if(kupB){
global.direcaoB = 90;
}
if(kdB){
global.direcaoB = 270;
}
if(kupB && krB){
if(global.direcao = 45){
global.direcaoB = 45;
}else{
global.direcaoB = 45;
}
}
if(kdB && krB){
global.direcaoB = 315;
}
if(klB && kupB){
global.direcaoB = 135;
}
if(klB && kdB){
global.direcaoB = 225;
}
direction = global.direcaoB;
speed = global.mvspeedB;
}else{
speed = 0;
}
// Chute
if(kpB) && (global.chuteB = false){
global.chuteB = true;
if((global.direcaoB = 0)or(global.direcaoB = 180)or(global.direcaoB = 45)or(global.direcaoB = 90)or(global.direcaoB = 270)or(global.direcaoB =315)or(global.direcaoB = 135) or (global.direcaoB = 225)){
if(image_xscale = 1){
global.sentidoPernaB = false;
instance_create(x+(objJogadorB-20), y+(objJogadorB+20), objPernaB);
}else{ if(image_xscale = -1){
global.sentidoPernaB = true;
instance_create(x+(objJogadorB+20), y+(objJogadorB+20), objPernaB);
}
}
}
}
// BOOST
if(((objPontoGoalB.x - objJogadorB.x) > (objPontoGoalB.x - objJogador.x)) and (objBola.x > objJogador.x)){
if(klB)or(kupB)or(krB)or(kdB){
if(kbB) && (global.boostB = false){
global.boostB = true;
global.mvspeedB = 7;
if(image_xscale = -1){
instance_create(x+(objJogadorB-20), y, objBoostB);
}else { if(image_xscale = 1){
instance_create(x+(objJogadorB+20), y, objBoostB);
}
}
}
}
}
Personagem A:
o codigo do personagem A é o mesmo do Personagem B, só que nas variaveis globais nao possui o B na frente do nome, nem as variaveis locais possui B na frente.
PS:
o personagem B se movimenta pelas setas, chuta com "p" e da o boost com "o".
o personagem A se movimenta por "w,a,s,d", cuta com com "c" e da boost com "v".
Última edição por DeduBr em Sex 19 Jun 2015, 11:06, editado 1 vez(es)
DeduBr- Games Ranking :
Data de inscrição : 06/06/2015
Reputação : 0
Número de Mensagens : 1
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Movimentação a 45 de dois personagens
Uma duvida,
1 - pq no 45 vc faz uma validação e nos outros não? if(global.direcao = 45){
2 - No if, não deveria ser if(global.direcao == 45) (dois sinais de igual). Acredito q vc poderia tirar esse if de dentro da opção de 45 graus. Pq em qualquer situação ele vai atribuir global.direcaoB = 45 (tipo, tanto no if, quanto no else)
-------------------------------------
if(kupB && krB){
*******if(global.direcao = 45){
global.direcaoB = 45;
}else{
global.direcaoB = 45;
}
}
1 - pq no 45 vc faz uma validação e nos outros não? if(global.direcao = 45){
2 - No if, não deveria ser if(global.direcao == 45) (dois sinais de igual). Acredito q vc poderia tirar esse if de dentro da opção de 45 graus. Pq em qualquer situação ele vai atribuir global.direcaoB = 45 (tipo, tanto no if, quanto no else)
-------------------------------------
if(kupB && krB){
*******if(global.direcao = 45){
global.direcaoB = 45;
}else{
global.direcaoB = 45;
}
}
ralk2- Data de inscrição : 03/11/2013
Reputação : 0
Número de Mensagens : 17
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Movimentação a 45 de dois personagens
verdade ralks,
sempre que for comparar algo se usa ==
quando se usa apenas um = quer dizer que está atribuindo um valor à variável.
sempre que for comparar algo se usa ==
quando se usa apenas um = quer dizer que está atribuindo um valor à variável.
itarodrigo- Data de inscrição : 28/08/2010
Reputação : 52
Número de Mensagens : 599
Prêmios :
x 0 x 4 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Movimentação a 45 de dois personagens
Apesar de outras linguagens ser assim, em gml você pode usar apenas 1 "=" para comparar.
Ambos vão funcionar igual.
Isso vai comparar e não atribuir valor.
Ambos vão funcionar igual.
- Código:
if(a = 5){}
if(a == 5){}
Isso vai comparar e não atribuir valor.
Thyago- Games Ranking :
Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Reputação : 31
Número de Mensagens : 1101
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Re: Movimentação a 45 de dois personagens
DeduBr, o problema está na configuração de sua máquina que não recebe múltiplas informações de teclas do teclado, eu tinha isso também, o meu pc só recebia 3 teclas no máximo, se eu tentasse apertar qlqer outra, n ia de jeito nenhum, só se soltasse outra. Pesquise por algo similar na net.
Zero.- Data de inscrição : 19/08/2010
Reputação : 47
Número de Mensagens : 1300
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» [Resolvido]visualização de dois personagens na mesma room
» como fazer para os personagens irem atras de outros personagens
» Troca de Personagens
» Dois eventos
» [Resolvido]Dois Botoes
» como fazer para os personagens irem atras de outros personagens
» Troca de Personagens
» Dois eventos
» [Resolvido]Dois Botoes
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos