• 大小: 7.35MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-26
  • 语言: C/C++
  • 标签: SDL2  贪吃蛇  c语言  

资源简介

一款基于SDL2的贪吃蛇项目,包含了SDL2_mixer和image,可以加载音乐和图片,具体的内容参照我的博客

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 

#define LEFT  1
#define UP    2
#define DOWN  3
#define RIGHT 4
#define MAX_X 53
#define MAX_Y 25
#define TILE_SIZE 20
#define width 1080
#define height 520
#define size 100

typedef struct game_node {
    int x;
    int y;
} node;

node circle;
node oldcircle;
node square;
node oldone[size];
node olderone[size];

//main functions:
void input(void);
bool update(void);
void next_square(void);
void gameover(void);
void init(void);
void render(void);
void draw_object( node object SDL_Texture *texture );

//new functions:
void start();
void generated();
void getnode(int number);
void record(node circle);
void oldrecord();
void judgement();
void speed_control();
void loadbgm();
void score();

//the variables
int dir;
bool eaten;
int number;
bool continued = true;
bool pause;
int delay;
int x_coory_coor;
int original_x_coororiginal_y_coor;
int levelcounts;

// game data
SDL_Window *openwindow = NULL;
SDL_Window *window = NULL;
SDL_Window *window2 = NULL;

SDL_Renderer* openrend = NULL;
SDL_Renderer* renderer = NULL;
SDL_Renderer* renderer2 = NULL;

SDL_Surface*  white_surface = NULL;
SDL_Surface*  square_surface = NULL;
SDL_Surface*  circle_surface = NULL;
SDL_Surface*  head_surface  = NULL;

SDL_Texture*  white_texture = NULL;
SDL_Texture*  square_texture = NULL;
SDL_Texture*  circle_texture = NULL;
SDL_Texture*  head_texture = NULL;

int main(int argc char* argv[])
{
    start();

    delay = 10; //the original speed
    loadbgm(); //load bgm;
    init();   // setup the game data
    render(); // render initial state

    level = 10;
    counts = 0;

    SDL_Event event;
    while( continued )// game loop
    {
        speed_control();
        //control the speed.
        while(SDL_PollEvent(&event))
        {
            if(event.type == SDL_QUIT)
            {
                continued = false;
            }
            else if(event.type == SDL_MOUSEBUTTONDOWN)
            {
                if(event.button.button == SDL_BUTTON_LEFT)
                {
                    pause = true;
                }
                else if(event.button.button == SDL_BUTTON_RIGHT)
                {
                    pause = false;
                }
            }
        }
        if(!pause){
        input();           // keyboard input

        if(counts%level == 0)
        {
            if( !update() )    // update and check
            gameover();    // if finished
        }

        generated();
        judgement();
        render();          // render new state

        SDL_Delay( delay );
        }
        counts++;
    }
    SDL_DestroyWindow(window);
    score();
    SDL_DestroyWindow(window2);
    SDL_Quit();

    return 0;
}
void start()
{
    Mix_OpenAudio(44100 MIX_DEFAULT_FORMAT 220480);
    Mix_Music* bgm1 = Mix_LoadMUS

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      70976  2018-04-25 11:31  eatsnake\bin\Debug\eatsnake.exe

     文件       1151  2018-03-13 10:56  eatsnake\eatsnake.cbp

     文件      19715  2018-05-21 14:21  eatsnake\eatsnake.depend

     文件        360  2018-05-24 17:22  eatsnake\eatsnake.layout

     文件    1684854  2018-01-31 19:27  eatsnake\images\background.bmp

     文件     769174  2018-01-31 19:40  eatsnake\images\circle.bmp

     文件     642698  2018-01-31 19:49  eatsnake\images\head.bmp

     文件     144954  2018-04-07 15:49  eatsnake\images\lastimage.bmp

     文件     786486  2018-01-26 21:29  eatsnake\images\openpage.bmp

     文件    2657382  2018-01-31 19:54  eatsnake\images\square.bmp

     文件      25810  2017-05-02 16:29  eatsnake\images\white.bmp

     文件     387072  2017-10-23 23:32  eatsnake\libFLAC-8.dll

     文件     380416  2017-10-23 23:32  eatsnake\libmodplug-1.dll

     文件     339456  2017-10-23 23:32  eatsnake\libmpg123-0.dll

     文件      47104  2017-10-23 23:32  eatsnake\libogg-0.dll

     文件     196608  2017-10-23 23:32  eatsnake\libvorbis-0.dll

     文件      63488  2017-10-23 23:32  eatsnake\libvorbisfile-3.dll

     文件       1649  2017-10-23 23:32  eatsnake\LICENSE.FLAC.txt

     文件         59  2017-10-23 23:32  eatsnake\LICENSE.modplug.txt

     文件      41490  2017-10-23 23:32  eatsnake\LICENSE.mpg123.txt

     文件       1625  2017-10-23 23:32  eatsnake\LICENSE.ogg-vorbis.txt

     文件      12996  2018-04-25 11:31  eatsnake\main.c

     文件     110044  2018-01-25 22:27  eatsnake\musics\1.wav

     文件    3628048  2018-01-25 23:32  eatsnake\musics\bgm.mp3

     文件    2468022  2018-01-31 18:46  eatsnake\musics\bgm2.mp3

     文件     120044  2018-01-31 19:00  eatsnake\musics\lastbgm.wav

     文件      31755  2018-04-25 11:31  eatsnake\obj\Debug\main.o

     文件     996352  2017-10-24 03:29  eatsnake\SDL2.dll

     文件     139264  2017-10-23 23:32  eatsnake\SDL2_mixer.dll

     目录          0  2018-04-25 11:31  eatsnake\bin\Debug

............此处省略9个文件信息

评论

共有 条评论