ajuda nalgumas questôes

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

ajuda nalgumas questôes

Mensagem por jose rocha em Ter 08 Out 2013, 09:46

Boa tarde a todos, comecei a usar recentemente o game maker e para começar um mini jogo fácil e pequeno.

estou entusiasmado com o gm mas eis que começo a perceber que pequeninos problemas são os mais difíceis de resolver levando-me ao desespero, mas desespero mesmo. Eis as minhas questões:

1- quando o carro bate (colisão) no meu personagem, este vira cadáver ensaguentado, daí dispara um timer que reinicia o jogo passado algum tempo, até aqui tudo bem só que o mais fácil não consigo fazer, quero que tudo pare durante o tempo (timer) senão podemos mover o cadáver e o resto dos objetos continuam a mover. apenas queria um sleep(numb) (que ao que parece já não existe), não quero menu pause nem (tudo invisivel) apenas um "frezze".

será tão dificil fazer esta coisa tão basica??? como se faz?

2-porque será que nenhuma das randomizações funciona comigo??? uso,exemplo:

random_range(5,10) --- o resultado não funciona com minimo 5 e alem disso dá resultados

esquisitos tipo 6'9889 (o que não era suposto por ser (random_range)(penso eu)

ou tipo:

global.velocidade3=floor( random( 7) )+3 ---reparem que aqui sou obrigado a somar 3 porque quero minimo de 3
object_faisca_esquerda_1.speed=global.velocidade3 ---numero randomizado na variavel

queria de 3 a 7 mas se o resultado for 7 já sabem o que acontece, soma mais três e dá 10.
támbem já usei :

global.velocidade3=floor( random( 3-7) )

mas também dá números que não são de 3 a 7

o que realmente queria era uma randomização com numero minimo e máximo, exemplo numero entre 5 e 10, tão simples quanto isso.

obrigado pela vossa atenção e possível ajuda prestada.


jose rocha

Número de Mensagens : 76
Data de inscrição : 06/10/2013
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por vinians em Ter 08 Out 2013, 10:37

Amigo, basta trocar o random_range() por irandom_range() que voce obterá valores inteiros.
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por jose rocha em Ter 08 Out 2013, 10:45

Não funciona:

In object object_faisca_esquerda_2, event Create, action 2 at line 1: Unknown function or script: Irandom_range

jose rocha

Número de Mensagens : 76
Data de inscrição : 06/10/2013
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por vinians em Ter 08 Out 2013, 10:50

jose rocha escreveu:Não funciona:

In object object_faisca_esquerda_2, event Create, action 2 at line 1: Unknown function or script: Irandom_range
O GM é case sensitive ou seja distingue maiuscula de minuscula. Arrume o "I" e coloque em minúsculo.
Ou você pode usar o round() assim:
Código:

r = round(random_range(1, 10));
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por jose rocha em Ter 08 Out 2013, 11:02

Ou você pode usar o round() assim:
CÓDIGO:

r = round(random_range(1, 10));
de facto funciona mas continua a dar mal. Exemplo fiz:

r = round(random_range(10, 20))
global.velocidade4= r ---(para poder ver a variável no debug)

 e ele chega a dar valores de 3 e 6

lol

jose rocha

Número de Mensagens : 76
Data de inscrição : 06/10/2013
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por vinians em Ter 08 Out 2013, 11:07

Com certeza ele vai dar valores entre 10 e 20, não sei como está o seu código mas acho que essa variavel pode estar sendo alterada em outro local, tente colocar mais código de debug.
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por jose rocha em Ter 08 Out 2013, 13:15

Com certeza ele vai dar valores entre 10 e 20, não sei como está o seu código mas acho que essa variavel pode estar sendo alterada em outro local, tente colocar mais código de debug.
Flws!
de facto estava a ser alterada, já fiz uns testes e agora funciona SIM.
muito obrigado vinians  e já agora aproveito parar perguntar (curiosidade) o porquê a palavra round no código.

para outros membros por favor me digam se souberem alguma maneira de fazer o frezze (parar tudo sem ficar os objetos invisíveis).

jose rocha

Número de Mensagens : 76
Data de inscrição : 06/10/2013
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por LCS em Ter 08 Out 2013, 19:05

O round seria para arredondar o numero real que o random_range retorna para o inteiro mais proximo.

O que tu pode fazer para essa parte de congelar a tela, seria criar uma variável global que controla o movimento de todo o jogo. Por exemplo, tu cria uma variavel chamada movimento=true no create de algum objeto, seria um objeto controlador no caso, em todos os outros objetos qualquer ação que fosse ser executada só seria permitida caso essa variável fosse verdadeira, sempre checando ela antes de qualquer ação, quando acontecesse a ação de congelar a tela, essa variável se tornaria false o que impediria todo e qualquer movimento dos objetos.
É um jeito bem trabalhoso, mas talvez mais flexivel.
Se não me engano existe o sleep(x) só que não esqueça que o GM trabalha com milissegundos.
Abraço!

LCS

Ranking : Nota A
Número de Mensagens : 1035
Idade : 21
Data de inscrição : 09/03/2010
Notas recebidas : A
Reputação : 43
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://www.www.ww.www

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por jose rocha em Ter 08 Out 2013, 20:48

O round seria para arredondar o numero real que o random_range retorna para o inteiro mais proximo.

O que tu pode fazer para essa parte de congelar a tela, seria criar uma variável global que controla o movimento de todo o jogo. Por exemplo, tu cria uma variavel chamada movimento=true no create de algum objeto, seria um objeto controlador no caso, em todos os outros objetos qualquer ação que fosse ser executada só seria permitida caso essa variável fosse verdadeira, sempre checando ela antes de qualquer ação, quando acontecesse a ação de congelar a tela, essa variável se tornaria false o que impediria todo e qualquer movimento dos objetos.
É um jeito bem trabalhoso, mas talvez mais flexivel.
Se não me engano existe o sleep(x) só que não esqueça que o GM trabalha com milissegundos.
Abraço!
ok, já tinha imaginado que essa seria a unica opção, mas para isso precisava do código de mover objectos, do tipo:
o meu personagem move-se através do tal evento:
jump to position (-4,0) -----este evento não é codigo (mas sim evento do gm),por isso  peço o codigo para usar variavel.
e por aí vai

up jump to position 0,-4    etc...

é o mod mover para todos os lados incluindo diagonal em sprite fixo (ou seja não movimento do tipo jogo super mario).

por favor mê dê o código porque assim que o tiver faço qualquer coisa do tipo:

(funcionam ou movem-se se variavel X for true)


obrigado.

EDIT: coisas á parte, eu não me acredito que o game maker me acabou de limitar por uma coisa de nada, ( o caso de frezze não ser possível). Á alguma maneira de inserir linguagem codigo c+  para fazer esse tal frezze ou slleep?? (lembrando que, (sleep) "também não existe mais da versão 8 para cima"??

jose rocha

Número de Mensagens : 76
Data de inscrição : 06/10/2013
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por tomxope em Ter 08 Out 2013, 21:03

para congelar de um geito facil uso o (sleep, 1000=1 segundo). segundo icone da aba 3 (main2). coloca ele no envento colisão logo depois de ele virar cadaver...

tomxope

Número de Mensagens : 48
Data de inscrição : 14/09/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por jose rocha em Ter 08 Out 2013, 21:11

tomxope, desculpe se não entendi bem, faça um codigo (exemplo para entender melhor).

obrigado,

EDIT: como já disse, já não existe:

na aba 3 segundo icone tenho: "set time line position to 0".

jose rocha

Número de Mensagens : 76
Data de inscrição : 06/10/2013
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por tomxope em Ter 08 Out 2013, 21:24

sleep(numb). desculpa la!!! eu uso a versão 8!!! vi agora no gms.. nao tem mesmo. a melhor forma sera mesmo usar um objecto control!!!

tomxope

Número de Mensagens : 48
Data de inscrição : 14/09/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por jose rocha em Ter 08 Out 2013, 21:28

sleep(numb). desculpa la!!! eu uso a versão 8!!! vi agora no gms.. nao tem mesmo. a melhor forma sera mesmo usar um objecto control!!!
ok ok, como se usa isso ?
lol

jose rocha

Número de Mensagens : 76
Data de inscrição : 06/10/2013
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por mZIl em Ter 08 Out 2013, 21:38

Não seria mais fácil simplesmente não executar códigos que são executados com a input do teclado? Tipo, só usar uma variável que fica true quando o player morre, e no evento keyboard (Ou nas funções keyboard_) checar também se essa variável é false, se for aí sim irá executar o código. Aí o player não move mais (Todos os outros objetos iriam, no caso).

Seria até legal um fade-in com o carro ainda se movimentando e tudo mais, em vez de congelar a tela ;)

mZIl

Número de Mensagens : 49
Idade : 19
Data de inscrição : 10/07/2013
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por jose rocha em Ter 08 Out 2013, 21:49


Não seria mais fácil simplesmente não executar códigos que são executados com a input do teclado? Tipo, só usar uma variável que fica true quando o player morre, e no evento keyboard (Ou nas funções keyboard_) checar também se essa variável é false, se for aí sim irá executar o código. Aí o player não move mais (Todos os outros objetos iriam, no caso).

Seria até legal um fade-in com o carro ainda se movimentando e tudo mais, em vez de congelar a tela ;)

com certeza, era isso mesmo que eu queria e entendi, mas preciso de inserir a variável nas funções keyboard e para isso tem que ser através de código e não evento.

ps. se alguém me quer ajudar mas não esta a entender a minha duvida ou respoistas, pf diga o que não entende para eu explicar melhor.

jose rocha

Número de Mensagens : 76
Data de inscrição : 06/10/2013
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por mZIl em Ter 08 Out 2013, 22:00

jose rocha escreveu:

Não seria mais fácil simplesmente não executar códigos que são executados com a input do teclado? Tipo, só usar uma variável que fica true quando o player morre, e no evento keyboard (Ou nas funções keyboard_) checar também se essa variável é false, se for aí sim irá executar o código. Aí o player não move mais (Todos os outros objetos iriam, no caso).

Seria até legal um fade-in com o carro ainda se movimentando e tudo mais, em vez de congelar a tela ;)
com certeza, era isso mesmo que eu queria e entendi, mas preciso de inserir a variável nas funções keyboard e para isso tem que ser através de código e não evento.

ps. se alguém me quer ajudar mas não esta a entender a minha duvida ou respoistas, pf diga o que não entende para eu explicar melhor.
Dá para fazer isso(O código não tá correto, é só pra ilustrar Razz) :

Código:
if vivo = true {
  if keyboard_check(tecla) {
    //faz coisas
  }
 
  if keyboard_check(outraTecla) {
    //faz outras coisas
  end
}
ou até no evento key pressed (ou released etc..) :

Código:
if vivo = true {
  //faz coisas
}
Daria no mesmo.

Nesse caso ele só iria se mover se estivesse vivo.

mZIl

Número de Mensagens : 49
Idade : 19
Data de inscrição : 10/07/2013
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por jose rocha em Qua 09 Out 2013, 21:33

mZIl :

testado e aprovado.

muito obrigado a todos pela ajuda.

tudo resolvido.Very Happy 

jose rocha

Número de Mensagens : 76
Data de inscrição : 06/10/2013
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: ajuda nalgumas questôes

Mensagem por Conteúdo patrocinado Hoje à(s) 15:46


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