Conectar-se
Quem está conectado
14 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 14 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 31/05/2013
Número de Mensagens : 52
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

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

2 erros, colisão e movimentação

em Dom 17 Nov 2013, 17:09
Bom, mais uma duvida no meu jogo:

Código:
if keyboard_check_pressed(vk_left) {
x -= 30;
}
if keyboard_check_pressed(vk_right) {
  x += 30;
}



if ( !place_free(x,y-1) ){
  vspeed = 0;                            //Foco do erro 2(eu acho)
}
Erro 1 - Quando vou rodar o jogo dá esse erro:

COMPILATION ERROR in Script: Movimentação
Error in code at line 19:
x -= 30;
^
at position 7: Variable name expected.


E quando eu retiro essa linha 19, dá erro na linha do " x += 30;".

Erro 2 - O objeto não para quando se encontra uma posição acima de outro objeto, o que era o esperado por mim.

E ai, onde está o problema?
avatar
Ranking : Nota A
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2516
Insígnias de JAM :

Insignia 1x 1 Insignia 2x 0 Insignia 3x 0
Reputação : 177

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://redscreensoft.blogspot.com

Re: 2 erros, colisão e movimentação

em Dom 17 Nov 2013, 21:10
Com ESSE código não tem nada de errado. O erro está no nome do script!

Você colocou o nome de "Movimentação". Você não pode, em nenhum nome de recurso (Scripts, sprites, sons e etc) e variável usar acentuação e Ç (Cedilha).

Troque o nome por "Movimento" que deve resolver Very Happy.

A segunda dúvida não entendi, explique melhor. Happy

FLWS!
avatar
Data de inscrição : 31/05/2013
Número de Mensagens : 52
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

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

Re: 2 erros, colisão e movimentação

em Seg 18 Nov 2013, 19:52
1- Consertei o nome e mesmo erro:
___________________________________________
COMPILATION ERROR in Script: Movimento
Error in code at line 19:
x -= 30;
^
at position 7: Variable name expected.


2- Aqui:

if ( !place_free(x,y-1) ){
vspeed = 0;
}


Eu queria que o objeto parasse quando houvesse algo embaixo dele... mas nao dá certo
avatar
Data de inscrição : 02/10/2009
Número de Mensagens : 2227
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 52

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

Re: 2 erros, colisão e movimentação

em Seg 18 Nov 2013, 19:59
Amigo, aonde estas a executar esse código?
avatar
Data de inscrição : 31/05/2013
Número de Mensagens : 52
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

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

Re: 2 erros, colisão e movimentação

em Seg 18 Nov 2013, 20:05
No evento STEP!
avatar
Data de inscrição : 08/11/2013
Número de Mensagens : 9
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuáriohttp://facebook.com/SevenWarriorsEDB

Re: 2 erros, colisão e movimentação

em Ter 19 Nov 2013, 00:36
Primeiramente, você tem que indicar de quem é o x que vai ser movimentado. Se você já tiver alguma experiência com programação, orientação a objetos, etc vai entender melhor o que eu estou dizendo. o.- 
Como você está fazendo por script, você tem que indicar a instancia que será movida utilizando o nome do seu objeto.
Por exemplo:
Código:

if (keyboard_check_pressed(vk_left))
{
      objeto_player.x -= 30
}
Segundo erro: Você tem que verificar o início da sprite corretamente. Mande o código que você está utilizando para fazer o objeto parar que eu posso te ajudar! investigador
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
Reputação : 121

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

Re: 2 erros, colisão e movimentação

em Ter 19 Nov 2013, 09:33
patrick9as, o script roda no evento step... no game maker, o step só existe dentro de objetos. O game maker interpreta que o "x" se refere ao objeto que roda o script. ERA pra estar certo.
Entretanto, se o erro está acontecendo, realmente é tentador presumir que o código está rodando fora de um objeto.
...position 7... é onde fica o "30", certo? Estranho, parece que o programa não está entendendo que "30" é a variação de "x", parece que está perguntando "é pra subtrair 30 de quê?"
Não deveria acontecer. Deve ter algum erro lá de trás sendo propagado até aqui. Você poderia postar o script completo?

Quanto ao outro erro, só vendo pra saber. Eu posso chutar. O primeiro chute é que você está se movimentando através da mudança de posição (y += valor; y -= valor) e, como nesse caso o valor de vspeed e nada são a mesma coisa, o objeto não está parando.
O segundo chute é que você está verificando por uma colisão ACIMA do objeto e espera que ele pare quando existe uma colisão ABAIXO dele. Note que no game maker, o eixo "y" cresce de cima pra baixo.
avatar
Data de inscrição : 31/05/2013
Número de Mensagens : 52
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

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

Re: 2 erros, colisão e movimentação

em Ter 19 Nov 2013, 21:19
@patrick9as escreveu:Primeiramente, você tem que indicar de quem é o x que vai ser movimentado. Se você já tiver alguma experiência com programação, orientação a objetos, etc vai entender melhor o que eu estou dizendo. o.- 
Como você está fazendo por script, você tem que indicar a instancia que será movida utilizando o nome do seu objeto.
Por exemplo:
Código:

if (keyboard_check_pressed(vk_left))
{
      objeto_player.x -= 30
}
Segundo erro: Você tem que verificar o início da sprite corretamente. Mande o código que você está utilizando para fazer o objeto parar que eu posso te ajudar! investigador
Tentarei especificar o objeto, mas pensei que nao era necessário já que o script está sendo rodado no objeto em si. Mas vou tentar e digo se deu certo

Jájá posto o código



avatar
Data de inscrição : 31/05/2013
Número de Mensagens : 52
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

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

Re: 2 erros, colisão e movimentação

em Ter 19 Nov 2013, 21:25
@saim escreveu:patrick9as, o script roda no evento step... no game maker, o step só existe dentro de objetos. O game maker interpreta que o "x" se refere ao objeto que roda o script. ERA pra estar certo.
Entretanto, se o erro está acontecendo, realmente é tentador presumir que o código está rodando fora de um objeto.
...position 7... é onde fica o "30", certo? Estranho, parece que o programa não está entendendo que "30" é a variação de "x", parece que está perguntando "é pra subtrair 30 de quê?"
Não deveria acontecer. Deve ter algum erro lá de trás sendo propagado até aqui. Você poderia postar o script completo?

Quanto ao outro erro, só vendo pra saber. Eu posso chutar. O primeiro chute é que você está se movimentando através da mudança de posição (y += valor; y -= valor) e, como nesse caso o valor de vspeed e nada são a mesma coisa, o objeto não está parando.
O segundo chute é que você está verificando por uma colisão ACIMA do objeto e espera que ele pare quando existe uma colisão ABAIXO dele. Note que no game maker, o eixo "y" cresce de cima pra baixo.
1 - hmm... agora toh confuso, enfim, sim, a posição 7 eh a do 30. Jaja posto o codigo.
2 - Nao, acredito eu, que toh movimentando com a speed msm.



Script de movimento

Código:
//Script de movimentação blocos
vspeed = 5;


if keyboard_check_pressed(vk_up) {      //Rotaciona para direita
   if (image_index < image_number){
      image_index = image_index + 1;
   }
  else {
        image_index = 0;
   }  
}

if keyboard_check(vk_down) {    //Aumenta a velocidade do bloco
   vspeed *= 3;
}

if keyboard_check_pressed(vk_left) {
   x -= 30;
}
if keyboard_check_pressed(vk_right) {
   x += 30;
}



if ( !place_free(x,y+1) ){ //consertei aki, tirei y-1 e pus y+1
   vspeed = 0;
}
 

Tah ai! Em relação ao erro 2, vi agora que é o contrário. Sabia que o eixo Y era invertido mas msm assim ainda nao me acostumei, ai bugou minha mente kk.
EDIT: Mesmo consertando o y-1, ainda nao deu certo Mad
P/patrick9as: Tentei especificar o objeto lá, e mesmo nao deu certo, deu erro logo no script. Se essa solução funcionasse seria um inconveniente já que estou pondo o script em um objeto e esse objeto é um "objeto-pai" de outros semelhantes, ou seja, especificando o objeto no script, eu teria que reformular muita coisa.
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
Reputação : 121

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

Re: 2 erros, colisão e movimentação

em Qua 20 Nov 2013, 10:10
erro 2:tente substituir "+1" por "+vspeed". Já que ela é definida como "5" logo no começo do script, isso não deve dar problema.

erro 1: não sei resolver (não achei erro nenhum) e não tenho como baixar a engine, se você postar... mas poste ela (o .gmk), de qualquer forma, que outra pessoa pode tentar.
avatar
Data de inscrição : 08/11/2013
Número de Mensagens : 9
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuáriohttp://facebook.com/SevenWarriorsEDB

Re: 2 erros, colisão e movimentação

em Qua 20 Nov 2013, 16:03
@namikazealexandre escreveu:
@saim escreveu:patrick9as, o script roda no evento step... no game maker, o step só existe dentro de objetos. O game maker interpreta que o "x" se refere ao objeto que roda o script. ERA pra estar certo.
Entretanto, se o erro está acontecendo, realmente é tentador presumir que o código está rodando fora de um objeto.
...position 7... é onde fica o "30", certo? Estranho, parece que o programa não está entendendo que "30" é a variação de "x", parece que está perguntando "é pra subtrair 30 de quê?"
Não deveria acontecer. Deve ter algum erro lá de trás sendo propagado até aqui. Você poderia postar o script completo?

Quanto ao outro erro, só vendo pra saber. Eu posso chutar. O primeiro chute é que você está se movimentando através da mudança de posição (y += valor; y -= valor) e, como nesse caso o valor de vspeed e nada são a mesma coisa, o objeto não está parando.
O segundo chute é que você está verificando por uma colisão ACIMA do objeto e espera que ele pare quando existe uma colisão ABAIXO dele. Note que no game maker, o eixo "y" cresce de cima pra baixo.
1 - hmm... agora toh confuso, enfim, sim, a posição 7 eh a do 30. Jaja posto o codigo.
2 - Nao, acredito eu, que toh movimentando com a speed msm.



Script de movimento

Código:
//Script de movimentação blocos
vspeed = 5;


if keyboard_check_pressed(vk_up) {      //Rotaciona para direita
   if (image_index < image_number){
      image_index = image_index + 1;
   }
  else {
        image_index = 0;
   }  
}

if keyboard_check(vk_down) {    //Aumenta a velocidade do bloco
   vspeed *= 3;
}

if keyboard_check_pressed(vk_left) {
   x -= 30;
}
if keyboard_check_pressed(vk_right) {
   x += 30;
}



if ( !place_free(x,y+1) ){ //consertei aki, tirei y-1 e pus y+1
   vspeed = 0;
}
 

Tah ai! Em relação ao erro 2, vi agora que é o contrário. Sabia que o eixo Y era invertido mas msm assim ainda nao me acostumei, ai bugou minha mente kk.
EDIT: Mesmo consertando o y-1, ainda nao deu certo Mad
P/patrick9as: Tentei especificar o objeto lá, e mesmo nao deu certo, deu erro logo no script. Se essa solução funcionasse seria um inconveniente já que estou pondo o script em um  objeto e esse objeto é um "objeto-pai" de outros semelhantes, ou seja, especificando o objeto no script, eu teria que reformular muita coisa.
Realmente, eu achei estranho não ter dado certo, o Game Maker tem alguns problemas quanto a você tentar movimentar o objeto em outro lugar a não ser dentro do "Step", o que eu te recomendo é colocar esse código no objeto mesmo, aí é certeza de não dar nada errado.

Bom, para o segundo erro tente utilizar esse código:
Código:

if (other.y < y)//Se o outro objeto está acima de mim
{
      vspeed = 0;//Eu paro
}
E vamos deixar algumas coisas claras aqui:
Negativo = pra cima
Positivo = pra baixo
vspeed = velocidade na vertical
hspeed = velocidade na horizontal
y - 1 = enxergar pra cima (ou seja, seu código está certo)
Só me diz o porquê de vc estar usando o image_index e o image_number.
scratch 
avatar
Data de inscrição : 31/05/2013
Número de Mensagens : 52
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

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

Re: 2 erros, colisão e movimentação

em Qui 21 Nov 2013, 21:42
@Patrick9as:

Quanto ao eixo y eu já tinha entendido, era só um pequeno bug na minha cabeça msm...

Quanto ao image_index e image_number, nao sei se é idiotice ou se tinha um jeito mais fácil, mas eu coloquei todos as imagens de um bloco em apenas um sprite(nao sei se mecionei aki que o jogo é um generico de tetris).
Tipo, em um sprite tem o bloco L em todas as suas 4 posições. Ai quando o player aperta UP, ele rotaciona, ou seja, muda de imagem...
Nao sei se fui claro...
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
Reputação : 121

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

Re: 2 erros, colisão e movimentação

em Sab 23 Nov 2013, 10:24
Agora é final-de-semana. Pode ser que eu consiga dar uma olhada na sua engine, se você postá-la.
avatar
Data de inscrição : 31/05/2013
Número de Mensagens : 52
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

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

Re: 2 erros, colisão e movimentação

em Dom 24 Nov 2013, 23:46
kkk Só vi a msg agora, eu posto depois e se vc ainda puder dar uma olhada!
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