DXライブラリについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
テマリ

DXライブラリについて

#1

投稿記事 by テマリ » 11年前

http://dixq.net/g/01_03.html
ウィンドウの生成はでき画像を表示しようとしたんですけど
コードは書いて

コード:

LoadGraphScreen( 50, 100, "画像/キャラクタ00.png", TRUE );	// 画像を描画する
を追加して画像をどこに置けばいいのかわからなくて表示ができません。
デスクトップに画像ファイルにキャラクタ00.pngで保存しましたができませんでした。
画像はどこに置けばいいのか教えてください。

アバター
てんむすキツネ
記事: 88
登録日時: 13年前
住所: 岡山

Re: DXライブラリについて

#2

投稿記事 by てんむすキツネ » 11年前

画像の置き場所が
そのコードのなかに含まれているはずですよ。
色々試行錯誤して調べてください。
相対パスの書き方は知っておいた方がいいです。
MLP!MLP!

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: DXライブラリについて

#3

投稿記事 by softya(ソフト屋) » 11年前

VC++であれば プロジェクトのソリューションファイルがある場所が基点となりますので、画像フォルダをその場所に作ってください。
デスクトップに置いた場合はややこしいパス指定になるので避けてくださいね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1661
登録日時: 13年前
住所: 北海道札幌市
連絡を取る:

Re: DXライブラリについて

#4

投稿記事 by Dixq (管理人) » 11年前

既に回答は出ていますが、
http://dixq.net/g/
「素材ファイル付のプロジェクトをこちらからダウンロード」に、素材とプロジェクトを一括でDL出来るリンクがありますので、
そちらからダウンロードして、どのように画像が入っているか確認して下さい。

テマリ

Re: DXライブラリについて

#5

投稿記事 by テマリ » 11年前

返信ありがとうございます。

cpp(26) : warning C4244: '引数' : 'float' から 'int' への変換です。データが失われる可能性があります。
cpp(26) : warning C4244: '引数' : 'float' から 'int' への変換です。データが失われる可能性があります。
cpp(27) : error C2664: 'DxLib::DrawFormatString' : 3 番目の引数を 'const char [24]' から 'int' に変換できません。
というerrorが出ました。
floatからintへ変換した時にデータが失われているのでしょうか?
三つ目のエラーのconst char[24]についてはよくわかりません。

コード:

#include <math.h>
#include "DxLib.h"

#define PI 3.141592654f

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
	ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK);//ウィンドウモード変更と初期化と裏画面設定

	int Handle[3];    // 画像格納用ハンドル
	LoadDivGraph( "画像/弾01.png", 3, 3, 1, 14, 16, Handle ); // 3つに画像を分割してロード

	float x=320,y=240,angle=0,speed=1;
	
	// while(裏画面を表画面に反映, メッセージ処理, 画面クリア, キーの状態更新)
	while(ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){

		x += cos( angle ) * speed;		// x座標を更新
		y += sin( angle ) * speed;		// y座標を更新

		if( CheckHitKey( KEY_INPUT_Z ) == 1 ){//zが押されていたら変数の中身を変更
			x = 320;		//初期座標セット
			y = 240;
			angle = GetRand(10000)/10000.f * (PI*2);		//0~PI*2の乱数を生成
			speed = 0.5f + GetRand(10000)/10000.f * 2;		//0.5~2.5の乱数を生成
		}
		DrawRotaGraph( x, y, 1.0, angle+PI/2, Handle[0], TRUE );//弾を描画
		DrawFormatString( 0.0,GetColor(255,255,255), "angle=%.2f, speed=%.2f\n", angle,speed );

	}

	DxLib_End();	// DXライブラリ終了処理
	return 0 ;
}

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: DXライブラリについて

#6

投稿記事 by softya(ソフト屋) » 11年前

はい失われます。
それはfloatの扱える値の範囲がintよりも大きいからです。
当然小数部も失われます。それでもintの扱える範囲に収まっていれば問題ありません。

>三つ目のエラーのconst char[24]についてはよくわかりません。
プロジェクトの文字セットをマルチバイト文字にしていないためだと思われます。
DXライブラリの初期設定等に説明があったはずですが、使っているコンパイルのバージョン等が不明なのでご自分で調べてみてください。
「DXライブラリ置き場 使い方説明」
http://homepage2.nifty.com/natupaji/DxLib/dxuse.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

nil
記事: 428
登録日時: 12年前

Re: DXライブラリについて

#7

投稿記事 by nil » 11年前

3つめのエラーは、
DrawFormatStringの第一引数が0.0となっているからです。
0,0の間違いではないですか?

AKIЯA

Re: DXライブラリについて

#8

投稿記事 by AKIЯA » 11年前

DrawFormatString( 0.0,GetColor(255,255,255), "angle=%.2f, speed=%.2f\n", angle,speed );
パラメーターの数が違いますね
多分こうかと思います
DrawFormatString( 0, 0, GetColor(255,255,255), "angle=%.2f, speed=%.2f\n", angle, speed );

これでコンパイル通るかと・・・

テマリ

Re: DXライブラリについて

#9

投稿記事 by テマリ » 11年前

DrawFormatString( 0, 0, GetColor(255,255,255), "angle=%.2f, speed=%.2f\n", angle, speed );
でできました。

int DrawFormatString( int x , int y , int Color , char *FormatString , ... ) ;
でした。
ありがとうございます。

テマリ

Re: DXライブラリについて

#10

投稿記事 by テマリ » 11年前

http://dixq.net/g/03_11.html
このページでファイル入出力をやりたいんですがファイルの置き場所がよくわかりません。
VC++2008のファイルやプロジェクトについてよくわからない点がたくさんあります。
VC++2008のファイルやプロジェクトの解説等のサイト知っていたら教えてもらえませんか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: DXライブラリについて

#11

投稿記事 by softya(ソフト屋) » 11年前

テマリ さんが書きました:http://dixq.net/g/03_11.html
このページでファイル入出力をやりたいんですがファイルの置き場所がよくわかりません。
VC++2008のファイルやプロジェクトについてよくわからない点がたくさんあります。
VC++2008のファイルやプロジェクトの解説等のサイト知っていたら教えてもらえませんか?
まともに説明すると結構ややこしいんです。
「Visual C++ プロジェクトに対して作成されるファイルの種類」
http://msdn.microsoft.com/ja-jp/library ... s.80).aspx
とりあえず読んでもらって分からないことは聞いてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

テマリ

Re: DXライブラリについて

#12

投稿記事 by テマリ » 11年前

返信ありがとうございます。
少し読んでまったくわからなかったので具体的に質問をしようと思います。

ソリューション
└プロジェクト
 └Debug
 └サウンド
 └画像
 └セーブデータ.txt
 └etc...

コード:

#include <stdio.h>

int main(){
	int money=1000;
	FILE *fp = fopen( "セーブデータ.txt","w");//ファイルを開く
	if( fp == NULL ){//NULLが帰ってきたらエラー発生
		return 0;
	}
	fwrite(fp,"現在の所持金 = %d\n",money);//ファイルにmoneyの値を出力する
	return 0;
}
というような感じでデバックなしで開始をやり下記のようになりました。
ファイル先をコンピュータが見つけられてないのかと思いますがどうすれば解決するのかわかりません。
教えてもらえませんか?

1>------ ビルド開始: プロジェクト: GameProg, 構成: Debug Win32 ------
1>コンパイルしています...
1>test.cpp
1>c:\users\yusuke\documents\visual studio 2008\projects\gameprog\gameprog\test.cpp(5) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(237) : 'fopen' の宣言を確認してください。
1>c:\users\yusuke\documents\visual studio 2008\projects\gameprog\gameprog\test.cpp(9) : error C2660: 'fwrite' : 関数に 3 個の引数を指定できません。
1>ビルドログは "file://c:\Users\yusuke\Documents\Visual Studio 2008\Projects\GameProg\GameProg\Debug\BuildLog.htm" に保存されました。
1>GameProg - エラー 1、警告 1
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: DXライブラリについて

#13

投稿記事 by softya(ソフト屋) » 11年前

これはコンパイルエラーで実行時のエラーではないです。
なので、ファイル構成やフォルダ構成は無関係ですね。

1>c:\users\yusuke\documents\visual studio 2008\projects\gameprog\gameprog\test.cpp(5) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

warning C4996は英語を読めば分かりますがマイクロソフトの余計なお節介です。無視してOK。

1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(237) : 'fopen' の宣言を確認してください。

これは上のwarning C4996の続きです。

1>c:\users\yusuke\documents\visual studio 2008\projects\gameprog\gameprog\test.cpp(9) : error C2660: 'fwrite' : 関数に 3 個の引数を指定できません。

fwriteは引数が間違っています。書式を使うならfprintfですね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: DXライブラリについて

#14

投稿記事 by みけCAT » 11年前

fcloseを省略するべきではないと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

テマリ

Re: DXライブラリについて

#15

投稿記事 by テマリ » 11年前

変えてみましたがビルドできません。
このコードでビルドしたらテキストファイルは開きますか?

コード:

#include <stdio.h>

int main(){
	int money=1000;
	FILE *fp = fopen( "セーブデータ.txt","w");//ファイルを開く
	if( fp == NULL ){//NULLが帰ってきたらエラー発生
		return 0;
	}
	fprintf(fp,"現在の所持金 = %d\n",money);//ファイルにmoneyの値を出力する
	fclose( fp );//ファイルを閉じる
	return 0;
}
1>test.cpp
1>c:\users\yusuke\documents\visual studio 2008\projects\gameprog\gameprog\test.cpp(5) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(237) : 'fopen' の宣言を確認してください。
1>リンクしています...
1>LIBCMTD.lib(wincrt0.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。
1>C:\Users\yusuke\Documents\Visual Studio 2008\Projects\GameProg\Debug\GameProg.exe : fatal error LNK1120: 外部参照 1 が未解決です。
1>ビルドログは "file://c:\Users\yusuke\Documents\Visual Studio 2008\Projects\GameProg\GameProg\Debug\BuildLog.htm" に保存されました。
1>GameProg - エラー 2、警告 1
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: DXライブラリについて

#16

投稿記事 by softya(ソフト屋) » 11年前

今度はリンクエラーですね。
このエラーが出るということは、新規のプロジェクトの作成時にWindowsアプリ(Win32プロジェクト)を選んでますね。
しかし作りたいのはコンソールアプリなので呼び出されるmain関数の名前が違うエラーが出るわけです。
コンソールアプリの場合は、Win32コンソールアプリケーションを選んでください。

Windowsアプリ → WinMainが呼び出される。DXライブラリはこっち。
コンソールアプリ → mainが呼び出される。今回はこっち。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

テマリ

Re: DXライブラリについて

#17

投稿記事 by テマリ » 11年前

DXライブラリを多少知れました。
ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る