webcam game

  • Creatore Discussione Creatore Discussione gius
  • Data di inizio Data di inizio

gius

Nuovo Utente
2 Lug 2009
2
0
0
salve a tutti,
ho da poco scoperto flash 8
io desidero costruire un piccolo webcam game con Flash 8,
stavo sperimentando un tutorial sul controllo con la webcam del movimento,
praticamente una sfera va da sinistra a destra
e desidererei che al movimento scomparisse,
con il manuale di ActionScript mi è parso questo il sistema migliore:

ball_mc.removeMovieClip()

ma non capisco come faccio ad inserirlo

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);

snap1_btn.onRelease = function() {
screenS.draw(video_vobj);
root.attachBitmap(screenS, 1);
};

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


snap2_btn.onRelease = function() {
screenS.draw(video_vobj);
var holder:MovieClip = root.createEmptyMovieClip("holder", 1);
holder.attachBitmap(screenS, 1);
holder._x = videoX;
holder._y = videoY;
holder._width = videoW;
holder._height = videoH;
};

release_btn.onRelease = function() {
root.holder.removeMovieClip()
};
//
// 4. Hit detection : Setup
//
var speed:Number = 2;
function moveBall() {
ball_mc._x += speed;
if (ball_mc._x>(videoX+30+videoW)) {
ball_mc._x = videoX-30;
ball_mc._y = videoY+random(videoH-60)+30;
}
}
ball_mc.onEnterFrame = moveBall;
//
// 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

now.draw(video_vobj)

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

if (valNow>valBefore+30 || valNow<valBefore-30) {
(trace "hit")
if (ball_mc._currentframe == 1)
ball_mc.gotoAndPlay(2)
}

before.draw(video_vobj)
}

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



potrebbe qualcuno gentilmente aiutarmi a capire?

grazie
 

Discussioni simili