使用游戏引擎实现的水波纹

简介: <p><a href="http://p.blog.csdn.net/images/p_blog_csdn_net/mysticboy/462983/o_asdfsadf.png"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0p

asdfsadf

这是波纹的截图。 程序运行时是波动的。

代码如下:

public static void valfff()
        {
            int ScreenWidth = 800; //; Feel free to change this to see the pixel filling speed !
            int ScreenHeight = 600;
            int[] CosTable = new int[ScreenWidth * 2];
            int[] ColorTable = new int[255];
            for (int i = 0; i             {
                CosTable[i] = (int)(GSin(360 * i / 320) * 32 + 32);
            }
            GameScreen gs = new GameScreen();

            // gs.OpenWindowedScreen(hande, 0, 0, 800, 600, 0, 0, 0);

            gs.OpenFullScreen(ScreenResolution.R800X600, ScreenColorDepth.X32, "srlPlasma");
            int Wave = 0;
            do
            {
                int tc = GetTickCount();
                Wave += 6;
                Wave = (Wave > 320) ? Wave = 0 : Wave;
                Console.Write(Wave);
                if (gs.StartDrawing() != 0)
                {
                    int iBuffer = gs.DrawingBuffer();
                    int iPitch = gs.DrawingBufferPitch();
                    PixelFormat iPixelFormat = gs.DrawingBufferPixelFormat();
                    if (iPixelFormat == PixelFormat.PF32Bits_RGB)
                    {
                        for (int i = 0; i                         {

                            ColorTable[i] = i                         }
                    }
                    else
                    {
                        for (int i = 0; i                         {
                            ColorTable[i] = i;
                        }
                    }
                    for (int y = 0; y                     {
                        int pos1 = CosTable[y + Wave];

                        int loc = iBuffer + iPitch * y;

                        for (int x = 0; x                         {
                            int pos2 = (CosTable[x + Wave] + CosTable[x + y] + pos1);
                            gs.SetVideoMemory(loc, ColorTable[pos2]);
                            loc += 4;
                        }
                    }
                    gs.StopDrawing();
                }
                gs.FlipBuffers();
                Console.WriteLine(GetTickCount() - tc);

            } while (gs.KeyIsReleased(Key.Escape) == false);
            gs.Close();

        }

        public static float GSin(float angle)
        {
            return (float)Math.Sin(angle * (2 * 3.14 / 360));
        }

相关文章
Unity小游戏——武士击杀小怪兽(无限滚动的背景)
Unity小游戏——武士击杀小怪兽(无限滚动的背景)
【Unity趣味编程】——c++实现小球的自由移动
【Unity趣味编程】——c++实现小球的自由移动
150 0
虚幻4和Unity3D应该学哪个?
虚幻4 (UE4) 和Unity是目前市场上最热门的游戏引擎,也各自拥有为数众多的开发者,虽然一些大型的游戏公司仍然运用自家开发的引擎来制作游戏,但是在巨大的市场需求下,独立开发者与游戏工作室依然需要一款优秀的引擎来支持项目的开发。
6344 0
silverlight,WPF动画终极攻略之会飞的小鸟篇(Blend 4开发)
原文:silverlight,WPF动画终极攻略之会飞的小鸟篇(Blend 4开发) 本教程基本涵盖了WPF和silverlight中的各种动画。先上张效果图。 声明下,这个做的不是让大家照搬的,只是让大家熟悉下动画效果,这个成品基本涵盖了sl里面所有的动画效果。
1416 0
Silverlight & Blend动画设计系列五:故事板(StoryBoards)和动画(Animations)
原文:Silverlight & Blend动画设计系列五:故事板(StoryBoards)和动画(Animations)   正如你所看到的,Blend是一个非常强大的节约时间的设计工具,在Blend下能够设计出很多满意的动画作品,或许他具体是怎么实现的,通过什么方式实现的我们还是一无所知。
959 0
通通玩blend美工(5)——旋转木马,交互性设计
原文:通通玩blend美工(5)——旋转木马,交互性设计       这一篇偏向于逻辑的比较多,放在这个系列里会不会欠妥呢?在中国交互性设计也是美工的份内职责哦~   所以没有blend基础的人也可以看懂这篇文章,不过要用到初中的几何知识哦~亲     相信很多人都在手机或者网页上或者K...
1036 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等