目录
一、介绍
1、题目要求
2、资源
二、关键功能的实现
1、设计的结构体和链表:
2、弹弓拉绳的实现:
3、当绳子拉伸达到上限时,仍然使小鸟可以改变方向:
3、计算小鸟飞出后的任意时刻的位置:
这个寒假翻电脑的时候找到了上学期C语言课设的介绍视频。这是我自己做的目前来说最长的代码,实现的功能也是最复杂的,对我来说还是很有纪念意义的。我之后也把视频传到B站上了:《愤怒的小鸟》——C语言课设。感兴趣的同学可以去看看。
在这里我简单分享一下我的设计,也许可以帮到有需要的人。
1、题目要求老师当时对于我们的要求是使用easyX实现图形界面,利用贴图和重画实现动画,必须使用链表。除此之外,只能使用C语言语法。
2、资源所有的资源都在这里了,里面包含一个可执行文件和一个文件夹,文件夹里有全部的图片、音乐、源代码还有工程文件。
链接:https://pan.baidu.com/s/1vjQ48dcR7DNjKtKG6OQgHg?pwd=qc1v
提取码:qc1v
除此之外,在大一上学期的寒假,我是通过 @童晶 老师的课程视频学习使用easyX的,感觉很不错,有需要的同学可以了解一下。
二、某些功能的实现 1、设计的结构体和链表:typedef struct users{
char id[100];
char password[100];
int score[5]={0};
int good[5] = { 0 }; //用来存购买的道具,0放鸟制传送门
int money=0;
}users;
typedef struct bird_info { //用结构体存储画面上某一点的图像,role为1(小红鸟),2(笑鸟)
int x;
int y;
int role;
int fire; //是否发射
struct bird_info* next;
}b_info;
typedef struct pig_info { //用结构体存储画面上某一点的图像,role为1(小猪),2(笑猪)
int x;
int y;
int role;
int count;
struct pig_info* next;
}p_info;
typedef struct stick_info { //用结构体存储画面上某一点的图像,role为1(木棍障碍)
int x;
int y;
int role;
struct stick_info* next;
}s_info;
b_info* bH; //将b_info变量串成链表,将头指针定义为全局变量,各函数均可访问
p_info* pH; //将p_info变量串成链表,将头指针定义为全局变量,各函数均可访问
s_info* sH; //将s_info变量串成链表,将头指针定义为全局变量,各函数均可访问
users user;
2、弹弓拉绳的实现:实际上是利用了easyX的画线函数,不过我把线的宽度调大了,也改了线的颜色。然后将线的一端设置为小鸟的坐标,一端为弹弓的坐标。
3、当绳子拉伸达到上限时,仍然使小鸟可以改变方向:void bposition1(short x1,short y1) { //当绳子过长时计算小鸟的位置 (传入鼠标位置)
double sinx; //储存正弦值
double cosx; //储存余弦值
double heartx = 267; //圆心x坐标
double hearty = 515; //圆心y坐标
double l= distance(x1, y1, heartx, hearty);
sinx = (hearty - y1) / l;
cosx = (heartx - x1) / l;
bH->x = heartx - cosx * 35-25;
bH->y = hearty - sinx * 35-25;
}
3、计算小鸟飞出后的任意时刻的位置:void bposition(int a,int b) { //计算小鸟发出后的位置
static int speed = 0;
double vm=14; //绳的大合速度
double sin;
double cos;
float heartx = 267; //弹弓x坐标
float hearty = 515; //弹弓y坐标
double l=distance(a,b, heartx, hearty); //计算绳长
sin = (hearty - b) / l;
cos = (heartx - a) / l;
vx = vm * cos*l/35;
vy = vm * sin*l/35+10*times; //屏幕上 以向下为y坐标增加,取+号
if (speed == 10) {
times=times+0.2;
speed = 0;
}
else {
speed++;
}
}
这里的很多参数都是我自己反复尝试才确定的,虽然我也觉得这样直接用数字其实不利于程序的维护,但是就完成课设来说还是比较方便的。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文名称:《愤怒的小鸟》——大一下C语言程序课设-创新互联
当前链接:https://www.cdcxhl.com/article42/djdshc.html
成都网站建设公司_创新互联,为您提供动态网站、网站策划、品牌网站制作、服务器托管、定制网站、微信公众号
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联