Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[AS2] Usar WebCam como input
#3
Ahora viene lo bueno, siempre es más fácil ver el ejemplo, pero es complicado ya que FLASH es un programa grafico al que solo le metemos el código, así que no despliega completo el código de todo, solo lo que uno introduce, pero aquí esta


http://c1ic.mx/games/juego_box.swf


Código:
var root:MovieClip = this;
//
// 1. Get your webcam on the screen
//
var video_vobj:Video;
var video_vobj2:Video;
var cam:Camera = Camera.get();
video_vobj.attachVideo(cam);
video_vobj2.attachVideo(cam);
//
// 2. the activityLevel property
//
this.onEnterFrame = function() {
    var actLevel:Number = cam.activityLevel;
    root.act_txt.text = "activity level = "+actLevel;
};
cam.onActivity = function(isActive:Boolean) {
};
//
// 3. The BitmapData class
//
import flash.display.BitmapData;

var screenS = new BitmapData(cam.width, cam.height);

var videoX:Number = video_vobj._x;
var videoY:Number = video_vobj._y;
var videoW:Number = video_vobj._width;
var videoH:Number = video_vobj._height;

//
// 5. Hit detection
//
var sizeDif:Number = videoW/cam.width;

var now = new BitmapData(cam.width, cam.height);
var before = new BitmapData(cam.width, cam.height);

function hitDetect() {

var ballX:Number = (ball_mc._x-videoX)/sizeDif
var ballY:Number =  (ball_mc._y-videoY)/sizeDif

var sacoX:Number = (saco1_mc._x-videoX)/sizeDif
var sacoY:Number =  (saco1_mc._y-videoY)/sizeDif

var saco2X:Number = (saco2_mc._x-videoX)/sizeDif
var saco2Y:Number =  (saco2_mc._y-videoY)/sizeDif


now.draw(video_vobj)

var valNow:Number = (now.getPixel(ballX, ballY) >> 16 & 0xFF);
var valBefore:Number = (before.getPixel(ballX, ballY) >> 16 & 0xFF);

var valorNow:Number = (now.getPixel(sacoX, sacoY) >> 16 & 0xFF);
var valorBefore:Number = (before.getPixel(sacoX, sacoY) >> 16 & 0xFF);

var valor2Now:Number = (now.getPixel(saco2X, saco2Y) >> 16 & 0xFF);
var valor2Before:Number = (before.getPixel(saco2X, saco2Y) >> 16 & 0xFF);

//Aqui debajo el vallor original era de 30, le puse 10 que es el area apartir del centro que capta movimiento, osea 10 px de ancho y largo

if (valNow>valBefore+10 || valNow<valBefore-10) {
    _root.impact1.play();
    tellTarget ("_root.pera") {        
        play();        }
} else if (valorNow>valorBefore+10 || valorNow<valorBefore-10) {
_root.impact1.play();
    tellTarget ("_root.saco") {        
        play();
}
} else if (valor2Now>valor2Before+10 || valor2Now<valor2Before-10) {
_root.impact2.play();
    tellTarget ("_root.saco") {        
        play();        }
}
before.draw(video_vobj)
}


var intervalID:Number = setInterval(hitDetect, 20);

Creo que estoy metiendo demasiadas cosas en esta línea de conversación, jajajajaja Big Grin
JUEGOS
Me encanta tanto jugarlos como hacerlos

Proyecto
C1ic.mx
Blog
c1ic.blogspot.com

Arcade
C1IC TINY ARCADE

[Imagen: c1ic.png]
Responder
Agradece:



Mensajes en este tema
[AS2] Usar WebCam como input - por Don Calaca - 08-09-2015, 10:13 AM
RE: [AS2] Usar WebCam como input - por SantiagoM - 08-09-2015, 10:41 AM
RE: [AS2] Usar WebCam como input - por Krash - 08-09-2015, 11:24 AM
RE: Windows93 entre 3.11 y 95 - por Krash - 08-09-2015, 10:18 AM
RE: Windows93 entre 3.11 y 95 - por Don Calaca - 08-09-2015, 10:23 AM
RE: Windows93 entre 3.11 y 95 - por Krash - 08-09-2015, 10:27 AM



Usuarios navegando en este tema: 2 invitado(s)