Author Archives: Bhaldie

Oh Canada!!! Gold Medal for Team Canada!


sid the kid!!

Sidney Wins Gold for Canada!!

What a game!!!

In a matter of seconds Sidney Crosby became my new hero,  and I’m sure a hero to most Canadian’s out there.

I must say that was one of the most exciting games I have seen in a long time, and I’m sure it will be in all Canadian’s hearts and minds for a long time after.

Sidney was pretty quite throughout the tournament scoring a few points, scoring the penalty shot game winner against the Swiss, but not really leaving an impression in each game, this goal put him back in the forefront of Canadian Hockey on the same level as pass greats like Wayne Greztky and Mario Lemieux and the kicker is that he is only 22.

GO CANADA GO!!!

Sheridan 3D Game Featured at the 2010 Olympics

Sheridan College, a leader in digital media, has created the first ever real-time auto-stereoscopic 3D game that does not require 3D glasses. The game, called “IC3D”, is a showpiece at the Ontario House Pavilion at the 2010 Vancouver Olympic Games, and will be used to introduce some of Ontario’s most well-known tourist attractions to the world-wide audience in Vancouver.

Developed in collaboration with Toronto-based company Spatial View, the Sheridan IC3D Game is an interactive real-time application where players use BlackBerry® smartphones as game controllers to assemble puzzles featuring some of Ontario’s most popular tourist attractions.

Visitors to the Ontario House Pavilion will play the puzzle game featuring 20 of Ontario’s landmark attractions, displayed as ‘icicons’,* on 46” Spatial View auto-stereoscopic 3D screens. The pieces of each attraction, or ‘icicon’, appear scattered on a frozen 3D landscape. Up to five players work collaboratively to assemble the ‘icicons’, each using a BlackBerry smartphone. Once complete, a multimedia presentation of the attraction is displayed on each player’s device.

“The cutting edge technology of Sheridan’s 3D Game showcases our province’s tourism icons like never before. The world will see in a unique and innovative way that there truly is no place like Ontario to live, visit and invest,” said Michael Chan, Ontario’s Minister of Tourism and Culture.

“The project is a great example of how Sheridan’s expertise in applied research can seamlessly combine multiple disciplines as diverse as art and information technology. Sheridan’s long experience in digital media made collaborating with Spatial View on a 3D gaming and visualization project an ideal partnership,” said Jill Birch, Sheridan’s Vice President of Business Development. “This unique and innovative collaboration not only demonstrates the Province’s commitment to innovation in technology, but we think it has been a model for how technology companies and educational institutions with expertise in applied research can partner to create technological breakthroughs.”

“We are excited to be working on such an innovative project with one of North America’s premier Visual Design educational institutions,” says Beat Raemy, CEO of Spatial View. “The combination of Spatial View’s technology and Sheridan’s creative software development skills has resulted in a truly amazing glasses-free 3D experience.”

The Sheridan 3D Game was created by Sheridan’s Visualization Design Institute (VDI), an applied research unit with established expertise in the field of computer visualization and specializing in deploying game technologies in 3D environments. A team of students from the college’s Applied Computing and Engineering Sciences School worked with VDI staff to take this application from concept to finished product.

Founded in 2004, Spatial View is a leading developer of 3D image processing and display technologies. The company’s vision is to make 3D more accessible, affordable and versatile opening up 3D to a broader market, including mobile and personal computers. Spatial View’s unique technology allows users to view 3D content in high quality on a variety of platforms without the need for 3D glasses.

The Blackberry and RIM families of related marks, images and symbols are the exclusive properties and trademarks of Research in Motion Limited.

Actionscript 3 Animated Bitmap Part II

Okay the next version of my Animated Bitmap class is done. I still need a little tweaking but all in all its coming alone 🙂 Below is a test application I created you can see that the Animated Bitmaps all have different frame rates, also these bitmaps can be used to create a button…. go ahead press it 😉

Below is the function call to create one of the Animated Bitmaps:

[code lang=”actionscript”]
var ab1:Object = MemphisAPI.AnimateBitmap({
image:ring_atlas,
width:32,
height:32,
columns:21,
rows:1,
frames:21,
speed:30
});
[/code]

And here is my class, sorry no documentation I’m lazy…. I’ll get around to it thou.
[code lang=”actionscript”]
public static function AnimateBitmap(Properties:Object):Object {
var obj:Object = new Object();
var sprite:Sprite = new Sprite();
var column:Number = 0;
var frame:Number = 0;
var xPos:Number = 0;
var yPos:Number = 0;
var _point:Point = new Point(0, 0);
var _rect:Rectangle;
var sequence:Boolean = new Boolean(false);
var endFrame:Number = new Number(0);
var origData:BitmapData = BitmapData(new Properties.image(0,0));
var newData:BitmapData = new BitmapData(Properties.width,Properties.height,true,0x000000);
var animatedBitmap:Bitmap = new Bitmap(newData);

var timer:Timer = new Timer(Properties.speed);
timer.addEventListener(TimerEvent.TIMER, timerFunc);

initBitmap();

function timerFunc(e:TimerEvent) {
_rect = new Rectangle(xPos, yPos, Properties.width, Properties.height);
newData.copyPixels(origData, _rect, _point);
xPos = column * Properties.width;
if(column == Properties.columns) {
xPos = 0;
yPos += Properties.height;
column = 0;
}
if(frame >= Properties.frames) {
xPos = 0;
yPos = 0;
column = 0;
frame = 0;
}
if (frame == endFrame && sequence == true) { timer.stop(); sequence = false; }
column++;
frame++;
}

function initBitmap() {
_rect = new Rectangle(xPos, yPos, Properties.width, Properties.height);
newData.copyPixels(origData, _rect, _point);
xPos += Properties.width;
sprite.addChild(animatedBitmap);
}

obj.stop = function stop() { timer.stop(); }

obj.start = function start() { timer.start(); }

obj.reset = function reset() {
xPos = 0;
column = 0;
_rect = new Rectangle(xPos, yPos, Properties.width, Properties.height);
newData.copyPixels(origData, _rect, _point);
xPos += Properties.width;
sprite.addChild(animatedBitmap);
timer.reset();
}

obj.gotoAndStop = function gotoAndStop(frame:Number) {
xPos = Properties.width * frame;
column = frame;
_rect = new Rectangle(xPos, yPos, Properties.width, Properties.height);
newData.copyPixels(origData, _rect, _point);
xPos += Properties.width;
timer.stop();
}

obj.gotoAndPlay = function gotoAndPlay(frame:Number) {
xPos = Properties.width * frame;
column = frame;
_rect = new Rectangle(xPos, yPos, Properties.width, Properties.height);
newData.copyPixels(origData, _rect, _point);
xPos += Properties.width;
timer.start();
}

obj.playSequence = function playSequence(startframe:Number , endframe:Number) {
xPos = Properties.width * startframe;
column = startframe;
endFrame = endframe;
sequence = true;
_rect = new Rectangle(xPos, yPos, Properties.width, Properties.height);
newData.copyPixels(origData, _rect, _point);
xPos += Properties.width;
timer.start();
}

if (Properties.buttonmode == true && Properties.buttoncallback != null) {
sprite.addEventListener(MouseEvent.MOUSE_OVER, mouseOver);
sprite.addEventListener(MouseEvent.MOUSE_OUT, mouseOut);
sprite.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
sprite.addEventListener(MouseEvent.MOUSE_UP, mouseUp);
function mouseOver(e:MouseEvent) {
obj.gotoAndStop(1);
}
function mouseOut(e:MouseEvent) {
obj.gotoAndStop(0);
}
function mouseDown(e:MouseEvent) {
obj.gotoAndStop(2);
}
function mouseUp(e:MouseEvent) {
obj.gotoAndStop(0);
Properties.buttoncallback(e);
}
} else if (Properties.buttonmode == true && Properties.buttoncallback == null) {
trace(“BUTTON DISABLED: a buttoncallback property is need if using buttonmode = true”);
}

obj.sprite = sprite;
return obj
}
[/code]

Art assets created by:

Next Steps

  • refine the button functionality
  • performance test.
  • refine function call

Now time to get back to work!!