【四圣龙神录的编程教室】第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
- 【四圣龙神录的编程教室】第20章、我们来绘制背景吧
- 【四圣龙神录的编程教室】第12章、来制作大量敌人的行动模式吧
- 【四圣龙神录的编程教室】第14章、来制作各种各样的弹幕数据吧
- 【四圣龙神录的编程教室】第15章、来制作凹梦的弹幕吧
- 【四圣龙神录的编程教室】第16章、来制作洩矢大人的弹幕吧
- 【四圣龙神录的编程教室】第22章、放炸弹来攻击吧
- 【四圣龙神录的编程教室】第23章、来制作决死炸弹吧
- 【四圣龙神录的编程教室】第24章、来制作boss吧
- 【四圣龙神录的编程教室】第0章 开始
- 【四圣龙神录的编程教室】第5章、研究下声明的方法吧
- 【四圣龙神录的编程教室】第6章、定制一下主循环里的调用函数吧
- 【四圣龙神录的编程教室】第9章、试试操作人物的移动吧
- 【四圣龙神录的编程教室】第11章、用Excel制作敌人的登场数据吧
- 【四圣龙神录的编程教室】第18章、给自机的子弹加上碰撞检测吧
- 【四圣龙神录的编程教室】第2章、首先运行下看看吧
- 【四圣龙神录的编程教室】第3章、使用全局变量看看吧
- 【四圣龙神录的编程教室】第4章、画个自机形象看看吧
- 【四圣龙神录的编程教室】第7章、把面板表示出来吧
- Android root权限破解分析
- 初识crontab
- S5PV210开发板 介绍camera V4L2 FIMC (3)
- SpringMVC Android 发送JSON数据
- NPOI2.1在docx页脚插入页码
- 【四圣龙神录的编程教室】第20章、我们来绘制背景吧
- S5PV210开发板 介绍camera 驱动 (4)
- yum [Errno 256] No more mirrors to try 解决方法
- 【Leetcode】Min Stack
- android Bound Service使用:继续Binder类绑定服务
- ios 中根据给定日期 获取星期几
- CRUD进阶
- U盘安装CENTOS6.5+WIN7双系统(win7下安装centos6.5)
- 编程珠玑11章——快速排序的改进