Comunidad de diseño web y desarrollo en internet online

problema con hitTest

Citar            
MensajeEscrito el 24 Sep 2010 02:32 am
Tengo un codigo que es qe cuando lleges a un mc "y lo toques" adqieres un arma y puedes disparar.. si me funciona pero solo cuando mi char esta tocando el mc y qiero qe sea q al tocarlo ya se qede con la arma y pueda irse a otros sitios del mapa y aun tnerla si me entienden?..

aqi esta el codigo (creo qe el problema es el principio n.n)

Código ActionScript :

if(this.mcPlayer1.hitTest(this.arma)){
   _root.mcPlayer1.gotoAndPlay(21)
 if(Key.isDown(Key.SPACE)){
         velocidad=20;
      }
      if(velocidad==0){
   this.bala._x=this.mcPlayer1._x;
   this.bala._y=this.mcPlayer1._y;
}else{
   this.bala._x = this.bala._x + velocidad
   if(this.bala._x > 200){
      velocidad = 0
   }
   }
}

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 24 Sep 2010 05:34 pm
Lo que pasa es que la función hitTest es válida mientras estás tocando el arma... lo que tienes que hacer en cuanto se valida es dejar al player1 en el keyframe correcto no mientras lo está tocando... es decir:

Código :

if(this.mcPlayer1.hitTest(this.arma)){ 
   _root.mcPlayer1.gotoAndPlay(21) ;
   activarArma();
}
function activarArma(){
 if(Key.isDown(Key.SPACE)){ 
         velocidad=20; 
      } 
      if(velocidad==0){ 
   this.bala._x=this.mcPlayer1._x; 
   this.bala._y=this.mcPlayer1._y; 
}else{ 
   this.bala._x = this.bala._x + velocidad 
   if(this.bala._x > 200){ 
      velocidad = 0 
   } 
   } 
}


Así se queda activado todo DESPUES de haber tocado el arma :) Saludos y espero me haya explicado bien :)

Por Stockman

Claber

145 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Sep 2010 10:06 pm
No seria mejor que cree una classe con una variable que nos diga si el mc tiene o no activada el arma?

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 24 Sep 2010 10:44 pm

Stockman escribió:

Lo que pasa es que la función hitTest es válida mientras estás tocando el arma... lo que tienes que hacer en cuanto se valida es dejar al player1 en el keyframe correcto no mientras lo está tocando... es decir:

Código :

if(this.mcPlayer1.hitTest(this.arma)){ 
   _root.mcPlayer1.gotoAndPlay(21) ;
   activarArma();
}
function activarArma(){
 if(Key.isDown(Key.SPACE)){ 
         velocidad=20; 
      } 
      if(velocidad==0){ 
   this.bala._x=this.mcPlayer1._x; 
   this.bala._y=this.mcPlayer1._y; 
}else{ 
   this.bala._x = this.bala._x + velocidad 
   if(this.bala._x > 200){ 
      velocidad = 0 
   } 
   } 
}


Así se queda activado todo DESPUES de haber tocado el arma :) Saludos y espero me haya explicado bien :)




no me funciono, ahora ya ni dispara xD gracias de todos modos! :)

saludos

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 25 Sep 2010 12:25 am
jejeje lo que pasa es que no sé donde arranca el evento en términos de constancia... Yo los juegos los traigo con un OnEnterFrame para que los monitos se muevan, tonx no sé cómo le estes haciendo tu.

El truco está en lo que te digo. Tienes que hacer que la función de disparar se active de manera constante al tocar el otro MovieClip, no mientras este lo esté tocando...

No sé si te sirva esto...

En fin... u.u

Por Stockman

Claber

145 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2010 01:43 am

Stockman escribió:

jejeje lo que pasa es que no sé donde arranca el evento en términos de constancia... Yo los juegos los traigo con un OnEnterFrame para que los monitos se muevan, tonx no sé cómo le estes haciendo tu.

El truco está en lo que te digo. Tienes que hacer que la función de disparar se active de manera constante al tocar el otro MovieClip, no mientras este lo esté tocando...

No sé si te sirva esto...

En fin... u.u


ok ok tambien estoy usando un OnEnterFrame buscare donde esta el problema

saludos!

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 29 Sep 2010 03:05 pm
crea una variable en la que cambie cuando toques el arma que quieras y mientras esa variable no cambie use esa arma

if(this.mcPlayer1.hitTest(this.arma)){
_root.arma="pistola" }

if(_root.arma=="pistola")){
_root.mcPlayer1.gotoAndPlay(21) ;
activarArma();
}
function activarArma(){
if(Key.isDown(Key.SPACE)){
velocidad=20;
}
if(velocidad==0){
this.bala._x=this.mcPlayer1._x;
this.bala._y=this.mcPlayer1._y;
}else{
this.bala._x = this.bala._x + velocidad
if(this.bala._x > 200){
velocidad = 0
}
}
}
Espero que te sirva yo me quede en el Flash 5
Saludos

Por txepetxa

6 de clabLevel



Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.