C语言+EGE 推箱子小游戏

本文介绍如何利用C语言结合EGE库,详细阐述了开发一款推箱子小游戏的过程,涵盖游戏逻辑和图形界面的实现。
摘要由CSDN通过智能技术生成

C语言+EGE实现推箱子小游戏

**下面展示一些 内联代码片

// main.cpp
main函数进入代码块
#include "head.h"
#include "jiemian.cpp"
#include "caozuo.cpp"
#include "drawmap.cpp"
#include "playgame.cpp"
#include "shezhi.cpp"


int main()
{
   
    int x;
    setinitmode(0);
    initgraph(20*35,16*35);

loop:
    a.OpenFile("1.mp3");
    b.OpenFile("2.mp3");
    c.OpenFile("3.wav");

    jiemian();
    Level = caozuo();
    if(Level == 0)
    {
   
        return 0;
    }
    a.Close();
    while(Level < 100)
    {
   
        changeMap(Level);
        x = playgame();
        switch(x)
        {
   
                case 0:
                    drawmap();
                    break;
                case 1:
                    Level -= 2;
                    break;
                case 2:
                    break;
                case 3:
                    Level--;
                    break;
                case 4:
                    goto loop;
                    break;
        }
        Level++;
        if(Level<=0)
        {
   
            Level = 1;
        }

        if(Level >= 99)
        {
   
            Level = 99;
        }
        rememberlevel(Level);
    }
    getch();
    return 0;
}






#include "head.h"
int caozuo()//开始的操作
{
   

    mouse_msg msg = {
   0};
    for(; is_run(); delay_fps(60))
    {
   
        jiemian();
        msg.x = msg.y = 0;
        while(mousemsg())
        {
   
            msg = getmouse();
        }
        if(msg.x>=8*35&&msg.x<=12*35&&msg.y>=5*35&&msg.y<=6*35)//如果点击开始游戏
        {
   
            if(msg.is_left() == 1 && msg.is_up() == 1)
            {
   
                return 1;
            }
        }
        if(msg.x>=8*35&&msg.x<=12*35&&msg.y>=7*35&&msg.y<=8*35)//如果点击继续游戏
        {
   
            if(msg.is_left() == 1 && msg.is_up() == 1)
            {
   
                FILE* fp;
                fp = fopen("level.txt","r");
                fscanf(fp,"%d",&Level);
                fclose(fp);
                return Level;
            }
        }
        if(msg.x>=8*35&&msg.x<=12*35&&msg.y>=9*35&&msg.y<=10*35)//如果点击退出游戏
        {
   
            if(msg.is_left() == 1 && msg.is_up() == 1)
            {
   
                return 0;
            }
        }
        if(msg.x>=8*35&&msg.x<=12*35&&msg.y>=11*35&&msg.y<=12*35)//如果点击游戏说明
        {
   
            if(msg.is_left() == 1 && msg.is_up() == 1)
            {
   
                shuoming();
            }
        }
        if(msg.x>=8*35&&msg.x<=12*35&&msg.y>=13*35&&msg.y<=14*35)//如果点击游戏设置
        {
   
            if(msg.is_left() == 1 && msg.is_up() == 1)
            {
   
                shezhi();
            }
        }
    }

}





#include "head.h"


void drawmap()
{
   
    int x,y,i;
    num = 0;
    PIMAGE img[9];
    for(i = 0; i < 9; i++)
    {
   
        img[i] = newimage();
    }
    getimage(img[0],"images\\block.gif");
    getimage(img[1],"images\\wall.png");
    getimage(img[2],"images\\ball.png");
    getimage(img[3],"images\\box.png");
    getimage(img[4],"images\\down.png");
    getimage(img[5],"images\\up.png");
    getimage(img[6],"images\\right.png");
    getimage(img[7],"images\\left.png");
    getimage(img[8],"images\\box1.png");
     for(y = 0; y < 16; y++)
     {
   
         for(x = 0; x < 16; x++)
         {
   
            putimage(x*35,y*35,img[0]);
            if(Map[y-1][x] == 4 || Map[y-1][x] == 6)
            {
   
                if(ch == 1||ch == key_down)
                {
   
                    putimage_withalpha(NULL,img[4],x*35-7.5,(y-1)*35-27);
                }
                if(ch == key_up)
                {
   
                    putimage_withalpha(NULL,img[5],x*35-7.5,(y-1)*35-27);
                }
                if(ch == key_left)
                {
   
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值