游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1863|回复: 1

有点想不明白,哪位大哥帮我分析一下,谢谢

[复制链接]

18

主题

21

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2007-6-12 17:37:00 | 显示全部楼层 |阅读模式
std::list&ltarticles> fire;

void DrawFire()
{
        std::list<Particles>::iterator pointer;
        for(pointer=fire.begin();pointer!=fire.end();pointer++)
        {
                if(pointer->dead==true)
                        pointer=fire.erase(pointer);
        }
        for(pointer=fire.begin();pointer!=fire.end();pointer++)
        {
                glPushMatrix();
                glTranslatef(56, 6, 56);
                pointer->Render();
                glPopMatrix();
        }
       
        if(fire.size()>2000) return;
        float x=GetRandom(-1.6f, 1.6f);
        float y=2.0f;
        float z=GetRandom(-1.6f, 1.6f);
        Particles p(x,y,z);
        fire.push_back(p);
这段绘制火的程序具体是如何实现的?
里面的fire.end()是不是等于2000啊?
我不大明白,程序里的pointer是不是想当于链表里的标记?std::list<Particles>::iterator pointer;这句代码有代表什么?下面的循环也不是很明白,
请哪位大虾指点一下,小弟先谢了...最好能详细一些...谢谢
[em16]

21

主题

120

帖子

129

积分

注册会员

Rank: 2

积分
129
发表于 2007-6-13 10:56:00 | 显示全部楼层

Re:有点想不明白,哪位大哥帮我分析一下,谢谢

去看一下STL的内容吧。
循环入口翻译成你理解的话就是:
fire[ N ];
for ( int i=0; i < N; ++i )
{
particle = fire;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 04:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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