Conectar-se
Quem está conectado
28 usuários online :: 3 usuários cadastrados, Nenhum Invisível e 25 Visitantes

CRP-Max, diassis, rafaelviodres1

Ver toda a lista


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

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

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

(resolvido) nos canto

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)
avatar
Ranking : Nota D
Notas recebidas : C+D
Data de inscrição : 09/11/2010
Número de Mensagens : 854
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.google.com

Re: (resolvido) nos canto

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)
avatar
Ranking : Nota B
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Número de Mensagens : 1013
Insígnias de JAM :

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

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

Re: (resolvido) nos canto

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

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

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

Re: (resolvido) nos canto

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.
avatar
Data de inscrição : 08/10/2014
Número de Mensagens : 236
Insígnias de JAM :

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

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

Re: (resolvido) nos canto

em Qua 29 Out 2014, 16:35
Testei o código do gabrielsch , deu certo.
avatar
Data de inscrição : 31/10/2013
Número de Mensagens : 206
Insígnias de JAM :

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

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

Re: (resolvido) nos canto

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?
avatar
Ranking : Nota B
Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Número de Mensagens : 1092
Insígnias de JAM :

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

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

Re: (resolvido) nos canto

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

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

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

Re: (resolvido) nos canto

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)
avatar
Data de inscrição : 15/08/2010
Número de Mensagens : 1597
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://spyreserver.16mb.com

Re: (resolvido) nos canto

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.
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