C语言/C++项目源码分享——黄金矿工
这里是一个C语言/C++项目黄金矿工的源码。
这个源码还有待完善,希望大家共同改进。
编译软件:VS2013
游戏的初始界面是这样子的
在这里我并没有写开始游戏的界面,大家可以自己加上去。
在没有抓取的条件下,钩子按照一个固定的速度左右摆动,想要抓取金子,石块或者随机奖励按空格键抓取,如果钩子碰到黄金,则钩子与金子一同回拉,金子在拉取到转轴处消失,地图上的金子减少一个。
下面是项目源码,做的不完整,欢迎大家指正。
#include<stdio.h>
#include<math.h>
#include<graphics.h>//easyx 包含头文件,可以使用提供的接口,函数
#define WIN_WIDTH 1080
#define WIN_HEIGHT 640
#define MAX_IMAGE 11 //最大图片数量
#define MAX_MINE 10 //最大物品数量
#define MAX_ANGLE 80 //最大角度
#define PI 3.1415926535898
//int a,char b
enum MINE //枚举图片数组下标
{
i_gold=1,
i_money=3,
i_soledown=5,
i_soleup=7,
i_stone=9,
i_bk = MAX_IMAGE-1,
};
enum MINE_TYPE //物品类型枚举
{
GOLD,
MONEY,
STONE,
//方向
LEFT,
RIGHT,
//状态,正常,伸长,缩短
M_NOMAL,
M_LONG,
M_SHORT,
};
struct Sole //角色信息
{
int x;//贴图位置
int y;
int width;//图片宽高
int height;
int coin;//金币
}sole;
struct Mine //物品
{
int x;
int y;
int szie; //边界判断
bool flag;//是否存在
int type;//物品类型,石头,金块,钱袋
int gold;//物品价值
}mine[MAX_MINE];
struct Hook //钩子
{
int x;
int y;
int endx;
int endy;
int len;//长度
int angle;//角度
int dir;//摆动方向
int vx;//速度分量
int vy;
int state;
int index;//记录抓到的物品下标
}hook;
IMAGE img[MAX_IMAGE];
int distance(Hook hook);
//初始化数据
void GameInit()
{
//创建窗口 init 初始化 graphics图形界面
initgraph(WIN_WIDTH, WIN_HEIGHT,SHOWCONSOLE);
//设置随机数种子
srand(GetTickCount());
//加载图片
for (int i = 0; i < MAX_IMAGE-1; i++)
{
char temp[25]="";
sprintf(temp, "./images/%d.jpg", i);
if (i <= 1)
{
loadimage(&img[