📄 cbmouse.h
字号:
/////////////
// CBMouse.h : v0021
// Written by : Liu Gang
// Compiler : Microsoft Visual C++ 4.2 & DirectX
// Library : DDraw.Lib
// Copyright (C) : 1996-1997 WayAhead Corporation
// v0021 : Jan.22.1997, devided from CBDraw.cpp
// v0022 : Sep.11.1997, HitTestU() parameters changed
/////////////
// header file
#ifndef __CBMOUSE_H__
#define __CBMOUSE_H__
//////////////////
// 检验鼠标点击的效果
#define MOUSE_HITRESULT_NONE 0
#define MOUSE_HITRESULT_GROUND 1
#define MOUSE_HITRESULT_UNIT 2
struct MOUSE_HITRESULT_STRUCT
{
int nType; // 鼠标点击到的目标类型
int nLayer; // 层数
WORD wCode; // 图素代码
POINT ptHit; // 点击到的图素位置(格子)
};
// 初始化探测用数据
void MOUSE_InitByConts();
// 检测地形
// pt : 鼠标点击的坐标,直接从GetCursorPos()中的得到的,以点为单位。
// pHitResult : 检测的结果
// nLayer : 检测的层数,缺省值为2,所有三层的地形都要检测
// 返回FALSE时pHitResult无效
BOOL MOUSE_HitTestG( POINT pt, struct MOUSE_HITRESULT_STRUCT *pHitResult, int nLayer = 2 );
// 检测单元
// pt : 鼠标点击的坐标,直接从GetCursorPos()中的得到的,以点为单位。
// pHitResult : 检测的结果
// bEnemy : 只选择敌人时为真
// 返回FALSE时pHitResult无效
BOOL MOUSE_HitTestU( POINT pt, struct MOUSE_HITRESULT_STRUCT *pHitResult, BOOL bEnemy = 0 );
// 先检测单元后检测地形
// pt : 鼠标点击的坐标,直接从GetCursorPos()中的得到的,以点为单位。
// pHitResult : 检测的结果
// bEnemy : 只选择敌人时为真
// 返回FALSE时pHitResult无效
BOOL MOUSE_HitTestUG( POINT pt, struct MOUSE_HITRESULT_STRUCT *pHitResult, BOOL bEnemy = 0 );
// 先检测地形后检测单元
// pt : 鼠标点击的坐标,直接从GetCursorPos()中的得到的,以点为单位。
// pHitResult : 检测的结果
// 返回FALSE时pHitResult无效
BOOL MOUSE_HitTestGU( POINT pt, struct MOUSE_HITRESULT_STRUCT *pHitResult );
//////////////////
//////////////////
// test mouse dragging
// if mouse left button down, set down flag, begin dragging process
// nPosX, nPosY : mouse cursor position
void MOUSE_LeftDown( int nPosX, int nPosY );
// if mouse left button up, clear down flag, end dragging process
// nPosX, nPosY : mouse cursor position
// return : dragging rectangle
RECT MOUSE_LeftUp( int nPosX, int nPosY );
// if mouse is moving with left button holds down, do dragging process
// nPosX, nPosY : mouse cursor position
void MOUSE_IsLeftDown( int nPosX, int nPosY );
// display dragging rectangle to back buffer
void MOUSE_DrawDragRect();
// update dragging rectangle to front buffer
void MOUSE_UpdateDrag();
//////////////////
//////////////////
// test if mouse hit in the minimap
// nPosX,nPosY : mouse hit position from screen, in point
// return : the relative position to whole battlefield map that mouse hit,
// in grid
POINT MOUSE_InMiniMap( int nPosX, int nPosY );
//////////////////
//////////////////
// change grid position to point position
// ptPos: grid position
POINT MOUSE_Grid2Point( int nLayer, POINT ptPosG );
//////////////////
//////////////////
// for states of the cursor
#define MOUSE_STATE_NONE 0
#define MOUSE_STATE_GONGJI 1
#define MOUSE_STATE_GONGJI_END1 2 // 攻击自己人
#define MOUSE_STATE_GONGJI_END2 3 // 攻击敌人
#define MOUSE_STATE_YUNSONG 4
#define MOUSE_STATE_YUNSONG_END 5
#define MOUSE_STATE_EYE 6
#define MOUSE_STATE_DOWN 7
#define MOUSE_STATE_JIARU 8
#define MOUSE_STATE_JIARU_END 9
// nState : new state
// bForce : TRUE if set the state exactly you give
void MOUSE_SetState( int nState, BOOL bForce = FALSE );
void MOUSE_EnableTest( BOOL bEnable=TRUE );
//////////////////
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -