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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 20/06/2009
Número de Mensagens : 129
Insígnias de JAM :

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

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

Ir para a proxíma room caso o obj_caixa estiver no obj_alvo.

em Qua 15 Jul 2009, 11:50
Hello

Bom, estou começando a fazer um game do famoso Sokoban.
e então, eu queria saber como fazer trocar de fase, quando todos os obj_alvo,
estiverem sido preenchidos por obj_caixa...

Espero resposta, vlw!
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 29/03/2009
Número de Mensagens : 927
Insígnias de JAM :

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

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

Re: Ir para a proxíma room caso o obj_caixa estiver no obj_alvo.

em Qua 15 Jul 2009, 12:35
acho que entendi num objeto contador coloque:
create:
Código:
global.caixas = 0
e no objeto alvo:
create
Código:
global.caixas += 1
colission com caixa:
Código:
global.caixas -= 1
e no objeto contador:
step:
Código:
if (global.caixas == 0)
{room_goto_next();}
tenta
avatar
Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

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

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

Re: Ir para a proxíma room caso o obj_caixa estiver no obj_alvo.

em Qua 15 Jul 2009, 14:18
Assim não iria dar certo, deixando no colision "global.caixas -= 1", todos os steps em que a caixa estivesse em cima do alvo iria diminuir a variável, e mesmo se tirasse a caixa do alvo a variável não aumentaria de volta.

Dá pra você criar um objeto tipo obj_caixanoalvo. Então, no colision do obj_caixa com o obj_alvo, ele se transforma no obj_caixanoalvo {instance_change(obj_caixanoalvo, false)}. No obj_caixanoalvo, no evento de empurrar ele (em todas as direções), você transforma ele de volta no obj_caixa (assim, se ele for empurrado para fora do alvo, volta a ser uma caixa normal, e se você empurrar para cima de outro alvo, já se transformará de novo em obj_caixanoalvo).

Então, crie um objeto controle, e use ele para saber se todas as caixas estão em cima dos alvos. Para descobrir isso, é só testar se o número de obj_caixanoalvo = número de obj_alvo.

Só coloque no step desse objeto controle:

if (instance_number(obj_caixanoalvo ) == instance_number(obj_alvo))
room_goto_next();
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