ページ 1 / 1
DXlib
Posted: 2015年12月10日(木) 19:17
by kenshin
関数を作って画像を表示させたいのですができません。
どの様にすればいいのでしょう。
コード:
#include "DxLib.h"
int draw();
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE);//ウィンドウモード
SetGraphMode(880,660, 32);
DxLib_Init(); // DXライブラリ初期化処理
int map = LoadGraph("images/map.png");
draw();
DxLib_End(); // DXライブラリ終了処理
return 0;
}
// 画像を描画する
int draw(){
DrawGraph(200, 200, map, TRUE);
return 0;
}
Re: DXlib
Posted: 2015年12月10日(木) 19:31
by みけCAT
draw関数でmapが定義されていませんね。
WinMain関数から渡してあげるようにするといいでしょう。
コード:
#include "DxLib.h"
int draw(int);
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE);//ウィンドウモード
SetGraphMode(880, 660, 32);
DxLib_Init(); // DXライブラリ初期化処理
int map = LoadGraph("images/map.png");
draw(map);
DxLib_End(); // DXライブラリ終了処理
return 0;
}
// 画像を描画する
int draw(int map){
DrawGraph(200, 200, map, TRUE);
return 0;
}
Re: DXlib
Posted: 2015年12月10日(木) 19:43
by ochaduke
変数mapはWinMain 関数内のみで使用できます。
mapをグローバル変数にするか(1)
mapの値をdraw()に渡す(2)
にしましょう。
(1)
コード:
#include "DxLib.h"
void draw( void );
//return 0;に意味が無さそうだったので、勝手に戻り値をvoidにしました。余計なお世話だったらすみません。
const int map = LoadGraph("images/map.png");//グローバル変数として宣言
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE);//ウィンドウモード
SetGraphMode(880,660, 32);
if (DxLib_Init() == -1 ){ return 0; }// DXライブラリ初期化処理
draw();
DxLib_End(); // DXライブラリ終了処理
return 0;
}
// 画像を描画する
void draw(){
DrawGraph(200, 200, map, TRUE);
}
(2)
コード:
#include "DxLib.h"
void draw( int );
//return 0;に意味が無さそうだったので、勝手に戻り値をvoidにしました。余計なお世話だったらすみません。
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE);//ウィンドウモード
SetGraphMode(880,660, 32);
if (DxLib_Init() == -1 ){ return 0; }// DXライブラリ初期化処理
const int map = LoadGraph("images/map.png");
draw( map );
DxLib_End(); // DXライブラリ終了処理
return 0;
}
// 画像を描画する
void draw( int handle ){
DrawGraph(200, 200, handle, TRUE);
}
※(2)はみけCATさんと同じことです。
また、スマホで打ってたらインデントがぐちゃぐちゃになっちゃいました。見辛くてごめんなさい
Re: DXlib
Posted: 2015年12月10日(木) 20:09
by kenshin
お二方、ありがとうございました!無事解決しました。
Re: DXlib
Posted: 2015年12月10日(木) 20:10
by kenshin
ありがとうございました
Re: DXlib
Posted: 2015年12月10日(木) 20:11
by みけCAT
ochaduke さんが書きました:(1)
コード:
#include "DxLib.h"
void draw( void );
//return 0;に意味が無さそうだったので、勝手に戻り値をvoidにしました。余計なお世話だったらすみません。
const int map = LoadGraph("images/map.png");//グローバル変数として宣言
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE);//ウィンドウモード
SetGraphMode(880,660, 32);
if (DxLib_Init() == -1 ){ return 0; }// DXライブラリ初期化処理
draw();
DxLib_End(); // DXライブラリ終了処理
return 0;
}
// 画像を描画する
void draw(){
DrawGraph(200, 200, map, TRUE);
}
このコードはDxLib_Init()を呼ぶ前に画像を読み込もうとしてしまうので、ダメです。
あまり推奨はされませんか、もしグローバル変数を使いたければ、例えばこうすると良いでしょう。
コード:
#include "DxLib.h"
void draw( void );
//return 0;に意味が無さそうだったので、勝手に戻り値をvoidにしました。余計なお世話だったらすみません。
int map;//グローバル変数として宣言
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE);//ウィンドウモード
SetGraphMode(880,660, 32);
if (DxLib_Init() == -1 ){ return 0; }// DXライブラリ初期化処理
map = LoadGraph("images/map.png")
draw();
DxLib_End(); // DXライブラリ終了処理
return 0;
}
// 画像を描画する
void draw( void ){
DrawGraph(200, 200, map, TRUE);
}
Re: DXlib
Posted: 2015年12月10日(木) 20:41
by ochaduke
おっと
うっかりしてました
ご指摘ありがとうございます!