ActionScript ile 3d

Actionscript ile 3d programlama oldukça geniş. Eğer siz oyun yapmak istiyorsanız ya da herhangi bir 3d çalışmasında bulunmak istiyorsanız o kadar çok kaynak var ki elinizde. Bunlardan sıralayabileceğim ;

Fizik Motoru :
Box2D (En sağlam fizik motorudur. İçerisinde bir çok class barındırır kod yazmadan da bu 2d motorunu kullanabilirsiniz komponentler sayesinde.)

3D Motorları :

En güçlüsü kuşkusuz ki Alternativa3D Adobe resmi olarak destek vermektedir.
Bir ikincisi bu da kullanımı yaygın ve internette bi çok örneğini bulabileceğiniz Away3D
Eski bir 3d motoru ama bir okadarda işlevli örneği bol Papervision3D
* 3D olarak paylaşabileceğim ve aralarında en sağlam ve belirgin aynı zamanda en yaygın olanları bunlar. Bunların dışındakilere pek bakmamızı öneririm. Tabii sizin bileceğiniz bir şey.

Oyun Motorları :

İşte bu olan çok geniş o yüzden size şu linki veriyorum bir incelemekte fayda var.
http://www.adobe.com/devnet/games.html ayrıca bunlara da bir göz atmak lazım
http://www.flashrealtime.com/flash-game-library-engine-list/#2D

Bunların en belirligini flixel ve FlashPunk bunun yanında Starling çıktı o da adobe’un desteklediği bir oyun motoru.

Ayrıca bahsetmek isterim ki Adobe son zamanlarda duyurduğu stage3D ile iyi örnekler yapabilirsiniz. Bunun yanında bir de matrix3D var yani adobe flash platfromu geniş bir platform ve yapacaklarınızın sınırı yok. Bunu Fwa daki sitelere bakarakta anlayabilirsiniz.

Matrix3D tanıtmak amacıyla bir örnek.

*Aşağıdaki örnekte bir şekil çizilir. Daha sonrasında açıyı sürekli olarak değiştirebilmek için enterframe evente bağlanır (Event.ENTER_FRAME) daha sonrasında açıyı bulabilmek için geometri sınıfı olan flash.geom sınıfı kullanılır ve Matrix3D ile açı hesabı yapılır.

var shape : Shape = new Shape();
shape.graphics.beginFill(0xFF0000);
shape.graphics.drawRect(300,150,50,50);
shape.graphics.endFill();
shape.z = 0;
addChild(shape);
addEventListener(Event.ENTER_FRAME,loop);

function loop(event:Event):void
{
shape.z = 1;
shape.transform.matrix3D.appendTranslation(0,0,0);
shape.transform.matrix3D.appendRotation(1,Vector3D.Y_AXIS);
}

Eğer açıyı X açısından ve ya Z açısından almak istersek.
Vector3D.X_AXIS
Vector3D.Z_AXIS

demek yeterli olacaktır.

Leave a comment