?? 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 + -