【四圣龙神录的编程教室】第20章、我们来绘制背景吧

来源:互联网 发布:淘宝交易量查询 编辑:程序博客网 时间:2024/04/29 18:56

原文地址:

http://dixq.net/rp/20.html


接下来我们来绘制背景吧,来绘制龙神录的第一个舞台吧。

虽然说起来有点复杂,我们预先在数据文件里存放一个背景文件的图片快照,把这个滚动起来看看吧。

要把背景滚动起来,基本说来就是上下连续的描绘两张一样的图片,把图片大小的周期和滚动的周期调成一样的就行了。

————————————————————————————————————————————————————————————

---- graph_back.cpp 的改动 ----#include "../include/GV.h"void graph_back00(){        SetDrawArea( 32 , 16 , 416 , 464 ) ;//设置绘制区域        DrawGraph(FIELD_X,count%700+FIELD_Y-700,img_back[0],FALSE);        DrawGraph(FIELD_X,count%700+FIELD_Y    ,img_back[0],FALSE);        SetDrawArea( 0, 0, 640, 480);//返回原来的区域}void graph_back_main(){        graph_back00();}
————————————————————————————————————————————————————————————

首先,由于要绘制大面积的图像,对不会显示的部分进行计算绘制是不必要的。

所以,我们把可能要绘制的部分放到 FIELD 区域里面。

然后,把一张图片,在错开一张图片的大小的两个位置上进行绘制,然后以相同的速度进行滚动。

这里使用到了每一帧都会增加的 count 变量。

额,目前就是一个图片的滚动效果,所以还比较简单啦。

————————————————————————————————————————————————————————————————

---- graph.cpp 的 graph_main 函数里添加如下部分 ----extern void graph_back_main();void graph_main(){        graph_back_main();---- GV.h 里加入如下代码 ----GLOBAL int img_back[10];//背景图片GLOBAL int func_state,stage_count,count;---- load.cpp 的 load函数里添加如下部分 ----img_back[0] = LoadGraph("../dat/img/back/0/back0.png");---- main.cpp 的main函数改成如下这样 ----            case 100://通常的处理                calc_ch();   //计算角色                ch_move();   //角色的移动操作                cshot_main();//自机射击的主函数                enemy_main();//敌机的处理的主函数                shot_main(); //射击的主函数                out_main();  //碰撞检测                effect_main();//特效的主函数                graph_main();//绘制的主函数                stage_count++;                break;---- main.cpp 里添加如下部分 ----                music_play();        if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//如果按下ESC的话,跳出        ScreenFlip();//刷新双缓冲        count++;    }    DxLib_End();//DxLib的退出处理    return 0;}
————————————————————————————————————————————————————————————————

运行结果:

http://dixq.net/rp/swf/20.swf


(PS:

拖延症犯了,本来都烂尾了,看看,这都半年没更了啊。

这半年,坚持跑步一个月后,感觉身体不行,去医院检查了之后就没跑了。买了个琴,也没怎么练了。

半年,在新公司呆了半年,项目都还没上线,唉。。据说快了吧。反正我就一打酱油的,今天又一个小问题卡了半天。。

技术没长进,代码框架不大懂,自己的东西bug一堆。不敢乱改,出错只希望不是我的错,遇到问题就慌了去寻求帮助。。。

老大今天一句话说的对啊,没有无缘无故的错误,程序怎么出错的查一下改回来就是了。别说不知道,老总在你后面,你敢说不知道?

唉,技术渣的码农啊。。。)


本人CSDN博客目录:

http://blog.csdn.net/tidus5


0 0