Evet, haklısın, bu 2D su efekti matematik sinüs fonksiyonu kullanılarak simüle edilebilir :
wave = sin(phase + t * frequency) * amplitude

phase sabittir, ne istersen koy.
tişlediğiniz piksel / tepe noktasının yatay konumuna ayarlayın :t = x;
amplitudezaman içinde değişiklik (dalgaların yukarı ve aşağı hareket etmesini sağlayacaktır):
amplitude = sin(t * wave_speed) * wave_height
Daha göreceli bir etki elde etmek için birkaç dalga birleştirin:
wave_final = wave0 + wave1 + ... .
Her dalga için bazı parametreleri biraz değiştirin (örneğin: faz, frekans, ...).
İşte sadece iki dalga kullanarak yaptığım hızlı bir örnek:
http://glslsandbox.com/e#4988.0 (son tarayıcı ve WebGL'nin etkinleştirilmesini gerektirir)
NOT: bu bir gölgelendiricidir, ancak bunu 2B ilkel kullanarak yapmak aynı yaklaşımdır.
DÜZENLEME: herhangi bir çerçeve veya 2d oluşturma sistemi belirtmezsiniz, ancak çokgenler / üçgen şeritler kullanılarak nasıl oluşturulacağı aşağıda açıklanmıştır:
