init
This commit is contained in:
55
server/robot/util/Utility.cpp
Normal file
55
server/robot/util/Utility.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
#include "stdafx.h"
|
||||
|
||||
int CUtility::GetDir(int nSourceX, int nSourceY, int nTargetX, int nTargetY)
|
||||
{
|
||||
int nDir = DIR_UP;
|
||||
int nSelfPosx = nTargetX - nSourceX;
|
||||
int nSelfPosy = nTargetY - nSourceY;
|
||||
|
||||
if(nSelfPosx >0)
|
||||
{
|
||||
if( nSelfPosy >0 )
|
||||
{
|
||||
nDir =DIR_DOWN_RIGHT ;
|
||||
}
|
||||
else if(nSelfPosy ==0)
|
||||
{
|
||||
nDir = DIR_RIGHT;
|
||||
}
|
||||
else
|
||||
{
|
||||
nDir =DIR_UP_RIGHT ;
|
||||
}
|
||||
}
|
||||
else if(nSelfPosx ==0)
|
||||
{
|
||||
if( nSelfPosy >0 )
|
||||
{
|
||||
nDir =DIR_DOWN ;
|
||||
}
|
||||
else if(nSelfPosy ==0)
|
||||
{
|
||||
nDir = DIR_STOP;
|
||||
}
|
||||
else
|
||||
{
|
||||
nDir =DIR_UP ;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( nSelfPosy >0 )
|
||||
{
|
||||
nDir = DIR_DOWN_LEFT ;
|
||||
}
|
||||
else if(nSelfPosy ==0)
|
||||
{
|
||||
nDir = DIR_LEFT;
|
||||
}
|
||||
else
|
||||
{
|
||||
nDir = DIR_UP_LEFT;
|
||||
}
|
||||
}
|
||||
return nDir;
|
||||
}
|
||||
67
server/robot/util/Utility.h
Normal file
67
server/robot/util/Utility.h
Normal file
@@ -0,0 +1,67 @@
|
||||
#pragma once
|
||||
|
||||
#include "CommonDef.h"
|
||||
|
||||
class CUtility
|
||||
{
|
||||
public:
|
||||
template<size_t size>
|
||||
static void CopyCharArrayS(TCHAR (&szDestArray)[size], const TCHAR* srcData)
|
||||
{
|
||||
size_t nMaxLen = __min(size-1, _tcslen(srcData));
|
||||
CopyMemory(szDestArray, srcData, nMaxLen * sizeof(TCHAR));
|
||||
szDestArray[nMaxLen] = _T('\0');
|
||||
}
|
||||
|
||||
template<size_t size>
|
||||
static void GetDateTimeDesc(TCHAR (&szDestArray)[size], LPCTSTR szFormat = "%Y-%m-%d %H:%M:%S")
|
||||
{
|
||||
time_t szClock;
|
||||
time(&szClock);
|
||||
struct tm *curTime = localtime(&szClock);
|
||||
_tcsftime(szDestArray, size-1, szFormat, curTime);
|
||||
szDestArray[size-1] = _T('\0');
|
||||
}
|
||||
|
||||
// 根据当前位置以及移动步长、方向,计算下个位置坐标
|
||||
static void NewPosition(INT_PTR& nX,INT_PTR& nY,INT_PTR nDir,INT_PTR nSpeed)
|
||||
{
|
||||
switch(nDir)
|
||||
{
|
||||
case DIR_UP:
|
||||
nY = nY - nSpeed;
|
||||
break;
|
||||
case DIR_UP_LEFT:
|
||||
nY = nY - nSpeed;
|
||||
nX = nX - nSpeed;
|
||||
break;
|
||||
case DIR_UP_RIGHT:
|
||||
nY = nY - nSpeed;
|
||||
nX = nX + nSpeed;
|
||||
break;
|
||||
case DIR_DOWN:
|
||||
nY = nY + nSpeed;
|
||||
break;
|
||||
case DIR_DOWN_LEFT:
|
||||
nY = nY + nSpeed;
|
||||
nX = nX - nSpeed;
|
||||
break;
|
||||
case DIR_DOWN_RIGHT:
|
||||
nY = nY + nSpeed;
|
||||
nX = nX + nSpeed;
|
||||
break;
|
||||
case DIR_RIGHT:
|
||||
nX = nX + nSpeed;
|
||||
break;
|
||||
case DIR_LEFT:
|
||||
nX = nX - nSpeed;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//获取方向
|
||||
static int GetDir(int nSourceX, int nSourceY, int nTargetX, int nTargetY);
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user