• 大小: 44KB
    文件类型: .cpp
    金币: 2
    下载: 1 次
    发布日期: 2021-07-12
  • 语言: C/C++
  • 标签: C语言  

资源简介

我的C语言作业;程序运行需配置好SDL;

资源截图

代码片段和文件信息

#include “SDL/SDL.h“
#include 
#include 
#include 






SDL_Surface * screen;
SDL_Surface * background;
//定义一个结构体数组,用于记录图片指针,以释放内存空间;
SDL_Surface * shiFang[4];
//定义一个记录坐标的数组。
SDL_Rect zuoBiao;
//定义一个指针数组,每一个指向一个方块;
SDL_Surface * fangKuai;

//定义一个变量接收事件;
SDL_Event e;
//定义一个bool变量,是其永远假,为了使事件接收变成死循环;
bool Quit = false;
//定义一个随机数,用来决定下一个出什么;
int suiJiShu;
//用来让方块下落;
int k = 1;
//用来确定是否此层该消;
int floor = 0;
//用来记录消层时的起始层;
int firstFloor = 0;
//定义一个变量,用来记录所需消掉的层数;
int floors = 0;
//定义4个变量,用来记录原来的位置;
int x1x2x3x4;
//定义四个变量,用于四个方块的逐渐下落;
int y1 = 0y2 = 0y3 = 0y4 = 0;
//定义一个变量用于判断四个方块中靠边的那个;
int temp1 = 0;
//定义一个整型二维数组,用于记录它们的在前一次刷新时它们下一个数的情况,以便用于方块下落时和左右移时的边界判断;
int panDuan[4][3] = {
                 {000}
                 {000}
 {000}
 {000}
                    };                   
//定义一个临时变量用于选择动作;
int temp;
//定义一个二维数组,用于边界检测;
int check[5][13];
//定义一个int型接收边界判断的值;
int check1;
//定义一个13*24的二维数组,来操作游戏区;每一个数对应一个坐标;
int youXiQu[26][13] = {
                   {0000000000000}
                   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {0000000000000}
   {1111111111111}
   {1111111111111}
                  };


/*
** 功能:根据数组中的数字显示图片;
** 参数:无;
** 返回值:无;
*/
void showPictures()
{
    //此句是核心,用于显示图片;
for(int i = 0 ;i < 24;i++)
{
for(int j = 0;j < 13;j++)
{
if(youXiQu[i][j] == 1)
{
//坐标与数组关系:x = 140+20*j;y=i*20;
//T方块轴的位置;
fangKuai = SDL_LoadBMP(“fangKuai.bmp“);
fangKuai = SDL_DisplayFormat(fangKuai);
zuoBiao.x = 140 + 20*j;
zuoBiao.y = i * 20;
SDL_BlitSurface(fangKuaiNULLscreen&zuoBiao);
//向屏幕发送完后将内存释放;
            SDL_FreeSurface(fangKuai);
}
}
}
SDL_Flip(screen);
SDL_Delay(100);
}

/*
** 功能:判断游戏结束;
** 参数:无;
** 返回值:无;
*/

void gameOv()
{
    for(int m = 0;m < 1;m++)
{

for(int k = 0;k < 13;k++)
{
    if(youXiQu[m][k] == 1)
{
    //T方块轴的位置;
fangKuai = SDL_LoadBMP(“gameOver.bmp“);
fangKuai = SDL_DisplayFormat(fangKuai);
zuoBiao.x = 80;
zuoBiao.y = 23;
SDL_BlitSurface(fa

评论

共有 条评论