Ajuda em Script ... !!!

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

Ajuda em Script ... !!!

Mensagem por kelvindeth em Qui 29 Abr 2010, 10:13

OBS: Aew galera, consegui fazer funcionar o Script, deu certinho pra subir rampas com animação, fiz umas gambiarras aqui xD, eu Vou preparar uma engine e dou Edit nesse tópico.. Vlw Happy
Peço pra que se possível, alguem apague o tópico para evitar tumulto.


Quem Quiser conferir a engine como prometido aqui está: http://www.gamemakerbrasil.com/engines-f12/engine-de-subir-rampas-disponibilizando-t7514.htm


Aew. galera.

Preciso de uma ajuda nesse script: (Subindo rampas)

No evento Step de meu personagem:

Código:
//DEFINIÇÕES DE GRAVIDADE
if place_free(x,y+1)
{
gravity = 0.75
}
else
{
gravity = 0
}     


if keyboard_check(ord("F"))
{
  alarm[1] = 50
}

                                                                    // CONDIÇÕES \\
 
                                                                                                                                                                                               
// PARADO:
if parado = true and direita = true and abaixado = false and atacando = false and puloabaixado = false and pulo = false
{
  sprite_index = SPRM_Parado_Direita
  hspeed = 0
  friction = 0

if parado = true and direita = false and abaixado = false and atacando = false and puloabaixado = false and pulo = false
{
  sprite_index = SPRM_Parado_Esquerda
  hspeed = 0
  friction = 0
}                 

// ANDANDO:
if parado = false and direita = true and andando = true and puloabaixado = false
{
  image_speed = 0.3
  sprite_index = SPRM_Andando_Direita
  x += 3
}
if parado = false and direita = false and andando = true and puloabaixado = false
{
  image_speed = 0.3
  sprite_index = SPRM_Andando_Esquerda
  x -= 3


// ABAIXANDO:
if parado = true and direita = true and abaixado = true and atacando = false and puloabaixado = false and pulo = false
{
  sprite_index = SPRM_Abaixado_Direita
  friction += 0.05
}
if parado = true and direita = false and abaixado = true and atacando = false and puloabaixado = false and pulo = false
{
  sprite_index = SPRM_Abaixado_Esquerda
  friction += 0.05
}

// Pulo Abaixado:
if parado = true and direita = true and chao = true and abaixado = true and keyboard_check_pressed(ord("A")) and puloabaixado = false and pulo = false
{
  image_speed = 0.3
  alarm[0] = 20
  puloabaixado = true
  sprite_index = SPRM_Pulo_Abaixado_Direita
  hspeed += 10
}
if parado = true and direita = false and chao = true and abaixado = true and keyboard_check_pressed(ord("A")) and puloabaixado = false and pulo = false
{
  image_speed = 0.3
  alarm[0] = 20
  puloabaixado = true
  sprite_index = SPRM_Pulo_Abaixado_Esquerda
  hspeed -= 10
}




                                                                    // AÇÕES \\
                                                                   
// ANDANDO:
if keyboard_check(vk_right) and not keyboard_check(vk_left) and not keyboard_check(ord("A"))
{
  parado = false
  direita = true
  andando = true
}
if keyboard_check(vk_left) and not keyboard_check(vk_right) and not keyboard_check(ord("A"))
{
  parado = false
  direita = false
  andando = true
}     
//Parando a ação \\
if keyboard_check_released(vk_right) and direita = true
{
  parado = true
  direita = true
  andando = false
}       
if keyboard_check_released(vk_left) and direita = false
{
  parado = true
  direita = false
  andando = false
}   

// ABAIXANDO:
if keyboard_check(vk_down) and direita = true and chao = true
{
  parado = true
  direita = true 
  abaixado = true

if keyboard_check(vk_down) and direita = false and chao = true
{
  parado = true
  direita = false 
  abaixado = true
}   
// PARANDO A AÇÃO \\
if keyboard_check_released(vk_down) and direita = true
{
  parado = true
  direita = true
  abaixado = false

if keyboard_check_released(vk_down) and direita = false
{
  parado = true
  direita = false
  abaixado = false


// Atacando:
if keyboard_check_pressed(ord("A")) and direita = true and abaixado = false and chao = true
{
  friction = 0.05
  atacando = true
  andando = false
  image_speed = 0.5
  parado = true
  sprite_index = SPRM_Atacando_Direita
  alarm[0] = 10
}
if keyboard_check_pressed(ord("A")) and direita = false and abaixado = false and chao = true
{
  friction = 0.05
  atacando = true
  image_speed = 0.5
  andando = false
  parado = true
  sprite_index = SPRM_Atacando_Esquerda
  alarm[0] = 10
}

// Pulando:
if keyboard_check_pressed(vk_up) and direita = true and chao = true and not keyboard_check(vk_down)
{
  chao = false
  pulo = true
  vspeed -= 10
}
if keyboard_check_pressed(vk_up) and direita = false and chao = true and not keyboard_check(vk_down)
{
  chao = false
  pulo = true
  vspeed -= 10
}

// Animação Pulando:
if direita = true and chao = false and pulo = true
{
  image_speed = 1.0
  sprite_index = SPRM_Pulando_Direita
}
if direita = false and chao = false and pulo = true
{
  image_speed = 1.0
  sprite_index = SPRM_Pulando_Esquerda
}                                                                                                                             

Na colisão com o OBJ_Chao:

Código:
pulo = false
chao = true
puloabaixado = false
// Encaixar no bloco
if !(vspeed < 0)
{
    move_contact_solid(270,32);
    if (hspeed > 0) {if !(place_free(x+velocidade,y+1)) vspeed = 0; hspeed = 0;}
    else if (hspeed < 0) {if !(place_free(x-velocidade,y+1)) vspeed = 0; hspeed = 0;}
    else if (hspeed = 0) {if !(place_free(x,y+1)) vspeed = 0;}
}
else
{
    move_contact_solid(90,32);
    vspeed = 0;
}

E colisão no Obj_Rampa:

Código:
vspeed=0

E para a direita:

Código:
if place_free(x+4,y){
x+=4
}
   
if place_meeting(x+5,y+5,OBJ_Rampa)&& place_free(x+5,y-5){
 x+=5 y-=5
}

Eu uso esses scripts para subir rampas, porem:

Se no evento step na linha que diz para andar para a direita, que muda a sprite e tals tiver ativo, ele não sobe a rampa, porem se eu desativa-lo, ele sobe mais sem a animação.

Tem uma dica de como eu possa "juntar" esses scripts ?

Vlw galera...


Última edição por kelvindeth em Qui 29 Abr 2010, 11:08, editado 2 vez(es) (Razão : Problema resolvido)

kelvindeth

Número de Mensagens : 135
Idade : 24
Data de inscrição : 14/05/2009
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

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