トップページgamedev
1001コメント334KB

DXライブラリ 総合スレッド その8

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2011/04/03(日) 17:17:11.99ID:liTmPO3j
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

【公式】
http://homepage2.nifty.com/natupaji/DxLib/

【過去スレ】
DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/
DXライブラリ 総合スレッド その4
http://pc11.2ch.net/test/read.cgi/gamedev/1249822550/
DXライブラリ 総合スレッド その5
http://pc11.2ch.net/test/read.cgi/gamedev/1259912953/
DXライブラリ 総合スレッド その6
http://hibari.2ch.net/test/read.cgi/gamedev/1267108154/
DXライブラリ 総合スレッド その7
http://hibari.2ch.net/test/read.cgi/gamedev/1286180687/
0282名前は開発中のものです。2011/05/09(月) 18:31:07.26ID:QRzj4t2Z
最初っから言ってることは理解できるけど、
それをやる意味が理解できない。

配布するときは画像差し替えるのか?
面倒だし意味なくね。
0283名前は開発中のものです。2011/05/09(月) 18:36:42.25ID:5OamKCzT
改善前と改善後のコード貼ってくれよもう
お前の脳内を知ってること前提で話しててわけわからん
0284名前は開発中のものです。2011/05/09(月) 18:41:40.67ID:nBnRiOww
たぶん、本人の糞コードが一部書き直したら改善されたんだが
本人はなぜ改善されたのかを誤った解釈をしている、というパターン
有益な知見は含んでいそうにない
0285名前は開発中のものです。2011/05/09(月) 19:10:30.39ID:aNjjzIs9
あなたはすごいエスパーなんですね
02862802011/05/09(月) 20:00:02.26ID:cCCnXiw+
画像の方にばかり意識が集中してて、
元々の話題がコードを修正したら速くなったって話だったのを忘れてたぜ!

>>281
なるほど、実際に使う機会があるかどうかは別として
確かにLoadDivGraphじゃ難しいな。
0287名前は開発中のものです。2011/05/09(月) 20:17:17.03ID:ySCJuBxg
ペイントツールのレイヤーで対応できることだな
素材レイヤーだけを出力するだけだし
0288 [―{}@{}@{}-] 名前は開発中のものです。2011/05/09(月) 21:39:19.39ID:wT+RcLKY
こんだけ説明してんのになんでわかんないんだよ馬鹿か。
読み込む画像サイズが小さい方が高速化するからもともと256x2560(適当)とかのサイズのマップチップ画像を
16x16の小さい画像にプログラム内部で切って分割して読み込んだら早くなったってことだろうがよ。
あと俺はBlt回数減らせるかね?と質問してるわけだが答えてないよね。
0289名前は開発中のものです。2011/05/09(月) 21:45:23.74ID:aNjjzIs9
min(縦幅, 横幅)を超えない最大の2のn乗サイズの正方形を使えばちょうどいいんじゃないかな
0290名前は開発中のものです。2011/05/09(月) 21:45:44.68ID:ktFVo4T1
そうだといいですね。
0291名前は開発中のものです。2011/05/09(月) 22:05:01.12ID:5OamKCzT
Bltとか言ってるのに内部でどういう処理してるのかわかってないように思える
「大きいサイズのマップチップ画像を読み込んでた」のと
「16x16の小さい画像にプログラム内部で切って分割して読み込んだ」っていうのが具体的にどんな処理の違いなのか、
抽象的というか>288の脳内でのみの定義を前提にしてるから理解しにくいんだよ

ちなみにブリットに関しては何も変わらない というかこの場合全く関係ないし

正直串の人は頭良く見られてたい馬鹿にしか見えないにゃー やきとりもぐもぐ
0292 [―{}@{}@{}-] 名前は開発中のものです。2011/05/09(月) 22:23:27.58ID:wT+RcLKY
あっそ。俺の問題は解決したからもうどうでもいい。
情報を提供したところで俺には何のメリットもないし。
0293名前は開発中のものです。2011/05/09(月) 22:26:21.91ID:4KKSHyv9
DXLIBはもう覚えてないけどたしか配列にして画像ロードするやつでしょ?

uv座標の計算をあらかじめしておくだけで画像は分割しないと思うよ。
同じ画像を繰り返し描画(描画時にUV座標で一部を切り出す)をするのが
drawIndexedPrimitive()で速いんだから。
0294名前は開発中のものです。2011/05/09(月) 22:29:13.88ID:aBBSVPJM
正直、全然意味がわからん

1チップが64*64ピクセルで、512*512ピクセルのBMPファイルに8*8チップ分描いた場合、
通常は
「64*64を1チップとして切り出し、ハンドルを64(8*8)個作成する」
が、
「1チップをさらに16分割(4*4)し、ハンドルを1024個(32*32)作成する。描画時は16チップを一まとめに扱う」
ってことか?
0295名前は開発中のものです。2011/05/10(火) 02:52:47.39ID:4bIfXYea
公式で高速化のことどっかで見たなと思ったら過去ログにあった、No.4の下のほう
ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=1162
これ見る限りだとでかい画像にチップを全部書き込んでLoadDivGraphなり
DerivationGraphなりで分割使用した方が速いはず
0296名前は開発中のものです。2011/05/10(火) 03:13:56.68ID:yYPVn4qg
まあ串は何か馬鹿なミスをしてたんだろうね
0297名前は開発中のものです。2011/05/10(火) 15:30:17.54ID:wvFcG6sH
ソースコードがわからないから
なんとも言えない
が正解
0298名前は開発中のものです。2011/05/10(火) 15:59:37.85ID:aOAxsOSy
バカっぽいからバカなミスしてたんだろう
が正解
0299名前は開発中のものです。2011/05/10(火) 19:44:50.74ID:CAnL1IGT
あー、ソース見てみたいね
処理時間比較の結果とかも見たい
0300名前は開発中のものです。2011/05/10(火) 20:54:36.44ID:NzTg44Yk
ソースみなくてもDirect3Dの仕組みから見当つくだろ
内部がDirectX9なら
0301名前は開発中のものです。2011/05/12(木) 04:24:06.32ID:9ismkLgR
言いたいことが何となく分かった
LoadDivGraphだと分けたい画像を同じ大きさの奴を左上からびちっと並べなければならないのを
DerivationGraphだと好きな所切り分けられるから例えば>>281のように分割対象の画像を作れるような自由度があるってわけか
0302名前は開発中のものです。2011/05/12(木) 04:39:39.52ID:Edc+XOrl
VRAMが勿体無いから普通はみっちり詰めちゃうけどね
0303名前は開発中のものです。2011/05/12(木) 17:51:39.48ID:aA8kBK8W
描画時に好きなところ切り分けられるってことは
描画時にUV座標の計算をしているってこと。

画像ロードしたときにUV座標の計算して固定したほうが
割り算いくつか分だけCPUが効率的だけど高速化といえる程ではない。
0304名前は開発中のものです。2011/05/12(木) 18:07:21.05ID:VewEJgOZ
おまえら何が言いたいんだ?
話題が一本筋通ってそうで良く見えないんだが
0305名前は開発中のものです。2011/05/12(木) 18:09:12.67ID:4jV7SNpd
細かいことよりまずはゲームを完成させるのが一番大切ってこった
0306名前は開発中のものです。2011/05/12(木) 18:59:04.32ID:h1fj69SE
>281のような画像に対応したLoadDivGraph()を作ってみようかな。
使う機会は今のところないけど…
0307 [―{}@{}@{}-] 名前は開発中のものです。2011/05/12(木) 21:22:25.30ID:HMGMrDcR
ハードウェア的に高速化するって言ってるのにCPUがどうとか言って全然理解して無いじゃん
そもそもLoadDivGraphとかDerivationGraphとか俺は言い出してないし。言い出した奴に聞けよ
0308名前は開発中のものです。2011/05/12(木) 22:04:33.07ID:irldgGJ3
俺言ってないしとか誰だよこいつ
0309名前は開発中のものです。2011/05/12(木) 22:07:31.47ID:4jV7SNpd
串くんの話題と画像の格子とかの話題と2つ同時に進行してたしね
どっちも画像分割っていう共通ワードがあったからこんがらがりそうだけど
0310名前は開発中のものです。2011/05/12(木) 22:36:01.96ID:aA8kBK8W
串くんて何って思ったけど今ようやくわかった。

おい串やろう!

俺は画像の格子の方にレスしてたんだよ。
お前の画像のサイズだがMSDNによるとD3Dでは
256x256 or 512x512に最適化されてるらしいぞ。
わかったらキンタマに串刺して寝ろ。
0311名前は開発中のものです。2011/05/12(木) 22:56:57.91ID:aA8kBK8W
>こんだけ説明してんのになんでわかんないんだよ馬鹿か。
>読み込む画像サイズが小さい方が高速化するからもともと256x2560(適当)とかのサイズのマップチップ画像を
>16x16の小さい画像にプログラム内部で切って分割して読み込んだら早くなったってことだろうがよ。
>あと俺はBlt回数減らせるかね?と質問してるわけだが答えてないよね。

D3Dでテクスチャを生成するにあたり2の乗数で正方形であることが望ましい。
またビデオカードが高性能であってもD3D9ではテクスチャサイズは2048x2048
ぐらいが限界になっている。

憶測だが、おかしなサイズでテクスチャを生成すると
ビデオメモリではなくシステムメモリからテクスチャを
生成して遅くなると思う。
0312名前は開発中のものです。2011/05/12(木) 23:23:24.31ID:14qPV80z
わかったら肛門に串刺して寝ろ。
0313名前は開発中のものです。2011/05/13(金) 00:19:05.91ID:3+q6tBad
つーか、当たり前すぎて即レス付いてるじゃん。
512x512をLoadDivGraphで16x16分割で読み込むのと、
個別読込とで比べて結果とプログラムをアップロードした方が早い。
0314名前は開発中のものです。2011/05/13(金) 22:05:51.65ID:JXtDORBT
自分で場合分けして、どっちが早いか検証しない時点で
お脳の程度が知れるっちゅーことよ
0315名前は開発中のものです。2011/05/14(土) 05:40:57.73ID:LbEJnxKT
串w逃亡ww雑魚すぎwww
0316名前は開発中のものです。2011/05/14(土) 05:44:28.43ID:sOve7iVu
煽ってやるなよかわいそうだろ
0317名前は開発中のものです。2011/05/14(土) 12:02:41.87ID:j6rXrtuE
親切心で情報提供したつもりだったのかもしれないけど
指摘が無かったら誤った情報を発信してしまうところだったね

×同サイズの画像は一つの画像に並べてLoadDivGraphするより個別のファイルにして読み込んだほうが描画が速い

○同サイズの画像は一つの画像に並べてLoadDivGraphしたほうが個別のファイルにして読み込むより描画が速い
0318名前は開発中のものです。2011/05/14(土) 12:21:53.76ID:5A5xZr5h
DirectXでの質問です
通常、ビュー変換を行うと視点の中心がそのまま画面の中心になると思うんですけど
視点の中心を左にずらし、周辺視野部分を画面の中心に持ってきたいんですけど
どうしたらいいのでしょうか
ワールド座標系で変換しても上手くいきません
ビューポートの矩形領域を横に広げてウィンドウ上の描写位置を左にずらすという方法も考えたのですが
そうすると他の問題が出てきてしまい上手くいきませんでした
0319 [―{}@{}@{}-] 名前は開発中のものです。2011/05/14(土) 12:41:48.06ID:yL5+7HbV
個別のファイルにして読み込むとか誰が言ってんだよ
俺はこうとしか言ってないし
>16x16の小さい画像にプログラム内部で切って分割して読み込んだら早くなったってことだろうがよ。
0320名前は開発中のものです。2011/05/14(土) 13:20:10.45ID:j6rXrtuE
ああ、288でそう言ってるね
261や270の説明だといまいちどっちなのか分からなかった
まあ、プログラム内部で切る手段がDerivationGraph以外にもあるから288も誤解を招く可能性はあるけど
0321名前は開発中のものです。2011/05/14(土) 14:37:43.49ID:Xyu583QP
>>318
マルチポストするような人には答えません
0322名前は開発中のものです。2011/05/14(土) 16:31:49.46ID:5A5xZr5h
>>321
あなたはどっちにしろ答える気は無かったでしょう?
或いは答えられなかったか
0323名前は開発中のものです。2011/05/14(土) 16:56:46.39ID:HWdXdTHv
やっぱりマルチポストするやつって精神的におかしいんだな。
0324名前は開発中のものです。2011/05/14(土) 17:19:06.25ID:cLXZD6OB
マルチポストするやつは掲示板の先にほかの「人」がいるって考えがないからね。
認識的には「便利な道具」。
まぁ、それも間違いじゃないんだけどさ。
0325名前は開発中のものです。2011/05/14(土) 17:58:27.34ID:5A5xZr5h
>>324
じゃあどうすればよかったんですか?
以前に書いたスレは過疎スレだったのでこっちに書き直したんですけど
これって変な事なんですか?
0326名前は開発中のものです。2011/05/14(土) 18:06:41.65ID:xHYH5vYU
そもそもここがDirectXのスレじゃない
DXライブラリ≠DirectX
0327名前は開発中のものです。2011/05/14(土) 18:14:10.19ID:xHYH5vYU
ゲ作製板のDirectXスレは昔はあったが今は存在しない。
そういう話題をたずねたいなら

http://hibari.2ch.net/test/read.cgi/tech/1298067098/
ここにでも行ってみな。
0328名前は開発中のものです。2011/05/14(土) 18:34:12.15ID:y0FBUKTH
別のところで質問してきます、って書けばいい。
質問スレよくある展開だよ。
「誘導されてきました」ってのもよく見るね。
0329名前は開発中のものです。2011/05/14(土) 18:41:30.60ID:pIszQFmc
>>325
過疎っていたのでこちらで聞きたいんだけどって付け加えればいい
問題の解決方法を聞くときには状況だけじゃなく経緯を説明したほうが何かと捗るぞ
0330名前は開発中のものです。2011/05/14(土) 18:43:26.84ID:cLXZD6OB
>>325
書き直す際にどのスレに移動するか明記しておけば
そのスレでの質問を〆たことにもなるし、知ってる人がその書き込みを見たときに
移動先で返事をしてくれることもある。

そうすればマルチポストじゃなく趣旨に合うスレに移動したって伝わるし
書き込んだ全部のスレを自分で見て回る手間も省ける。
当然マルチポストが嫌いな人への心証も壊すことがないんで
より回答を得やすくなるよ。
0331名前は開発中のものです。2011/05/14(土) 18:49:46.26ID:HWdXdTHv
最初のスレでは「レス付かないので○○で質問します。ありがとうございました。」
新しいスレでは「○○で質問しましたが、レスがつかなかったのでこちらで質問させていただきます。」
これならまず怒られない。

常識的に物事を考えられない年齢で知らない人に質問なんてするもんじゃないよ。
小学校や親から何を教わってきたのか…。
0332名前は開発中のものです。2011/05/14(土) 19:23:56.08ID:ewuVSNH5
DQNの親はほぼ確実にDQN
0333名前は開発中のものです。2011/05/14(土) 19:34:24.02ID:Dge/y5on
>>325
どうすればよかったのかちゃんと聞いたことをオレは評価する
0334名前は開発中のものです。2011/05/14(土) 19:41:44.05ID:5A5xZr5h
なるほど、必要な一言があったわけですか

>>327-330
すみませんでした
以後気をつけます
0335名前は開発中のものです。2011/05/14(土) 22:59:25.65ID:LbEJnxKT
甘いぜてめーら!

>>334
ちょらぁーーー!!1
もっともっと反省しる!

ふぅ……ちょ〜気持ちいい〜♪
0336名前は開発中のものです。2011/05/14(土) 23:33:16.15ID:7PaxWbCQ
すいませんみなさん、
>>335には俺がきっついお仕置きしときます
主にアナルに
0337名前は開発中のものです。2011/05/16(月) 21:28:02.34ID:oqSb1uU0
>>334
まだ見てるか分からないけど
中心を左にずらすってことは、カメラを右に平行移動したい
という解釈であってる?

であれば

float fov = D3DX_PI / 4.0f;
float height = 480.0f; //描画する矩形の高さ
float X = 100.0f; //これがカメラの移動量
D3DXVECTOR3 vEyePt = D3DXVECTOR3( X, 0.0f, (height / -2.0f) / tan(fov / 2.0f) ); //カメラの位置
D3DXVECTOR3 vLookatPt = D3DXVECTOR3( X, 0.0f, 0.0f ); //カメラが映している位置
D3DXVECTOR3 vUpVec( 0.0f, 1.0f, 0.0f );
D3DXMATRIX matView;
D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec ); //またはD3DXMatrixLookAtRH()
LPD3D9Divece->SetTransform( D3DTS_VIEW, &matView );

これで左にずれてレンダリングされるはず
カメラを平行移動させる時は注視点を連動させる
0338名前は開発中のものです。2011/05/16(月) 21:32:10.98ID:oqSb1uU0
DiveceじゃないDeviceだろorz
0339名前は開発中のものです。2011/05/25(水) 10:09:49.81ID:2LG25rFZ
21日にバージョンアップしてるね
03402542011/05/26(木) 20:53:42.12ID:pDvbsZn3
>>255
もの凄く今更だけど、単独起動では処理は止まってた
だけど、ソフトをアクティブから最小化にした直後は
キー操作に反応してる(処理は止まってない)ようだった
SetAlwaysRunFlagはFALSEで、GetActiveFlagがTRUEの時に
キー判定するようにしてても

バージョンは3.05
0341名前は開発中のものです。2011/05/26(木) 23:00:38.73ID:xUOkZxuC
なに意味不明なことを。
たいてい配布されてるDLLにはバージョン返す関数が用意されてるだろ。
0342名前は開発中のものです。2011/05/27(金) 02:23:25.26ID:WZ4EJwBd
マス目のゲーム戦闘画面ってDXライブラリで製作出来ます?
マップに座標を打ち込みつつ初期化
{0,0,0}
{0,1,1}の様な形。
for文でマップのマス目左上からズレていくように書き
switch文で case 0 は DrawGraph 画像 case 1 は 〜〜
の様にしてみたんですが、上手く表示されません・・・。
マス目ごとに対応した番号の画像を表示させるにはどのようにすれば宜しいでしょうか?
0343名前は開発中のものです。2011/05/27(金) 03:23:35.98ID:D2qC7dWI
プログラミング言語より
まず日本語ちゃんと使えるようになろうな
な!
てか、説明する気全然無いだろおまえ
0344名前は開発中のものです。2011/05/27(金) 03:29:21.26ID:50SAL2r9
case 0|case 1|case 2|
case 3|case 4|case 5|

みたいな感じに表示したいって事だろう?
caseで上手く行かないっていうのはどういう風に上手く行かないか書かないとわからんな。画像が映らないとか
0345名前は開発中のものです。2011/05/27(金) 03:30:08.24ID:P+8xuJhC
なんか、おまえらの優しさに涙でそうになった
0346名前は開発中のものです。2011/05/27(金) 04:14:51.06ID:WZ4EJwBd
すみません;
文字制限があって削ってたら訳分からん文章に・・

ちょっと連投してソースコード貼りますがお許し下さい
include "DxLib.h"

#define MAP_SIZE 64 // マップチップ一つのドットサイズ

#define MAP_WIDTH 4 // マップの幅
#define MAP_HEIGHT 4 // マップの縦長さ

本当はもっと大きいですがあくまで一例としてお願いします
0347名前は開発中のものです。2011/05/27(金) 04:26:31.70ID:3kRTf3YP
規制受けたので携帯から
#define BLACK 0
#define White 1

int MapData[ MAP_HEIGHT ][ MAP_WIDTH ] =
{
{1,1,1,1}
{1,0,0,1}
{1,1,0,1}
{1.1.1.1}
};
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE); // ウィンドウモードに設定
0348名前は開発中のものです。2011/05/27(金) 04:33:13.88ID:3kRTf3YP
SetGraphMode( 640 , 480 , 32 ) ;
if( DxLib_Init() == -1 )// DXライブラリ初期化処理
{
return -1;// エラーが起きたら直ちに終了
}

int i, j;

// マップを描く
for( i = 0 ; i < MAP_HEIGHT ; i ++ )
{
for( j = 0 ; j < MAP_WIDTH ; j ++ )
{

switch(MapData[ i ][ j ] )
{
case BLACK : DrawGraph("画像/サンプル1.bmp"); break;
0349名前は開発中のものです。2011/05/27(金) 04:38:46.80ID:3kRTf3YP
case White : DrawGraph("画像/サンプル2.bmp"); break;
}
}
}

// キー入力待ち
WaitKey() ;

DxLib_End() ;// DXライブラリ使用の終了処理

return 0 ;// ソフトの終了
}
以上。投稿してから気付いた。White本当は全部大文字です。あぁしまった。画像ロード書き忘れてら・・・。
0350名前は開発中のものです。2011/05/27(金) 04:43:40.52ID:3kRTf3YP
void load(){
LoadGraph("画像/サンプル1.bmp");
LoadGraph("画像/サンプル2.bmp");
}
↑がWinMainの上にあります。
エラーは画像描画の行で関数に一個の引数を指定できません。でした
時間やばいので寝ます。
スレ騒がせてしまって申し訳御座いません。
0351名前は開発中のものです。2011/05/27(金) 04:46:56.03ID:GnZtQgg2
まぁスレが過疎るよりはマシだから
0352名前は開発中のものです。2011/05/27(金) 04:47:42.79ID:50SAL2r9
int DrawGraph( int x, int y, int GrHandle, int TransFlag ) ;

この4つをちゃんと与えてないとかいうエラーだったら殴るぞ
0353名前は開発中のものです。2011/05/27(金) 04:47:52.50ID:P+8xuJhC
switch内のDrawGraphはなんだよw
もう一度リファレンス読みなおせww


0354名前は開発中のものです。2011/05/27(金) 04:48:40.10ID:P+8xuJhC
つうかみんな待機してたのかよwwww

・・・・乙
0355名前は開発中のものです。2011/05/27(金) 06:32:28.99ID:xNAGry64
長いコード貼るときはideoneかcodepad使うと便利だよ
0356名前は開発中のものです。2011/05/27(金) 14:45:00.98ID:3kRTf3YP
皆様の優しさに泣いた
しねぼけかすとか言われるかと思ってたら・・・。
バイト終わったらアドバイス通りに色々試してみます。
0357名前は開発中のものです。2011/05/27(金) 17:17:06.76ID:U7rPxdQ1
DxLibはDirectXでの描画を簡単にしてくれてるだけだから描画に関することしか制約はないと思います。
例えばアンチエイリアスとかエフェクトとかそういう描画関係での制約はあったりなかったり…。
制約あっても管理人さんに頼めば実装してくれる場合もあり。

というかシステム的な面はC言語,C++,C#でできるかって話だから基本的にはできないものはないと思っていいかと。


ここからは質問について。
まず、1枚の画像を分割して配列に入れられる関数があります。詳細はリファレンス読んでください。
int LoadDivGraph( char *FileName , int AllNum , int XNum , int YNum , int XSize , int YSize , int *HandleBuf ) ;
これを使って読み込むと、例えば配列の中身に{土、草、木、海}と画像(マップチップ)を入れられるって感じです。
仮にこの配列の名前をChipImgとしておきます。

で、マップを書くときのfor文を以下のようにすれば希望の動作になると思います。
かなり基礎的なことなので検索すればどこにでも書いてあります。
ただ、そのままコピペするのではなくちゃんと理解してください。難しいことは何もしてないです。
細かいところ間違ってたら申し訳ない。

// マップを描く
for( i = 0 ; i < MAP_HEIGHT ; i ++ ) {
    for( j = 0 ; j < MAP_WIDTH ; j ++ ) {
        DrawGraph(j*MAP_SIZE, i*MAP_SIZE, ChipImg[MapData[j][i]], false);
    }
}
0358名前は開発中のものです。2011/05/27(金) 20:00:44.94ID:UsP8/dot
このスレって早朝でもレスポンスあるんだな
0359名前は開発中のものです。2011/05/27(金) 20:03:23.02ID:vGoJgMZu
更新スレの一つでいつも見てるよ
最近スレとまってたけど。
0360名前は開発中のものです。2011/05/27(金) 22:16:46.35ID:WZ4EJwBd
LoadGraph削除後
int GHandle1;
int GHandle2;

GHandle1 = LoadGraph("画像/サンプル1.bmp");
GHandle2 = LoadGraph("画像/サンプル2.bmp");

case BLACK : DrawGraph(i,j,GHandle1,TRUE); break;
case White : DrawGraph( i, j, GHandle2, TRUE); break;

にしてみましたが、エラーはありませんでしたがウインドウ真っ暗で画像表示せず・・・。
0361名前は開発中のものです。2011/05/27(金) 22:19:13.81ID:WZ4EJwBd
リビルドしてアプリ起動したら何故か左上のマスだけ、不鮮明ながら画像が表示されてました。不思議。

今度は357さんの案を内容を理解するため勉強しつつ試してきます。
0362名前は開発中のものです。2011/05/27(金) 22:25:25.03ID:0YaXlE0u
マップチップを1ドットずつずらして描画してどうするつもりだ
0363名前は開発中のものです。2011/05/27(金) 23:03:20.50ID:WZ4EJwBd
DrawGraph(i*MAP_SIZE,j*MAP_SIZE
に変更する事で無事表示する事が出来ました!
ただ、デバックなしで開始しても何も表示されないのが少し気になりますが。

取り敢えず解決してしまいました。
本当に有難う御座いました!m(_ _)m
0364名前は開発中のものです。2011/05/27(金) 23:31:21.01ID:Y/qWs5Tm
デバックなしってどういう意味だ?
ひょっとしてリリースの方でコンパイルして実行してるけど
リリースの方のフォルダに画像を用意してないとか?
0365名前は開発中のものです。2011/05/28(土) 00:31:51.61ID:QOypFlPY
いえ、リリースにも画像フォルダ用意しリリースにもアプリ製作しました。
が、アプリ起動すると表示される画像が Ctrl+f5 で立ち上げたウインドウには表示されないのですよね。

VC++2008を使用しています。
一応アプリケーションは正常に動いているのであんまり気には掛けていないのですが、何かおかしいのでしょうか・・・。
0366名前は開発中のものです。2011/05/28(土) 00:36:28.60ID:A1uOHhrw
DXライブラリの使い方というかVCやC++の使い方のレベルじゃないか
リリース側の実行ファイルから画像までのパスがまともに取れてないとしかまず考えられない
問診して説明するよりプロジェクト入ってるフォルダごとアップしてもらった方が説明しやすいかもしれない…
0367 [―{}@{}@{}-] 名前は開発中のものです。2011/05/28(土) 00:38:26.17ID:3Cuv9gZ3
LoadGraphに成功してるかエラーチェック入れろよ
0368名前は開発中のものです。2011/05/28(土) 00:54:12.30ID:QOypFlPY
>>366
すみません、確かにスレチでした。
当方C言語しか学習してなかったのでVCかC++の板に行ってみます。
失礼しましたm(_ _)m
0369名前は開発中のものです。2011/05/28(土) 00:59:23.12ID:otWxclch
DxLibと言うよりは確かにC言語初心者スレとかの方がいいかもね。
後はキッチリやさしい本を読むといいよ。
「やさしいJava」のC言語版的なもの。
0370名前は開発中のものです。2011/05/28(土) 00:59:56.21ID:A1uOHhrw
>>368
だがC++やVCの板でもDXライブラリの関数なんか知らねえよとか言われそうではあるので
>>367の言う通り
GHandle1 = LoadGraph("画像/サンプル1.bmp");

if( GHandle1 = LoadGraph("画像パス") )
{MessageBox(NULL,TEXT("エラー"),TEXT("画像のパス合ってない"),MB_OK);}
に差し替えてリリース側でエラーチェック試してみようか
これでアラート出たら絶対それ画像置く場所悪いから
0371名前は開発中のものです。2011/05/28(土) 01:03:19.25ID:A1uOHhrw
if( GHandle1 = LoadGraph("画像パス") )じゃなくて
if( GHandle1 = LoadGraph("画像パス")==-1 )だったごめんよ
LoadGraphの返り値調べてエラー確認するんだ
0372名前は開発中のものです。2011/05/28(土) 01:09:37.68ID:QOypFlPY
何度もすみません。
無事エラーが表示されました。
0373名前は開発中のものです。2011/05/28(土) 01:14:57.63ID:QOypFlPY
あぁ、なるほど。
DebugとRelaeseフォルダにだけそれぞれ画像フォルダを置いていたのが間違ってました。
↑二つが入ってるフォルダに入れておかないと駄目だったんですね・・・。
ほんとに初歩的な間違いでスレ汚してしまって申し訳なかったです;
解決しました。感謝
0374名前は開発中のものです。2011/05/28(土) 05:53:10.67ID:bOluCu1Z
それはVSの都合なのかな?
Releaseのを直接起動した場合Releaseフォルダ内にないと動かないよね
0375名前は開発中のものです。2011/05/28(土) 06:20:40.88ID:W6UqZw/P
えーとこういうことなのか LoadGraph("Data\HogeHoge.bmp",〜);

HogeHoge\Data\HogeHoge.bmp ... ←コレを読み込みたい
HogeHoge\Release\HogeHoge.exe ←VSは実行ファイルをココに作る
HogeHoge\HogeHoge.cpp ソース
HogeHoge\ ←VSは実行ファイルを起動するときココを実行ディレクトリに設定する

それなら直接起動するときは実行ファイルをココに移動/コピーして起動してやれば良い…?のでは
HogeHoge\HogeHoge.exe ←ココにコピー
ビルド後イベントコマンドで cp もにゃもにゃと設定してやれば一応自動化できそ
0376名前は開発中のものです。2011/05/28(土) 07:30:43.55ID:L9srxxo1
実行ファイルも同じフォルダに出力するようにして名前だけ変えるで区別とかして
デバッグの作業ディレクトリも同じにすりゃいいだけ。
03773732011/05/29(日) 00:44:52.38ID:BFzS8fGx
またまたお世話になります。
と言っても今回はDXライブラリが絡むか自信が無いため、まずその段階からですが・・。
よくRPGなどの戦闘画面で、斜め上から見下ろした形になっているゲームが多いと思いますが、その表示方法についての質問です。
前に書いた様な座標型マップ表示で出来るものなのでしょうか?
(絵を斜めっぽく工夫して描けば行ける・・・?)

それとも座標自体を特殊な表記にしないと駄目でしょうか・・。
2Dの範囲内で実現可能という事は分かってるのですが、あちらこちら探しても中々答えが見つからずorz
0378名前は開発中のものです。2011/05/29(日) 00:48:22.93ID:Ul9KwIs9
クォータービュー
0379名前は開発中のものです。2011/05/29(日) 00:59:05.68ID:7hhk2TqC
基本的には描画の方法が違うだけ。マップデータ自体はそのまま流用できると思うよ。

ただし、クォータービューのマップチップは、
トップビューに比べてマップチップの縦幅が狭くなる(半分くらい)になってしまうので、
常に奥から描画するようにしないと、キャラが首チョンパ状態になったりするので注意。

     ○ 
   <大>  単独だときちんと人間が表示されるが

    ↓

   ○   ○
 <大><大>  上方向に重なるとマミっちゃう
   <大>
0380名前は開発中のものです。2011/05/29(日) 01:05:47.56ID:lpI500pO
菱形の画像をうまく並べるだけさー
各マスの位置をベクタ的に回転させると楽
0381名前は開発中のものです。2011/05/29(日) 01:06:00.84ID:zv9XeXX/
iが増えたら右下に(x,yそれぞれ増やす)
jが増えたら左下に(x減らしてy増やす)
とかすりゃいいじゃん
■ このスレッドは過去ログ倉庫に格納されています