şu efekt nasıl yapılıyor?

6 replies · 21,892 views

şu efekt nasıl yapılıyor?
http://www.pouet.net/screenshots/11765.gif şu ekran görüntüsündeki efekti yapmak istiyorum. 2 boyutlu dalgalanan su efekti. internette aradım ama bulamadım belki adını tam bilmediğimdendir. Bu efekt ne diye anılır? ve nasıl yapılır? şöyle kısa bir tarif alsam sanki yapıcam kendim 🙂
şu efekt nasıl yapılıyor?
still image'dan tam olarak düşündüğüm efekt olup olmadığını anlamadım ama, tahmin ettiğim şeyse arkaplan olarak bir adet su görseli (üzerinde karanın yansımasıyla beraber) koyulup onun üzerine de scanline hareket ettirilerek yapılabiliyor sanırım.
şu efekt nasıl yapılıyor?
e bu açıklama da çok basit oldu hiç birşey anlamadım 🙂
şu efekt nasıl yapılıyor?
Abi yanlış hatırlamıyorsam o basit bir sinüs efekti idi ya. Aslında fredinin söylediği gibi ama verdiği örnekte dalga düz ilerliyor. Bu efektte sinüs dalgası şeklinde idi. Fakat ekranın ortasında daha küçük bir sinüs dalgası, ekranın altına indikçe sinüs dalgasının boyutu büyüyor. Yüzde %80 ihtimalle Anes %20 ihtimalle Spritus kodlamıştır efekti. Görürlerse onlar daha iyi açıklar sanırım.
şu efekt nasıl yapılıyor?
selam;
efekti ben kodladım.
orjinal adı lake olan efektin yapısı da ragnor'un dediği gibi basit. efekt kabaca, resmi ekrana basan trace rutinin içinde y eksenine sinüs uygulayarak elde ediliyor diyebiliriz. fake kod ile izah edersek :
loop
{
 n++
 for x=1 to picWidth
 {
  for y=1 to picHeight
  {
   pixel (x, y, picture(x, [B]sin(y+n)[/B]))
  }
 }
}

koyu kısım olayın en önemli noktası. onu silip y yazsaydık ekrana sadece resmi düz basacaktı.
qbasic ile yazdığım çalışır örnek:
SCREEN 13
DIM RESIM(79, 94), COSMAP(30)

FOR n = 0 TO 30
 COSMAP(n) = COS(n * 3.14 / 15)
NEXT

FOR X = 0 TO 78
FOR Y = 0 TO 93
 RESIM(X, Y) = X XOR Y
 PSET (X + 120, Y), X XOR Y
NEXT
NEXT

CLOSE 1

DO
n = n - 1
F = .1
FOR Y = 0 TO 93
F = F + .002
FOR X = 0 TO 78
 c = 93 - Y + COSMAP(ABS(Y / F + n) MOD 30) * 5
 IF c > 93 THEN c = 93
 IF c < 0 THEN c = 0
 PSET (120 + X, 95 + Y), RESIM(X, c)
NEXT
NEXT

xx:
X = INP(&H3DA)
IF (X AND 8) = 1 THEN GOTO xx
IF (X AND 8) = 0 THEN GOTO xx

LOOP UNTIL INKEY$ <> ""

Last edited: 2009-07-26 20:55

şu efekt nasıl yapılıyor?
bende yaptım şimdi ehe 😃 (mutluluk hormonu)
Teşekkürler açıklamalar için 😃