(resolvido) nos canto

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

(resolvido) nos canto

Mensagem por manobrother em Qua 29 Out 2014, 15:03

então, estou usando esse código:
Código:
  switch (choose(0, 1, 2, 3))
    {
        case 0: /* alguma coisa aqui */ ; break;
        case 1: /* alguma coisa aqui */ ; break;
        case 2: instance_create(irandom(room_width), (room_height) - 100,obj_inimigo) ; break;
        case 3: instance_create(irandom(room_width), (room_height) + 100,obj_inimigo) ; break;
    }

eu quero que o jogo escolha entre os quatro lados do quadrado da tela para spawnar um inimigo fora da room, para ele nao spawnar na tela do nada, mas quando começo o jogo ele só spawna embaixo da tela (eu sei que só coloquei 2, mas quando esses ai funcionarem eu ponho o resto), enfim agradeço desde já


Última edição por manobrother em Qua 29 Out 2014, 20:23, editado 1 vez(es)

manobrother

Número de Mensagens : 206
Idade : 17
Data de inscrição : 31/10/2013
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: (resolvido) nos canto

Mensagem por Lauro em Qua 29 Out 2014, 15:30

Não entendi muito bem, acho que é isso o que você quer:
Código:

switch (choose(0, 1, 2, 3))
    {
        case 0:
instance_create(irandom_range(0,room_width/2),irandom_range(0,room_height/2),obj_inimigo) ; break;
        case 1:
instance_create(irandom_range(room_width,room_width/2),irandom_range(room_height,room_height/2),obj_inimigo) ; break;
        case 2: instance_create(irandom_range(room_width,room_width/2),irandom_range(0,room_height/2),obj_inimigo) ; break;
        case 3: instance_create(irandom_range(0,room_width/2),irandom_range(room_height,room_height/2),obj_inimigo) ; break;
    }

Mas acho que seria mais fácil fazer isso
Código:

instance_create(irandom(room_width)irandom(room_height),obj_inimigo)


Última edição por Lauro em Qua 29 Out 2014, 15:36, editado 1 vez(es)

Lauro

Ranking : Nota D
Número de Mensagens : 854
Idade : 19
Data de inscrição : 09/11/2010
Notas recebidas : C+D
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.google.com

Voltar ao Topo Ir em baixo

Re: (resolvido) nos canto

Mensagem por Gonçalves em Qua 29 Out 2014, 15:31

(room_height) + 100 faz com que ele seja gerado um pouco abaixo do limite inferior da tela. (room_height) - 100 faz com que ele seja gerado um pouco acima do limite inferior da tela. Não seria só -100?

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: (resolvido) nos canto

Mensagem por gabrielsch em Qua 29 Out 2014, 15:45

Não testei mas talvez isso resolva o teu problema:
Código:

var off, xx, yy;
off = 64
xx = choose(-off, room_width + off)
yy = choose(-off, room_height + off)

instance_create(xx + random_range(-off, off), yy + random_range(-off, off), obj_inimigo)

EDIT: Muda o valor 64 para qualquer valor que tu queira, quanto maior o valor maior a área.

___________


Acesse: http://foxen.com.br/



gabrielsch

Ranking : Nota A
Número de Mensagens : 1229
Idade : 21
Data de inscrição : 06/12/2009
Notas recebidas : D + A + A
Reputação : 28
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: (resolvido) nos canto

Mensagem por Sewer Crawler em Qua 29 Out 2014, 16:35

Testei o código do gabrielsch , deu certo.

Sewer Crawler

Número de Mensagens : 236
Idade : 23
Data de inscrição : 08/10/2014
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: (resolvido) nos canto

Mensagem por manobrother em Qua 29 Out 2014, 17:52

gabrielsch escreveu:Não testei mas talvez isso resolva o teu problema:
Código:

var off, xx, yy;
off = 64
xx = choose(-off, room_width + off)
yy = choose(-off, room_height + off)

instance_create(xx + random_range(-off, off), yy + random_range(-off, off), obj_inimigo)

EDIT: Muda o valor 64 para qualquer valor que tu queira, quanto maior o valor maior a área.

vlw gabriel funcionou direitinho aqui, mas vc poderia me explicar teu codigo?

manobrother

Número de Mensagens : 206
Idade : 17
Data de inscrição : 31/10/2013
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: (resolvido) nos canto

Mensagem por Thyago em Qui 30 Out 2014, 00:38

Bem eu não sou o gabriel, mas o código dele manda escolher entre duas opções na horizontal, e outra escolha entre duas opções na vertical.

veja:
Código:
xx = choose(-off, room_width + off)

escolhe entre -64 ou 64 além da room na horizontal.


Código:
yy = choose(-off, room_height + off)

escolhe entre -64 e 64 depois da room na vertical.

. Qualquer coisa o gabriel da a explicação dele acho que sim, até mais.

Thyago

Ranking : Nota B
Número de Mensagens : 1092
Idade : 30
Data de inscrição : 24/08/2009
Notas recebidas : D+B+B+C+A
Reputação : 31
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   :

Voltar ao Topo Ir em baixo

Re: (resolvido) nos canto

Mensagem por gabrielsch em Qui 30 Out 2014, 11:19

A rotina faz o jogo escolher um dos quatro quantos da room, pra entender melhor vamos definir o valor de off para 0.
Sendo assim a primeira coisa que o script faz é definir o valor de xx como sendo off negativo ou o tamanho horizontal da room somado com o valor de off, ou seja, ou o valor X vai ser na esquerda ou direita, depois ele usa o mesmo raciocínio para o eixo Y.
Com essa logica tu vai acabar tendo as coordenadas em um dos 4 cantos da sala. A variável off só é utilizada pra adicionar um fator aleatório quando o objeto for criado, sem ele o código ficaria ainda mais simples:
Código:
var xx, yy;
xx = choose(0, room_width)
yy = choose(0, room_height)

instance_create(xx, yy, obj_inimigo)

___________


Acesse: http://foxen.com.br/



gabrielsch

Ranking : Nota A
Número de Mensagens : 1229
Idade : 21
Data de inscrição : 06/12/2009
Notas recebidas : D + A + A
Reputação : 28
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: (resolvido) nos canto

Mensagem por Isaque Onix em Qui 30 Out 2014, 12:07

ja pediram isso aqui antes...

Código:
choose(
instance_create(choose(0,room_width),random(room_height),obj_inimigo),
instance_create(random(room_width),choose(0,room_height),obj_inimigo))
Ou ate

Código:
global.inimigo[0]=choose(
instance_create(choose(0,room_width),random(room_height),obj_inimigo),
instance_create(random(room_width),choose(0,room_height),obj_inimigo))

[edit]
desculpe, nao vi que tava resolvido.

Isaque Onix

Número de Mensagens : 1597
Idade : 23
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Re: (resolvido) nos canto

Mensagem por Conteúdo patrocinado Hoje à(s) 02:41


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