Easyx库-2048小游戏

本文介绍了一款使用Easyx图形库编写的2048小游戏,提供了完整的源代码链接,帮助读者理解如何结合Easyx进行游戏开发。
摘要由CSDN通过智能技术生成
#include <graphics.h>
#include <stdio.h>
#include <time.h>
#include <conio.h>
#pragma comment(lib,"Winmm.lib")

#define SQU_INTERVAL 12       //正方形的间隙
#define SQU_LONG 130          //正方形的边长

void map_welcome();          //欢迎
void map_start();            //开始设置初始值
int map_add(void);           //获取剩余空格随机值
int map_cutSqu(int num);     //剪切小方格背景
void map_drawSqu();          //数字添加图片上
int map_move(void);          //方格移动
int map_check(void);         //满格后方格检查邻近方格有相同的
void map_over();             //游戏结束

IMAGE background;
IMAGE squ;
IMAGE squAll;
IMAGE black;
int map[4][4];               //将游戏界面看作二维数组
int full_num=0;              //有数字方格的个数
int space_num;               //空方格的个数
int position;                //随机产生数字的位置(看作一维数组)

void main()
{
	srand((unsigned)time(NULL));
	initgraph(580,580);
	map_welcome();           //调用欢迎方法
	map_start();             //调用初始化方法,二维数组值全为0
	mciSendString("open audio/move.mp3 alias move",NULL,0,NULL);
	mciSendString("play move from 0",NULL,0,NULL);
	map_add();               //调用获取剩余空格随机值方法
	map_drawSqu();           //调用数字添加到图片方法
	BeginBatchDraw();        //开始批绘制
	while(1)
	{	
		if(map_move())       //调用移动方法
		{
			mciSendString("play move from 0",NULL,0,NULL);
			map_add();       //若移动发生改变,则再调用产生随机值方法
		}
		putimage(0,0,&background);
		map_drawSqu();
		FlushBatchDraw();               //批绘制
		if(!map_check()&&full_num==16)            
		{
			map_over();                 //如果满格并且检查函数返回值为0(邻近无相同数字),调用结束函数
		}
		Sleep(40);
	}
	
}

void map_welcome()//欢迎
{
	loadimage(NULL,"image/welcome.jpg");      //图片直接加载到屏幕
	MOUSEMSG m;
	while(1)
	{
		m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值