Projet Wiiless

Voila une semaine que le petit projet wiiless (comprenez “La Wiimote pour les pauvres”) a commencé pour mes heures perdues. Le but est relativement simple. Wiiless porte sur la detection de points depuis la webcam et l’interaction de ceux ci avec des objets virtuels.

Vous avez pu voir sur les deux derniers billets, quelques petits exemples.

Percuader que ca pourrait en interesser quelqu’uns (pour leur projet gobelins par exemple.. :)), j’en ai profité pour faire une petite API as3 relativement simple à utiliser (je pense…).

Voici rapidement deux exemples d’utilisations de cette API :

La Wiiless :

import wiiless.wiiless.Wiiless;
import wiiless.events.WiilessEvent;
 
var wl:Wiiless = pWiiless;
 
wl.addEventListener(WiilessEvent.CONNECT, _onConnect);
wl.addEventListener(WiilessEvent.DISCONNECT, _onDisconnect);
wl.addEventListener(WiilessEvent.PRESS, _onPress);
wl.addEventListener(WiilessEvent.RELEASE, _onRelease);
wl.addEventListener(WiilessEvent.WHEEL, _onWheel);
wl.addEventListener(WiilessEvent.MOVE, _onMove);
 
wl.connect(this);

Download this code: Wiiless.as

Le WiilessManager (Gestion de plusieurs Wiiless et de plusieurs Objets) :

import wiiless.WiilessManager;
import wiiless.wiiless.Wiiless;
import wiiless.objects.ObjectMove;
import wiiless.cursors.*;
import wiiless.events.*;
 
var cursorB:CursorBlue = new CursorBlue();
addChild(cursorB);
 
var cursorR:CursorRed = new CursorRed();
addChild(cursorR);
 
mcCarre.autoMove = false;
mcCarre.scaleMode = ObjectMove.SCALE_DOUBLE;
mcRond.scaleMode = ObjectMove.SCALE_DOUBLE;
 
mcRond.addEventListener(ObjectEvent.ROLL_OVER, _rollOver);
mcRond.addEventListener(ObjectEvent.ROLL_OUT, _rollOut);
mcRond.addEventListener(ObjectEvent.SCALE_DOUBLE, _scaleDouble);
mcRond.addEventListener(ObjectEvent.MOVE, _move);
 
var wlBlue:Wiiless = new Wiiless();
wlBlue.cursor = cursorB;
wlBlue.setZone(550, 400);
wlBlue.setMinRGB(0, 0, 200);
wlBlue.setMaxRGB(100, 100, 255);
 
var wlRed:Wiiless = new Wiiless();
wlRed.cursor = cursorR;
wlRed.setZone(550, 400);
wlRed.setMinRGB(200, 0, 0);
wlRed.setMaxRGB(255, 100, 100);
 
var wm:WiilessManager = new WiilessManager(this);
wm.addEventListener(WiilessEvent.CONNECT, _onConnect);
wm.viewCursor = true;
wm.addWiiless(wlBlue);
wm.addWiiless(wlRed);
wm.addObject(mcRond);
wm.addObject(mcCarre);
 
 
function _onConnect(e:WiilessEvent):void
{
	mcVideo.addChild(wm.video);
}
 
function _rollOver(e:ObjectEvent):void
{
	trace("over > "+e.id);
}
 
function _rollOut(e:ObjectEvent):void
{
	trace("out > "+e.id);
}
 
function _move(e:ObjectEvent):void
{
	trace("move > "+e.id);
}

function _scaleDouble(e:ObjectEvent):void
{
	trace("scaleDouble > "+e.id);
}

Download this code: WiilessManager.as

Pour tous les intéressés, voici les SVN du projet (attention, le projet est toujours en developpement) : http://code.google.com/p/wiiless/

A propos, une petite application “Wiiless” joliement dessiné par notre ami Woumpah bientôt en ligne.

Un grand merci à Nico sans qui je n’aurais jamais eu cette idée…

2 Responses to “Projet Wiiless”

  1. bigop Says:

    j’adore le principe ! je vais tester ça !

    merci !

  2. Blog Actionscript Développeur » Blog Archive » Wiiless return :p Says:

    […] un moteur basé sur même principe, je ne peux ne pas permettre de reposter ce petit projet :)  : http://blog.emmanuelbonnet.com/2007/06/16/projet-wiiless/ avec quelques démos dispos : […]

Leave a Reply