Comunidad de diseño web y desarrollo en internet online

Colisiones

Citar            
MensajeEscrito el 17 Feb 2011 12:45 pm
Hola! Estoy haciendo unvideojuego en AS3. Tengo a mi personaje que se mueve, salta y tal. para ser exactos he seguido este turorial:

[url=http://www.flashgametuts.com/tutorials/as3/how-to-create-a-platform-game-in-as3-part-1/][/url]

Lo malo es que sólo me permite poner sprites, lo que no se exacamente es como decirle que en vez de trazarme sprites aleatorias con las que se me haga colision, lo haga con MC. Porque por ejemplo, quiero ponerle que se pare sobre un suelo que es un MC, y que no pueda atravesar otros MCs. Lo malo es que esto solo me permite hacerlo con Sprites. ¿¿Alguna idea??

Por misato21

35 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Feb 2011 02:36 pm
El tutorial es un poco lardo de leer y no se bien como es la situación, así que solo un par de ideas:

- Si usas sprites puedes usar MovieClips, usualmente se usa Sprites por un tema de optimización (consumen menos recursos)
- Las rutinas de colisión trabajan sobre distintos tipos de objetos, y no creo que el motivo que no te funcionen es porque sean MC, seguramente no estás incluyendo tus nuevos elementos dentro de la lógica de colisión

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Feb 2011 02:49 pm
No se exactamente de que forma tienes cargados los sprites del personaje. Lo mejor creo que seria ponerlos en un MovieClip con su correspondiente linea de tiempo. Si lo haces de esta forma para controlar las colisiones entre dos MC puedes usar la siguiente instrucción:

objeto1.mc.hitTestObject(objeto2.mc)

Donde objeto1 es el nombre del MC que contiene tu personaje y objeto2 es el nombre del MC que contiene el escenario.

Ahora bien lo que puedes hacer para que una vez detectada la colision los MC no se atraviesen entre si puedes hacer que si se detecta la colision el personaje no pueda seguir avanzando. Esto lo debes hacer controlando el atributo x o y del personaje (dependiendo de si es un movimiento lateral o vertical respectivamente).

Espero haberte servido de ayuda.

Locke

Por locke23

26 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Feb 2011 03:16 pm
A ver: El codigo que están usando para la creación del Sprite sería esta:

¿Como incluyo que sea un por ejemplo ground_mc, en ves de simplemente trazarlo. Lo siento desde que migré a AS3 no me hayo:


var newBlock:Block = new Block();
newBlock.graphics.beginFill(0xFFFFFF,1);
newBlock.graphics.drawRect(0,0,25,25);
newBlock.x = (i-(row-1)*lvlColumns)*newBlock.width;
newBlock.y = (row-1)*newBlock.height;
blockHolder.addChild(newBlock);
} else if (lvlArray[i] == 'MAIN'){
mcMain.x = (i-(row-1)*lvlColumns)*newBlock.width;
mcMain.y = (row-1)*newBlock.height;
}
}
row = 0;
}

Por misato21

35 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Feb 2011 04:07 pm
El objeto es de la clase Block, que debe descender de Sprite ... haz tu propio objeto basado en MovieClip (tienes que crearle una clase a tu MC)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Feb 2011 07:21 am
Lo que Jorge quiere decir es que tengas un Simbolo (que sea un MovieClip), cuya Clase Base se llame Block.
Así, cuando haces

Código ActionScript :

var newBlock:Block = new Block();
//TODO lo de abajo te sobra hasta el addChild
//newBlock.graphics.beginFill(0xFFFFFF,1);
//newBlock.graphics.drawRect(0,0,25,25);
//newBlock.x = (i-(row-1)*lvlColumns)*newBlock.width;
//newBlock.y = (row-1)*newBlock.height;
blockHolder.addChild(newBlock);

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Feb 2011 10:22 am
De haber sabido que era una cosa tan tonta :oops: . No se porque creía que sprite se refería simplemente a una raya o forma geométrica. Perdonad mi ignorancia. Me manejo bien con el AS2, pero el AS3 me tiene loca, empezando porque no tengo ni idea de programación :lol:

Por misato21

35 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Feb 2011 10:49 am
¡Glups! lo único que sobra es

Código ActionScript :

//TODO lo de abajo te sobra hasta el addChild 
//newBlock.graphics.beginFill(0xFFFFFF,1); 
//newBlock.graphics.drawRect(0,0,25,25); 

El cambio de posición hay que mantenerlo.

NOTA1:Permite un anécdota antigua. En tiempos de Flash MX, hubo una especie de reto de contruir un círculo mediante AS en el menor número de líneas (usando arcos de circunferencia y esas cosas). Alguien sugirió tener un símbolo que fuera un círculo y hacer un attachMovie y cambiarle el tamaño. La verdad es que no ganó, pero para mí fue la mejor idea
NOTA2:Todos hemos empezado sintiéndonos un poco estúpidos con AS3

Por Eliseo2

710 de clabLevel



 

firefox

 

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