游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3118|回复: 5

求喷泉源码

[复制链接]

12

主题

20

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2007-9-24 10:26:00 | 显示全部楼层 |阅读模式
如题
谢谢!!
chenzhiwei021@163.com

13

主题

46

帖子

46

积分

注册会员

Rank: 2

积分
46
发表于 2007-9-24 10:48:00 | 显示全部楼层

Re:求喷泉源码

求着了吗,我也想研究研究哇

14

主题

48

帖子

54

积分

注册会员

Rank: 2

积分
54
QQ
发表于 2007-9-25 11:56:00 | 显示全部楼层

Re:求喷泉源码

我也想要!!!jake3@163.com

14

主题

251

帖子

251

积分

中级会员

Rank: 3Rank: 3

积分
251
发表于 2007-10-7 04:38:00 | 显示全部楼层

Re:求喷泉源码

找粒子系统的源码

1

主题

4

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2007-10-21 20:25:00 | 显示全部楼层

Re:求喷泉源码

void CalcParticle()
{
        GLuint i;
        GLfloat rho;
        GLfloat theta;
        if(cnt < 150)
                cnt++;

        for (i = 0 ; i < cnt ; i++)
        {
                if ( sp.bLive )
                {
                        sp.speed.data.adata[1] -= G * TIMESLICE ;
                        sp.pos.data.adata[0] += sp.speed.data.adata[0] * TIMESLICE;
                        sp.pos.data.adata[1] += sp.speed.data.adata[1] * TIMESLICE;
                        sp.pos.data.adata[2] += sp.speed.data.adata[2] * TIMESLICE;

                        if (sp.pos.data.adata[1] < BOTTOM)
                        {
                                sp.bLive = false;
                        }
                }
                else
                {
                        memset(&sp.pos, 0, sizeof(sp.pos));
                        rho = (rand() % 20) * PI / 180;
                        theta = (rand() % 360) * PI / 180;

                        sp.speed.data.adata[2] = SCALAR_SPEED * cos(theta) * sin(rho);
                        sp.speed.data.adata[0] = SCALAR_SPEED * sin(theta) * sin(rho);
                        sp.speed.data.adata[1] = SCALAR_SPEED * cos(rho);

                        sp.bLive = true;
                }
        }
}


void DrawSpring(const Coordinate4& CamPos, GXCShape* ps)
{
        GLuint i;
        GLfloat rotAngle;


        Vector4        vecDiff;
        Vector4 rotAxis;
        Vector4 ZAxis;
        ZAxis.data.adata[0] = 0;
        ZAxis.data.adata[1] = 0;
        ZAxis.data.adata[2] = 1;
        ZAxis.data.adata[3] = 1;
       

        for ( i = 0 ; i < cnt ; i++ )
        {
                if (sp.bLive)
                {
                        vecDiff = sp.pos - CamPos;
                        CrossProduct(vecDiff.data.adata, ZAxis.data.adata, rotAxis.data.adata);
                        rotAngle = CalculateAngle(vecDiff, ZAxis) / PI * 180;
                        glPushMatrix();
                               
                                glTranslatef(sp.pos.data.adata[0], sp.pos.data.adata[1], sp.pos.data.adata[2]);
                                glRotatef(-rotAngle, rotAxis.data.adata[0], rotAxis.data.adata[1], rotAxis.data.adata[2]);
                                ps->Draw();

                        glPopMatrix();
                }
        }
}

1

主题

4

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2007-10-21 20:30:00 | 显示全部楼层

Re:求喷泉源码

第一个是计算水滴的坐标的,简单的物理加速度公式,adata里面0,1,2分别是x,y,z的坐标,一共有150个粒子。

第二个是粒子系统的广告牌算法。。。显示用的。。。根喷泉没啥关系
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-16 04:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表