| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7933 人关注过本帖
标题:一个下雪小程序,刚刚学写的
只看楼主 加入收藏
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
结帖率:96.15%
收藏
已结贴  问题点数:20 回复次数:63 
一个下雪小程序,刚刚学写的
snow.zip (86.99 KB)

某人让我发的,不过源码要等一会发,感觉有BUG,一会儿吃完饭再改改,御坂御坂说道

------
补充:修改了一下,不然没有VC2005的人运行不了


-----------------
再补充:
这里是新版本的程序:
snow.zip (86.98 KB)

以下是源代码:

程序代码:
#define _GRAPHICS_LIB_LINK_ 1
#include"yzfy_graphics.h"
#include"yzfy_dos.h"

#define MAXSNOW 500
struct SNOW
{
    int n;
    int lx, ly;
    int color;
    double x;
    double y;
    double cx;
    double dcx;
    double vx;
    double vy;
    double k;
};

const int sc_width = 640;
const int sc_height = 480;

void InitSnow(struct SNOW *snow)
{
    double vx = 0.5;
    double fvx = 0.5;
    double vy = (double)random(1000) / 1000;
    snow->x = random(sc_width);
    snow->y = 0;
    snow->cx = snow->x;
    snow->dcx = (double)random(1000) / 1000 * 2 * vx - vx;
    snow->k = (double)random(1000) / 1000 * -0.001;
    snow->vx = (double)random(1000) / 1000 * 2 * fvx - fvx;
    snow->vy = vy * 2.0 + 0.5;

    snow->color = (int)(192 * vy) + 64;
    snow->color = (((snow->color<<8) | snow->color) << 8) | snow->color;
}

void MoveSnow(struct SNOW *snow, double dt)
{
    double d = dt * 60 / 1000;

    putpixel(snow->lx, snow->ly, 0);

    snow->x += snow->dcx * d;
    snow->cx += snow->dcx * d;
    snow->y += snow->vy * d;

    if (snow->y > sc_height)
        InitSnow(snow);

    snow->lx = (int)snow->x;
    snow->ly = (int)snow->y;
    putpixel(snow->lx, snow->ly, snow->color);
}

int __stdcall OnUpdate(void* param, float ms)
{
    struct SNOW* snow = (struct SNOW *)param;
    int i;
    for (i = 1; i <= snow->n; i++)
    {
        snow[i].vx += (snow[i].x - snow[i].cx) * snow[i].k * 0.99;
        snow[i].x += snow[i].vx;
    }
    return 0;
}
int __stdcall OnRender(void* param, float ms)
{
    int i;
    for (i = 1; i <= ((struct SNOW*)param)->n; i++)
        MoveSnow((struct SNOW*)param+i, ms);
    return 0;
}

int main()
{
    {
        int g = TRUECOLORSIZE, m = sc_width | (sc_height << 16);
        initgraph(&g, &m, "Snow");
        randomize();
    }
    {
        struct SNOW snow[MAXSNOW+1];
        int i;
        snow[0].n = MAXSNOW;
        for (i = 1; i <= MAXSNOW; i++)
        {
            InitSnow(snow + i);
            snow[i].y = random(sc_height);
        }
        ege_gameloop(OnUpdate, snow, 60, OnRender, snow, 0);
    }

    closegraph();
    return 0;
}
至于代码所用到的库,请自己下载吧,御坂说

[ 本帖最后由 御坂美琴 于 2010-8-22 14:09 编辑 ]
搜索更多相关主题的帖子: 下雪 
2010-08-21 19:51
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:1 
御姐的贴 狂顶

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-08-21 19:52
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:1 
看错了,原来要等一会发的啊。

我就是真命天子,顺我者生,逆我者死!
2010-08-21 20:02
longlong89
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:小飞侠
威 望:6
帖 子:1043
专家分:2754
注 册:2009-8-18
收藏
得分:1 
不错哦

想象力征服世界
2010-08-21 20:05
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:1 
yzfy_graphics.initgraph
yzfy_graphics.random
yzfy_gra.closegraph
yzfy_gra.setfillstyle
yzfy_gra.initgraph
yzfy_gra.putpixel
yzfy_gra.ege_gameloop

这个是谁的小短裤哇

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2010-08-21 20:31
daijiarong
Rank: 1
等 级:新手上路
帖 子:19
专家分:1
注 册:2010-8-6
收藏
得分:1 
御姐,很崇拜你哦
2010-08-21 20:48
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
我用学姐的图形库写的,写的太乱了,代码还在修改中,御坂回答道

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-08-21 21:15
我要吃西瓜
该用户已被删除
收藏
得分:1 
提示: 作者被禁止或删除 内容自动屏蔽
2010-08-21 22:54
liuzhengshen
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:83
专家分:141
注 册:2010-4-23
收藏
得分:1 
支持下
2010-08-22 10:08
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
源码呢?

我就是真命天子,顺我者生,逆我者死!
2010-08-22 10:48
快速回复:一个下雪小程序,刚刚学写的
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041063 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved