C语言实现【EasyX库——Flappy Bird】图片界面+添加声音+鼠标交互

本文介绍如何使用C语言结合EasyX库创建Flappy Bird游戏,包括小鸟飞行逻辑、碰撞检测、计分系统,同时添加了声音效果和鼠标交互功能。提供了代码素材及运行结果展示。
摘要由CSDN通过智能技术生成


1.目标要求:

1.小鸟默认向右向下飞,按空格或左键会使小鸟弹起向上
2.小鸟每通过一根柱子,分数加1
3.若小鸟碰到柱子或边框,游戏结束
4.添加图片+添加声音


2.C语言代码:

【代码素材文件、工程文件】:https://ws28.cn/f/2auwqrnj5ig
或者:https://download.csdn.net/download/weixin_43503632/12331258
若链接失效,下方评论我会再发

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<graphics.h>//需要提前下载(EasyX库函数)
#include<conio.h>
#pragma comment(lib,"Winmm.lib")//音乐

/*
    	《flappy bird》	by:你最珍贵
    	
			 --------------------------------------
			| 控制信号:|      向上     |   暂停   |
			 -------------------------------------- 
			|   操作  :| 空格&鼠标左键 | Esc&右键 |
			 --------------------------------------
	 
	 1.小鸟默认向右向下飞,按空格或左键会使小鸟弹起向上  
	 2.小鸟每通过一根柱子,分数加1
	 3.若小鸟碰到柱子或边框,游戏结束 

*/

/*
		声音导入与使用
	播放MP3,使用API函数mciSendString。
	使用前,需要在函数外引用 Windows Multimedia API
	#pragma comment(lib,"Winmm.lib")

		下面这两条语句可以循环播放背景音乐
	mciSendString("open E:\\background.mp3 alias bkmusic", NULL, 0,NULL);//背景音乐
	mciSendString("play bkmusic repeat", NULL, 0, NULL); // 循环播放

		下面可以播放一次音效
	mciSendString("open E:\\Jump.mp3 alias jpmusic", NULL, 0, NULL); //打开跳动音乐
	mciSendString("play jpmusic", NULL, 0, NULL); // 仅播放一次

	!!!如果文件名中有空格,需要用双引号引起来文件名(注意转义):
mciSendString("open \"D:\\My Music\\俞丽拿 梁祝 化蝶.mp3\" alias mymusic", NULL, 0, NULL);

  */
int bird_width;//小鸟宽
int bird_long;//小鸟长
int column_width;//柱子宽度
int column_long;//柱子长度
int interface_x;//图形窗口大小(宽*长)
int interface_y;

int IsEnd;//是否结束 
int scores;//分数 
int slow_v,slow_v_num;//移动变慢的值(越大速度越慢),移动变慢的变量
int slow_vbird,slow_vbird_num;//小鸟移动变慢的值(越大速度越慢),移动变慢的变量
int bird_x,bird_y;//小鸟位置 
int bird_jump; //小鸟跳跃变量 =0时不跳 =3、2、1时跳跃 
int column_x[2],column_y[2];//柱子位置

IMAGE img_bk,img_bk1,img_bked;//背景
IMAGE img_bd1, img_bd2;//bird(1为遮罩图,2为原图)
IMAGE img_clup1,img_clup2,img_cldown1,img_cldown2;//柱子上、柱子下
IMAGE gameover1,gameover2;//gameover图片
IMAGE score1[10],score2[10];//分数图片

void startup(){
   	//【数据初始化】  
	bird_width=34;
	bird_long=24;
	column_width=140;//柱子宽度
	column_long=600;//柱子长度
	interface_x=350;//图形窗口大小(宽*长)
	interface_y=600;
	
	IsEnd = 0;
	scores=0;	
	slow_v=40;
	slow_v_num=1; 

	bird_x=interface_x/4;//小鸟位置
	bird_y=interface_y/2;
	bird_jump=0;
	slow_vbird=8;//小鸟的慢速变量 
	slow_vbird_num=1;

	column_x[0]=interface_x;//柱子位置
	column_y[0]=(-1)*column_long+(1.0/12)*interface_y+rand()%(interface_y*7/12);
	column_x[1]=column_x[0]+interface_x;//第二根柱子默认在之后相差一个屏幕宽
	column_y[1]=(-1)*column_long+(1.0/12)*interface_y+rand()%(interface_y*7/12);
	
	//加载背景图、小鸟图、柱子上下gameover
	loadimage(&img_bk,"素材库\\backgroundfd.jpg");//加载图片,()中 &后加图片变量、""中加图片地址(图片在工程中可以写相对地址,前面的不用写)(注意转义字符\\)
	loadimage(&img_bk1,"素材库\\backgroundfd1.jpg");
	loadimage(&img_bked,"素材库\\beforegame.jpg");
	loadimage(&img_bd1,"素材库\\bird1-1.gif");//小鸟
	loadimage(&img_bd2,"素材库\\bird1-2.gif");
	loadimage(&img_clup1,"素材库\\stone_up2.gif");//柱子上
	loadimage(&img_clup2,"素材库\\stone_up1.gif");
	loadimage(&img_cldown1,"素材库\\stone_down2.gif");//柱子下
	loadimage(&img_cldown2,"素材库\\stone_down1.gif");
	loadimage(&gameover1, "素材库\\gameover1.gif");//GAMEOVER字样图片
	loadimage(&gameover2, "素材库\\gameover2.gif");
	//加载0 ~ 9数字
	loadimage
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值