estou a desenvolver um projecto de interactividade, o objectivo é que as bolinhas fujam da pessoa, movimento detectado pela camera.
acontece que tenho código associado às bolinhas (movieclip) que fazem com q estas se desviem do cursor do rato, o que eu queria era associar o movimento detectado pela webcam às bolinhas e fazer com que elas fujam. o que se passa é que tenho código para elas seguirem o movimento da camera e codigo para que elas fujam do rato.
o codigo para elas fugirem do rato é este aqui, será que alguém o consegue transformar???
onClipEvent (load) {
this._alpha = 30;
this.ox = this._x;
this.oy = this._y;
}
onClipEvent (enterFrame) {
if ((_root.getBytesLoaded()*100)/_root.getBytesTotal()>=30) {
this._alpha = 100;
}
if (Math.abs(this._x-_root._xmouse)<=_root.diff and Math.abs(this._y-_root._ymouse)<=_root.diff) {
this._x = (this._x-(_root._xmouse-this._x));
this._y = (this._y-(_root._ymouse-this._y));
}
if (Math.abs(this._x-_root._xmouse)>_root.diff or Math.abs(this._y-_root._ymouse)>_root.diff) {
this._x += (this.ox-this._x)/5;
this._y += (this.oy-this._y)/5;
}
xd = Math.abs(_root._xmouse-this._x);
}
Publicidade
|
|
Page 1 of 1
ajuda em projecto de interactividade tenho código detecta o mouse,mas quero q detecte o movimento da cam
#2
Posted 09 April 2008 - 02:25 PM
Cara, desculpa mas não entendi o problema.
Você quer que esse código seja adaptado pra que ?
Cade o código que você falou que detecta a movimentação da camera ?
Coloca seu arquivo pra gente ver ?
Abraço...
Você quer que esse código seja adaptado pra que ?
Cade o código que você falou que detecta a movimentação da camera ?
Coloca seu arquivo pra gente ver ?
Abraço...
#3
Posted 09 April 2008 - 11:18 PM
consegui resolver!!!!!
entao passo a explicar:
o código que tinha anteriormente fazia com que o meu objecto respondesse ao movimento do mouse. o que eu queria era que o meu objecto respondesse ao movimento detectado pela webcam, mas não perdendo o comportamento de quando respondia ao mouse.
o que eu tinha inicialmente eram dois códigos, aquele que já mostrei que permitia q o meu objecto respondesse ao mouse, e um outro. este ultimo era de uma bola que seguia o movimento detectado pela webcam.
o pretendido era a "união" destes dois códigos. esta fusão foi conseguida, precisa de ser afinada mas já dá para entender...
este é o código da bola que nos segue...
stop();
var diff = 50;
import flash.display.*;
import flash.geom.*;
// ----------------------------------------------------------
// INIT
// ----------------------------------------------------------
ball.inTrans = false;
setInterval(detection, 100);
gameSizeX = 600;
gameSizeY = 800;
// ----------------------------------------------------------
// Connect the webcam
// ----------------------------------------------------------
cam = Camera.get();
vid.attachVideo(cam);
// ----------------------------------------------------------
// Main Functions
// ----------------------------------------------------------
now = new BitmapData(cam.width, cam.height);
before = new BitmapData(cam.width, cam.height);
rect = new Rectangle(0, 0, cam.width, cam.height);
//trace("cam.width="+cam.width+" cam.height="+cam.height);
sizeDif = gameSizeX / cam.width;
//trace("This Screen Size VS Video = 1:"+ sizeDif);
//trace("-----------------------------------------------");
pt = new Point(0, 0);
// Show The MonoColor image
//coverRect = new Rectangle(0, 0, 130, 120);
function detection() {
if (!cam.muted) {
now.draw(vid);
now.draw(before, new Matrix(), new ColorTransform(), 'difference');
now.threshold(now, rect, pt, '>', 0xff333333, 0xffff0000);
now.fillRect(coverRect, 0xff000000);
before.draw(vid);
//
re = now.getColorBoundsRect(0xffffffff, 0xffff0000, true);
// trace(r.toString());
ColorChange = now.threshold(now, re, new Point(re.x, re.y), '==', 0xffff0000, 0xffff0000);
// trace(ColorChange);
if (re.x<800 && ColorChange>10) {
ballNewY = (re.height/2+re.y)*sizeDif;
}
if (re.y<600 && ColorChange>10) {
ballNewX = re.width/2+re.x;
ballNewX = gameSizeX-(ballNewX*sizeDif);
}
tweenPlayer(ballNewY,ballNewX);
}
}
// display the motion detection bitmap
//_root.attachBitmap(now, 10);
//
vx = 4;
vy = 4;
//r = ball._width/2;
function tweenPlayer(param,param2) {
easeType = mx.transitions.easing.Regular.easeOut;
var mc = ball;
if (mc.inTrans == false) {
//mc.inTrans = true;
var begin = mc._y;
var beginX = mc._x;
var end = param;
//var endy = mc._y+(random(10)-5);
var time = 0.4;
ballTween = new mx.transitions.Tween(mc, "_y", easeType, begin, end, time, true);
ballTween = new mx.transitions.Tween(mc, "_x", easeType, beginX, param2, time, true);
ballTween.onMotionFinished = function() {
mc.inTrans = false;
};
}
}
.....e este é o código para os objectos que se vão desviar da bola que nos segue...ou seja os objectos desviam-se de nós...
eu gostava que vissem o projecto final mm...mas quando estiver pronto publico num blog e partilho..ou então partilho aqui se der
(não sei se me soube explicar...espero que sim)
entao passo a explicar:
o código que tinha anteriormente fazia com que o meu objecto respondesse ao movimento do mouse. o que eu queria era que o meu objecto respondesse ao movimento detectado pela webcam, mas não perdendo o comportamento de quando respondia ao mouse.
o que eu tinha inicialmente eram dois códigos, aquele que já mostrei que permitia q o meu objecto respondesse ao mouse, e um outro. este ultimo era de uma bola que seguia o movimento detectado pela webcam.
o pretendido era a "união" destes dois códigos. esta fusão foi conseguida, precisa de ser afinada mas já dá para entender...
este é o código da bola que nos segue...
CODE
stop();
var diff = 50;
import flash.display.*;
import flash.geom.*;
// ----------------------------------------------------------
// INIT
// ----------------------------------------------------------
ball.inTrans = false;
setInterval(detection, 100);
gameSizeX = 600;
gameSizeY = 800;
// ----------------------------------------------------------
// Connect the webcam
// ----------------------------------------------------------
cam = Camera.get();
vid.attachVideo(cam);
// ----------------------------------------------------------
// Main Functions
// ----------------------------------------------------------
now = new BitmapData(cam.width, cam.height);
before = new BitmapData(cam.width, cam.height);
rect = new Rectangle(0, 0, cam.width, cam.height);
//trace("cam.width="+cam.width+" cam.height="+cam.height);
sizeDif = gameSizeX / cam.width;
//trace("This Screen Size VS Video = 1:"+ sizeDif);
//trace("-----------------------------------------------");
pt = new Point(0, 0);
// Show The MonoColor image
//coverRect = new Rectangle(0, 0, 130, 120);
function detection() {
if (!cam.muted) {
now.draw(vid);
now.draw(before, new Matrix(), new ColorTransform(), 'difference');
now.threshold(now, rect, pt, '>', 0xff333333, 0xffff0000);
now.fillRect(coverRect, 0xff000000);
before.draw(vid);
//
re = now.getColorBoundsRect(0xffffffff, 0xffff0000, true);
// trace(r.toString());
ColorChange = now.threshold(now, re, new Point(re.x, re.y), '==', 0xffff0000, 0xffff0000);
// trace(ColorChange);
if (re.x<800 && ColorChange>10) {
ballNewY = (re.height/2+re.y)*sizeDif;
}
if (re.y<600 && ColorChange>10) {
ballNewX = re.width/2+re.x;
ballNewX = gameSizeX-(ballNewX*sizeDif);
}
tweenPlayer(ballNewY,ballNewX);
}
}
// display the motion detection bitmap
//_root.attachBitmap(now, 10);
//
vx = 4;
vy = 4;
//r = ball._width/2;
function tweenPlayer(param,param2) {
easeType = mx.transitions.easing.Regular.easeOut;
var mc = ball;
if (mc.inTrans == false) {
//mc.inTrans = true;
var begin = mc._y;
var beginX = mc._x;
var end = param;
//var endy = mc._y+(random(10)-5);
var time = 0.4;
ballTween = new mx.transitions.Tween(mc, "_y", easeType, begin, end, time, true);
ballTween = new mx.transitions.Tween(mc, "_x", easeType, beginX, param2, time, true);
ballTween.onMotionFinished = function() {
mc.inTrans = false;
};
}
}
.....e este é o código para os objectos que se vão desviar da bola que nos segue...ou seja os objectos desviam-se de nós...
CODE
onClipEvent(load){
this._alpha = 30;
this.ox = this._x;
this.oy = this._y;
}
onClipEvent (enterFrame) {
if ((_root.getBytesLoaded()*100)/_root.getBytesTotal()>=10) {
this._alpha = 20;
}
if (Math.abs(this._x-_root.ball._x)<=_root.diff and Math.abs(this._y-_root.ball._y)<=_root.diff) {
this._x = (this._x-(_root.ball._x-this._x));
this._y = (this._y-(_root.ball._y-this._y));
}
if (Math.abs(this._x-_root.ball._x)>_root.diff or Math.abs(this._y-_root.ball._y)>_root.diff) {
this._x += (this.ox-this._x)/5;
this._y += (this.oy-this._y)/5;
}
xd = Math.abs(_root.ball._x-this._x);
}
this._alpha = 30;
this.ox = this._x;
this.oy = this._y;
}
onClipEvent (enterFrame) {
if ((_root.getBytesLoaded()*100)/_root.getBytesTotal()>=10) {
this._alpha = 20;
}
if (Math.abs(this._x-_root.ball._x)<=_root.diff and Math.abs(this._y-_root.ball._y)<=_root.diff) {
this._x = (this._x-(_root.ball._x-this._x));
this._y = (this._y-(_root.ball._y-this._y));
}
if (Math.abs(this._x-_root.ball._x)>_root.diff or Math.abs(this._y-_root.ball._y)>_root.diff) {
this._x += (this.ox-this._x)/5;
this._y += (this.oy-this._y)/5;
}
xd = Math.abs(_root.ball._x-this._x);
}
eu gostava que vissem o projecto final mm...mas quando estiver pronto publico num blog e partilho..ou então partilho aqui se der
(não sei se me soube explicar...espero que sim)
#4
Posted 09 April 2008 - 11:45 PM
Muito curiosa essa sua ideia.....achei bem diferente !
O resultado final parece ser muito legal com esse tipo de interafividade....
Se lembrar, posta sim aqui no fórum ou da o link pra gente ver depois como ficou....
Abraço !!
O resultado final parece ser muito legal com esse tipo de interafividade....
Se lembrar, posta sim aqui no fórum ou da o link pra gente ver depois como ficou....
Abraço !!
Share this topic:
Page 1 of 1
Similar Topics
| Topic | Forum | Started By | Stats | Last Post Info | |
|---|---|---|---|---|---|
|
Imagem rondômica
acho que é isso, alguem ajuda ??? |
Dreamweaver |
adriano
|
|
|
|
Apple condena publicamente o desbloqueio de celulares
|
Notícias |
Notícias
|
|
|
|
tabelas
Ajuda |
Dreamweaver |
willams
|
|
|
|
Ajuda para desenvolver lembrançinha
|
Photoshop & Image Ready |
Inalda
|
|
|
|
Orçamento para pesquisa tecnológica cresce 47%
IDG Now! - Mercado |
Notícias |
TiTi Celestino
|
|
|
|
Fabricantes reforçam mercado de alta definição com novos produtos
|
Notícias |
Notícias
|
|
|
|
Menus com Submenu
Ajuda, Help, Sinal de Fumaça, Qualquer coisa ajuda! |
Dreamweaver |
Ingridowl
|
|
|
|
Novo código de barras para celular pode guardar arquivos
|
Notícias |
Notícias
|
|
Publicidade
|
|

Help













