WMZİLLA - Full Oyunlar -  Programlar  - Paylaşım Forumu  
Go Back   WMZİLLA - Full Oyunlar - Programlar - Paylaşım Forumu > Grafiker kulübü > Adobe > Flash Macromedia
GET sistemi
Hakkimizda Messenger indir GET Platinum Card Etkinlik Takvimi Forum Kurallari Konum Belirleme Lokasyon ve Destek Ofisi

Sitemize reklam vermek için tıklayın
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
  #1  
Alt 27 Eylül 2013, 03:30
Staedion - ait Kullanıcı Resmi (Avatar)
Onursal Admin
 
Netherlands
Üyelik: 12 Ağustos 2013
Ticaret Sayısı: (1)
Ticaret Yüzdesi:(%)
Ad-Soyad:
Konular: 38
Mesaj Sayısı:64
Beğeniler: 3 / 5
İlgi Alanı:
Standart Flash ile 3 boyutlu resim

Merhaba. Bu yazıda Flash programını kullanarak 3 boyutlu ve mouse kontrollü küp resim yapımı konusunda bilgi vereceğim.

Öncelikle Macromedia Flash programını açalım.
6 adet aynı boyutlardaki resimleri çalışma alanı boş olacak şekilde kütüphane içine alıyoruz.
Resmin üzerindeyken sağ tuş yapıp linkage sekmesini işaretleyelim. ( Bu işlemi her resim için uyguluyoruz. )

Daha sonra panelde 1nci ve 3ncü kutucukları işaretliyoruz

Yukarıdaki ID alanına geçip ;

image0
image1
image2
image3
image4
image5

yazıyoruz. Vermiş olduğumuz bu isimler kodlarda dizi içerisine alınarak kullanılacağı için harf ve sıralama hatası olmamasına dikkat edelim.

Bir sonraki aşamada çalışma alanını yine boş bırakıyoruz
Sadece 1. kareye alttaki kodları yazmanız yeterli olacaktır.



Kod:
import flash.geom.Matrix;
import flash.geom.Point;
Stage.scaleMode = 'noScale';

var oRotations:Object = {x:0, y:0, z:0};
var nUnit:Number = 100/2;
var boxPoints_array:Array = new Array();
boxPoints_array.push({x:-nUnit, y:-nUnit, z:-nUnit}); 
boxPoints_array.push({x:nUnit, y:nUnit, z:-nUnit});
boxPoints_array.push({x:-nUnit, y:nUnit, z:-nUnit});
boxPoints_array.push({x:-nUnit, y:-nUnit, z:nUnit});
boxPoints_array.push({x:nUnit, y:-nUnit, z:nUnit});
boxPoints_array.push({x:nUnit, y:nUnit, z:nUnit});

var faces_array:Array = new Array();
faces_array.push([2, 0, 3]);
faces_array.push([5, 1, 2]);
faces_array.push([0, 2, 1]);
faces_array.push([4, 3, 0]); 
faces_array.push([3, 4, 5]);
faces_array.push([1, 5, 4]);

var images_array:Array = ["image0", "image1", "image2", "image3", "image4", "image5"];

var my_mc:MovieClip = this.createEmptyMovieClip("scene_mc", this.getNextHighestDepth());
my_mc._x = Stage.width/2;
my_mc._y = Stage.height/2;
var nSensitivity:Number = 1/1000;

xInitializeBox();
xCreateBox();

my_mc.onEnterFrame = xCreateBox;

function xInitializeBox() {
var nLength:Number = faces_array.length;
for (var i:Number = 0; i<nLength; ++i) {
var image_str:String = images_array[i]; 
var _mc:MovieClip = my_mc.createEmptyMovieClip(image_str, i);
faces_array[i].push(_mc); 
var contents_mc:MovieClip = _mc.createEmptyMovieClip("contents", i); 
contents_mc.attachBitmap(flash.display.BitmapData.loadBitmap(image_str), 1, "auto", true);
}
}

function xCreateBox() {
oRotations.x -= this._ymouse*nSensitivity;
oRotations.y += this._xmouse*nSensitivity;
var points2d:Array = xTransformPoints(boxPoints_array, oRotations);
var nLength:Number = faces_array.length;
for (var i:Number = 0; i<nLength; ++i) {
var face_array:Array = faces_array[i];
var n0:Number = face_array[0];
var n1:Number = face_array[1];
var n2:Number = face_array[2];
var _mc:MovieClip = face_array[3];
xTransformMovieClipPoints(_mc, points2d[n0], points2d[n1], points2d[n2]);
}
}

function xTransformPoints(points_array:Array, oRotations:Object):Array {
var points2D_array:Array = new Array();
var nSin_x:Number = Math.sin(oRotations.x);
var nCos_x:Number = Math.cos(oRotations.x);
var nSin_y:Number = Math.sin(oRotations.y);
var nCos_y:Number = Math.cos(oRotations.y);
var nSin_z:Number = Math.sin(oRotations.z);
var nCos_z:Number = Math.cos(oRotations.z);
var nLength:Number = points_array.length;
for (var i:Number = 0; i<nLength; ++i) {
var nX:Number = points_array[i].x;
var nY:Number = points_array[i].y;
var nZ:Number = points_array[i].z; 
var nYx:Number = nCos_x*nY-nSin_x*nZ;
var nZx:Number = nSin_x*nY+nCos_x*nZ;
var nZy:Number = nCos_y*nZx-nSin_y*nX;
var nXy:Number = nSin_y*nZx+nCos_y*nX;
var nXz:Number = nCos_z*nXy-nSin_z*nYx;
var nYz:Number = nSin_z*nXy+nCos_z*nYx;
points2D_array[i] = new Point(nXz, nYz);
}
return points2D_array;
}

function xTransformMovieClipPoints(_mc:MovieClip, point0:Point, point1:Point, point2:Point):Void {
if (_mc._visible=xIsVisible(point0, point1, point2)) {
var myMatrix:Matrix = _mc.transform.matrix;
var contents_mc:MovieClip = _mc.contents;
var nWidth:Number = contents_mc._width;
var nHeight:Number = contents_mc._height;
var point1_0:Point = point0.subtract(point1);
var point1_2:Point = point2.subtract(point1);
myMatrix.tx = point1.x;
myMatrix.ty = point1.y;
myMatrix.a = (point1_0.x)/nWidth;
myMatrix.b = (point1_0.y)/nWidth;
myMatrix.c = (point1_2.x)/nHeight;
myMatrix.d = (point1_2.y)/nHeight;
_mc.transform.matrix = myMatrix;
}
}

function xIsVisible(point0:Point, point1:Point, point2:Point):Boolean {
var point0_1:Point = point1.subtract(point0);
var point0_2:Point = point2.subtract(point0);
var nX0_1:Number = point0_1.x;
var nY0_1:Number = point0_1.y;
var nX0_2:Number = point0_2.x;
if (!nX0_1) {
return ((0>nY0_1) != (nX0_2>0));
}
var nY0_2:Number = point0_2.y;
if (!nX0_2) {
return ((0>nY0_2) != (nX0_1<0));
}
return ((nY0_1/nX0_1<nY0_2/nX0_2) == (0<nX0_1 == 0>nX0_2));
}
Anlatım Macromedia 8 sürüm için geçerlidir. Alt sürümlerde sorun yaşayacağınızı pek sanmıyorum.

Alıntı ile Cevapla
Sponsored Links
Cevapla

Etiketler
3d flash, 3d resim, nasıl yapılır


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil


Tüm Zamanlar GMT +2 Olarak Ayarlanmış. Şuanki Zaman: 02:48.

Forum Hakkımızda
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.

© 2014 wmzilla.com | WMZilla Bir Netra iştirakıdır.
09:00 - 20:00 Destek hattı : +31640337288
WMZilla lokasyon ve yazılım ofisi :
Loevesteinlaan 923 2533CC Den haag / Netherlands
WMZilla
DMCA.com Protection Status

Bir irc forum sitesi olan wmzilla.com üzerinde, forum kullanıcıları 5651 sayılı kanun'un ilgili maddesine ve T.C.K'nın 125. maddesine göre yaptıkları paylaşımlardan sorumludur, kullanıcı bazlı herhangi bir durumdan wmzilla.com sorumlu değildir. Tüm hukuksal bildirimlerde bulunmak için abuse@wmzilla.com adresi ile iletişime geçebilirsiniz bu çerçevede, wmzilla.com yönetimi tarafından en geç 7 iş günü içerisinde tarafınıza dönüş yapılacaktır.

instagram beğeni satın al instagram takipçi satın al twitter takipçi satın al mosaic lamp mz parts içerik reseller hosting wordpress hosting ikinci el araba endüstriyel mutfak buy steroids buy steroids usa buy supplements usa fiziksel sunucu sunucu kiralama vps weekly ad epin kurtköy escort denizli escort jigolo pubg mobile uc eta saat fiberix gaziantep inşaat firması wordpress uzmanı metin2 forum