Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Colision por pixel

583 views

Published on

Published in: Education, Technology
  • Be the first to comment

  • Be the first to like this

Colision por pixel

  1. 1. 1. Se crea el proyecto en Flash Develope, agregamos la clase y seguido importamos la clase “MovieClip” seguido de la clase “event”., tambien importamos la clase “geom.ColorTransform” la cual recopila datos acerca de las transformaciones de color y transformaciones de coordenadas que se aplican a un objeto de visualización. <br />package<br />{<br />importflash.display.MovieClip;<br />importflash.events.*;<br />importflash.geom.ColorTransform;<br /> /**<br /> * ...<br /> * @authorDefaultUser (Tools -&gt; CustomArguments...)<br /> */<br />publicclasspointXextendsMovieClip<br /> {<br />publicfunctionpointX() <br /> {<br />pintura.addEventListener(MouseEvent.MOUSE_DOWN, iniciarArrastre);<br />pintura.addEventListener(MouseEvent.MOUSE_UP, detenerArrastre);<br />getColor();<br />}<br />
  2. 2. 2. En el constructor creaomos 2 escuchas “Listener” de tipo “Mouse” detenerArrastre<br />iniciarArrastre y luego llamamos el metodo “getColor();”<br />package<br />{<br />importflash.display.MovieClip;<br />importflash.events.*;<br />importflash.geom.ColorTransform;<br /> /**<br /> * ...<br /> * @authorDefaultUser (Tools -&gt; CustomArguments...)<br /> */<br />publicclasspointXextendsMovieClip<br /> {<br />publicfunctionpointX() <br /> {<br />pintura.addEventListener(MouseEvent.MOUSE_DOWN, iniciarArrastre);<br />pintura.addEventListener(MouseEvent.MOUSE_UP, detenerArrastre);<br />getColor();<br />}<br />
  3. 3. 3. Este metodo genera los valores aleatorios para los canales rojo, verde y azul, crea y devuelve un objeto con el color cambiado segun los valores de colores aleatorios <br />functiongetColor():ColorTransform<br />{<br />varred:Number = (Math.random() * 512) - 255;<br />vargreen:Number = (Math.random() * 512) - 255;<br />varblue:Number = (Math.random() * 512) - 255;<br />return new ColorTransform(1, 1, 1, 1, red, green, blue, 0);<br /> }<br />
  4. 4. 4. Se ejectua una el metodo iniciar arraster el cual permitira mover el bote de pintura con el metodostarDrag(); y seguido se crea un condicional “If” donde utilizamos el metodo “hitTestPoint” el cual permite que el bote de pintura colisione con la flor en las coordenadas establecidas dependiendo de cada punto de colicion cambiara el color de la flor de manera aleatoria por medio del metrodogetColor. <br />publicfunctioniniciarArrastre(e:MouseEvent):void<br />{<br />pintura.startDrag();<br />if(pintura.hitTestPoint(florecita.x +0, florecita.y +75)){<br />florecita.transform.colorTransform = getColor();<br /> }<br />if(pintura.hitTestPoint(florecita.x +12, florecita.y +50)){<br />florecita.transform.colorTransform = getColor();<br /> }<br />if(pintura.hitTestPoint(florecita.x +83, florecita.y +0)){<br />florecita.transform.colorTransform = getColor();<br /> }<br />if(pintura.hitTestPoint(florecita.x +157, florecita.y +85)){<br />florecita.transform.colorTransform = getColor();<br />}<br />}<br />
  5. 5. 5. El metodo “detenerArrastre” permitira llamar el metodo “stopDrag();” que hace posible soltar el bote de pintura en cualquier parte del escenario.<br />publicfunctiondetenerArrastre(e:MouseEvent):void<br />{<br />pintura.stopDrag();<br /> }<br />}<br />}<br />
  6. 6. 6. El codigo queda asi: <br />package<br />{<br />mportflash.display.MovieClip;<br />importflash.events.*;<br />importflash.geom.ColorTransform;<br />publicclasspointXextendsMovieClip<br />{<br />publicfunctionpointX() <br /> {<br />pintura.addEventListener(MouseEvent.MOUSE_DOWN, iniciarArrastre);<br />pintura.addEventListener(MouseEvent.MOUSE_UP, detenerArrastre);<br />getColor();<br /> }<br />functiongetColor():ColorTransform<br /> {<br />varred:Number = (Math.random() * 512) - 255;<br />vargreen:Number = (Math.random() * 512) - 255;<br />varblue:Number = (Math.random() * 512) - 255;<br />return new ColorTransform(1, 1, 1, 1, red, green, blue, 0);<br />}<br />
  7. 7. publicfunctioniniciarArrastre(e:MouseEvent):void<br /> {<br />pintura.startDrag();<br />if(pintura.hitTestPoint(florecita.x +0, florecita.y +75)){<br />florecita.transform.colorTransform = getColor();<br /> }<br />if(pintura.hitTestPoint(florecita.x +12, florecita.y +50)){<br />florecita.transform.colorTransform = getColor();<br /> }<br />if(pintura.hitTestPoint(florecita.x +83, florecita.y +0)){<br />florecita.transform.colorTransform = getColor();<br /> }<br />if(pintura.hitTestPoint(florecita.x +157, florecita.y +85)){<br />florecita.transform.colorTransform = getColor();<br /> }<br /> }<br />publicfunctiondetenerArrastre(e:MouseEvent):void<br />{<br />pintura.stopDrag();<br />}<br /> }<br />}<br />

×