加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
data.h 4.00 KB
一键复制 编辑 原始数据 按行查看 历史
/*****************************************************************************
* Copyright (c) gugulu858 2024-7-28
* BeatMouse is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan
* PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
* KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
******************************************************************************/
#ifndef _DATA_H_
#define _DATA_H_
/*头文件*/
#include<stdio.h>
#include "SDL.h"
#include "SDL_image.h"
/*图片路径*/
#define PATH_BACEGROUND_1 ".\\image\\background_1.png"
#define PATH_BACEGROUND_2 ".\\image\\background_2.png"
#define PATH_BACEGROUND_3 ".\\image\\background_3.png"
#define PATH_BACEGROUND_4 ".\\image\\background_4.png"
/* 精灵图片本地路径 */
#define PATH_SPRITE_NORMAL ".\\image\\spriteNormal.png" //普通地鼠
#define PATH_SPRITE_BOMB ".\\image\\spriteBomb.png" //炸弹地鼠
#define PATH_SPRITE_OCTOPUS ".\\image\\spriteOctopus.png" //普通章鱼
#define PATH_SPRITE_BEAT ".\\image\\spriteBeat.png" //被打地鼠
#define PATH_SPRITE_OCTBEAT ".\\image\\spriteOctBeat.png" //被打章鱼
/* 炸弹效果图片本地路径 */
#define PATH_SPRITE_BLAST_1 "./image/spriteBlast_1.png"
#define PATH_SPRITE_BLAST_2 "./image/spriteBlast_2.png"
/* 墨水图片本地路径 */
#define PATH_SPRITE_INK "./image/spriteink.png"
/*数字图片本地路径*/
#define PATH_NUMBER ".\\image\\number.png"
/*窗口设置*/
#define WINDOW_WIDTH 360
#define WINDOW_HEIGHT 507
/*图片1位置*/
#define BACKGROUND_PIC1_W WINDOW_WIDTH
#define BACKGROUND_PIC1_H 222
#define BACKGROUND_PIC1_X 0
#define BACKGROUND_PIC1_Y 0
/*图片2位置*/
#define BACKGROUND_PIC2_W WINDOW_WIDTH
#define BACKGROUND_PIC2_H 117
#define BACKGROUND_PIC2_X 0
#define BACKGROUND_PIC2_Y 202
/*图片3位置*/
#define BACKGROUND_PIC3_W WINDOW_WIDTH
#define BACKGROUND_PIC3_H 120
#define BACKGROUND_PIC3_X 0
#define BACKGROUND_PIC3_Y 298
/*图片4位置*/
#define BACKGROUND_PIC4_W WINDOW_WIDTH
#define BACKGROUND_PIC4_H 109
#define BACKGROUND_PIC4_X 0
#define BACKGROUND_PIC4_Y 398
/* 精灵位置信息 */
#define SPRITE_W 155 // 精灵宽度
#define SPRITE_H 135 // 精灵高度
#define SPRITE_1_X -15 // 精灵1的X坐标
#define SPRITE_1_Y 105 // 精灵1的Y坐标
#define SPRITE_2_X 105
#define SPRITE_2_Y SPRITE_1_Y
#define SPRITE_3_X 225
#define SPRITE_3_Y SPRITE_1_Y
#define SPRITE_4_X SPRITE_1_X
#define SPRITE_4_Y 200
#define SPRITE_5_X SPRITE_2_X
#define SPRITE_5_Y SPRITE_4_Y
#define SPRITE_6_X SPRITE_3_X
#define SPRITE_6_Y SPRITE_4_Y
#define SPRITE_7_X SPRITE_1_X
#define SPRITE_7_Y 300
#define SPRITE_8_X SPRITE_2_X
#define SPRITE_8_Y SPRITE_7_Y
#define SPRITE_9_X SPRITE_3_X
#define SPRITE_9_Y SPRITE_7_Y
/* 墨水位置 */
#define INK_X 5
#define INK_Y 80
#define INK_W 380
#define INK_H 400
/* 分数每位数字大小及数字位置 */
#define NUMBER_DST_Y 10
#define NUMBER_DST_W 32
#define NUMBER_DST_H 40
#define NUMBER_SRC_Y 0
#define NUMBER_SRC_W 40
#define NUMBER_SRC_H 50
/* 精灵每种状态持续帧数 */
#define FRAMENUMBER_UP 8 //上升状态帧数
#define FRAMENUMBER_WAIT 30 //等待状态帧数
#define FRAMENUMBER_DOWN 8 //下降状态帧数
#define FRAMENUMBER_BEAT 8 //被打状态帧数
#define FRAMENUMBER_INK 60 //墨水持续帧数
/*图片类型结构体*/
typedef struct picture
{
SDL_Texture* pPic;//图片纹理
SDL_Rect srcRect;//源区域
SDL_Rect dstRect;//目标区域
}Picture;
/* 精灵的类型枚举 */
typedef enum spriteType
{
TypeEmpty = 0, // 无类型
TypeNormal, // 普通地鼠
TypeBomb, //炸弹地鼠
TypeOctopus // 章鱼
} SpriteType;
/* 精灵的状态枚举 */
typedef enum spriteStatf
{
StateEmpty = 0, //无状态
StateWait, // 等待状态
StateUp, // 上升状态
StateDown, // 下降状态
StateBeat // 被打状态
} SpriteState;
/* 精灵结构体 */
typedef struct sprite
{
SpriteType type; // 精灵类型
SpriteState state; // 精灵状态
SDL_Rect initRect; // 精灵显示区域
int runningTimes; // 持续时间计数
}Sprite;
#endif // !_DATA_H_
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化