📄 asl_cursor.h
字号:
//-----------------------------------------------------------------------------
//
// ____ Azure Star Game Engine 蓝星游戏引擎 ____
//
// Copyright (c) 2006, 蓝星工作室
// All rights reserved.
//
// 文件名称: asl_cursor.h
// 摘 要: 光标类定义及实现
//
// 当前版本: 1.0
// 作 者: 汤 祺
// 创建日期: 2006-7-28 9:18:11
//
//-----------------------------------------------------------------------------
#ifndef ASL_CURSOR_INCLUDE
#define ASL_CURSOR_INCLUDE
#pragma once
#include "asl_winapp.h"
//-----------------------------------------------------------------------------
namespace ASL
{
//-----------------------------------------------------------------------------
// 类名: ASLCursor
// 功能: 光标类
// 本类是一个简单的动画图片管理器, 用于自画光标的应用程序, 可以方便的以
// 普通或色饱和方式画出动画光标, 接口非常简单易用.
//-----------------------------------------------------------------------------
class ASLCursor
{
// 构造/析构函数
public:
// 构造函数
ASLCursor() : m_nCurrentFrame(0), m_fTime(0.0) {}
// 析构函数
~ASLCursor() {}
// 公有函数
public:
// 初始化
// file: 打开了光标图片的文件 nFrames: 图片的帧数
// nFps: 每秒显示多少帧 nHotX, nHotY: 光标的热点
void Init(ASLFile &file, int nFrames = 1, int nFps = 30, int nHotX = 0,
int nHotY = 0)
{
POINT pt = { nHotX, nHotY };
m_bmGlyph.LoadBMP(file);
m_bmGlyph.SetColorKey();
m_bmGlyph.SetBlock(nFrames, 1);
m_bmGlyph.SetHotspot(pt);
m_nFrame = nFrames;
m_fDelta = 1 / (float)nFps;
}
// 以普通方式绘制光标
void Draw()
{
m_fTime += Application->GetDelta();
if (m_fTime > m_fDelta)
{
m_fTime -= m_fDelta;
m_nCurrentFrame = (m_nCurrentFrame + 1) % m_nFrame;
}
m_bmGlyph.Draw(SCREEN, INPUT.GetMousePosX(), INPUT.GetMousePosY(),
m_nCurrentFrame);
}
// 以色饱和方式绘制光标
void DrawAdditive()
{
m_fTime += Application->GetDelta();
if (m_fTime > m_fDelta)
{
m_fTime -= m_fDelta;
m_nCurrentFrame = (m_nCurrentFrame + 1) % m_nFrame;
}
m_bmGlyph.DrawAdditive(SCREEN, INPUT.GetMousePosX(), INPUT.GetMousePosY(),
m_nCurrentFrame);
}
// 成员变量
private:
ASLBitmap m_bmGlyph; // 光标图片
float m_fDelta; // 图片更新间隔
float m_fTime; // 当前已过时间
int m_nFrame; // 图片帧数
int m_nCurrentFrame; // 当前帧
}; // ASLCursor类定义结束
} // namespace ASL
#endif // ASL_CURSOR_INCLUDE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -