昨日の続きのDxLib版を作ってみた。
ClsDrawReel_DxLib.h
► スポイラーを表示
CODE:
//***************************************************
// ClsDrawReel_DxLib.h 2017.4.2 by V30
//***************************************************
#pragma once
#include
#include
//リール描画クラス
typedef class ClsDrawReel_DxLib : public ClsReelDataControler
{
protected:
int m_imagehandle; //リール画像ハンドル
public:
//コンストラクタ
ClsDrawReel_DxLib();
//描画
void Draw(const int &transflag = TRUE, const int &turnflag = FALSE);
//リール画像設定
BOOL SetImage(const int &imagehandle);
} *LPClsDrawReel_DxLib;
ClsDrawReel_DxLib.cpp
► スポイラーを表示
CODE:
//***************************************************
// ClsDrawReel_DxLib.cpp 2017.4.2 by V30
//***************************************************
#include
ClsDrawReel_DxLib::ClsDrawReel_DxLib() :
ClsReelDataControler(), //リール制御クラスコンストラクタ
m_imagehandle (-1) //リール画像ハンドル
{}
void ClsDrawReel_DxLib::Draw(const int &transflag, const int &turnflag)
{
DrawRectGraph(m_reel->left, m_reel->dest_top_upper, m_reel->src_left, m_reel->src_top, m_reel->width, m_reel->src_height_upper, m_imagehandle, transflag, turnflag); //上部抽出画像描画
if (m_reel->divition)
DrawRectGraph(m_reel->left, m_reel->dest_top_lower, m_reel->src_left, 0, m_reel->width, m_reel->src_height_lower, m_imagehandle, transflag, turnflag); //下部抽出画像描画
}
BOOL ClsDrawReel_DxLib::SetImage(const int &imagehandle)
{
int height; //画像縦サイズ
int width; //画像横サイズ
BOOL flag(TRUE); //結果
if (flag) flag = (GetGraphSize(imagehandle, &width, &height) == 0) ? TRUE : FALSE; //画像サイズチェック
if (flag) flag = SetImageSize(width, height); //画像サイズ設定
if (flag)
{
m_imagehandle = imagehandle; //画像設定
m_reel->height = height; //画像縦サイズ設定
m_reel->width = width; //画像縦サイズ設定
flag = SetNowPosition(m_reel->position_now); //リール位置調整
}
return flag; //結果返還
}
動作確認は全くしていません。誰も使うことはないと思いますが。
前作のコピペ風に仕上がっているので、動くハズ?。。。かも?。。。
これを作っていて、別にある兄弟分の自作ライブラリ用とDirect2D用も脆弱というか、
コーディングが怪しい感じなので、直さないといけないなぁと思いました。
(追記)
【SetImage(const int &imagehandle)関数のコード訂正】
最近書いているクラスの初期化関数内で多用しているので癖がついて何も考えずに |= を
使っていましたが、誤りなので昨日の投稿も含め = に訂正いたしました。
その前に、これって全部 &= じゃん!って思って訂正している途中、あれっ?!
&= でも = でも変わらないわって更に思い付き、ボケの連続です。
SUCCEEDED()は使い慣れてまずミスりませんが、同様に使っているこの形式「if (flag) ~」
の構文の羅列はなぜだか間違えました。
まだまだ初心者な毎日を送っております。