Erro na função game_load

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

Erro na função game_load

Mensagem por vitorfernandes13 em Qui 06 Fev 2014, 19:26

Tenho 3 tipos de objetos, o primeiro se chama obj_info, e é colocado no Evento "Game Start" o seguinte código:

Código:

//Número de vidas
global.vidas = 15

//Pontuação
global.pontuacao = 0

//Maçãs
global.apple = 10

//Velocidade
global.velocidade = 7

//Pulo
global.pulo = 0

//Minimo
global.minimo = 1

//Sangue chefe
global.sanguechefe = 10

//Portugues
global.portuguese = false

Em seguida tenho o obj_cp (checkpoint), é colocado no evento de colisão com o Player:

Código:

global.cp = true
game_save("obj_cp")

E por fim, tenho o Player, eu coloquei o seguinte código na colisão com TNT:

Código:

if global.cp = true {  //Se player passou pelo checkpoint
    game_load("obj_cp")
    global.vidas -= 1
} else {
    global.vidas -= 1
    room_restart()
}

O problema é que quando o Player volta para o checkpoint, a variavel vidas não tem o valor diminuido, mas, quando ele morre sem passar pelo checkpoint, quando a fase reinicia, a variavel muda de valor. Como concertar isso?

vitorfernandes13

Ranking : Nota C
Número de Mensagens : 284
Data de inscrição : 11/01/2014
Notas recebidas : C
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erro na função game_load

Mensagem por PedroIgor em Qui 06 Fev 2014, 20:12

vitorfernandes13 escreveu:Tenho 3 tipos de objetos, o primeiro se chama obj_info, e é colocado no Evento "Game Start" o seguinte código:

Código:

//Número de vidas
global.vidas = 15

//Pontuação
global.pontuacao = 0

//Maçãs
global.apple = 10

//Velocidade
global.velocidade = 7

//Pulo
global.pulo = 0

//Minimo
global.minimo = 1

//Sangue chefe
global.sanguechefe = 10

//Portugues
global.portuguese = false

Em seguida tenho o obj_cp (checkpoint), é colocado no evento de colisão com o Player:

Código:

global.cp = true
game_save("obj_cp")

E por fim, tenho o Player, eu coloquei o seguinte código na colisão com TNT:

Código:

if global.cp = true {  //Se player passou pelo checkpoint
    game_load("obj_cp")
    global.vidas -= 1
} else {
    global.vidas -= 1
    room_restart()
}

O problema é que quando o Player volta para o checkpoint, a variavel vidas não tem o valor diminuido, mas, quando ele morre sem passar pelo checkpoint, quando a fase reinicia, a variavel muda de valor. Como concertar isso?

Vamos la, você estar pelo caminho certo.

No obj_cp:
Colisão com obj_player:
Código:

global.cp = false
game_save("obj_cp")

No obj_player:
Colisão com obj_tnt: ~vai ficar assim pois não entendi o que é esse TNT, mais pela logica você muda ;)
Código:

global.cp = true
if global.cp = true {  //Se player passou pelo checkpoint
    game_load("obj_cp")
    global.vidas -= 1
    global.cp = false
} else {
    global.vidas -= 1
    room_restart()
}

qual mudança eu fiz?
tipo: A variável cp(checkpoint) estar false, mais porque? para que quando houver a colisão com o obj_player fazer a magica Smile
mais como fazer essa magica? simplês, quando eles se colidirem o cp passarar a ser true que logo em seguida vem outro codigo que ele vai verificar si ele realmente existe, e obviamente existe :p
então quando ele verificar e executar o codigo dentro do if eu coloquei para que ele volta-se para seu estado natural "FALSE"
podendo efetua ifinitas colisões, pelo menos eu acho Razz


Espero ter ajudado ;)

PedroIgor

Número de Mensagens : 57
Idade : 22
Data de inscrição : 11/12/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erro na função game_load

Mensagem por vitorfernandes13 em Qui 06 Fev 2014, 20:29

Deu errado, a vida ainda não diminui Sad
--
Estou quase jogando meu PC pela janela  Evil or Very Mad 

vitorfernandes13

Ranking : Nota C
Número de Mensagens : 284
Data de inscrição : 11/01/2014
Notas recebidas : C
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erro na função game_load

Mensagem por willyruduit em Qui 06 Fev 2014, 20:52

Coloca isso no Player:

No CREATE:
Spoiler:

Código:
check=false

Na COLISÃO com  o obj_cp:
Spoiler:

Código:
check=true

Na COLISÃO com o TNT:
Spoiler:

Código:
 
if (check)
    {
    global.vidas -= 1
    x=obj_cp.x
    y=obj_cp.y
    }
    else
    {
    global.vidas -= 1
    room_restart()
    }

Poupa uma global. e funciona muito bem.
Se ajudei da um jóia.

willyruduit

Ranking : Nota A
Número de Mensagens : 306
Idade : 28
Data de inscrição : 02/08/2013
Notas recebidas : B-B-B-A-A
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erro na função game_load

Mensagem por Pedrin72 em Qui 06 Fev 2014, 22:23

Amigo, a função game_load volta ao ponto do save com as variáveis com o valor que estavam quando o game foi salvo, tipo se eu passei no checkpoint com 4 vidas e deu game_save, e morri e perdi 1 de vida, quando da o game_load vai voltar com 4 vidas entendeu?

Tenta marcar o obj_cp como persistente, eu não testei mas deve funcionar, e se ajudei da um joinha ali do lado da minha foto!  Laughing 

Pedrin72

Ranking : Nota D
Número de Mensagens : 128
Idade : 18
Data de inscrição : 30/01/2013
Notas recebidas : D
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Erro na função game_load

Mensagem por Conteúdo patrocinado Hoje à(s) 18:14


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