Comunidad de diseño web y desarrollo en internet online

Arkanoid y mis bugs

Citar            
MensajeEscrito el 11 Dic 2008 12:04 am
Estoy realizando el clásico juego del arkanoid en flash. Mis conocimientos no es que sean gran cosa y me las estoy volviendo negras para solucionar una serie de bugs; me preguntaba si alguno de vosotros me echaría una mano para saber por donde atacar el problema. Básicamente lo que ocurre es que el hitTest() no es suficiente para que la bola no haga un poco (mucho) el tonto pareciendo a veces una bolita de estas que te dan en casos especials con los "power-up" que lo destroza todo ^^ .

Os dejo el swf por si queréis ver exactamente de que se trata el error. Gracias por la paciencia!

esto sería el código de la pelotita

Código :

onClipEvent(load){

var dir, vel, velX, velY, angle: Number;
   
dir=Math.round(Math.random()*1);
vel=7;
   
if(dir==1)
{angle = 45;}
else {angle = 135;}
   
velX = vel * Math.cos((angle)*Math.PI/180);
velY = vel * Math.sin((angle)*Math.PI/180);
   
}

onClipEvent(enterFrame){
   
   if(_root.barra.hitTest(this._x, (this._y+7),true))
   {velY *= (-1);}

   this._x += velX;
   this._y -= velY;
   
   if((this._x <= 34) || (this._x >= 314))
   {velX *= (-1);}
   
   if(this._y <= 50)
   {velY *= (-1);}
   
   if(this._y >= 450) //canviar-ho, es quan es perd per sota
   {this._x = 200;
    this._y = 150;
    
dir=Math.round(Math.random()*1);
vel=7;
   
if(dir==1)
{angle = 45;}
else {angle = 135;}
   
velX = vel * Math.cos((angle)*Math.PI/180);
velY = vel * Math.sin((angle)*Math.PI/180);
    }
      
}


i este el de uno de los bloques (y por ende, cualquiera de ellos vaya):

Código :

onClipEvent(enterFrame) {
   if(_root.pilota.hitTest(this))
   {this.nextFrame();
   _root.pilota.velY *= (-1);
   }
   }


Muchas gracias de antemano.

Por deepgullet

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Dic 2008 11:00 am
El problema con el hitTest es que para el 80% de los juegos es demasiado lento, y entonces tienes personajes atravesando paredes o disparos que pasan de largo. Hay varias técnicas para esto, pero a grandes rasgos podemos decir que usar un mundo "Tile" es una de ellas y usar detecciones predictivas (basadas en el algoritmo de movimiento de tu bola) sería el otro. Tutoriales de todo tipo en http://www.gotoandplay.it/

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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