»
Üstüste binen movieclip'ler
|
| Flash, AIR, Flex, Silverlight Flash, AIR, Flex, ActionScript (AS2,AS3) ve Silverlight hakkında sorularınıza ve merak ettiklerinize burada yer verebilirsiniz. |
![]() |
|
|
LinkBack | Seçenekler |
|
|
#2 (permalink) |
|
Üyelik Tarihi: 02.01.2005
Yer: İstanbul
Mesaj: 249
|
Re: Üstüste binen movieclip'ler
Normalde sağlam bir denklem yazılarak bu iş yapılabilir. Ama uğraşmak gerekiyor.
Hızlı yoldan hitTest uygulanarak yapılabilir. Eğer true dönüyorsa başka bir konuma atılabilir. Tabi bu gereksiz hesaplamaları da içeriyor. Yani bazı durumlarda objeler her random atamada üst üste gelecek olursa defalarca yeni koordinat atama konusunda bilgisayar bocalayacaktır. Bu işin tek avantajı hızlı programlanabilir olmasıdır. Kodlar şöyle; PHP Code:
Sonuç olarak çok sağlıklı bir kod değil fakat acil bir çözüm en azından. =) |
|
|
|
|
|
#3 (permalink) |
|
Üyelik Tarihi: 03.01.2007
Yer: istanbul
Yaş: 28
Mesaj: 179
|
Re: Üstüste binen movieclip'ler
evet pek değil.
ben mc'lerin onEnterFrame ' ine kendisinden öncekileri hitTest le check eden bi fonksiyon yazdım . ona göre attach etmeye devam ediyordu. oldu da . fakat onEnterFrame leri sildiremedim bir türlü. Bir de bunu bir deniyim. Teşekkür codesignist |
|
|
|
|
|
#5 (permalink) |
|
Üyelik Tarihi: 02.01.2005
Yer: İstanbul
Mesaj: 249
|
Re: Üstüste binen movieclip'ler
Evet işte böyle. Bocalama tekrarı 256 değerini geçince patlıyor. =)
Belki yine hızlı bir yöntem olarak kullanılan sayıyı bir daha kullanmama gibi bir teknik kullanarak işin içinden çıkılabilir. |
|
|
|
|
|
#6 (permalink) |
|
Üyelik Tarihi: 03.01.2007
Yer: istanbul
Yaş: 28
Mesaj: 179
|
Re: Üstüste binen movieclip'ler
ok ben yaptığım örneği yazim belki bişi düşünülebilir
Kod:
var count=0;
function makeThumbs() {
if (count<total) {
var item:MovieClip = holder.attachMovie("item",count,count);
item._x = Math.random()*(Stage.width-100);
item._y = Math.random()*(Stage.height-65);
if (count==0) {
count++;
makeThumbs();
} else {
correctPos(item);
}
}
}
function correctPos(mc:MovieClip) {
mc.onEnterFrame = function() {
for (j=0;j<Number(this._name);j++) {
if (this.hitTest(this._parent[j])) {
this._x = Math.random()*(Stage.width-100);
this._y = Math.random()*(Stage.height-65);
} else {
count++;
makeThumbs();
}
}
}
}
makeThumbs();
burada ama ne zaman enterFrame leri durduracağımı çözemedim. |
|
|
|
|
|
#8 (permalink) |
|
Üyelik Tarihi: 02.01.2005
Yer: İstanbul
Mesaj: 249
|
Re: Üstüste binen movieclip'ler
Madem ortaya oturacak kare sayısı çok, o zaman kesinlikle ilk söylediğim zor yöntemi kullanmak gerekli. Ancak bu iş gerçekten karmaşıklaşıyor. Çünkü olay 2D.
1D olsaydı yani sadece x ya da y ekseninde hit uyguladığımızı varsayıyorum. O zaman şöyle bir mantık yürütülebilirdi; [00000000001111111111111111111111111111111111111111 1111111111111111111....] Yani tüm pixeller için dolu boş gibi bir mantık. Tabi bu bilgisayarı ve bizi yoracaktır. =) Bunun yerine boş olanları bir diziye şu mantıkta yazabiliriz; [0-10,80-100,120-400] Diizi içinde 0-10 arası boş, 80-100 arası boş şeklinde tespit edilip diziye yazdırılıp, daha sonraki kodla da eğer kare genişliği 80-100 arasındaki değerden yani 20'den büyükse random hesabına bu kısmı hiç katma gibi bir kod yazılabilirdi. Uğraştırıcı ama en sağlam yöntem bu. Tabi bu 1D olduğu için böyle kolay. 2D bunun aynısı değil malesef. Hemen aklınıza x ve y için bundan iki tane kullanırım işimi hallederim şeklinde bir çözüm gelebilir ama bu doğru olmaz. Çünkü burada tam anlamıyla bir matris alanına ihtiyaç var. Şunun gibi [0-10,80-100,120-400] [0-10,80-100,120-400] [0-10,80-100,120-400] [0-10,80-100,120-400] [80-100,120-400] [80-100,120-400] .... X için sıkıştırma yapabildik ama Y için her pixeli hesaplamak gerekiyor. Belki buna da iyi bir yöntem düşünülebilir. Biraz kafa yormak lazım. Normalde bu tam experimental işi, buna kafa yorup çözüm üretmeyi çok isterdim ama vaktim yok malesef. İyi çalışmalar. |
|
|
|
|
|
#9 (permalink) |
|
Üyelik Tarihi: 03.01.2007
Yer: istanbul
Yaş: 28
Mesaj: 179
|
Re: Üstüste binen movieclip'ler
sağol codesignist . evet kübik matrislerle çözülebilir de o da tam matematik işi. ben enterFrame li yöntemle yaptım sorun yok. sadece bir anda dizilmiyor yaklaşık 1-2 saniye vs sürüyo yerleşmeleri. kolay gelsin sana
|
|
|
|
| Sponsorlu Bağlantılar | |
|
Zoque.Forum
Reklam
|
|
Zoque'a hoşgeldiniz!