Archive for the ‘Games Programming’ Category

Remove movieclips from Array- Important Classes for games in AS 3.0

December 22nd, 2011 by aabhaanjan

images

[xml]
package
{

import flash.display.MovieClip;
/**
* …
* @description : This Class can be used when you need to remove all movieclips from its stored array.
* @author Aava Rani
*/
public class RemoveMovieClipsFromArrayClass extends MovieClip
{

public function RemoveMovieClipsFromArrayClass():void
{
trace(‘ Constructor called ‘);
}

public function removeAllMovieClipsFromArray(__clipArray:Array):void {
for (var __i:int = __clipArray.length – 1; __i >= 0 ; __i– ) {
removeChild(__clipArray[__i])
__clipArray.splice(__i, 1);
}
}

}

}
[/xml]

Depth Sorting of objects – Important Classes for games in AS 3.0

December 22nd, 2011 by aabhaanjan

images
[xml]
package
{
/**
* …
* @description : This Class can be used when you need to adjust depth of objects according to their heights.
* @author Aava Rani
*/

public class DepthSortingClass extends MovieClip
{
private var _parent:Object
public function DepthSortingClass()
{
super();
}

public function setSortingParent(__parent:Object):void {
_parent = __parent
}

public function sortDisplayList():void {
var len:uint = _parent.numChildren;
var i, j;
for ( i = 0; i < len - 1; i++ ) for (j = i + 1; j < len; j++) if ( _parent.getChildAt(i).y > _parent.getChildAt(j).y )
_parent.swapChildrenAt( i, j );

}

}

}

[/xml]

Loading SWFs in AIR- Important Classes for games in AS 3.0

December 22nd, 2011 by aabhaanjan

images

[xml]
package
{
import flash.display.Loader;
import flash.display.MovieClip;
import flash.system.ApplicationDomain;
import flash.system.LoaderContext;

/**
* …
* @description : This class is for loading SWFs in AIR for Mobile app etc.
* @author Aava Rani
*/
public class SWFLoader extends MovieClip
{
private var loader:Loader;
public function SWFLoader():void {
initLoader(‘test.swf’)
}

private function initLoader(__path:String):void {
loader = new Loader();
var appDomain:ApplicationDomain = new ApplicationDomain();
var context:LoaderContext = new LoaderContext(false, appDomain);
loader.load(new URLRequest(__path), context);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
}
private function loaded(event:Event):void
{
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loaded);
addChild(loader.content);
}

}
}
[/xml]

Starling -Gaming with 2D hardware rendering

October 13th, 2011 by aabhaanjan

The Straling:
What is Starling ? :-
a)Starling is an ActionScript 3 2D framework developed based on the Stage3D APIs
b)Starling for the desktop in Adobe Flash Player 11 and Adobe AIR 3.
c)Starling is specially designed for the game development
d)Starling makes it possible to write fast GPU accelerated applications without having to touch the low-level Stage3D APIs.
e)Starling is designed for ActionScript 3 developers, especially those involved in 2D game development.
f) Starling is lightweight, flexible and easy to use.

will discuss few tutorials soon.

Future of New Media

October 13th, 2011 by aabhaanjan

I am developer of all these four platform :

a) Native iOs

b) Android

c)Flash/Flex

d) HTML5

On the basis of my experience in these technologies I would like to share my views about Future of New Media.

I found few Facts about the wide area presence of Flash Player from the various online resources :

75% of all video on the web is viewed with Flash Player.
Flash Player is on 99% of all connected PCs.
85 % of 100 top websites use Flash
95% of top 20 phone OEMs will deliver Flash

so what is the present of flash in New Media Space :
1. Already grown a lot.
2. Still growing.
3. Have a large foot print in the sector of media,game etc.

And what is the future:
1. The new version will come as the replacement of fastly growing Unity3D.
2. The new version with a great performnace feature like hardware rendering will change the
gaming industry and mobile world.
3. In future Flash will be the cheapest medium to develope game/app or video for all platform with its great performance.
4. The Adobe AIR3 going to make a great presence in the field of television and desktop app world.
The Stage Video having :
a)smoothest, highest quality, seamless video
b)lowest CPU usage, longest battery life
c)optimized for multi-screen: PC, smartphone, tablet, television
d)reaching also out to low-end PC devices

All the best Adobe :)🙂

Exporting Images from AIR

March 1st, 2011 by aabhaanjan

333

Lets learn today to export images in png and jpeg format from AIR . It will be simillar to the drawing application where
we draw something and export it as images.

Step 1:
Download the Encoder classes from Adobe
For Saving the image we have used here File,FileStream and FileMode classes.
Here you can save your avatar in both png and jpeg format.

Step 2:
I have designed a mc MovieClip in the stage . Now I will choose the
different colors after completing the color changing option
will save the image in format of PNG or JPEG.

Here I will place color picker components for
Colour option for the MovieClip.

Step 3:
Many of have faced or facing the problem of transparency in PNG format files.
here is the solution add follwing parameter in the new instance of BitmapData
like I have added here :
‘new BitmapData(mc.width,mc.height,true,0xDEDEDE)’;

Here is your complete code :
[xml]
package{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.filesystem.File;
import flash.filesystem.FileStream;
import flash.filesystem.FileMode;
import flash.events.Event;
import flash.display.BitmapData;
import flash.utils.ByteArray;
import fl.events.ColorPickerEvent;
import flash.geom.ColorTransform;
import flash.text.TextFormat;
import flash.text.Font;
/*

*/

import com.adobe.images.PNGEncoder;
import com.adobe.images.JPGEncoder;
import flash.display.MovieClip;
import fl.motion.Color;

public class Main extends MovieClip{
private var _fileRef:File = File.documentsDirectory;
private var imageByteArray:ByteArray;
private var _fileType:String;

function Main(){
init();
}

/*

*/
private function init():void{
handleColorpicker();
save_btn.addEventListener(MouseEvent.MOUSE_DOWN,onEncode);
}

private function handleColorpicker():void{
colorPickerShirt.addEventListener(ColorPickerEvent.CHANGE,onColorChange);

}
private function onEncode(e:MouseEvent):void{
switch(img_radio_btn.selected){
case true:
saveAsJPG();
break;
case false:
saveAsPNG();
break;
}
}

private function getBitmapData():BitmapData{
var bd:BitmapData = new BitmapData(mc.width,mc.height,true,0xDEDEDE);
bd.draw(mc);
return bd;
}
private function saveAsPNG():void{
imageByteArray = PNGEncoder.encode(getBitmapData());
browseForSave(“PNG”);
}
private function saveAsJPG():void{
var jpgEncoder:JPGEncoder = new JPGEncoder(100);
imageByteArray = jpgEncoder.encode(getBitmapData());
browseForSave(“JPG”);
}
private function browseForSave(fileType:String):void{
_fileType = fileType;
_fileRef.browseForSave(“Save As ” + fileType);
_fileRef.addEventListener(Event.SELECT, onSaveAsSelected);
}
private function onSaveAsSelected(e:Event):void{
_fileRef = e.target as File;
var ext:String;
switch(_fileType){
case “JPG”:
ext = “.jpg”;
break;
case “PNG”:
ext = “.png”;
break;
}
if(_fileRef.extension == null){
_fileRef.nativePath += ext;
}
var stream:FileStream = new FileStream();
stream.open(_fileRef, FileMode.WRITE);
stream.writeBytes(imageByteArray, 0, imageByteArray.length);
stream.close();
}

private function onColorChange(e:ColorPickerEvent):void{

ChangeObjectColor(mc, e.target.selectedColor)

}

private function ChangeObjectColor(_mc:MovieClip,_color:uint):void{
var colorTransform:ColorTransform;
colorTransform = _mc.transform.colorTransform;
colorTransform.color = _color;
_mc.transform.colorTransform = colorTransform;
}

}
}
[/xml]

Working with Citrus Engine

December 10th, 2010 by aabhaanjan

While working on a platform game  I came on contact of Citrus Engine. The engine is really good and best part is it provides an Editor kind of Level Architect  developed in Adobe AIR. The engine has used Box2d and other physics in a great way.

The process is very simple :

Install the Level Architect  .

Start the Editor

On clicking Level Architect you will get a window shown below

Citrus_Engine

The window have following menus :

New Level : for creating New Level.

Citrus_Engine_New_level

Open Level : for accessing existing layer.

Citrus_Engine_Save_level

Save Level : it will save the level in XML format.

The major functionalities of this editor is handled by right click. On right click you will get many options to create Platform, Hero,etc with their  own properties.

Citrus_Engine_Options

In below diagram on right click we are getting these options. Using these options we can create our game. Like here I have created . I have used one platform and one MovingPlatform and a Hero.

Citrus_game_paltform

Will move in next tutorial of  Citrus soon 🙂

Tags: , , , , , , , , , , ,