Comunidad de diseño web y desarrollo en internet online

hacer un agujero o "restar" a una imagen con as

Citar            
MensajeEscrito el 04 Ene 2008 04:47 pm
no se me ocurre como ponerlo en el titulo.... estoy con un juego de plataforma y quiero hacer que cuando cae una bomba y explota en el suelo , este quede agujereado donde estaba la explosion , igual que en el juego worms. En otras palabras: Supongamos que dibujamos un cuadrado y luego dibujamos un circulo superpuesto pero de otro color , luego cuando clickeas en el circulo solo se selecciona el circulo por que es de otro color , entonces si le damos a "supr" y borramos el circulo, lo que nos queda es un cuadrado con un agujero en el medio y a travez del agujero se puede ver lo que hay atras , eso es lo que necesitaria lograr pero con codigo , para poder lograr el efecto worms de la destruccion del ecenario.
a alguien se le ocurre como lo podria hacer?.... :D ....... gracias y saludos

Por fermmm

Claber

122 de clabLevel



 

msie7
Citar            
MensajeEscrito el 04 Ene 2008 06:17 pm
Una idea simple :
usar mc como mascara. (leer clase movieclip() );
claro que asi te vas a complicar un poco con tanto clip, lo que te sugeria que usases una clase.

Un saludo

Por Andurino

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Ene 2008 09:22 pm
Esto de los juegos me pone LOCO... y eso ME ENCANTA....!!!! ojala hubiera mas personas motivadas en hacer juegos..
FElicidades man!! te apoyo... te entiendo como se sufre cuando hay q hacer q un juego funcione

mira.. se me ocurre lo siguiente:

a) porque no tener una linea de movieclip (EL PISO O BASE) digamos PISO1 este formado por 15 MC llamados p1...hasta p15, donde , a la caida de un "misil" sobre 1 punto (digamos el p6), este se borre ... previamente los pisos tanto su carga como descarga se harian DESDE LA Biblioteca con ATTACH y sus funciones de nivel y posterior borrado... espero sepas manejar el ATTACHMOVIE porque ..ACA ESTAN!!!

para cargar los pisos, en el fotograma1, finalizando con 1 stop:
myMovieClip.attachMovie(idNombre, nuevoNombre, profundidad [, objetoInicial] )

Parámetros
idNombre El nombre de vínculo de un símbolo de clip de película de la biblioteca para asociarlo a un clip de película del escenario. Este es el nombre introducido en el campo Identificador en el cuadro de diálogo Propiedades de vínculos de símbolos.
nuevoNombre Un nombre de instancia exclusivo para el clip de película que se asocia al clip de película.
profundidad Un número entero que especifica el nivel de profundidad en el que se encuentra la película.
objetoInicial Un objeto que contiene las propiedades con las que se debe rellenar el clip de película recién asociado. Este parámetro permite que los clips de película creados de forma dinámica puedan recibir parámetros de clip. Si el parámetro objetoInicial no es un objeto, se pasará por alto. Todas las propiedades de objetoInicial se copian en una instancia nueva. Las propiedades especificadas con objetoInicial están disponibles para la función constructor. Este parámetro es opcional.

Descripción
Método; selecciona un símbolo de la biblioteca y lo asocia a la película del escenario especificado por MovieClip. Utilice la acción o el método removeMovieClip o unloadMovie para eliminar una película asociada con attachMovie.

para eliminar el movie clip ... si le cae la bomba
myMovieClip.removeMovieClip()

PD: Lo saque de la AYUDA del Flash MX 2004, ruego q estes usando AS2, en AS3 no tengo IDEA si sigue habiendo Attach
SALUDOS!!!

Por 666satan

56 de clabLevel



 

msie
Citar            
MensajeEscrito el 04 Ene 2008 10:42 pm
Una idea simple :
usar mc como mascara. (leer clase movieclip() );
claro que asi te vas a complicar un poco con tanto clip, lo que te sugeria que usases una clase.

Un saludo


gracias andruino , creo que voy a recurrir a las mascaras , pero a que te refieres con "lo que te sugeria que usases una clase" ¿esa es otra posibilidad? en que consistiria mas o menos ¿o te estas refiriendo a la misma clase movieclip() de la que hablamos?
no me quedo claro...por el momento la mejor candidata es la opcion de la mascara , voy a estudiar la clase movieclip().

gracias por el animo satan , lo que tu me dices es una buena idea , el problema es que implica renombrar muchos pedazos de ecenario y eso hace que el desarollo de los niveles se vuelva demasiado agobiante , seria estar renombrando miles de pedazos de ecenario todo el rato , ademas la destruccion del ecenario seria muy poco flexible , las explosiones siempre tendrian que tener el mismo tamaño y si el misil pega mas o menos en el medio de 2 pedazos quedaria un poco raro , en fin es una buena idea pero si se ve poco flexible le kitaria algo de emocion , gracias igual por la ayuda y si se te ocurre otra idea posteala que estare revisando este post durante varios dias.

la opcion de la mascara es la mas flexible por que ahora que lo pienso puedo permitir sin ningun problema que el personaje dispare con una matralladora y queden miles de pequeños agujeritos en las paredes o suelo....seria emocionante...espero que no sea demasiado complicado

sera un juego bastante destructivo y con un aire a soldat, lo posteare en cristal para que todos los que me vienen dando consejos en el desarrollo lo puedan vetatestear.

Por fermmm

Claber

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Ene 2008 11:54 pm
Mmmmm no exactamente lo que te dice Andurino es que uses una mascara, O que uses una mascara pero con una clase personalizada. No te compliques si no tienes idea de como hacer una clase personalizada usa el metodo setMask (mascara_mc); de la clase MovieClip. ( aparte lo utilzarias para algo tan simple como enmascarar ).

Estudia bien toda la clase MovieClip y si tienes dudas de como hacer una clase personalizada pues dime y te digo en donde se encuentra esa informacion y es como un tutorial, es muy facil y muy potente para hacer Clases Personalizadas.

Por Gz.Francisco

378 de clabLevel



Genero:Masculino  

Programador economista y buzo

firefox
Citar            
MensajeEscrito el 05 Ene 2008 11:35 am
Efectivamente me refiero a lo que dice fraggz y lo que haria la clase seria lo que dice 666satan (mas o menos) digamos que el camino va por ahi.
fraggz serias tan amable de postear ese tuto de clases. Tengo un BIG problem con un juego (XD que casualidad).

Un saludo

Por Andurino

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Ene 2008 09:56 pm
gracias por sus respuestas. Estube leyendo todo sobre la clase movieclip y creo que ya se lo suficiente para poder hacerlo , ahora me surge un problema:

cuando creo la mascara con movieclip.setMask se crea una mascara como cuando se hace sin usar actionscript , osea que se crea un dibujo que deja ver el movieclip de atras solamente en el area que se superpone con el movieclip de adelante y el problema es que lo que yo necesito es exactamente lo opuesto , que se cree un agujero , osea que el movieclip que esta adelante borre la imagen del movieclip que esta atras en el lugar en el que se superponen dejando ver , finalmente , lo que esta atras de ambos movieclips.

Una forma de lograrlo es que el movieclip de la mascara en lugar de ser un circulo sea un cuadrado agujereado , por lo que dejaria ver todo menos el agujero , pero eso no me sirve por que el cuadrado tendria que ser enoooorme , por que si un misil impacta lejos no tendria que dejar de verse ningun lugar del ecenario...en fin seria imposible.

esta pregunta no se si tiene que ver ya con actionscript por que se trata simplemente de dominar el tema de las mascaras , tal vez tengo que postearlo en la seccion de flash... De todas maneras el que lo sepa me lo puede explicar como se haria sin usar actionscript por que no lo descubro nisiquiera asi , luego yo me las apaño con as. Gracias por su ayuda

Por fermmm

Claber

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Ene 2008 03:32 am
Podrias explicarnos como quieres destruir ese objeto en el juego.
Un misil que choca contra el suelo, eso tenia entendido no?.

Se me esta pasando por la cabeza que con las mascaras solo consigues el efecto optico, ademas tienes que recalcular el objeto para la siguiente colision en la posicion contigua (dos impactos en el mismo sitio).


Un saludo

Por Andurino

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Ene 2008 05:12 am

Por M@U

BOFH

6210 de clabLevel

34 tutoriales
5 articulos

Genero:Masculino   Héroes Bastard Operators From Hell Editores

Bate jubilado de Cristalab

firefox
Citar            
MensajeEscrito el 06 Ene 2008 08:26 am
El tutorial con el que yo aprendi a hacer clases se encuentra en flash 8
abrimos la ayuda de flash 8 y en donde dice todos los libros seleccionamos el libro AS2 luego exiten dos libros de AS2 que son Referencia ActionScript (que viene la referencia de clases) y en el otro libro que ahora no recuerdo como se llama, viene un capitulo hacerca de clases, creo que es el capitulo 8 de ese libro. en ese libro existe un apartado que se llama "Clases Personalizadas" y bueno te explica que es una propiedad, como debes de llamar las propiedades, biene como declarar un metodo y como llamarlo, hacer funciones geter y seter para propiedades, biene un ejercicio de singleton (solo una instancia de una clase), mmmmm y otras cosa muy chidas. Te explica lo que es sobre escribir un metodo, y tambien la Herencia de clases, y tambien en que momento se instancia estas Clases, haaa tambien las sentencias import y las Clases Estaticas como hacer una funcion constructora y bueno, un buen de cosas.

Asi fue como aprendi yo a hacer clases en flash. y no es mucha difrerencia con AS3, en realidad es casi lo mismo. (pasando por alto los eventos y las constantes y algunas clases que se modificaron y los eventos y ...... bueno casi igual)

espero que esta ayuda les sirva chequenlo y si no lo encuentran diganme y les pongo unos screenshots para que se ilustren.

Bye

Por Gz.Francisco

378 de clabLevel



Genero:Masculino  

Programador economista y buzo

firefox
Citar            
MensajeEscrito el 06 Ene 2008 05:09 pm

M@U escribió:

Tal vez les pueda ayudar, pero resuelvanme una duda... Es como en este juego por ejemplo ¿?...


Exactamente , es ese el efecto que busco. Estoy seguro que con las mascaras se consigue , pero como se hace exactamente.

andruino: ya estube comprobando y no es solo el efecto optico , mi personaje camina por el contorno del resultado de la mascara como si fera el dibujo original del mc. Salvo que no logro hacer la forma de agujero sino solamente lo opuesto a eso , salvando eso ya tengo todo lo demas resuelto.

Por fermmm

Claber

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Ene 2008 06:34 pm
Bueno, la solución fácil (leáse simple) sería usar una máscara. Sólo es cuestión de duplicar el fondo y ubicarlo sobre el escenario a destruir (enmascarado por una máscara vacía). Lentamente vas agregando áreas visibles. EL efecto es bueno.

Pero, existe una solución mucho mejor y más compleja. Usar BitmapData. Es difícil, pero produce mejores resultados. Si te interesa, te recomiendo recurrir a la ayuda de Flash.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 06 Ene 2008 07:04 pm

HernanRivas escribió:

Bueno, la solución fácil (leáse simple) sería usar una máscara. Sólo es cuestión de duplicar el fondo y ubicarlo sobre el escenario a destruir (enmascarado por una máscara vacía). Lentamente vas agregando áreas visibles. EL efecto es bueno.

Pero, existe una solución mucho mejor y más compleja. Usar BitmapData. Es difícil, pero produce mejores resultados. Si te interesa, te recomiendo recurrir a la ayuda de Flash.


esa solucion no me sirve :( por que tengo un movieclip que se llama "suelo" y tengo otro que se llama "personaje" el "personaje" hace un hittest con el "suelo" y eso desencadena el script que hace que el personaje no atraviese al suelo segun su area. Si meto el fondo dentro del movieclip del suelo , el personaje haria hittest todo el tiempo al tocar el fondo , osea que el fondo pasaria a ser el suelo , por lo que el fondo tiene que ser un movieclip separado del movieclip del suelo. Al estar separado aun se puede hacer lo que tu dices , aplicando las mascaras en _root , pero eso hace que solo se logre el efecto optico del agujero en el suelo y el personaje camine sobre el como si no estubiera , ya que el hittest se ejecuta sobre el movieclip del suelo tal y como esta dentro de el y no por fuera.
Mientras tanto voy a estudiar BipmapData aver si en cuentro la solucion ahi , si alguien sabe como resolverlo con las mascaras aqui estare revisando las respuestas

Por fermmm

Claber

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Ene 2008 05:12 pm
sigo sin encontrar la solucion con las mascaras .... es una pena.... alguien me puede guiar con el bitmapdata por que no encuentro ninguna cosa parecida a setmask ni nada de eso no se donde ni como puede estar la solucion.

Por fermmm

Claber

122 de clabLevel



 

msie7

 

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