[AS2] Usar WebCam como input - Don Calaca - 08-09-2015
Empezare por lo mas simple
Este juego solo detectaba actividad de la cámara, entre mas actividad, más rápido corre el mono, si no se mueve nada, el mono se detiene
http://c1ic.mx/games/jungle.swf
Código:
var root:MovieClip = this;
//
// 1. Get your webcam on the screen
//
var video_vobj:Video;
var cam:Camera = Camera.get();
video_vobj.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;
RE: Windows93 entre 3.11 y 95 - Krash - 08-09-2015
(08-09-2015, 10:13 AM)Don Calaca escribió: Empezare por lo mas simple
Este juego solo detectaba actividad de la cámara, entre mas actividad, más rápido corre el mono, si no se mueve nada, el mono se detiene
Código:
var root:MovieClip = this;
//
// 1. Get your webcam on the screen
//
var video_vobj:Video;
var cam:Camera = Camera.get();
video_vobj.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;
Jajajajaj ... Que guapo, me acabo de pasar un rato bueno. Gracias
RE: Windows93 entre 3.11 y 95 - Don Calaca - 08-09-2015
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
RE: Windows93 entre 3.11 y 95 - Krash - 08-09-2015
@Don Calaca Muchas gracias por todo. De verás.
Tengo que aprender algo de Flash, porque voy flojo
Me alegra que detecte algo tan sencillo como picar un ojo
RE: [AS2] Usar WebCam como input - SantiagoM - 08-09-2015
como verán lo he separado para charlar más acorde.
RE: [AS2] Usar WebCam como input - Krash - 08-09-2015
(08-09-2015, 10:41 AM)SantiagoM escribió: como verán lo he separado para charlar más acorde.
Perfecto!!.
Dentro de 30 minutos hago el Devlog
|