📄 tool.h
字号:
#ifndef TOOL_H
#define TOOL_H
#if _MSC_VER > 1000
#pragma once
#endif
#include "inc.h"
//宏
//随机数生成
#define GetRandom( min, max ) ((rand() % (int)(((max) + 1) - (min))) + (min))
//碰撞检测
bool Collision(COORD aPos , COORD bPos , int aWidth=1 , int bWidth=1 , int aHeight=1 , int bHeight=1)
{
if (aPos.X > bPos.X-aWidth &&
aPos.X < bPos.X+bWidth &&
aPos.Y > bPos.Y-aHeight &&
aPos.Y < aPos.Y+bHeight )
{
return true;
}
else
{
return false;
}
}
//边界检测
bool CheckLimit(COORD _pos , char type , char act)
{
COORD pos=_pos;
switch (act)
{
case ACT_MOVEUP:
pos.Y--;
break;
case ACT_MOVEDOWN:
pos.Y++;
break;
case ACT_MOVELEFT:
pos.X--;
break;
case ACT_MOVERIGHT:
pos.X++;
break;
case ACT_NULL:
break;
}
int iLeft , iTop , iRight , iBottom;
iLeft=26;
switch (type)
{
case BULLET_PLAYER_UP: case BULLET_PLAYER_DOWN: //子弹边界
iTop=0;
iBottom=25;
iRight=80;
break;
case PLAYER_UP: //玩家(上)边界
iTop=1;
iBottom=12;
iRight=75;
break;
case PLAYER_DOWN: //玩家(下)边界
iTop=14;
iBottom=24;
iRight=75;
break;
}
if (pos.X<iLeft || pos.X>iRight || pos.Y<iTop || pos.Y>iBottom)
{
return true;
}
else
{
return false;
}
}
//字符数组转int
unsigned long ByteArrayToInt(char *pBuf,int iLen)
{
unsigned long lRet = 0;
if (pBuf)
{
if (iLen > sizeof(unsigned long))
{
iLen = sizeof(unsigned long);
}
for(int i = iLen - 1; i >= 0; i--)
{
lRet = lRet << 8;
lRet |= pBuf[i] & 0xff;
}
}
return lRet;
}
//int转字符数组
void IntToByteArray(unsigned long lNum,char* pBuf,int iLen)
{
if (pBuf)
{
if (iLen > sizeof(unsigned long))
{
iLen = sizeof(unsigned long);
}
for(int i = 0; i < iLen; i++)
{
pBuf[i] = (char)((lNum >> (i * 8)) & 0xFF);
}
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -