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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 15/02/2010
Número de Mensagens : 16
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Duvida criar objeto em coordenadas aleatorias

em Qui 01 Mar 2012, 21:52
Desculpe se estiver postando em lugar errado, mas já rachei a cabeça de tanto pensar nisso...
Eu to criando um jogo pacman e gostaria de fazer que em determinado momento, apareça um bônus em algum lugar aleatório da fase. O problema é que ele as vezes o bônus aparece no mesmo lugar das paredes, ficando impossível pega-lo. Como faço para aparecer em lugares vazios e como alinhar para que não fique fora da grade? tem como fazer aparecer uma sequência de bonus?
avatar
Ranking : Nota C
Notas recebidas : B-D
Data de inscrição : 06/01/2012
Número de Mensagens : 343
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://equipeevolution.forumeiros.com/

Re: Duvida criar objeto em coordenadas aleatorias

em Qui 01 Mar 2012, 21:58
Para criar a cada tempo, crie um Alarm:

Código:
instance_create(choose(32,64,96...),choose(32,64,96...),obj_bonus,)
alarm[0]=10*room_speed

E no Create:

Código:
alarm[0]10*room_speed


Última edição por Super Games em Qui 01 Mar 2012, 22:09, editado 1 vez(es)
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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

Re: Duvida criar objeto em coordenadas aleatorias

em Qui 01 Mar 2012, 22:07
O código anterior é inválido.

O mais correto seria:
Código:
instance_create(choose(32,64,96), choose(32,64,96), obj_bonus)

Porém, isso não te dá flexibilidade.

Mais correto ainda seria:
Código:
instance_create(irandom(room_width), irandom(room_height), obj_bonus)

Onde irandom() gera um numero pseudo-aleatório.
instance_create() irá criar uma instância nas posições indicadas.

O problema é que ele as vezes o bônus aparece no mesmo lugar das paredes, ficando impossível pega-lo.
Pode gerar um número até que a posição esteja livre.

Ex:

var xx, yy; //cria variaveis
xx=irandom(room_width) //gera um numero inteiro (entre 0 e room_width)
yy=irandom(room_height) //(entre 0 e room_height)
while(!place_empty(xx, yy)) { //enquanto não estiver livre
xx=irandom(room_width) //gerar novamente
yy=irandom(room_height)
}
instance_create(xx, yy, obj)

O resto vemos depois.
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