2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :名前は開発中のものです。:2009/12/04(金) 16:49:13 ID:7SKA4I5z
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/


2 :名前は開発中のものです。:2009/12/04(金) 17:07:40 ID:2O781c7T


3 :名前は開発中のものです。:2009/12/04(金) 17:19:26 ID:vm4DXNCA
Ver3からPlayMovieToGraphで透明色が適用されないのとちょっとフレーム落ちと音ズレが激しいなあ
もちろん確認のために2.25bでも試したが透明色やフレームレート落ちや音ズレなしで問題なし

4 :名前は開発中のものです。:2009/12/04(金) 18:16:40 ID:6AQLzT+8
DxLibの暗号化ファイル読み込みに対応した暗号化書き込みってなんでライブラリに入れないんだろう
セーブとか実行時に暗号化して書きたい時って割とあるとおもうんだが・・・

5 :名前は開発中のものです。:2009/12/04(金) 23:18:48 ID:XUOEwrjE
前スレ>>916
弾幕シューティングではないのだが・・・参考になったさ。ありがとう。

6 :名前は開発中のものです。:2009/12/05(土) 00:35:03 ID:FfRkZmBc
>>4
確かに使いたいときはよくある。でもそれってDirectXの機能じゃないからじゃ?

7 :名前は開発中のものです。:2009/12/05(土) 01:27:00 ID:yZDYDRsN
>>4
セーブデータなんて自分で暗号化すれば済むからでしょ。

8 :名前は開発中のものです。:2009/12/05(土) 12:30:22 ID:CQOWfBMw
ToyStudioでアニメーション作って、MQOで出力したんだけど、
ものすごい膨大な量のMQOデータが出てきたんだけど・・・
アニメーションを作るたびに毎回こんなのが出てくるの?
そもそもこういう出力結果をゲーム内でアニメとして使えるの?

9 :名前は開発中のものです。:2009/12/05(土) 14:14:45 ID:Sya3hEP4
裏画面全体を拡大縮小したり回転させることとか出来ないかな?
ゲームのエフェクトで画面全体をくるくる回したりしたいんだけど

10 :名前は開発中のものです。:2009/12/05(土) 14:22:43 ID:UtZjONga
動かないんだったら、描画したヤツを取り込んで一枚の画像にしちゃってまわせばいいんじゃない?

動くんだったら計算させて自前で回転描画すればいいだけだし。

11 :名前は開発中のものです。:2009/12/05(土) 15:12:47 ID:GsjhaCrH
ゲームってグローバル変数使ったほうが普通に綺麗に書ける気がしてきた

12 :名前は開発中のものです。:2009/12/05(土) 15:15:49 ID:UZumt6OG
>>8
アニメーションxファイルで出せよww
MQOはモーションつかないから連番で出すしかない

13 :名前は開発中のものです。:2009/12/05(土) 16:02:55 ID:gqFDk2ay
シングルトンはついつい使っちゃうよなあ・・

14 :名前は開発中のものです。:2009/12/05(土) 16:14:43 ID:IYliNqS4
使っちゃえよ

15 :名前は開発中のものです。:2009/12/05(土) 16:24:59 ID:rsncbGmt
ttp://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_graph.html#R4N2
これのデスクトップの広さ 1024x768 の方を取得する方法について教えて下さい

16 :名前は開発中のものです。:2009/12/05(土) 16:51:52 ID:z1L4m3Am
DXライブラリに関係なく
GetSystemMetrics(SM_CXSCREEN);
とかで

17 :名前は開発中のものです。:2009/12/05(土) 17:17:35 ID:rsncbGmt
できました
ありがとうございました

18 :名前は開発中のものです。:2009/12/05(土) 19:31:08 ID:GsjhaCrH
だめだ俺にはローグライクは早かったようだ・・・テトリスからやり直すぜ

19 :名前は開発中のものです。:2009/12/06(日) 00:09:46 ID:AxjxjhaV
俺もグローバル使う位ならスタティック使ってたけど
結局普通にグローバル使った方が楽なことに気付いた
(全てスタティックが駄目というわけではないが)
グローバルでも名前空間とか使えば局所性もある程度保てるんじゃないかなあ

20 :名前は開発中のものです。:2009/12/06(日) 00:10:45 ID:wryxppBn
環境変数や外部ファイルはグローバル変数なので使用禁止

21 :名前は開発中のものです。:2009/12/06(日) 10:11:40 ID:+RNAMjqx
ゲームに関してはあらゆる関数で共用するものが多いし、
クラスで雁字搦めにして書かない限りグローバル変数使ったほうが分かりやすい

22 :名前は開発中のものです。:2009/12/06(日) 10:20:30 ID:AO9SCSiS
いざ対戦機能とか、似たような機能を二つ以上配置することを考えると、
「やっぱグローバルやめときゃよかった」ってなる。

23 :名前は開発中のものです。:2009/12/06(日) 10:33:36 ID:+HYK3UFu
グローバルしか使ってないヘタレPGとしては、どういう恩恵があるのか自体想像がつかん。

24 :名前は開発中のものです。:2009/12/06(日) 10:48:26 ID:goldsq2u
最悪なのがグローバル変数代わりのシングルトン
>>22のようなことを考えるとグローバルの方がマシ

25 :名前は開発中のものです。:2009/12/06(日) 11:12:16 ID:Vlb8mlu0
>>24
なんで?

26 :名前は開発中のものです。:2009/12/06(日) 12:19:26 ID:jMxq/kh5
画像復元の処理を追加してたんだが
SetRestoreGraphCallbackに登録する関数で使う変数のために
とりあえず読み込み用クラスのポインタをグローバルなポインタ作ってそこに渡して動作させてる
他に良い方法ない?


27 :名前は開発中のものです。:2009/12/06(日) 14:27:31 ID:vkleFuhi
文字がだんだん表示させる演出すると、
文字の後ろに・が一緒に表示されるという怪現象が……。
なんだこれ?

まあ、たぶん俺のコードのどっか悪いんだろうが。

28 :名前は開発中のものです。:2009/12/06(日) 14:53:59 ID:P3Xq2+aM
いけないことなんだろうなと思いつつ
グローバルばかりでやってたがそうでもないのかな

29 :名前は開発中のものです。:2009/12/06(日) 15:10:27 ID:AxjxjhaV
それ文字1文字1文字ずつ表示させるって言う意味かな
全角だと1バイト分読み込んだ時に正しく認識されないから
全角の場合は2バイト分読み込ませればいいんじゃないかな


30 :名前は開発中のものです。:2009/12/06(日) 15:34:50 ID:L7OXdhxz
DXライブラリを使ってVC++2008EEでプログラムを作ったんだけれど、
配布するときにDXライブラリをインストールしていないPCでも
起動できるような配布の方法はあるのだろうか
よくわかんないけどDXライブラリランタイムみたいなのがあれば、
それを一緒に配布するみたいな方法とかある?
それとも配布するプログラムとは別にDXライブラリをインストールしてもらうしかないのだろうか。

31 :名前は開発中のものです。:2009/12/06(日) 15:39:03 ID:bw4St35R
>>30
よくわかんないけどたぶん上の[Debug]を[Release]に変えて
出てきたReleaseフォルダを配布すればいいと思う

32 :名前は開発中のものです。:2009/12/06(日) 15:43:00 ID:ez8iS4so
DxLibはスタティックライブラリだから使うほうはべつになにもいらない
ダイナミックなDxLibがあるのかわからんけど自作とかしたならその場合はDLLも配布しないといけない

33 :名前は開発中のものです。:2009/12/06(日) 15:43:02 ID:CJZjyivE
>>30
DXライブラリは関数の集合だから、ランタイムパッケージは必要ないんじゃないの?
プログラムが実行ファイルにされるときにすべてC言語からアセンブリ言語にされるはず。
相手に準備が必要なものがあるとすればDIRECTXなんじゃないかな。

34 :名前は開発中のものです。:2009/12/06(日) 15:43:31 ID:vkleFuhi
>>29
お、直った!
ありがとー。

STLのstring使ってるんだけど、itretorひとつ進めても、
2バイト文字だとふたつ進めたとこからやらないとだめなんだな……勉強になった。

35 :名前は開発中のものです。:2009/12/06(日) 15:44:56 ID:vkleFuhi
iteratorだった。
IDEのサポートに頼りっきりはこれだから……。

36 :名前は開発中のものです。:2009/12/06(日) 16:16:24 ID:L7OXdhxz
>>31 Releaseの使い方もわかってなかったから、
配布ファイル自体の作り方もわかった。ありがと。(早速、フォルダを作成したら、画像ファイルだけは、出来上がったフォルダに手動で追加することになるみたい。)

>>32 ダイナミックなDxLibというのはよくわかんないけど、多分そこまで複雑な機能を使いこなしてないから、
DLLの心配はしなくていいととりあえず思う。

>>33 DIRECTXの準備が必要ということか。
これは、さすがにインストールしてもらうしかないということだね。

これでとりあえずプログラムの配布ができそう。ありがと。

37 :名前は開発中のものです。:2009/12/06(日) 16:18:32 ID:RsTxI8Hk
>>30
Releaseフォルダの中身だけでおk

38 :名前は開発中のものです。:2009/12/06(日) 16:29:03 ID:AxjxjhaV
別に[Debug]でもよくね?
まあ普通は[Release]だろうが

39 :30:2009/12/06(日) 16:48:28 ID:L7OXdhxz
>>31、32,33

ありがとう!!

40 :名前は開発中のものです。:2009/12/06(日) 17:10:59 ID:bw4St35R
>>38
そういえばアレ何が違うの?

あとDXライブラリ使ったらReadmeに使ったって書かなきゃダメ?

41 :名前は開発中のものです。:2009/12/06(日) 17:29:11 ID:+RNAMjqx
>>40
そのままデバッグが入るか否か 少し重くなる
readmeは要らん ただしソースを配布するなら必須

42 :名前は開発中のものです。:2009/12/06(日) 17:50:49 ID:bw4St35R
>>41
ありがとー

43 :名前は開発中のものです。:2009/12/06(日) 18:03:42 ID:vkleFuhi
DXライブラリって音のフェードインとかには対応してないっぽい?

44 :名前は開発中のものです。:2009/12/06(日) 18:15:43 ID:+RNAMjqx
自分で作れよ

45 :名前は開発中のものです。:2009/12/06(日) 19:38:55 ID:EqSux42R
ChangeVolumeSoundMem関数使えば簡単に実装出来ますよ。例えば

/****** Zキーを押すとフェードアウトを始める *******/
/****** test.wavはサンプルプログラム実行用フォルダ参照 *******/

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode(TRUE);
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;
int Flag=0, Vol=255, SoundHandle = LoadSoundMem("test.wav");
PlaySoundMem( SoundHandle, DX_PLAYTYPE_LOOP );
while( !ProcessMessage() && !ClearDrawScreen() && !CheckHitKey(KEY_INPUT_ESCAPE) ){
if( CheckHitKey(KEY_INPUT_Z) ){
Flag = 1;
}
if( Flag ){
Vol -= 2;
ChangeVolumeSoundMem( Vol, SoundHandle ) ;
if( Vol < 0 ){
Flag = 0;
Vol=0;
}
}
clsDx(); printfDx("Vol = %d\n",Vol);
ScreenFlip();
}
DxLib_End();
return 0;
}

46 :名前は開発中のものです。:2009/12/06(日) 23:30:09 ID:vkleFuhi
>>45
どうもありがとうございますー。

色々考えてみた結果、マルチタスクに手を出さないとダメっぽいということがわかったので、
なんとか実装するか。

47 :名前は開発中のものです。:2009/12/06(日) 23:59:28 ID:jMxq/kh5
DxLibはマルチスレッド非対応じゃないっけか

48 :名前は開発中のものです。:2009/12/07(月) 00:00:23 ID:QTWxMRN0
普通に出来るしマルチタスクとマルチスレッドは違う

49 :名前は開発中のものです。:2009/12/07(月) 00:44:06 ID:yr1Q4g2a
すまんかった

50 :名前は開発中のものです。:2009/12/07(月) 12:52:27 ID:qjhIwQdC
なぁに気にすろな

51 :名前は開発中のものです。:2009/12/07(月) 13:02:56 ID:5mIc7NoF
本家で質問するわけにもいかないので、こっちで。

試験的に、ゲームのプレイ動画を撮ろうと思ったんだが、DXライブラリ3.xで作ったゲームを録画しようとしても全く録画できない。
画面が映らないというより、プロセスを正しく取得できていないような感じ。
ちなみに手元の2.25cだと、ゲームプログラムは弄らずにキャプチャー出来た。(3D機能は未使用)

に多様な状況になったひとっている?
自分の環境が悪いのか、キャプチャーソフトが悪いのか、ライブラリ側の都合なのか調べたい。


OS:WindowsXP SP3
キャプチャーソフト:アマレコ・ライト、Dxtory、DxRec
参考ページ: ttp://www18.atwiki.jp/live2ch/pages/153.html#id_439db353

52 :名前は開発中のものです。:2009/12/07(月) 13:45:13 ID:SKodZ2cg
キーボードでAの処理からBの処理へと連続で
同じボタンでやるとします。
この場合あるボタンを押すと勝手にAだけでいいのにBまで処理されて
しまいます。Aで止めて、もう一度同じボタンでBの処理をさせる
にはどうすればいいの? お願いします。

53 :名前は開発中のものです。:2009/12/07(月) 13:52:55 ID:QTWxMRN0
>>51
WMEでやったらどうなる
範囲指定でやったらどうなる

というか仕様的なことならむしろ本家に行った方がいいと思うが

>>52
連続ってどういうこと?
押しっぱなしじゃなくて連打させたいという意味なら
・キーを押すとONになるフラグを作る
・キーを離すとそのフラグはOFFになる
・キーがOFFの場合しかキーを押したときに処理が行われない
というようにする

54 :名前は開発中のものです。:2009/12/07(月) 14:15:07 ID:SKodZ2cg
>>53
CheckHitKey関数しか知らないんで key=0;
if(CheckHitKey(KEY_INPUT_TAB)==1 && key==0) 処理A,key=1;
if(CheckHitKey(KEY_INPUT_TAB)==0 && key==1) key=2;
if(CheckHitKey(KEY_INPUT_TAB)==1 && key==2) 処理B, key=0;

こんな感じですか?
非効率なような気がします。いい案があればおしえてください。
ちなみにシューティングじゃないんで連打はないです。


55 :名前は開発中のものです。:2009/12/07(月) 14:30:14 ID:QTWxMRN0
>>54
なんでそうなるんだよ

bool key=FALSE;
int hoge=0;
if(CheckHitKey(KEY_INPUT_TAB)==1) {
 if (!key) {
  key=TRUE;
  if (hoge==0) 処理A
  else 処理B
 hoge++;
 }
else key=FALSE;

あとCheckHitKeyは効率悪いからやめておけ

56 :名前は開発中のものです。:2009/12/07(月) 14:43:37 ID:GvCDZJ6F
↑より効率いいやり方ってそうないと思うが
あと、例だからかもしれないが、↑だと処理B→Aが続けて処理されると思うので
int state = 0;
int tab_push = 1;
〜〜〜〜〜〜〜〜〜〜〜〜〜〜
if(CheckHitKey(KEY_INPUT_TAB)==1 && tab_push = 0;)
{
 tab_push = 1;
 if(state = 0)
 {
  処理A;
  state = 1;
 }
 else
 {
  処理B;
  state = 0;
 }
 //  ↑この辺はswitchなりなんなり(処理が2つだけじゃなくたくさんある場合とか)
}
if(CheckHitKey(KEY_INPUT_TAB)==0) tab_push = 0;
//  ↑if(CheckHitKey(KEY_INPUT_TAB)==0 && tab_push = 1) としても変わらない

とここまで書いてすでに>>55でレスされてるのに気付いたが
ほぼ同じだが投稿しちゃう

57 :名前は開発中のものです。:2009/12/07(月) 14:44:31 ID:GvCDZJ6F
あ、「↑より効率いいやり方ってそうないと思うが」
の↑は>>54を指すので

58 :名前は開発中のものです。:2009/12/07(月) 14:44:45 ID:qjhIwQdC
>>54
if (( btn ) && ( ! isPush )) {

 switch ( step ) {
  case 1 :
   doA ( );
   step ++;
   break;
  case 2 :
   doB ( );
   step ++;
   break;
   ・
   ・
   ・
 }

}

isPush = btn ;

59 :名前は開発中のものです。:2009/12/07(月) 15:00:21 ID:SKodZ2cg
みなさんありがとうございます。
制御する変数を使わないとやはり難しいみたいですね。
参考にします。

60 :名前は開発中のものです。:2009/12/07(月) 16:30:58 ID:eqdM01iG
状況がよくわからんが一回の入力で連続して押したと判定されるのがいやということかな?だったら↓が汎用的だと思う

unsigned count[256] = {0};

while(true) { //メインループ
char buf[256];
CheckHitKeyAll(buf);

for(int i = 0; i < 256; ++i) if(buf[i] == 1) ++count[i]; else count[i] = 0; //押しっぱなしならカウント数をインクリメントして保存、押されてないとゼロにもどる

if(count[KEY_INPUT_XXX] == 1) DoSometing(); //カウントが1のとき、つまりボタンが押された最初のフレームのみ反応!

// if(count[KEY_INPUT_YYY] % 10 == 0) DoSometing(); //応用して押しっぱなし中なら10フレームごとにイベント、とかできる(シューティングの等間隔のショット処理とかで使える)
}


61 :名前は開発中のものです。:2009/12/07(月) 17:30:41 ID:03D0QZSj
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/315

315 名前:名前は開発中のものです。[sage] 投稿日:2009/06/02(火) 21:23:19 ID:CgQN485t
>キー入力

自分が使ってるルーチンのコードを記事にまとめました
http://d.hatena.ne.jp/kokarage/20090602/p2

62 :名前は開発中のものです。:2009/12/07(月) 20:24:23 ID:5mIc7NoF
>>52
さすがにDXライブラリのサイトで
「○○というソフトを使っても動きません!」という質問はできないだろうw
DXライブラリ側に原因があるなら別だが。

WMEはMSのやつかな。
動画作成に関しては今日初めてやったので詳しくないんだ、すまん。

63 :名前は開発中のものです。:2009/12/07(月) 20:49:26 ID:QTWxMRN0
>>62
2.25で出来て3.xで出来ないならライブラリ側の原因である可能性が多いだろ
とりあえず色んな方法でキャプチャして、上手くいかなかったら本家行き

まあ、WME+SCFH_DSFでは問題なくキャプチャ出来たが。

64 :名前は開発中のものです。:2009/12/08(火) 02:54:12 ID:CEeKe2FB
一々全部のキーに対して押し続けたかどうか判断する必要あるのか
余程多くのキー使うのならともかく普通は押し続けの判断したいキーだけでいいんじゃないのか
まあ今のマシンなら全部やっても負荷的には問題ないのかも知れんが

65 :名前は開発中のものです。:2009/12/08(火) 08:20:15 ID:bmgyrVLx
キー入力関連はゲームだとよく使うし、関数化しておくと便利ですよ。
「何フレーム入力されているか」が解るようにしておけば、ボタン関連の操作は「1フレーム目」または、「キーを離したフレーム」で処理すれば
連続で不必要な処理まで進んでしまう事がありません。
例えば本家のGetHitKeyStateAllを自分で使いやすいようにしたのが
GetHitKeyStateAll_2関数です。こんな感じで使えます。
(→コードは次へ)

この例ではエンターの入力時間によって処理を分岐しています。
キーの入力状態を格納する変数がint型なので
_2関数をさらに「離された時マイナスのカウントをする」ようにすれば
離されてからのフレーム数も解ると思います。
・・ところでコードを見やすいように字下げする方法無いんでしょうか;

66 :名前は開発中のものです。:2009/12/08(火) 08:21:20 ID:bmgyrVLx
/****** エンターキーをおした瞬間だけ四角形を描画する *******/

#include "DxLib.h"
int GetHitKeyStateAll_2(int KeyStateBuf[]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key[i]==1) KeyStateBuf[i]++;
else KeyStateBuf[i]=0;
}
return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
int Key[256];
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
DrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_RETURN]);//エンター入力カウント
if(Key[KEY_INPUT_RETURN]==1)//今の瞬間押されたら
DrawBox(0,0,640,480,GetColor(255,255,255),TRUE);//画面全体を白い四角で表示
ScreenFlip();
}
DxLib_End();
return 0;
}

67 :名前は開発中のものです。:2009/12/08(火) 10:08:46 ID:ziZ5aZky
実際の入力と、返ってくる値は切り分けた方が便利かもね

68 :名前は開発中のものです。:2009/12/08(火) 11:20:05 ID:U9efz6mV
>>65
ttp://fatalita.sakura.ne.jp/CGI/OKCode/index.html

69 :名前は開発中のものです。:2009/12/08(火) 15:24:53 ID:oCon0Lhk
MakeGraphでウィンドウサイズより大きい空のグラフィックを作成して、そこにマップチップを敷き詰める処理をしたいのですが
グラフィックハンドルを直接指定して描画処理をする方法がわからなくて困っています。
GetDrawScreenGraphを使っていったんウラ画面に描画したものを、空のグラフィックにコピーしようとしたのですが
ウィンドウサイズより大きいところに描画されたものはコピーされないみたいでダメでした。
どなたかこの問題を解決できる方はいませんでしょうか?

70 :名前は開発中のものです。:2009/12/08(火) 18:10:50 ID:EpEGhfoB
描画先にグラフィックハンドルを指定したらそこへ描画できるって話をうろ覚え。
ウィンドウサイズ以上にできるかどうかは知らん。

しかしマップチップ敷き詰めたとしても、どうせ表示サイズ以上には表示できないんだし、
普通に毎フレーム描画でいいと思うが。

まぁ全マップを拡大縮小回転とかガンガンやるならちとずれそうで怖いが。

71 :名前は開発中のものです。:2009/12/08(火) 19:18:27 ID:oCon0Lhk
>>70
ありがとうございます、いろいろ調べてきます!
2Dアクションゲームを作ってましてとりあえずマップ全体をメモリに描画しといて
スムーズなスクロールをしようと思ってました。


72 :名前は開発中のものです。:2009/12/08(火) 19:27:56 ID:EpEGhfoB
その目的なら止めた方が良いと思う。
普通に毎フレーム描画でいくべきだと。

よほどヘボなPC使うか、プログラムがヘボでないかぎり
スムースさに変わりはない。

73 :名前は開発中のものです。:2009/12/08(火) 19:37:02 ID:oCon0Lhk
>>72
そうですか。
しかし自分の知識不足でどうやって毎フレーム描画でドット単位のスクロールをすればいいのかわからなくて
ttp://www.harukitchen.com/rpg_programming/06/06.htm
ここのサイトを参考にしてるんですけど、この方法だと結局ウィンドウサイズ以上の大きさの描画が必要になるし
どなたか知恵を貸していただけないでしょうか?

74 :名前は開発中のものです。:2009/12/08(火) 19:45:37 ID:B6+BeJXV
別にその方法で間違ってない
ウィンドウサイズ以外の描画がしたくないならカメラ座標に映らない座標のオブジェクトは描画しなくていいだけだし、
確かdirectXの仕様で画面外は省略されてた気がする

DXライブラリならオリジナルの描画関数作ってDrawRotaGraphなりに飛ばしてやるのがお勧め

75 :名前は開発中のものです。:2009/12/08(火) 19:46:26 ID:EpEGhfoB
えーとね。

キャラクターの表示はできる?
それをドット単位で動かせる?

それができるならマップもできよ。

マップったって、結局マップチップというキャラクターを並べて表示してるだけだからね。
ドット単位で表示ずらせばいいだけ。

んでもって、画面表示されない位置のマップチップは描画しなければいい。

76 :名前は開発中のものです。:2009/12/08(火) 20:11:36 ID:oCon0Lhk
>>74,>>75
キャラクタの表示もドット単位の移動もできています。
自分の頭の中では
1,ウィンドウサイズより一回り大きいグラフィックハンドルにマップチップを敷き詰める

2,そこから必要な場所だけを切り取って表示する
という流れしか考えられません(´・ω・`)
しかしこれだと1のステップがクリアできなくてダメだし
簡単にアルゴリズムをアドバイスしていただけないでしょうか?

77 :名前は開発中のものです。:2009/12/08(火) 20:19:13 ID:oCon0Lhk
書き込んだ瞬間に何故かひらめいた
マップチップを敷き詰めるはじめる座標を(-32-[主人公の座標.x]%32,-32-[主人公の座標.y]%32)
にしてあげて、主人公の座標から必要なマップチップの情報をウィンドウサイズより一回り大きく取り出してあげて
それを描画すればいいんですよね!!

78 :名前は開発中のものです。:2009/12/08(火) 20:32:31 ID:DQdomlYR
その通り

79 :名前は開発中のものです。:2009/12/08(火) 20:35:04 ID:EpEGhfoB
おめでとう。それが解れば大丈夫だ。

80 :名前は開発中のものです。:2009/12/08(火) 20:39:47 ID:oCon0Lhk
皆さん大変おさがわせしました。
今プログラム組んでみたら上手くいきました:)
ありがとうございました、これからもよろしくお願いします。

81 :名前は開発中のものです。:2009/12/08(火) 20:40:20 ID:EpEGhfoB
あ、そうそう、君が>>73で示したサイトにもあるけど

「主人公の位置」じゃなくて「カメラの位置」で考えてね。

基本的に主人公の位置とカメラの位置は同じだけど、
マップ端に行った時は違ってくるから。

82 :名前は開発中のものです。:2009/12/08(火) 20:55:01 ID:8T1WO6Nw
DxLib使えるだけじゃ無理だと悟った
なんかC++&DxLibがちょっと使えるレベルの人間にふさわしい本とかないすかね

83 :名前は開発中のものです。:2009/12/08(火) 21:05:16 ID:B6+BeJXV
何作りたいのかにもよるが
アクションゲームアルゴリズムマニアックスとか?

84 :名前は開発中のものです。:2009/12/08(火) 21:09:08 ID:EpEGhfoB
>DxLib使えるだけじゃ無理だと悟った

俺だってC++とDxLibがちょっと使える程度だが、ちょっと使える程度のものを作るには不自由ないぞ。

C++&DxLibで何がしたいのか次第でしょ。

85 :名前は開発中のものです。:2009/12/08(火) 21:33:24 ID:8T1WO6Nw
特定ジャンルのゲームというより、共通の基礎的な部分を勉強したい
最終的にはシレンっぽいのを作りたいんだが、その前になんか根本的な部分が抜けてるような気がしたんだ


86 :名前は開発中のものです。:2009/12/08(火) 21:47:15 ID:trfhK022
試しにシレンっぽいの作ってみたら何が足りないかわかんじゃね
作りたい物だったらモチベーションも保ちやすいし勉強にも身が入る
わからなさ過ぎると嫌になるかもだけど

87 :名前は開発中のものです。:2009/12/08(火) 21:47:25 ID:B6+BeJXV
http://www.kumei.ne.jp/c_lang/
ほらよ

あとは作るしかない
ゲーム作りのノウハウは他人に教えてもらうのではなく経験で身につけるもの

88 :名前は開発中のものです。:2009/12/08(火) 22:23:40 ID:nVGvorfQ
>共通の基礎的な部分を勉強したい

プログラムの基礎を勉強したいのか、
プログラムはわかるが、ゲーム作りの基礎を勉強したいのかでまた違ってきそうだね。

ちなみに俺は独学でゲーム作りしてきたから、ゲームは作れても基礎が全然できてねぇ;;
俺も勉強しなおすかな……。

89 :名前は開発中のものです。:2009/12/08(火) 23:54:13 ID:JpJMUeIi
プログラムの基礎に不安があるなら、C++だったらeffective C++とかを
読んでみるといいかもね。あとはデータ構造、基本的なアルゴリズム、
デザインパターンあたりがわかると、汎用性があるかな。

でもまあ、趣味でやるなら勉強と思ってやることはないと思うぞ。
問題を解決しようとして見つけた情報の中で、便利そうなのがあったら
その周辺を重点的に調べる、で結構いろいろできるようになる。

ところでDXライブラリって、core以外のソースは公開されていないよね?
掲示板ちょっとみたら、ソース公開に関する質問はスルーされていたので、
全て公開するかは未定ってところかな。

90 :名前は開発中のものです。:2009/12/09(水) 00:17:14 ID:5fGPGOQD
eff c++はもう読んだし、デザインパターンもある程度知ってる
知りたいのはアニメーションの統一的な制御法とか、膨大(になりそうな)画像やデータファイルの生成・管理法とか
この辺がうまくできなくてコードに直接埋め込んじゃってるからどんどんスパゲッティになっていってわけわからなくなるんだと思う(たぶん)


91 :名前は開発中のものです。:2009/12/09(水) 00:20:33 ID:q6H67G0j
うんゲームって極論すればプログラム自体はどうでもいいんだよね
データの設計や管理などの方がずっと重要

92 :名前は開発中のものです。:2009/12/09(水) 00:31:54 ID:oBlr8zOS
>>90
今書いてるコードがスパゲッティになるかどうかは、ゲームを完成させるまで分からない。
幾つもゲームを作りながら、「この書き方だと後々こういうケースにハマって困る」というのを学んでいく
そうやって最適化されていくもんだよ

そこら辺に落ちてるゲームの作り方的な例は最初から最適化されてることが多いが、
何故そのように最適化されてるのか述べてるものはほとんどない
そういう意味も考えながらだと上達が早いと思う

93 :名前は開発中のものです。:2009/12/09(水) 00:47:35 ID:f8b9o6Br
ぶっちゃけ、デザインパターンようしらんが、
stlとboost使った自作のデータ管理クラスでなんとかなってるよ。
配列の番号とかいちいち覚えてられねーよwwwってことで。

ファイル名と画像なら表示されてるレイヤとか指定すれば色々操作できる仕様。
ただ、俺ゲームどころかまともに作るのすらはじめただから正解かどうかはわからん。
基底クラスのデータ管理で使ってるのは、unordered_map。

94 :名前は開発中のものです。:2009/12/09(水) 01:30:17 ID:+dPnel+v
>>85
同じにおいを感じるッ!
ゲームの設計に多少時間をさくのがいいんじゃないかな。
シーケンス制御とか、どのクラスがデータを持つのかとか。

俺もとりあえず動くもの作ってみてあれこれ機能つけたしてくってしてたけど
ちょっと規模が大きくなるとワケワカメになってきたから
丁寧に設計してみようと勉強&作成中。

「ゲームプログラマになる前に覚えておきたい技術」って本、高いけど
その辺の要求に答えてくれてる気がする。

あ、DxLib使ってないけど、読めばより使いこなせるようになると思うよ。

95 :名前は開発中のものです。:2009/12/09(水) 01:41:52 ID:OFLUsKk5
おいしくない創作料理を作るようにクソゲーは作ることに意義がある

96 :名前は開発中のものです。:2009/12/09(水) 01:44:54 ID:uL4RaiqG
俺もデザパタなんて必須のものかね
俺は使わずにやれてるし、ある程度使わずにやってみずして必要性実感できるものかね
デザパタ学んでからやるべきものかね
ある程度C++使ってから見てみると多少参考にはなるけど

97 :名前は開発中のものです。:2009/12/09(水) 01:46:31 ID:LrcOl5Bl
口より手を動かせ

98 :名前は開発中のものです。:2009/12/09(水) 06:23:23 ID:kFKKgCNe
俺の状態

適当に作る

設計に無理があって、どこかで詰まる

作り直しになる

最初よりマシになるがそれでも設計に無理があってどこかで詰まる

作り直しになる。しかも作り直してる最中にまた詰まることがなんとなく分かる。
だが、具体的にどう詰まるのかは分からないし、その解決策も現スキルでは分からない。

どうせまた作り直すことが分かってしまうとモチベが下がる。

今のところ、この繰り返しでいずれゲームの作り方が身につくと信じて
程ほどに考えて、手を止めすぎないようにしている。

99 :名前は開発中のものです。:2009/12/09(水) 06:50:15 ID:aw1FDcJg
決して他人にアドバイス出来るような身の上ではないけれど、1つだけ。


途中で良い設計が思いついたり、飽きてしまうこともあるけれど、
まずはどんなミニゲームでもいいから、とりあえず完成させるべき。

昔の電子ゲーム(ゲーム&ウォッチ)みたいな単純なゲームなら
悩んだり飽きたりする前に、それこそ勢いだけで完成しちゃう場合も。

100 :名前は開発中のものです。:2009/12/09(水) 08:10:26 ID:cydXuseL
>>98
俺の自己紹介文をなぜ書けるw

101 :名前は開発中のものです。:2009/12/09(水) 13:02:55 ID:zYgTW+cQ
ちょっとした作業を自動化するバッチ処理をスクリプト言語で
書いてみたりすると案外プログラム書けて俺スゲーと思うはず
ゲームって作りたいもののイメージが先行して
それを実現するために要求される技術が高すぎるからorzになりやすい

102 :名前は開発中のものです。:2009/12/09(水) 14:56:36 ID:njV6Yik+
俺もなんとなくC++のサンプルが載ってるとこからコピペで動かしながらゲーム作ってて
そろそろちゃんと基礎からやっとくかーとか思って言語の基礎から説明してくれてる解説サイトを見てみたら
C言語に関しては勉強する部分があんまり残ってなかった

103 :名前は開発中のものです。:2009/12/09(水) 15:09:50 ID:cydXuseL
eff c++的な本やデザパタ本の境地に地力で達していると
読んだときにニヤニヤする

104 :名前は開発中のものです。:2009/12/09(水) 23:48:43 ID:Wiib7oc4
DXライブラリで"あaいiuうeえお"という文字列を

あa
あaい
あaいi
と一文字ずつ表示させていく方法について教えて下さい

105 :名前は開発中のものです。:2009/12/10(木) 00:24:34 ID:qpivaZnn
1文字づつ読み込み、
その文字がASCII(1バイト)文字か、そうでないか(2バイト)を関数で判断
それからstringまたはchar型の変数aに代入
→1バイト文字なら、DrawFormatString(a,%s)
→2バイト文字なら、Forループと文字幅関数を組み合わせて文字を横に表示

とかやった記憶がある。

106 :名前は開発中のものです。:2009/12/10(木) 11:23:34 ID:o5AOUra2
超初心者です。
新規プロジェクトからDXライブラリを使う場合
どのようにつかったらいいの?
単にプロジェクトに追加すべきファイル_VC用の内容をコピーして
新規プロジェクトで作ったフォルダーに入れただけではリンクでエラーが
でます。新規プロジェクト作成からDXライブラリを使ったコンパイルまでの
流れを易しく教えてください。

107 :名前は開発中のものです。:2009/12/10(木) 11:29:59 ID:hZmtje4B
ttp://homepage2.nifty.com/natupaji/DxLib/dxuse_vc2008express.html

公式のこれはちゃんと読みながら設定した?

108 :名前は開発中のものです。:2009/12/10(木) 12:20:31 ID:o5AOUra2
設定したつもりで、下のようにエラーでます。
なぜなのか分かりません。
1>リンクしています...
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount は既に MSVCRTD.lib(MSVCR90D.dll) で定義されています。
1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit は既に MSVCRTD.lib(MSVCR90D.dll) で定義されています。
1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: __exit は既に MSVCRTD.lib(MSVCR90D.dll) で定義されています。

109 :108:2009/12/10(木) 12:26:42 ID:o5AOUra2
単に今まで人が書いたソース(DX経由)を上書きしたり消したりしていましたが、
単にそれを新規プロジェクトに移したいだけなんですけど、
よく分からないです・・・。

110 :名前は開発中のものです。:2009/12/10(木) 12:57:31 ID:1HVns5Nx
おそらく
プロジェクト→設定→C/C++タブ→カテゴリをコード生成にする
使用するランタイムライブラリをマルチスレッド(デバッグ)にする
(このとき左の方の設定の対象がWin32 Debugになっている場合)
それをやったら左の方の設定の対象をWin32 Releaseに変えて、
使用するランタイムライブラリをマルチスレッドにする
→OKボタンを押せばおk


111 :108:2009/12/10(木) 13:01:44 ID:o5AOUra2
>>107
>>110
アドバイスから先程できました。
>>110さんがいってる通り、プロジェクトのプロパティは毎回
設定しなおさなきゃならないんですね。一度やったから継続
されるものだと思っていました。ありがとうございました。
今までの疑問が解決されました。

112 :名前は開発中のものです。:2009/12/10(木) 23:02:01 ID:XglTjGxz
>>108
http://www.play21.jp/board/formz.cgi?action=res&resno=43733&page=&id=dixq&rln=43742
ここに同じ質問があります

113 :名前は開発中のものです。:2009/12/11(金) 23:03:13 ID:Iqulp5dV
描画領域のクリッピングってできないんだろうか

114 :名前は開発中のものです。:2009/12/11(金) 23:42:17 ID:HuvsxFxE
出来る

115 :108:2009/12/12(土) 00:31:17 ID:E1BPSoBb
画面の最大化ってどうしてます?
ChangeCallback使ったらの画像ハンドルはすべてグローバルにしなきゃならないの?

116 :名前は開発中のものです。:2009/12/14(月) 00:33:25 ID:8p9lCz90
画像管理クラスみたいなのを作って
そいつにフルスクリーンにされた、という情報を通知してやるとか

117 :名前は開発中のものです。:2009/12/14(月) 01:18:53 ID:UpilfluK
最大化ってやっぱフルスクリーンの事なのか。

118 :名前は開発中のものです。:2009/12/15(火) 12:51:33 ID:RIHdLK0r
自分好みのサウンドノベル作ろうと思ったのですが、ノベルって60fpsもいらなくてフレームレート下げたいと思ってます。
しかしどのようにやればいいのかよくわからず困っています。
何か調整する関数などないでしょうか?

119 :名前は開発中のものです。:2009/12/15(火) 13:11:08 ID:CgintmXt
フレームレート下げる理由はなに?
画像更新の回数を減らすため? もしそうならフレームレート関係なく、画像更新しなきゃ済む事でしょう。

キー入力処理だけループさせて適当にSleepでもはさんでおけばいいんじゃない?

120 :名前は開発中のものです。:2009/12/15(火) 14:01:22 ID:RIHdLK0r
なるほど!ありがとうございます

121 :名前は開発中のものです。:2009/12/15(火) 22:43:42 ID:9aF+TrWP
わざわざフレームレートを下げる必要があるのでしょうか?
サウンドノベルでも画面の切り替わりであったり、
何らかのエフェクトであったり、後から60FPSで滑らかに表示させたくなるかもしれないので、
60FPSで作っておいて損はないと思うのですが。

もし60FPSにするなら、1フレーム(ループ1周)の時間を計っておき
1/60秒(16.6666...ms)になるまで待機させます。
30FPSなら1/30ですね。

しかしSleep関数は指定した時間「以上」待機してしまうので、
正確にFPSを制御したいなら、少し工夫が必要です。
大した工夫ではありませんが、前回の誤差を次回で修正するような作業が必要です。

モニタは60FPSが一般的で、裏画面描画なら、何もしなくても60FPSになります。
ですから、試してみて待機関数が正常に動作していると勘違いしがちですので、
お気をつけて

122 :名前は開発中のものです。:2009/12/16(水) 07:34:00 ID:nhTnsvqc
グルグル回しっぱなしの方が楽だな。
カーソルの点滅とか地味に動かすところもあるのにそこだけ描き換えるのも面倒。

123 :名前は開発中のものです。:2009/12/16(水) 18:27:09 ID:GKpjO21V
下手に部分描画頑張っても画像崩れ対策とかが面倒だしな
最近のPCの性能にまかせて60回更新余裕です

124 :名前は開発中のものです。:2009/12/16(水) 18:44:25 ID:CpLVLwh1
まぁまぁ。
CPU使用率とかメモリアクセス減れば電気代節約にもなるだろうし(?)
色々挑戦する分にはいいんじゃないかな。

125 :名前は開発中のものです。:2009/12/16(水) 18:52:02 ID:O9VqeVrK
ゲーム中の状態異常としてFPS強制低下を組み込もうと考えた事はあるわ

126 :名前は開発中のものです。:2009/12/16(水) 19:20:23 ID:zY3Wrvaf
俺のゲーム、30fpsだ

127 :名前は開発中のものです。:2009/12/18(金) 18:57:42 ID:1+hLha67
すいません。
DXライブラリのド初心者です。><
2Dアクションでキャラが歩いてる感じの表現をだしたいのですが。
どうすればいいでしょうか??
詳しいサイトを教えていただけるだけでもうれしいです><
おねがいします><


128 :名前は開発中のものです。:2009/12/18(金) 19:09:02 ID:B2G1gHKW
http://dixq.net/g/#0

129 :名前は開発中のものです。:2009/12/18(金) 19:16:05 ID:fEqZwGFp
>127
RPGの歩いてる感じであれば上のサイトでも書いてありますが、
2Dアクションとなると少し違うかも知れませんね。
歩いてる感じといっても、描画だけできればいいのか、
地面とのあたり判定を求めて描画するのかなどで
回答は色々変わってくると思いますが、とりあえず描画だけすればいいんですかね?

アクションゲームは初めて作るゲームとしてはとても難しいと思いますよ。
特に斜め坂、曲面大地とか作らないといけなくなると
マップ管理とかも結構面倒です。

で、描画だけすればいいのであれば、
いくつか歩行グラを読み込んでループ描画すればいいのではないでしょうか?

130 :名前は開発中のものです。:2009/12/19(土) 02:45:18 ID:ettFnh3/
ありがとうございます。
基本はRPGにしようとおもっています><
ただ、戦闘がめんをアクションみたいにしたいとおもっています。
テイルズシリーズみたいなかんじです><
RPGの要領で画像分割で挑戦してみたのですがなにかいわかんがありましたので
迷惑かもしれませんがご教授おねがいいたします><。

131 :名前は開発中のものです。:2009/12/19(土) 02:46:33 ID:5USgcct8
3Dゲームを作りたいのですが

132 :名前は開発中のものです。:2009/12/19(土) 02:50:33 ID:6/6f/NLc
質問のレベルがDXライブラリを使うとかどうとか以前の問題な気が

133 :名前は開発中のものです。:2009/12/19(土) 02:53:29 ID:5USgcct8
3Dのゲームを作りたいです。
僕が作るのは主観視点の剣劇アクション。
山や森、遺跡を冒険するのです。
グラフィックはXBOX360くらいを目指します。
DXライブラリを使えばできますか?

134 :名前は開発中のものです。:2009/12/19(土) 02:58:12 ID:7KIcg3Ok
グラフィックはもう少し現実的な目標をだな…

135 :名前は開発中のものです。:2009/12/19(土) 03:04:45 ID:5USgcct8
グラフィックはよく研究してるます!

136 :名前は開発中のものです。:2009/12/19(土) 03:14:03 ID:7KIcg3Ok
そうかそうか
DXライブラリは3Dも扱えるが2D向けなのは違いない
http://www.libsdl.org/index.php
DXライブラリの代わりにこっちでやれ

137 :名前は開発中のものです。:2009/12/19(土) 10:41:46 ID:bRqniW+f
>>133
>グラフィックはXBOX360くらいを目指します。
DXライブラリではできないのでDirectXを使いましょう。

138 :名前は開発中のものです。:2009/12/19(土) 10:44:35 ID:aeC7U3rq
XNAを使うのがいいでしょう

139 :名前は開発中のものです。:2009/12/19(土) 11:10:32 ID:5eLz8Bt1
Unity3Dとか?

140 :名前は開発中のものです。:2009/12/19(土) 11:22:56 ID:Mkh38zVU
UDKでもいいんじゃね?
【UDK】Unreal Development kit ver.1【無料】
http://pc11.2ch.net/test/read.cgi/gamedev/1257586779/l50

141 :名前は開発中のものです。:2009/12/19(土) 14:48:51 ID:EBmq0OgA
仮にDirectXでFPSを作るとしたら政策時間は何時間くらいになるのか。
DXライブラリで作る場合と比べてどれくらいながくなるのか

142 :名前は開発中のものです。:2009/12/19(土) 14:54:22 ID:bRqniW+f
>>141
人にもよるし作るモノにもよるので何とも言えない。
DirectXで作る場合はDXライブラリに相当するライブラリを自作することになるのでそれだけの期間が必要になる。

143 :名前は開発中のものです。:2009/12/19(土) 15:13:02 ID:R8+wJcL7
なんで最初から作る話になってるんだ
DirectXでやってるやつは自分で自前のライブラリぐらい作ってるだろ


144 :名前は開発中のものです。:2009/12/19(土) 15:27:22 ID:jOWfP0B6
自分でライブラリ作ってるくらいの経験あるなら
ゲーム製作時間の見当ぐらいだいたいつくだろ。

145 :名前は開発中のものです。:2009/12/19(土) 15:34:09 ID:FRLZB9mk
そんなあなたに3D Gamestudio
http://pc11.2ch.net/test/read.cgi/gamedev/1219363848/

146 :名前は開発中のものです。:2009/12/19(土) 23:55:31 ID:WQuVN0Mv
>>130
今年のHSPコンテストでテイスズオブに近い戦闘システム再現した作品あるぞ
機能の低いHSPでさえ出来るのだからDXLibでもやれると思ってもいいだろう
画面分割に関してはDXLibでは良くわからない、自分はSlimDXで開発しているので
SlimDXはDirectXとほぼ同じようなプログラミングなのでデバイスやビューポート調整して簡単に画面分割できる

147 :名前は開発中のものです。:2009/12/20(日) 01:17:43 ID:sO/QX8MT
ありがとうございます〜〜><
普通のRPGの戦闘画面よりかはむずかしいのでしょうか
少し、HSPのコンテストのほうをしらべてみようとおもいます><
ありがとうございなした><


148 :名前は開発中のものです。:2009/12/20(日) 01:35:28 ID:bOWZLmUi
ニコニコのランキングに上がってるDXライブラリ使った動画見て感動した

149 :名前は開発中のものです。:2009/12/20(日) 01:41:14 ID:sO/QX8MT
まさに神言語!!
だとおもった。

150 :名前は開発中のものです。:2009/12/20(日) 02:40:03 ID:yjWmlZsc
>>148
どれ?

151 :名前は開発中のものです。:2009/12/20(日) 02:44:10 ID:8HD3DPTi
>>147
2Dのみか3Dを使うのか分からないけど、戦闘画面作るだけなら難しくない
RPGのHP,MPパラメータにしても2Dスプライト重ねるだけでいいし、画面分割の必要性も無い
しかし、RMB再現するって言ったらリアルタイム衝突判定とか移動のAIも必要になってくる
こっちの方が難しいかもね、かなり頭脳巡らせないと

152 :名前は開発中のものです。:2009/12/20(日) 02:48:23 ID:AKlh0ZUE
http://www.nicovideo.jp/watch/sm9127380
ぷるんぷるん

153 :名前は開発中のものです。:2009/12/20(日) 03:07:29 ID:yjWmlZsc
>>152
再生数多過ぎわろたw

154 :名前は開発中のものです。:2009/12/20(日) 08:59:33 ID:k8v3yd7d
>>152
天才だな

155 :名前は開発中のものです。:2009/12/20(日) 09:37:34 ID:fyZALbEa
>>152
ワロタw

156 :名前は開発中のものです。:2009/12/20(日) 10:53:07 ID:pbr01wLc
えええ。これDXライブラリなのかよ。
各種設定処理を作るのにDXライブラリが便利なのはわかるが
キモの部分もDXライブラリなのかなぁ。

157 :名前は開発中のものです。:2009/12/20(日) 11:06:38 ID:MWGoeVwx
DXライブラリ以前に画像の加工のアルゴリズムだろこれ

158 :名前は開発中のものです。:2009/12/20(日) 11:11:04 ID:7mE2lHZo
メッシュで板ポリに分割して頂点動かしてるだけでしょ
アイデアは面白いけどDXライブラリだからどうというようなものでは全くない

159 :名前は開発中のものです。:2009/12/20(日) 11:15:43 ID:k8v3yd7d
キャラ歩かせるのも一苦労の俺からするとなんでもすごいわ

160 :名前は開発中のものです。:2009/12/20(日) 11:16:35 ID:7mE2lHZo
いやすごいのはすごいんだけどDXライブラリ関係ないw
画像を指定した位置に表示することさえできれば何使ったっていいわけだ

161 :名前は開発中のものです。:2009/12/20(日) 11:37:05 ID:8HD3DPTi
>>148
ニコ動ランキングってバトーキン?
MMDのモデルを取り込んで、動かしたりしてかなり有名になったみたいな
どんなゲーム作るつもりなんだろう

162 :名前は開発中のものです。:2009/12/20(日) 11:59:57 ID:+z1/NVyp
>>161
何一人話違う方向行ってんだよw 152を見れ

しかし俺もバトーキンさんの動画も見た。マジで、どこまで出来る神ライブラリとおもた

163 :名前は開発中のものです。:2009/12/20(日) 12:05:51 ID:cTP9K/Ao
DXライブラリは本当にすごいと思うが
実質管理人さんが一人で開発サポートしてるのが心配。
これ管理人さんが投げたらそれで終わりだろ。しかもサポートは大変そうなのに無料だし。

164 :名前は開発中のものです。:2009/12/20(日) 12:24:05 ID:pbr01wLc
それはフリーソフト全般に言える事だし、しょうがないでしょう。

管理人さんが投げ出すのが心配なら、投げ出さないように
自分ができる事をやりましょう。

165 :名前は開発中のものです。:2009/12/20(日) 12:31:14 ID:VW9EJyuI
>>163
そのへんは市販のライブラリやソフトでも同じだと思うよ。
ゲーム用のツールや3DCGソフトで言うと、Hexagonとか
TrueSpaceとかの例もある。
HUMANが作ってたDigitalLocaとかもそうだし。


>>152
その動画で「ヨーグルトきのこ健康法―ケフィアの奇跡」を
購入した人がいるの見て、ちょっとウケた。

これ普通に動かして遊んでても結構楽しい。
良く分からんけど、DirectXかnVidiaのサンプルであった
マウスの動きで波紋が起こるサンプルみたいな事を
やってるのかな。
でもDXLibってピクセルシェーダー使えないし、テクスチャ
領域を直接いじれなかったような気がするけど
1マス=1ポリゴン(四角)でバネのマスにしてるのかな。

166 :名前は開発中のものです。:2009/12/20(日) 12:33:05 ID:+z1/NVyp
そういえばDXライブラリ3Dってのあったけど投げ出して終わってしまったな・・。

確かにたった一人のやる気次第ってのはある意味怖いね。
知名度が高くなるほどプレッシャー的なものも増えるだろうし

167 :名前は開発中のものです。:2009/12/20(日) 12:39:12 ID:k8v3yd7d
DXLIBってオープンソースじゃなかったのか



168 :名前は開発中のものです。:2009/12/20(日) 13:04:38 ID:W38UtI0s
いままでfps気にしてない(だいたい70fpsくらい)で
ゲームつくってたんだけどfpsを60にすると目に見えて
アニメーションが劣化するんですよね。
これってある程度防ぐ方法ってありますか?

169 :名前は開発中のものです。:2009/12/20(日) 13:15:55 ID:p2KLc6SL
大抵グラにこだわってるゲームは見た目凄いだけで実際触ってみるとツマンネになる

170 :名前は開発中のものです。:2009/12/20(日) 13:43:03 ID:hw7zG3Hd
>>168
2Dか3Dかによってもやり方が変わってくるけど、アニメーションを調整するしかないかな。

171 :名前は開発中のものです。:2009/12/20(日) 14:39:39 ID:bQQ2+att
60fpsでアニメーション劣化するってwww
何フレームで更新してんだよww
1フレームごとアニメーション更新してれば60もあれば十分すぎるだろ

172 :名前は開発中のものです。:2009/12/20(日) 15:02:55 ID:W38UtI0s
>>169
気持ちは痛いほど分かります。ただ、辛口の他人がやる場合、取っても
もらえないんですよ。

>>170
やはりコマ数ですか.

>>171
レミングスみたいに並んでアニメーション
させて動かしてると、明らかにぎこちないんですよね。処理落ちかもね?

173 :名前は開発中のものです。:2009/12/20(日) 15:46:47 ID:bQQ2+att
>>172
ためしにひとつをアニメーションさせてみて滑らかなら、大量にしたことによる処理落ちじゃないかと思う
>>170のとおり、コマ調整したほうがいいと思う

174 :名前は開発中のものです。:2009/12/20(日) 15:53:03 ID:pbr01wLc
2Dなのか3Dなのか、
2DだとしてもFPSが違ってもゲームスピードは一律になるような処理にしてるのか、とか
状況によって違うと思うんだが。

175 :名前は開発中のものです。:2009/12/20(日) 15:56:54 ID:O/sMnLk/
WaitTimer(14);
てやってるんじゃあるまいなww

176 :名前は開発中のものです。:2009/12/20(日) 16:42:20 ID:W38UtI0s
>>174
2Dです。

>>175
そんなことしたら、操作できなくなるので分かると思います・・・。

うーん、うまく動かないですね。人の作ったプログラムは分からないこと
が多いので今回でDXライブラリから卒業しようを思います。これからは
友人と同じように自分で一から組み立てます。
レスしてくれた人ありがとう。

177 :名前は開発中のものです。:2009/12/20(日) 16:49:25 ID:pbr01wLc
2Dで70FPSで動かしたってのは、
1フレーム1コマ、1秒間に70コマもの超なめらかアニメーションさせてるって事?

178 :名前は開発中のものです。:2009/12/20(日) 16:50:10 ID:0xWmRFl6
モニタのリフレッシュレートと合ってないだけだろ

179 :名前は開発中のものです。:2009/12/20(日) 16:55:09 ID:fyZALbEa
70FPSってモニタが70Hzじゃないと表示できないんじゃないの

180 :名前は開発中のものです。:2009/12/20(日) 17:03:38 ID:pbr01wLc
垂直同期信号待ちを切れば、動作は可能だね。
見た目は60FPSだけど。

181 :名前は開発中のものです。:2009/12/20(日) 17:38:57 ID:O/sMnLk/
処理落ちかもねとか言ってるけど処理落ちかどうかの確認はしてないのかよ?

182 :名前は開発中のものです。:2009/12/20(日) 18:01:04 ID:bQQ2+att
ちょっと待てwww
それくらいでDXライブから離れるのかwww
なんか解決方法あるだろうに
自作でDXいじれるなら、今回のことくらい解決できそうなんだがw

183 :名前は開発中のものです。:2009/12/20(日) 18:33:44 ID:e25g0Lsq
>>168>>172
>レミングスみたいに並んでアニメーション

どう考えても処理落ちです
本当にありがとうございました
70FPSに戻してみろ 同じようにカクカクだから

184 :名前は開発中のものです。:2009/12/20(日) 18:41:50 ID:e25g0Lsq
とりあえず解決方法はフレームスキップね 30fpsまで落としてもいいけど
ttp://msdn.microsoft.com/ja-jp/academic/cc998627.aspx
>>176
でもDXライブラリに関係無いことをDXライブラリのせいにしてる時点で
こいつにゲーム作らせるの無理だろww

185 :名前は開発中のものです。:2009/12/20(日) 19:09:59 ID:k8v3yd7d
ライブラリのせいにするなよw


186 :名前は開発中のものです。:2009/12/20(日) 19:48:19 ID:pJOeWZ3s
普段人の書き込みについて何か言ったことは無いのですが、さすがに
>>176
には頭にきました。
自分が技術力無い事をライブラリのせいにしないでください。
> WaitTimer(14);
なんでこれ書いたら操作不能になるの?
70FPSから60FPSにすると目に見えて劣化する?
ある程度経験がある人から見たら「は?何言ってんの?」と思うでしょうね。
2chにまともなDXライブラリのスレはここだけ。
制作者さんが見てもおかしくない。
そしてDXライブラリ愛用者が集まるこの場所で、自分の技術力無いこと棚にあげて
ライブラリのせいにしないでほしいですね。

187 :名前は開発中のものです。:2009/12/20(日) 21:38:21 ID:sO/QX8MT
>>151さん
ありがとうございます。
RMBというのがよくわかりませんが><
とりあえずいまめざしているRPGはおいといて、
簡単なアクションか格闘ゲームをつくってみたいとおもいます><
DXライブラリのアクションについてくわしくかかれているサイトがありましたら
おしえてほしいです><
あと、ゲーム製作にくわしいかたは、初めはどのようにして知識をつけられたのでしょうか??
ご教授おねがいいてします><
長文すいませんでした><


188 :名前は開発中のものです。:2009/12/20(日) 21:40:59 ID:n56np6ws
D><ライブラリ

189 :名前は開発中のものです。:2009/12/20(日) 22:01:17 ID:bQQ2+att
>>187
いろんなジャンルの簡単なゲームを一通り作成しておくとノウハウが身につくよ。困ったときにも応用きく
でも、自分が作りたいものをいきなり作っても大丈夫なくらいDxlibは充実してると思うからそんなに難しく考えなくて大丈夫な気がする
描画の仕方と入力などさえ作者の解説ページで学んだなら、あとは必要なアルゴリズムを検索などして探して、合うように書くだけ
ゲーム作りでわからなくなるのは作りたいものを表現するアルゴリズムの部分だけど、そこの部分は自分のわかる言語で書かれてる解説ページならそれをC++で書き直せばいいだけだしね

作者さんの解説ページ
http://dixq.net/g/

DXlibリファレンス(DXlibの説明ページ)
http://homepage2.nifty.com/natupaji/DxLib/dxfunc.html

解説は薄いけどDXlibの基本的なソースなど
http://homepage2.nifty.com/natupaji/DxLib/dxprogram.html

DXlibじゃないけど、ゲームのアルゴリズムの考え方なら
http://www5f.biglobe.ne.jp/~kenmo/program/program_ind.htm

190 :名前は開発中のものです。:2009/12/20(日) 22:03:59 ID:pJOeWZ3s
>>189
作者さんの解説ページって書いてるけど、
それ作者とは関係ないですよ。
URL見たら全然違うのがわかるはず

191 :名前は開発中のものです。:2009/12/20(日) 22:36:02 ID:8HD3DPTi
>>187
スペル間違いですLMBでした
テイルズオブシリーズの戦闘システム、リニアモーションバトルのこと
ゲーム作りにしても何にしても、これといった学習方法は無いが
まずは、ウィンドウ作成して絵を表示出きる様にする、そのあとは
背景を表示する、背景をスクロールさせる
背景の上にキャラを表示する、キャラを移動させる、
背景とキャラの移動・衝突判定を出きる様にする(特にRPG)
ここまでが基本じゃないのかな
この後は、攻撃・弾丸の衝突判定とか、敵キャラの移動アクションとか難しいところに入る
自分は格闘ゲーは作らない上得意ではありません、今取り組んでるのはTPSアクションシューティングです

192 :名前は開発中のものです。:2009/12/20(日) 22:39:25 ID:e25g0Lsq
テイルズの戦闘で一番しんどい所は素材の用意
格ゲー並にドット打たないといけない
素材さえ用意できれば処理は難しくない

193 :名前は開発中のものです。:2009/12/20(日) 23:21:20 ID:bQQ2+att
>>192
少し大きめのサイズで3Dで作ってアニメ調にしたものを連続bmpにした後、リサイズで小さくするとまるでドット絵みたいになった
素材とかそれでいけるんじゃね?

194 :名前は開発中のものです。:2009/12/20(日) 23:56:20 ID:IrmYQKgg
だれがモデルングしてだれがモーションつけるの?
大して手間は変わらん気がする

195 :名前は開発中のものです。:2009/12/20(日) 23:58:08 ID:IrmYQKgg
モデルングワロタ

196 :名前は開発中のものです。:2009/12/21(月) 00:10:43 ID:xUGg2iMx
>>193
ファルコムのキャラの作り方がその方法だったかな
3Dモデリングやモーションツールって大抵はbmp吐き出せるものなの?
うちはそういうの自作しちゃったけどね
今時ドット打ちは効率悪いし古いからね
2Dだと解像度高ければベクタグラフィック使う手段もある

197 :名前は開発中のものです。:2009/12/21(月) 03:05:35 ID:NTt49tZZ
>>152
再生数すっごいことなってんなw

PSDなどのレイヤー使えるファイルと連携できると・・・!


198 :名前は開発中のものです。:2009/12/21(月) 11:11:16 ID:s+xzEFRJ
>>193
モーションつける必要もあるけど、αチャンネルがないと
作業しにくいので、メタセコとかのモデラーでなく
統合型ソフトでレンダリングしないと厳しいかも。

レンダリングした画像を、下絵にしてキャラクター用の
ドット打つのだと餓狼とか…。
そのまま使うのだとSFCのドンキーコングとかDSのASHとか
色々あるけれど、ブラー表現とか極端なデフォルメとかの
一部のアニメ的な表現は3Dでは非常にやりにくいし、
モノによっては素でドット打った方が早い部分はあるかも。

具体的に言えば、メタルスラッグのキャラみたいなのは
3Dではやりにくい。大幅に崩れる表情や徐々に溶ける服、
燃えていく様を別々にモデリングしないといけない。
リアル寄りでもそのまま下手に取り込めば、ビキニ空手や
キャプテンサワダになる罠もあるのでケースバイケースかも。

199 :名前は開発中のものです。:2009/12/21(月) 11:15:05 ID:veAyd7SF
Ozawa-Ken方式が楽でいいんでないだろうか。
超直感的なインターフェイスでポーズ付け出来るし。

200 :名前は開発中のものです。:2009/12/21(月) 11:31:04 ID:FwaQXbtM
別にアマチュアだからいいって言うならいいが
3Dやベクターグラフィックではいかにも素人って感じのゲームしか作れんよ
なんかもっさりだったり安っぽかったり
特に3Dアニメーションは市販レベルまで行けてるのを見たことが無い

それに比べてドット絵ならきちんと描ければプロレベルの見た目にかなり近づける
ドット絵自体が数年前の技術ということもあるが、情報を省いて見る人に補完させてるっていうのも大きい
それにドット絵はああ見えて3D背景やエフェクトなど何でも合うしな

問題は高度なドット絵を描くのは適当な3Dを作るよりずっと難しいということだが

201 :名前は開発中のものです。:2009/12/21(月) 12:18:32 ID:HsTzlVaN
3Dやるのは機械とか建築物がいいんじゃない。

俺はヘタなドット絵ぽちぽちやってるが……。

202 :名前は開発中のものです。:2009/12/21(月) 13:05:00 ID:veAyd7SF
俺も

203 :名前は開発中のものです。:2009/12/21(月) 13:58:40 ID:M5BnvTSu
俺なんか棒人間でやってますよ


204 :名前は開発中のものです。:2009/12/21(月) 16:34:49 ID:veAyd7SF
ゲーム用の仮グラフィック置いているところってないかな。
最終的には自分で描くにしても動作確認用を用意するのも結構手間。
2、4方向に歩くパターンとか棒人間でも大変。

205 :名前は開発中のものです。:2009/12/21(月) 16:39:52 ID:RkZW1gWl
そういうのはどっかからぱくってくればいいんじゃないの
個人的利用だろうしね

206 :名前は開発中のものです。:2009/12/21(月) 16:44:08 ID:af7rlxGV
RPGツクール用素材と、それを代用出来るゲームならなんとかなるかなあ。

207 :名前は開発中のものです。:2009/12/21(月) 17:42:09 ID:veAyd7SF
ツクール用という手があったか。
thx
すぐに手頃なのがみつかった。

208 :名前は開発中のものです。:2009/12/21(月) 17:59:37 ID:CiiXw/fR
>>152
こんなかんじにフォルダにあるデータ中で
画像データだけを取りだすのってどうやればいいの?
DXライブラリの範囲外だったらすみません

209 :名前は開発中のものです。:2009/12/21(月) 19:19:18 ID:19KYRCRm
>>208
いろんなやり方あるけど”画像データだけ取り出す”っていうのなら、それはDXlibでやることじゃないな
C++でやることだ。
描画はDXlibでいいと思うけど

210 :名前は開発中のものです。:2009/12/21(月) 19:25:06 ID:yYVJ9W7O
>>208
LoadSoftImage関数じゃないかな?
こういう画像処理系のソフトはDXライブラリ使わなくてもいいような気はするけど・・・

211 :名前は開発中のものです。:2009/12/21(月) 19:30:15 ID:nO3Vcezp
多分だが208は
フォルダの中にあるexeやtxtを無視してjpgやbmpファイルだけを
リストに出したいとかそういう意味じゃないか?

212 :名前は開発中のものです。:2009/12/21(月) 19:55:49 ID:yYVJ9W7O
>>211
あー、確かにそう読み取れないこともないですね・・・
普通にWin32APIでファイル列挙してファイル名から拡張子を調べればいいんじゃないでしょうか。
http://www.geocities.jp/ky_webid/win32c/054.html

213 :名前は開発中のものです。:2009/12/21(月) 20:11:41 ID:RyggKrWP
スレ違いでしたか、スマソ
212でやってみる
みんなありがとう!

214 :名前は開発中のものです。:2009/12/22(火) 01:35:27 ID:BnLx0tn2
やっぱり皆VC++なの?
bccの人っていないのかな

215 :名前は開発中のものです。:2009/12/22(火) 01:58:24 ID:ftdGCNqI
bccなにそれおいしいの状態

216 :名前は開発中のものです。:2009/12/22(火) 02:12:25 ID:YWMPh29j
>>207
ツクール以外でも使えるかどうか、ちゃんと確認しとけよー?
ツクール用として配布してる作者さんは、大抵ツクール以外の用途を想定していないw

217 :名前は開発中のものです。:2009/12/22(火) 03:03:48 ID:66Ma/Sl8
>>216

いや、動作確認用だから問題ないだろ。

>>214

俺はBCC使ってるよ。
けどそんな事聞いてどうするの。

218 :名前は開発中のものです。:2009/12/22(火) 03:28:41 ID:YWMPh29j
>>217
ああそうか、仮グラか。最初のレス見落としてた。

そういえば、大学時代に、自分のゲームで使ったグラフィックとかをサークルの共有財産として使いまわそうぜ!なんて話があったなあ。
今でも残っているのだろうか。

219 :名前は開発中のものです。:2009/12/22(火) 03:36:44 ID:D2L5xjzm
dmcでも使えるようにしてくれー

220 :名前は開発中のものです。:2009/12/22(火) 07:39:18 ID:y9OyEOP5
>>214
bccを選択する理由が思いつかないんだけど?

221 :名前は開発中のものです。:2009/12/22(火) 12:44:09 ID:LdA+UfBO
>>220
軽い

222 :名前は開発中のものです。:2009/12/22(火) 13:08:31 ID:hFovd5oO
不便を押してまで使い続けるんだから、相当劣悪な環境なんだろうなあ。

223 :名前は開発中のものです。:2009/12/22(火) 13:28:32 ID:ftdGCNqI
VC++2008EEが無償であるのにbccを使い続ける人って・・・

224 :名前は開発中のものです。:2009/12/22(火) 13:37:26 ID:BnLx0tn2
VC++で開発する場合ってDXライブラリ使うための設定ってアレ毎回する必要ある?
インクルードに変えるとか、ライブラリに変えるとか、あのへん。
俺もVC++にしたいんだがBccDevの方がシンプルな気がして。
元々bcc入れてたっていうのもあるんだけど。
あとVC++でビルドした実行ファイルの場合、.NETのライブラリがないと動かないとか言うし
簡単そうってことでbcc使ってる

225 :名前は開発中のものです。:2009/12/22(火) 14:03:12 ID:y9OyEOP5
>>224
>VC++で開発する場合ってDXライブラリ使うための設定ってアレ毎回する必要ある?
一度だけでOK。

>あとVC++でビルドした実行ファイルの場合、.NETのライブラリがないと動かないとか言うし
動くよ。

ハッキリ言ってbcc使うメリットなんて一つも無いよ。

226 :名前は開発中のものです。:2009/12/22(火) 14:13:19 ID:BnLx0tn2
>>255

そうなのかぁ。やっぱVC++覚えるかぁ。
公式テキストみたいの買いに行ってみるわ。

227 :名前は開発中のものです。:2009/12/22(火) 14:37:42 ID:y9OyEOP5
>>226
設定方法はDXライブラリの公式ページに書いてあるし、デバッグ方法も「VisualC++2008 デバッグ」とかでググれば出てくるし、本は必要ないよ。

228 :名前は開発中のものです。:2009/12/22(火) 14:39:27 ID:wghOwS9H
俺BCC使ってるけど、VC++が無料になった今、BCC使うメリットは別にないと思うなぁ。
移行するのがめんどくせぇからしてないけど。

まぁ、VC++使ってるだけで優位に立ってるつもりの人はどうかと思うが。

229 :名前は開発中のものです。:2009/12/22(火) 14:58:45 ID:BnLx0tn2
>>227
あ必要ないの?
うん確かにBCCのときも公式ページに沿ったんだけど。
よく分からないけどbccでコンパイルしてできた実行ファイルとVC++でできた実行ファイルって違うんだよね?
VC++の方は色々と専用のライブラリ的なものがくっついてできているとかいないとか。
だから配布とかするとき公式テキストでもあったら便利かと思った


230 :名前は開発中のものです。:2009/12/22(火) 15:12:03 ID:y9OyEOP5
>よく分からないけどbccでコンパイルしてできた実行ファイルとVC++でできた実行ファイルって違うんだよね?
違うね。

>VC++の方は色々と専用のライブラリ的なものがくっついてできているとかいないとか。
基本的には実行ファイルだけだよ。
まあ、外部DLLを使えばそれも配布は必要になるけど、それはBCCも同じことだし。

231 :名前は開発中のものです。:2009/12/22(火) 15:29:45 ID:BnLx0tn2
>>230
あそうなんだ。じゃあVC++覚えてみるわ。
実行ファイル配布先の環境に何かがインストールされてないといけないとか
そのへんでだいぶ勘違いしてたみたい

232 :名前は開発中のものです。:2009/12/22(火) 15:45:28 ID:YWMPh29j
自分の場合は、VCにライブラリとして登録するんじゃなく
ソースファイルのところに一緒に(ディレクトリは分けるが)置いてるなあ。

昔はそんなんだったよね? 違ったっけ?


233 :名前は開発中のものです。:2009/12/22(火) 16:07:10 ID:wWx/Ra4Y
俺もだ
何となくVCに設定するの嫌なんだ

234 :名前は開発中のものです。:2009/12/22(火) 22:09:39 ID:VsbYtjts
昔はBCCの方がコンパイルも実行速度も速かったけど、無償のバージョンは現行のVCに対して実行速度で劣るからな・・・
ちなみに、BCCも商用の奴つかえばかなりイイぞ。コンパイル速度は相変わらずだし実行速度も申し分ない

商用の奴は体験版をインストールしてごにょごにょすれば・・・コンパイラだけ使えるw

235 :名前は開発中のものです。:2009/12/22(火) 22:16:05 ID:1IE45+22
パスを通すのがいやなら、DLLにして実行ファイルに添えるだけという方法も

236 :名前は開発中のものです。:2009/12/22(火) 22:37:27 ID:a/+2LiV5
VCじゃなくてプロジェクトの設定に追加してる
これが一番スマートだと思う

237 :名前は開発中のものです。:2009/12/22(火) 22:49:29 ID:hFovd5oO
環境変数とVCとVSの統合環境をごちゃごちゃにするのはやめた方がいいぞ。

238 :名前は開発中のものです。:2009/12/22(火) 23:28:53 ID:3WelviR/
VCとVSの違いがわからん
関係がわからんともいう

239 :名前は開発中のものです。:2009/12/23(水) 00:04:30 ID:xX+wX9Yb
>>234
昔フラッシュで体験版がごにょごにょすれば普通に製品版と変わらず使えるのを思い出した

240 :名前は開発中のものです。:2009/12/23(水) 00:38:07 ID:xX+wX9Yb
ところで3D関係対応したらしいけどつかった香具師いるかい?

241 :名前は開発中のものです。:2009/12/23(水) 00:45:06 ID:HaiZ4W1U

RTS作ってる。まだ地形の当たり判定までだが
てかフリーでモーション付きxファイル出力できるマトモなソフトが無いのがちょっとあれだが・・

242 :名前は開発中のものです。:2009/12/23(水) 00:57:29 ID:BjZ8BYus
>>224
それはDLLを含めたりしてるんじゃないのか・・。
同じ生成物を作っているんだという事を考えれば自分の言ってることが変だと気づくはず

>>226
本なんか買う必要ある??
とりあえず最初はプロジェクト作って実行出来りゃそれでOKでしょ。
複雑な操作を知りたいなら慣れてからでOK

>>238
VisualStudioっていうのはマイクロソフトが提供しているコンパイラ群のこと。
Cだけじゃなく、いっぱいある。公式ページ行けばわかる。
VisualC++ってのはその中のC++のコンパイラのこと


ってか皆なぜVC++毛嫌いする?
プロジェクトとか設定とかを理解しようとしていないだけじゃないの?

243 :名前は開発中のものです。:2009/12/23(水) 01:11:58 ID:hCvbiDzC
>>240
3Dで動かそうと思って試したら、自分の使ってる
3DCGソフトのx形式の書き出しがどれも酷かったので、
とりあえずSDKをDLしてコンバータ作ってる。
x形式は方言が酷すぎて、ソフトによって内容が全然違うから
あまり管理人さんに負担をかけるわけにもいかないし。

市販ソフトでも、アニメーションセットつきで
DxLib(とDxLibModelViewer)で正常に読めるx形式を
書き出せるものはないような気が…。
vmdで個別に読ませるのが一番良さそう。

ゲーム作る前に泥沼に嵌っている予感。

244 :名前は開発中のものです。:2009/12/23(水) 01:16:20 ID:jpOdJMlm
>>242

別に毛嫌いしてるわけじゃないけど、VC++でDXライブラリやっている期間より、
コマンドプロンプトでちまちまコンソール作ってコンパイル実行してた期間の方が長いから、
なんかすっごい複雑というか、その意味で敷居高く感じんるんだ。
実際Cの本なんかで「この本が終わったらVC++などに進むのもよい」なんて書いてあるぐらいだから。
あくまでもコレ俺の場合だけど。
とりあえず猫と猫と性格の合う人間は変化を嫌うのだ〜。
VC++が便利だとは思うよ。

245 :名前は開発中のものです。:2009/12/23(水) 01:22:30 ID:jpOdJMlm
>>http://homepage2.nifty.com/natupaji/DxLib/dxuse_vc2008express.html

この「5.」の部分がいちいちめんどいというかなんというか。

246 :名前は開発中のものです。:2009/12/23(水) 01:51:39 ID:BjZ8BYus
めんどくさいってこれ位1分あれば出来るだろ・・。
プロジェクトなんか毎日作るものじゃあるまいし。
みんなそんなことで嫌がるのか・・

247 :名前は開発中のものです。:2009/12/23(水) 02:06:45 ID:1fJhOR2p
まぁなんやかんやで色々面倒なことが山積みだよ。
VCに限らず新しい環境を導入すれば。
慣れてしまったらそういう手間は忘れてしまって何が難しいんだよ一瞬だろwwとか思うけど。

248 :名前は開発中のものです。:2009/12/23(水) 02:09:56 ID:heof+fKU
>>244
BCCってデバッグどうやってんの?

>>245
スケルトンプロジェクト作ってないの?
毎回、新規プロジェクト作成してたらめんどくさいだろうね。

249 :名前は開発中のものです。:2009/12/23(水) 02:10:36 ID:cX0ZOQul
VC++だとMakefile書かなくて済むのが助かる
入力補完も便利だし、折りたたみとかスマートインデントとかも地味に効果的

250 :名前は開発中のものです。:2009/12/23(水) 03:00:34 ID:heof+fKU
BCCの悪いところ
・最適化性能が低い。
・準拠している言語仕様が古い。
・WindowsXP以降のOSに正式対応していない。

VC++の良いところ
・コンパイラは最新の言語仕様に準拠し、最適化性能も高い。
・エディタが高機能。(検索、入力補間など)
・デバッガが高機能。(ステップ実行、呼び出し履歴ウィンドウ、ビジュアライザ、ウォッチウィンドウなど)
・ツール類も開発し易い。
・.NET Frameworkにも対応している。

個人的に思うのはこんなところかな。
無理にVC++使えとは言わないけど、BCCは性能とか開発効率とか考えるとありえないな。

251 :名前は開発中のものです。:2009/12/23(水) 03:39:37 ID:6YqiOT7T
x形式は結局独自な物になり易いし、その手間もかかる
ここで投げ出す人多数

252 :名前は開発中のものです。:2009/12/23(水) 07:43:42 ID:xMKEyCQy
メタセコとKeynote最強

253 :名前は開発中のものです。:2009/12/23(水) 08:42:52 ID:d0BDOfBc
VC++の悪いところ(数年前)
・コンパイラは最新の言語仕様に準拠し・・・てない、最適化性能もウンコ
・エディタが高機能だけどバグだらけ。(特に入力補間など)
・デバッガが高機能。だけどかゆいところに手が届かない
・.NET Frameworkにも対応している。でも.NETの実装がウンコすぎて涙目

こんなイメージが残ってるんじゃないかな

254 :名前は開発中のものです。:2009/12/23(水) 09:57:39 ID:ThPVjJNa
俺VC6使ってるけど途中でいきなり落ちることあるw

255 :名前は開発中のものです。:2009/12/23(水) 10:25:23 ID:/5h6oh+6
今現在の悪いところはないのか?

256 :名前は開発中のものです。:2009/12/23(水) 10:37:25 ID:HaiZ4W1U
>>252
禿同

257 :名前は開発中のものです。:2009/12/23(水) 10:39:31 ID:heof+fKU
>>254
VC++6は1998年の製品なので賞味期限がとっくに切れてます。
>>250に書いた「VC++の良いところ」はVC++2005以降ですよ。
もちろんVC++6で有名だったハングアップするバグも修正されてるしね。

258 :名前は開発中のものです。:2009/12/23(水) 11:33:39 ID:iaZSWOqV
自分で作ったはずなのに
しばらくすると何がどうなってんのか分からなくなる

259 :名前は開発中のものです。:2009/12/23(水) 11:38:59 ID:cX0ZOQul
それは設計段階での失敗だな

260 :名前は開発中のものです。:2009/12/23(水) 11:41:54 ID:heof+fKU
みんな言語は何使ってるの?
C?C++?
C#は少なそうだけど。

261 :名前は開発中のものです。:2009/12/23(水) 11:54:34 ID:bZ4aXTTz
C++だなあ


262 :名前は開発中のものです。:2009/12/23(水) 12:00:42 ID:WkIAVwxs
better CとしてのC++

263 :名前は開発中のものです。:2009/12/23(水) 12:45:25 ID:lGLXc/ww
俺は.emacs系エディタ使ってるからVCのエディタ使わない。
バグは実行画面見たらどこがバグってるか大体分かる。

264 :名前は開発中のものです。:2009/12/23(水) 13:14:16 ID:cX0ZOQul
C++を使ってて、python勉強中

265 :名前は開発中のものです。:2009/12/23(水) 14:20:01 ID:jpOdJMlm
>>248
デバッガについては確かにリッチから程遠い。BCCディベロッパーはコンパイラのみよりはもちろんマシだけど。
でもそういやVC++だってコマンドラインからコンパイルとかってできるんでしょ?
vcc ファイル名 とかって入力するのかな。C#とかだったらvsc ファイル名とかだった気が。


266 :名前は開発中のものです。:2009/12/23(水) 14:22:57 ID:jpOdJMlm
>>246
>>248

プロジェクト作るのは必須ではないの?
スケルトンプロジェクトとかすまんイミフだ。
ね、なんか分かるでしょ、コマンドライン一本槍で来た奴にとってVC++がハードル高く感じるの。
このへんよ、このへん。

267 :名前は開発中のものです。:2009/12/23(水) 14:22:59 ID:cX0ZOQul
コマンドはcl

268 :名前は開発中のものです。:2009/12/23(水) 14:24:50 ID:jpOdJMlm
>>267
あ、clか。ていってもコマンドラインからやるのって皆まずないんでしょ?


269 :名前は開発中のものです。:2009/12/23(水) 14:26:36 ID:jpOdJMlm
要するに「5.」の作業を毎回しないで済む方法があるってこと?

270 :名前は開発中のものです。:2009/12/23(水) 14:52:52 ID:heof+fKU
>>266
スケルトンプロジェクト=全てのプロジェクトの雛形となるプロジェクト
新規プロジェクトを作成する場合はこのプロジェクトをコピーして使う。
つまり設定が必要なのはスケルトンプロジェクトだけになる。

>>268
めったに使わないし、cl.exeの存在すら知らない人も多いよ。

PC初心者なら分からないでもないけど、プログラマーがIDEのハードル高いってどうよ?

271 :名前は開発中のものです。:2009/12/23(水) 15:02:17 ID:cX0ZOQul
プロジェクトテンプレートが簡単に作れれば便利なんだろうがこのへんよくわからんな

272 :名前は開発中のものです。:2009/12/23(水) 15:26:42 ID:jpOdJMlm
>>270
そうか一度設定したプロジェクトをコピーするのか。
そうすればめんどい設定も毎回しないですむと。
とか言いつつコピーの仕方も地味に聞いちゃえ。
あれでしょ、コピーって名前をつけて保存しなおすってことでしょ?

IDEのインターフェースは分かりやすく作られていると思うわけ。
ただ、なんかやっぱ複雑に感じるわ。操作の仕方とかじゃなくて概念的なもの。
上の人も書いてるけどテンプレートのことなのかもしれないよなあ。

とにかくVC++使うけど。だって使いたかったわけだし。

273 :名前は開発中のものです。:2009/12/23(水) 15:37:36 ID:bPAuHFVQ
とりあえず色々設定した空のプロジェクトtestとかを作って
マイドキュメント→VisualStudio2008→Projectにあるtestフォルダを丸々コピペして
使うだけだと思う
スケルトンナンタラって呼び名は知らなかったけど

274 :名前は開発中のものです。:2009/12/23(水) 15:48:05 ID:1fJhOR2p
スタートアッププロジェクトの概念を知らなくて
他人のサンプルを起動出来ずに1年以上放置していたのもいい思い出

275 :名前は開発中のものです。:2009/12/23(水) 16:40:20 ID:LLW+qrLJ
一般的なIDEというのは総じてゴテゴテしてるし、
「俺が考えた作業手順」とか「俺が考えたフレームワーク」を押し付けてくるので、
その文化になじむまで苦労するってのはよくある。

276 :名前は開発中のものです。:2009/12/23(水) 17:09:49 ID:heof+fKU
>>272
すみません、「スケルトンプロジェクト」が思ったより一般的な呼び方じゃなかったようですorz..
>>273の言うとおり、単純にフォルダごとコピーして使うだけです。
「コピーの仕方」とか言われてもコピペして、プロジェクトファイルのリネームくらいしかしてないなあ。
ちなみにVisualStudioにはこれをIDEに登録できる「プロジェクト テンプレート」という機能があるので興味があったら調べてみて。

277 :名前は開発中のものです。:2009/12/23(水) 20:41:02 ID:L6ohnb5y
VCで、
一発操作といえる範囲で、サクラエディタ(などの外部エディタ)でソースファイルを開く操作はできる?

278 :名前は開発中のものです。:2009/12/23(水) 20:48:41 ID:jpOdJMlm
開発環境の諸々はあるにせよDXライブラリは俺的に救いの神だと思った
WinAPIやろうとしたらウィンドウ出すにもスゲェ苦戦した
勘違いかもしれんけど、なんか何種類もコードの書き方あるでしょ
それまで「bcc32 ファイル名」でコンソールやってた俺にとって「ハァ?」の連続。
それがDXライブラリならあんなにも簡単にウィンドウが出てキャラまで動いたし。

皆はDXライブラリ使ってどういうゲームを作ったことある?どのへんまで行った?
最近ニコニコのプログラミング系の動画にハマってるんだが(東方のRPGなど)、
なんかマザー2みたいなのできるかな〜とか思ってる俺は楽観すぎるんだろうか?
JAVAでドラクエそっくりのを作ったっていう動画もアップされてたけど、あれはまた特別な才能なのかな?

279 :名前は開発中のものです。:2009/12/23(水) 20:52:28 ID:bMEj20MZ
画像表示できて音鳴らせてキー入力拾えれば何でも作れるさ

280 :名前は開発中のものです。:2009/12/23(水) 21:05:07 ID:heof+fKU
>>277
できる。
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/771exttool/exttool.html

>>278
理論上はPS2ぐらいまでのゲームは作れる。
あとは本人の技術とやる気次第だと思う。
初心者に優しい設計なのはDXライブラリの良いところだね。

281 :名前は開発中のものです。:2009/12/23(水) 21:05:39 ID:cX0ZOQul
ウィンドウズプログラミングはとっつきにくいよな
まあでもウィンドウの生成と描画の仕方覚えてしまえばあとはUpdate-Draw繰り返すだけなのはDxLibもWinAPIも同じだ

282 :名前は開発中のものです。:2009/12/23(水) 21:22:53 ID:ThPVjJNa
一つのプロジェクトでいくつものゲーム作るのは俺だけだろう
大作を作らないというのもあるが

283 :名前は開発中のものです。:2009/12/23(水) 21:47:42 ID:dpgkgKsG
>>278

わかるわかる。
俺もWindows環境でのプログラムなんてちんぷんかんぷんだったが
DXライブラリに出会った途端にゲーム作れるようになった。

まぁ、細々と作ってるだけだからしょぼいけど、来週のコミケで出すぜ。

284 :名前は開発中のものです。:2009/12/23(水) 22:01:52 ID:1fJhOR2p
ウィンドウなんてオマジナイをコピペすれば誰でも作れるよ!
とか言われてやってみようとしたけどサイトによってオマジナイの構造が全然違って
検索してみつけたコードをオマジナイに合成出来なかったのはイイ思い出。

285 :名前は開発中のものです。:2009/12/23(水) 22:36:20 ID:iaZSWOqV
DirectXも全然わかんね
半端なC言語の知識から始めるにはDXライブラリが神に思えた

286 :名前は開発中のものです。:2009/12/23(水) 22:47:56 ID:jpOdJMlm
そもそもCって開発経緯からいってライブラリが充実していないのは当然っていわれているけど
実際Cの外部ライブラリってそんなに色々と種類あるものなのかな?
Cの流行とともに色々なライブラリが開発されたみたいな話は読んだけど

コンソール作っているぶんには標準ライブラリで足りる俺だったし
ま、何であれDXライブラリはしっくり来るというか自然なんだと思う
乱数とかさ。Cのrandなんて乱数とは呼べませんね、DXを知った今

287 :名前は開発中のものです。:2009/12/23(水) 23:01:58 ID:HteJU5UQ
>実際Cの外部ライブラリってそんなに色々と種類あるものなのかな?
なんというかあまりにも井の中の蛙すぎるんだが。

演算各種から圧縮、グラフィック、サウンド、通信、暗号化、
あらゆる目的に応じて大量にあるり、
自分一人で全て使おうと思ったら人生が終わるレベルだぞ。

288 :名前は開発中のものです。:2009/12/23(水) 23:03:13 ID:HteJU5UQ
>あるり
あり

289 :名前は開発中のものです。:2009/12/23(水) 23:06:03 ID:cX0ZOQul
STLですら使いこなせん

290 :名前は開発中のものです。:2009/12/23(水) 23:06:54 ID:jpOdJMlm
>>287
おお早いレス、ナイスタイミング。
そうなのですか。いやあ標準ライブラリすら使い切れないうちにDXを知ってしまったもので。

>>自分一人で全て使おうと思ったら人生が終わるレベルだぞ。

ええ、それはそう思うんですが、ライブラリはもちろん自作したりしませんが、
せめてRPGで使うようなキャラ画を自分で書きたいと思っています。
フリーで検索してみても皆どのへんから借りているのかピンと来なかったですし。
やっぱりキャラ画ぐらい自分で描こうっていう人が多いのかな?



291 :名前は開発中のものです。:2009/12/23(水) 23:11:18 ID:HteJU5UQ
プログラムの話から素材の話にとんでいるのが意味不明。

292 :名前は開発中のものです。:2009/12/23(水) 23:11:56 ID:bPAuHFVQ
>>287
フリーの暗号化ライブラリでいいの無い?

293 :名前は開発中のものです。:2009/12/23(水) 23:18:07 ID:HteJU5UQ
SSL

294 :名前は開発中のものです。:2009/12/23(水) 23:23:19 ID:jpOdJMlm
>>プログラムの話から素材の話にとんでいるのが意味不明。

確かに。乱数を使ってみた、とか言い訳してみる。


295 :名前は開発中のものです。:2009/12/23(水) 23:49:10 ID:1fJhOR2p
落ち着くんじゃポルナレフw

296 :名前は開発中のものです。:2009/12/24(木) 01:10:15 ID:wnCzv5Vo
冬休みか

297 :名前は開発中のものです。:2009/12/24(木) 12:52:53 ID:F0zYuTaJ
>>292
そういうのは他のスレで聞いた方いいよ。

298 :名前は開発中のものです。:2009/12/24(木) 14:06:29 ID:44g9Q8NV
新しく作ったプロジェクトでLoadGraphScreenが使えない・・・
というか画像と読み込んでくれない。
どうすればいい?

299 :名前は開発中のものです。:2009/12/24(木) 14:13:43 ID:8putv25m
>>298
状況不明でソースないので良く分からんけど、
ライブラリへのパスが通ってて、LoadGraphScreen()だけが
使えないのであれば、画像のパスの指定を間違ってるんじゃ
ないだろうか。
新旧のプロジェクトで、ディレクトリ構造変わってるとか。

300 :名前は開発中のものです。:2009/12/24(木) 15:25:46 ID:44g9Q8NV
>>299
ディレクトリ構造は変わってませんでした。

念のため
http://homepage2.nifty.com/natupaji/DxLib/dxuse_vc2008express.html
ここに書いてある事全部やり直したんだが駄目でした。

新プロジェクトでDXライブラリを使うには何か特別な設定って必要?
もう自分の頭だけでは解決できませんorz

301 :名前は開発中のものです。:2009/12/24(木) 15:44:18 ID:eAwQjQv4
>>300
LoadGraphScreenだけが使えないのかが気になるところ
もしそうなら、マイドキュメントのVisual Studio 2008→Projects→自分のつくったプロジェクト名→自分の作ったプロジェクト名ってところにvcprojって拡張子のがあると思うんだがそこに画像おけば読み込まれると思うんだが
試してみてくれ

302 :名前は開発中のものです。:2009/12/24(木) 15:45:17 ID:eAwQjQv4
というよりvcprojのあるフォルダに画像な
書き方微妙ですまん

303 :名前は開発中のものです。:2009/12/24(木) 16:00:28 ID:44g9Q8NV
読み込みました!

あとLoadGraphScreenだけが使えない訳ではなく、画像を読み込む関数が使えませんでした。


304 :名前は開発中のものです。:2009/12/24(木) 16:05:57 ID:eAwQjQv4
そうか画像系は全滅かなって意味で聞いてみた
Dxlib自体使えないかそれともって意味だったから
とにかくよかったな がんばれよ

305 :名前は開発中のものです。:2009/12/24(木) 19:54:35 ID:xY2Wh0F8
>>280
> できる。
ありがとう

306 :名前は開発中のものです。:2009/12/25(金) 01:32:03 ID:uFkH7xmW
このスレ見てbccからVC++にかえたんだけど、ライセンス認証ってしたほうが
いいのかな?あと、25にちとかでるけど

307 :名前は開発中のものです。:2009/12/25(金) 02:14:02 ID:hL2XqgMI
タダなんだから認証くらいやっとけ

308 :名前は開発中のものです。:2009/12/25(金) 02:43:02 ID:uFkH7xmW
認証しても有料になったりしないよな。
150万とかきいたけど。
あんしんした
ありがとう^^

309 :名前は開発中のものです。:2009/12/25(金) 02:49:19 ID:Pj/9DURL
やっちまったな・・

310 :名前は開発中のものです。:2009/12/25(金) 03:09:34 ID:hL2XqgMI
それ本当にMicrosoft Visual C++ 2008 Express Edition だよな…?

311 :名前は開発中のものです。:2009/12/25(金) 03:28:02 ID:uFkH7xmW
使ってるときに上にそう書いてるから間違いないはず。
なんだ?
ちょっとこわくなってきたじゃないか;;
\(^o^)/


312 :名前は開発中のものです。:2009/12/25(金) 04:20:36 ID:DqIGjvQ6
詐欺師が名刺に詐欺師って書くわけないって婆っちゃが逝ってた

313 :名前は開発中のものです。:2009/12/25(金) 07:07:34 ID:ZSVKFocn
VC++の使い方解らない奴と有料じゃないか云々言ってるやつはここを読め
http://dixq.net/vcpp.html

314 :名前は開発中のものです。:2009/12/25(金) 10:06:25 ID:EP1DxHaQ
おまいらプログラム組みながら聖夜をすごしたのですか?

315 :名前は開発中のものです。:2009/12/25(金) 10:20:07 ID:L3IT6oO5
俺は1日プログラミングは休憩してアニメ見ながら過ごしたよ。しにたい

316 :名前は開発中のものです。:2009/12/25(金) 14:15:30 ID:2d0wlUJ7
「人多いし、クリスマス特価でモノは高いし、別の日で良くね? そもそも仕事だし」
「じゃあそれで」

悪かったな

317 :名前は開発中のものです。:2009/12/25(金) 14:35:04 ID:DqIGjvQ6
むしろリアル誘いに振り回されてプログラム出来なくなることの方が苦痛
毎回断るのもアレだから2回に1回くらい安く済みそうなときは行く

318 :名前は開発中のものです。:2009/12/25(金) 17:25:10 ID:ZhGjQlkx
Xファイルってのが詳しくわかってないんだが、アニメーションデータをいくつも組み込めるのか?
もし組み込めるならお勧めソフトを教えていただきたいでござる

319 :名前は開発中のものです。:2009/12/25(金) 18:27:52 ID:EP1DxHaQ
Rocdebone2がいいでござるよ
.xも対応して複数のアニメーション組み込めるでござる

320 :名前は開発中のものです。:2009/12/25(金) 18:32:34 ID:ZhGjQlkx
>>319
メタセコイアでモデルを作成
そのファイルをRocdebone2でモーション作成
って流れでいいのだと思いますが、メタセコイアのほうでボーン作らないともしかして動かせられない?
Cyberdeliaってツールだとメタセコイアで適当に作ったファイルで.xファイル出力できるけど、DirectXVierwerでエラーが出る・・・
Rocdebone2のインターフェースがごちゃごちゃしててわかりづらいから、ちょっと勉強してみる・・・

321 :名前は開発中のものです。:2009/12/25(金) 18:33:38 ID:V52nYqVj
>>318
>もし組み込めるならお勧めソフトを教えていただきたいでござる
有料でも良いなら「Maya」「Softimage」「3ds Max」のいずれか。
無料が良いなら「メタセコイア + (Keynote or Toystudio)」「Blender」「Mod Tool(商用利用は不可)」のいずれか。

322 :名前は開発中のものです。:2009/12/25(金) 18:52:38 ID:ZhGjQlkx
>>321
いまToystudioさわってみましたが、使いやすくてびっくり
だけど出力ファイルがDXライブラリに対応してるのはxファイルだけとは・・・

8 名前:名前は開発中のものです。[] 投稿日:2009/12/05(土) 12:30:22 ID:CQOWfBMw
ToyStudioでアニメーション作って、MQOで出力したんだけど、
ものすごい膨大な量のMQOデータが出てきたんだけど・・・
アニメーションを作るたびに毎回こんなのが出てくるの?
そもそもこういう出力結果をゲーム内でアニメとして使えるの?

まさにこれと同じような感じなんだが、xファイルとしては出力できないのでしょうか?

323 :名前は開発中のものです。:2009/12/25(金) 18:53:45 ID:3T809Z1U
>318
X形式の仕様としては、1つのファイルに複数のアニメーションを
組み込めるんだけど、実際に書き出し機能が標準であるソフトは
市販とフリー併せても、RokDeBoneとTOYSTUDIO、エルフレイナ
ぐらいしかないかも。

BlenderやSoftImage(とmodtool)用のプラグインでは公開して
くれている人がいるけど、XNA用とかに特化したデータを
書き出すのでDXライブラリでは読めなかったと思う。
(これは各ソフトやDXライブラリの問題ではなく、そもそも
x形式の自由度が高過ぎるので互換性が低いことが原因)。

RokDeBoneとかで書き出したxデータが、DXライブラリで
読めるかは試してないので読めるかもしれないけど
keynoteやRokDeBoneで、ある程度のモーション作るのは
モーションレイヤーやミキサーないので結構大変な気がする。
けっきょく、DXライブラリで使える複数アニメーションつき
xファイル形式が欲しい場合はツールかプラグインを自作する
しかないんじゃないかな。

でもモデルデータと、モーションは分けている方が何かと
融通は利くと思うよ。修正後の差し替えとかの点でも。

324 :名前は開発中のものです。:2009/12/25(金) 19:03:16 ID:EP1DxHaQ
>>320
Rocdebone2でもボーン入れる作業はできるよ
こっちは線形のボーン。詳しくはおちゃっこLABで

たいしてメタセコイアで骨入れる場合はmikoto形式のものがある
こっちは三角形ボーンに影響度のアンカーボックスタイプでござる
詳しくはここら辺がいい
ボーンの作り方
http://homepage3.nifty.com/ghpk/e3d/rb2007.htm
http://umemori69.hp.infoseek.co.jp/umemori69_014.htm
http://umemori69.hp.infoseek.co.jp/umemori69_013.htm

モデリングテク
http://mattaku.sa-ra-sa.com/

325 :名前は開発中のものです。:2009/12/25(金) 19:05:23 ID:EP1DxHaQ
あと、3DゲームつくりたいのならEASY3DライブラリまたはSeleneでもいいでおじゃるでやんす
逆転の発想

326 :名前は開発中のものです。:2009/12/25(金) 19:08:48 ID:V52nYqVj
>>320
DxLibModelViewerで確認してみた?

>>322
ToyStudioには無償版と有償版(5000円)があって、残念ながらXファイルをエクスポートできるのは有償版だけなんですよね・・・
まだ仮対応らしいけどMMDのPMDを使うか、FBXからMV1に変換して使うとかも検討してみて。

327 :名前は開発中のものです。:2009/12/25(金) 19:09:24 ID:ZhGjQlkx
>>323
>>344

モーションひとつ作るのだけで大変そうですねえ・・・挫折しそうだorz
エルフレイナというやつ、まだチェックしてなかったので見てみました
使いやすそうですけど、やはりフリーだとxファイル出力ができないのですね・・・
>>322での出力もできないというのも、シェア版にしないといけないみたいですね
RokDeBoneが現状自分の最後の望みみたいなので、ボーンの作り方等読んでがんばってみます。
親切にレスありがとうございます(つA`)

>>325
3Dゲーム以外も作ってみたいのでDXライブラリがんばってみますw

328 :名前は開発中のものです。:2009/12/25(金) 20:26:29 ID:V52nYqVj
ちょっとRokDeBone2が出力したXファイルとFBXを試してみたので報告しておきます。

RokDeBone2付属サンプルの「glow.sig」を編集してXファイルに出力。
これをDirectXVierwer、DxLibModelViewerで読み込んでアニメーション表示OK。

MSサンプルの「dude.fbx」をDxLibModelViewerで読み込んでXファイルに出力。
これをDirectXVierwer、DxLibModelViewerで読み込んでアニメーション表示OK。
しかし、これをRokDeBone2で読み込むと原因不明のエラー。

329 :名前は開発中のものです。:2009/12/25(金) 21:00:26 ID:2weq8SiY
DXライブラリの拡大縮小機能を使って
擬似3Dを今まさに作ってる俺には手が届かない話題だな。

330 :名前は開発中のものです。:2009/12/25(金) 22:10:40 ID:EP1DxHaQ
一方通行なわけか

331 :名前は開発中のものです。:2009/12/26(土) 02:21:18 ID:h7BLtdtN
3Dモーションは、trueSpaceを使ってみ。フリーだ
http://www.caligari.com/downloads.html
古いバージョンがよければ、一番下にSerialNumberが書いてある。

機能が多くて安かったが、MSの介入があってこのザマだ。
Xファイルのインポートエクスポートがある。


332 :328:2009/12/26(土) 13:42:22 ID:UrPNO9E9
>>328の続きです。

ModTool7.5でFBXを出力、これをDxLibModelViewerで読み込むと強制終了する。
公式のFBXViewerでは正常にアニメーション表示できているのでDxLibModelViewerのバグかもしれないが、ModTool7.5のエクスポータにも色々と問題がありそう。

メタセコイア(Keynote)でFBXを出力、これをDxLibModelViewerで読み込むとエラー。
メタセコイア(Keynote)でXファイルを出力、これをDxLibModelViewerでアニメーション表示OK。

PMD(モデルデータ)をDxLibModelViewerで表示OK。
しかし、Xファイル出力するとデータが壊れることがある。MV1出力は問題なし。
VMD(モーションデータ)をDxLibModelViewerでアニメーション表示OKだが、データによっては読み込めない場合もある。
エラーメッセージも表示されないし、今のところ原因不明。

まだまだ不安定ではあるもののMMDが結構良さげな印象だった。

333 :名前は開発中のものです。:2009/12/26(土) 13:44:47 ID:R/WYZk+C
乙。報告あるとのちのち使う人がいたとき参考になるからな

334 :名前は開発中のものです。:2009/12/26(土) 16:52:38 ID:IeIeiG58
C++スレから誘導されてきました。
今学習に使っているのは14歳から始めるC++ゲームプログラミングで、 現在サンプルを触ってみている状態です。

void TekiControl::move(float jx, float jy){

list<CharaData>::iterator it;
it = tekilist.begin();
(*it).anim->draw(0, (*it).x, (*it).y);

//子機発射処理 ※この部分を指定秒数ごとに実行したい
float dy = GameFrame::IdouHosei(8);

podsally( (*it).x+64, (*it).y+32, 20, 0,-dy);
podsally( (*it).x+64, (*it).y+32, 10, 0,-dy);
podsally( (*it).x+64, (*it).y+32, 20, 0,dy);
podsally( (*it).x+64, (*it).y+32, 10, 0,dy);

podmove(jx,jy); //子機移動

}

子機発射処理のみを指定秒数で実行するようにしたいのですが、
どのような方法があるでしょうか?
できればvoid TekiControl::move(float jx, float jy){ 内で
処理できるようにしたいのですが・・・。

335 :名前は開発中のものです。:2009/12/26(土) 17:01:21 ID:EuBBUaJe
move(){
  static before_time;
  if(before_time - now_time() > 指定病数){
    before_time = now_time();
    IdouHose();
  }
}

336 :名前は開発中のものです。:2009/12/26(土) 17:03:21 ID:EuBBUaJe
引き算逆だった

337 :名前は開発中のものです。:2009/12/26(土) 17:15:36 ID:IeIeiG58
これは//子機発射処理 の上に記述していいんでしょうか。
move(){を中にまた使うということですか?
nowtimeの初期値はGetNowCountなどの取得で合っているでしょうか。
    IdouHose(); とは何のことでしょうか。

質問ばかりですいません。
現在改造しながら勉強しているのですが、ここがどうしてもできないもので…。


338 :名前は開発中のものです。:2009/12/26(土) 17:24:29 ID:vrlJW694
改造とかしないで基本からやったほうがいいぞ

339 :名前は開発中のものです。:2009/12/26(土) 17:29:32 ID:EuBBUaJe
その本持ってないんで適当です。
GetNowCountが最大値超えた場合とか考慮必要。
void TekiControl::move(float jx, float jy){
  list<CharaData>::iterator it;
  it = tekilist.begin();
  (*it).anim->draw(0, (*it).x, (*it).y);

  static unsigned int before_time;
  if((GetNowCount() - before_time) > 指定秒数*1000){
   before_time = GetNowCount();
   //子機発射処理
  }

  float dy = GameFrame::IdouHosei(8);

  podsally( (*it).x+64, (*it).y+32, 20, 0,-dy);
  podsally( (*it).x+64, (*it).y+32, 10, 0,-dy);
  podsally( (*it).x+64, (*it).y+32, 20, 0,dy);
  podsally( (*it).x+64, (*it).y+32, 10, 0,dy);

  podmove(jx,jy); //子機移動
}

340 :名前は開発中のものです。:2009/12/26(土) 17:29:32 ID:IeIeiG58
本に載っている内容はとりあえず一通りやりました。
次は改造かな、と思ったのですが…

341 :名前は開発中のものです。:2009/12/26(土) 17:32:22 ID:IeIeiG58
>>339
これでできました!ありがとうございます!!
10時からやっていたので本当にうれしいです。
本当にありがとうございました。

342 :名前は開発中のものです。:2009/12/26(土) 17:54:19 ID:E9OJHMux
3Dゲーム創りたいんだけど、最近3D対応したばかりのDXライブラリより
EASY3DとかSeleneのほうがいいのかな?
ここで聞くのは野暮だと思うけど、2DゲームでDXライブラリを使って良かったので、
3D機能についての現状を知りたい。

343 :名前は開発中のものです。:2009/12/26(土) 18:16:38 ID:t2+el/7e
>>341
もう解決してるけどそういう「何フレーム化に一度」の処理は、1Fごとに++するTimeみたいな変数を作って、
if (Time%60==0)みたいに使ったほうが良い
特にGetNowCountは音ゲー作るかFPS計測する時など1ミリ秒のズレも許されない時以外はあまり使うべきではない

344 :名前は開発中のものです。:2009/12/26(土) 20:29:54 ID:R/WYZk+C
>>342

DXlib 3D使ったことない
Selene 使ったことない
Easy3D HSP版だけ使った

HSPで3Dは楽だし結構いろんなことできるしよかったよ
ただ演算多くなる場合は断然cが速すぎ

345 :名前は開発中のものです。:2009/12/26(土) 22:19:58 ID:UrPNO9E9
>>342
基本的な機能は揃っているし十分3Dゲームを作れるよ。
ニコ動でDXライブラリを使って作られた3Dゲームが公開されているので一度見てみるといいよ。
しかし、Seleneと比較するとやや機能不足な点もある。
シェーダー、ポストエフェクト、GUI、物理エンジン、スプライト(パーティクル)など。
特にシェーダーが使えないというのはレンダリングの品質に大きく差が出る。(PS3とPS2ぐらい違う)
逆に言えばDXライブラリの方が扱いが簡単なので、3D初心者ならこっちの方が向いてると思う。

346 :名前は開発中のものです。:2009/12/26(土) 23:51:39 ID:FO5uRkla
あと、空間分割とかないな
無いものは自前で実装すりゃいいけど、その頻度が増えると
DXライブラリで無理して作ってる感じになる
ならSeleneとか他の3Dが充実してるライブラリ使ったほうがいい
もしくはDirectX直
どの程度のものを作るかによるってことだな

>>332
FBXならBlenderが良いよ
X、FBX,、PMD+VMDの話題は前にも見た気がする


347 :名前は開発中のものです。:2009/12/27(日) 00:12:09 ID:kPK58Sfx
>>346
そこらへんがDXライブラリじゃ駄目といわれる所以だよね
出来なくても無いけど2Dほど簡単ではないし、それならちょっと頑張って他のライブラリ使ったほうがずっと天井が高い

348 :名前は開発中のものです。:2009/12/27(日) 00:28:01 ID:MBrvOJgD
結局このライブラリは3Dに関してはまだ遅れているってことなのかな
つい最近対応したばかりだから仕方ない話だといえばそれまでなんだけど

349 :332:2009/12/27(日) 01:02:13 ID:bc5V7EbG
>>346
>X、FBX,、PMD+VMDの話題は前にも見た気がする
情報ありがとう。
前スレ見てなかったけど、Blenderの出力したFBXは問題ないようですね。
ただUIが独特で個人的には使いにくかったので・・・
あとToyStudioの出力したXファイルも問題ないみたいなのでこっちも良いかも。

350 :346:2009/12/27(日) 01:27:46 ID:GGjOngEr
>>347
つっても、あくまで現時点ね
>>348が言うように、3D対応されたばかりで機能が足らないのは仕方ない
個人的には期待してる
PMD化するのは手間だけど
PMD+VMDは3Dを扱う敷居がぐっと下がる
モーションが連番で別ファイルになってるのも、使ってみればかなり便利
最終的にはMV1にしてもいいしね
3D機能の充実は時間かかるだろうけど、作者にはがんばってもらいたい


351 :名前は開発中のものです。:2009/12/27(日) 13:06:29 ID:2vbWXkV1
でもあまり機能が充実しすぎるとお手軽ライブラリじゃなくなるのよね。
高機能で簡単、というのはただ単に高機能というだけよりよっぽど作るのが難しい。
DXライブラリはお手軽なところが受けてるだろうから、あまり機能追加しすぎて複雑にならないことを祈る。


352 :名前は開発中のものです。:2009/12/27(日) 14:00:34 ID:uhSQPV5X
DXライブラリの3Dライブラリは、安定するまでに2年くらい必要だろう

同程度のライブラリでDrakGDKを使ってれば良いと思う。
C言語の初級からでも扱える3Dライブラリで難易度が低い
これで3Dの技術を身に付けて、
2年後くらいにDXライブラリ3Dを始めるのもよい

3Dは表面化されない小さいトラブルが多い。
そして、わけのわからん専門用語も出てくるし....

353 :名前は開発中のものです。:2009/12/27(日) 17:13:24 ID:z8YG6h4b
今サンプルを参考にちょろっと創った感じだと、現時点でもかなり簡単に
ある程度のレベルのものは創れそうだよ。
少なくとも64以上のものは簡単に作れるだろうし、努力しだいではPS2レベルのも出来るんだろう。
本格的に目指すのでない限りは更新速度や質問できる環境などを考えると、
DXライブラリでぜんぜんいいと思った。
まだ3Dモデルを動かすとこまでしかやってないけどね。

354 :名前は開発中のものです。:2009/12/27(日) 17:59:53 ID:yZAsy6xS
直接質問できる環境は大きいよな
しかし管理人さんって何者なんだろうな

355 :名前は開発中のものです。:2009/12/27(日) 18:49:06 ID:8drOPqxx
作者って14歳の中のひとなんだろうか…

356 :名前は開発中のものです。:2009/12/27(日) 18:51:42 ID:A9L3SGsA
クラスとか使ってC++に最適化されたDxLibも作って欲しいわ

357 :名前は開発中のものです。:2009/12/27(日) 18:56:35 ID:8drOPqxx
Dx.
まで入力したら入力補間で命令がズラっと出るという夢をみた。
いや、まぁ自分で改造すればいいのかもしれんけど…

358 :名前は開発中のものです。:2009/12/27(日) 19:16:58 ID:z8YG6h4b
これってブラーとか鏡(レンダリングした結果をテクスチャに)とかはまだ実装されてない?

359 :名前は開発中のものです。:2009/12/27(日) 20:07:35 ID:M0Cw0Z6W
>>357
DxLib::

360 :名前は開発中のものです。:2009/12/27(日) 20:23:19 ID:LDM1qCXB
すいませんこのソフトってオブジェクト指向を理解してないと利用できないのでしょうか?

361 :名前は開発中のものです。:2009/12/27(日) 20:32:01 ID:jKh1EiXg
自分はHSPから移動してきたので
変数は全てグローバル変数で管理して
各ファンクションもサブルーチンとしてしか認識していなかったが
普通に作れた

362 :名前は開発中のものです。:2009/12/27(日) 20:37:49 ID:bc5V7EbG
>>358
「ブラー」はモデルを半透明にして重ねて描画じゃダメ?
「鏡」は3Dに限らず描画先を指定できないと思うので無理そう。

>>360
C言語の知識だけで十分だよ。
まあ、14歳でも使えるらしいので。

363 :名前は開発中のものです。:2009/12/27(日) 21:54:18 ID:mBfODTUH
ガチで99%の変数をグローバルにして
ゲーム完成させたらソースコードが12000行とかになって悶絶した
クラス使わないなら関数化は必須に近い・・・
VCの左画面様様だわ

364 :名前は開発中のものです。:2009/12/27(日) 22:06:33 ID:8drOPqxx
俺もHSPから移行組だったからグローバル当たり前が染み付いていたけど
アクセス制限が邪魔なら全部publicでもいいからクラス使った方が
変数名とか関数名の管理が楽だぞ

365 :名前は開発中のものです。:2009/12/28(月) 01:07:57 ID:3r1xx2ry
>>358
>ブラーとか鏡
今試してみたら3Dでも、SetDrawScreen()でテクスチャにも
レンダリングできたよ。管理人さんが昨日直してくれたバージョンだと
DrawExtendGraph()でも表示できた。
ずらしたり拡大縮小すれば、DirectXの本とかに良く載っているAAや
被写界深度の表現も出来そうな感じ。

できないのはテクスチャをロックしてピクセル単位でいじること
じゃないかな。つまりブラーや鏡とかは可能だけどレンダリングした
画像にポスト処理とかはできない…と思う。

ただこのへんの処理やソートとかは、DirectX直接いじる時と同じで
自分で実装しないといけないぽいので、その意味では既出のように
低レベル(ハード寄り)なので2D機能よりは敷居高い部分あるかも。

366 :名前は開発中のものです。:2009/12/28(月) 03:34:23 ID:9l/NWr9W
すみません。
このエラーは何が原因なんでしょうか?

LINK : fatal error LNK1104:DxLib_VC2005用.exe' を開くことができません。

367 :名前は開発中のものです。:2009/12/28(月) 03:42:52 ID:/F5FiFDi
良い感じにPMDの問題報告→修正されてきてるな

368 :名前は開発中のものです。:2009/12/28(月) 07:59:40 ID:TSFI1pm5
>>366
DXライブラリのエラーではない、以上。


変な場所で実行してるんじゃなければ、
exeファイルのパーミッション確認しとけ。

369 :名前は開発中のものです。:2009/12/28(月) 10:27:15 ID:9l/NWr9W
わかりました。ありがとうございます。

370 :名前は開発中のものです。:2009/12/28(月) 11:44:34 ID:Us5hvkZh
>>362
14歳より歳いってて、Cは授業で少しくらいの自分がいまいち理解できないとちょっと悲しくなるタイトルだと思うんだ。

371 :名前は開発中のものです。:2009/12/28(月) 11:45:38 ID:dBTW62Xp
俺なんか14歳以下どころか猫以下だぜ・・・

372 :名前は開発中のものです。:2009/12/28(月) 11:49:28 ID:jpOTUZve
あの猫高知能すぎだよな…

373 :名前は開発中のものです。:2009/12/28(月) 11:57:25 ID:yuCthtY8
>>365
SetDrawScreen関数は任意のテクスチャを描画先に指定できないと思うんですがやり方があるんでしょうか?

374 :名前は開発中のものです。:2009/12/28(月) 12:43:57 ID:u/qep0of
あんなレベルの猫や猿が標準だったら今頃世界から人間滅ぼされてるよな・・・

375 :名前は開発中のものです。:2009/12/28(月) 12:58:13 ID:3EFD++9F
俺は逆にグローバル関数出来るだけ使わないように拘ってたが
色々面倒になってグローバルも積極的に使うようにしたがな

376 :名前は開発中のものです。:2009/12/28(月) 12:59:10 ID:3EFD++9F
間違えた
×グローバル関数
○グローバル変数
まあどうでもいいことだけど

377 :名前は開発中のものです。:2009/12/28(月) 13:16:08 ID:jpOTUZve
最新(掲示板)の奴、ウィンドウの拡大縮小すると変にならね?

378 :名前は開発中のものです。:2009/12/28(月) 13:46:53 ID:yuCthtY8
>>377
掲示板(2009/12/27(Sun) 13:35)に投稿されているバージョンで試してみたけど確かに挙動が違う。
ウィンドウの拡縮が反映されてないね。

379 :名前は開発中のものです。:2009/12/28(月) 14:29:28 ID:vxFbJ2Ow
ifってeles使わなくてもifで固めればeles使う必要あるのかな?

380 :名前は開発中のものです。:2009/12/28(月) 14:41:43 ID:TSFI1pm5
>>379
どこから突っ込めばいいんだい?

381 :名前は開発中のものです。:2009/12/28(月) 14:49:03 ID:YIPGDrjp
日本語からじゃない?

382 :名前は開発中のものです。:2009/12/28(月) 14:54:14 ID:jpOTUZve
スレチって所からだな

383 :名前は開発中のものです。:2009/12/28(月) 15:42:28 ID:0XgsQP9X
>>379
とりあえずマジレスするが
まずスレチな
次にelseな
elseを使わないと想定していないエラーが起きる場合もあるから
else ifって形にするべき

384 :名前は開発中のものです。:2009/12/28(月) 15:43:55 ID:vxFbJ2Ow
すいませんでした。
else ifのところのelseをぬいてもおなじように動いたので、
いるのかなと思って
C言語のすれにいきます。

385 :名前は開発中のものです。:2009/12/28(月) 15:46:54 ID:vxFbJ2Ow
ですよね、些細な疑問にマジレスありです。
すっきりしました^^



386 :名前は開発中のものです。:2009/12/28(月) 16:46:29 ID:EmomTfPw
友蔵心の俳句

387 :365:2009/12/28(月) 17:40:27 ID:3r1xx2ry
>>373
試したことはないけどpng等から作ったテクスチャとか
「任意なテクスチャ」には無理だと思う。

たぶんテクスチャにレンダリングしたい時は、描画可能な
テクスチャを専用で作らないといけないはず。
具体的には、SetDrawValidAlphaChannelGraphCreateFlag()等で
指定してから、MakeGraph()で作ったテクスチャになら
レンダリングできる。
あとはそのテクスチャを普通にDrawGraph()とかで描画できるけど
UVやビルボードに使えるかはまだ試してないので分からない。

このへんを含めてリファレンスには載っていない関数も
かなり多いので、Dxlibのソースや公式掲示板の過去ログ
とか見ると使い方も含めていろいろ発見あるかも。

388 :373:2009/12/28(月) 18:48:57 ID:yuCthtY8
>>387
ありがとうございます。
SetDrawScreen関数はMakeGraph関数で作成したグラフィックも指定できるんですね。
リファレンスに書かれていない機能だったとは・・・

389 :名前は開発中のものです。:2009/12/28(月) 18:52:49 ID:dBTW62Xp
ほうほうそれは知らんかった
なんで隠すんだろうな

390 :名前は開発中のものです。:2009/12/29(火) 00:11:37 ID:MjH8+OO8
関係ないスレだろうけど、ぐぐって検索したらここが見つかったのでここで書く。

「ゲームプログラマになる前に覚えておきたい技術」のシングルトンが変

普通シングルトンといったらpublic static getInstance()内部で初回呼び出し時に
インスタンスを作成するのに、別にインスタンス作成のためのpublic static create()というメソッドがある。

そして、クラス外部のどこかでcreate()を呼び出してインスタンスを作成している。
二回createしたら落ちるだとさ。つまり複数インスタンスをcreateするコードをかけてしまう。
これでは、実行時に落ちるとはいえ、コンパイル時にエラーを検出できない。

たとえば、複数のプログラマが、コードの一部分を分担してそれぞれ作っているときに
それぞれがcreate()していると、コードを分けている段階では問題なくても
一つにマージしたときにエラーが発生するというシナリオが起きてしまう。

391 :名前は開発中のものです。:2009/12/29(火) 00:18:26 ID:IYgt3GZP
あの本は結構適当だからな

392 :名前は開発中のものです。:2009/12/29(火) 01:19:32 ID:0CS2MVBj
セガの限界です
教育担当者ですらその程度
だからあそこまで落ちぶれた

393 :名前は開発中のものです。:2009/12/29(火) 02:24:27 ID:RokfBydo
Singleton の構築|Code++
ttp://ameblo.jp/woooh-p/entry-10031871696.html

2回create()を呼び出すと落ちるのは問題だが
初期化関数を別に用意したほうがいい場合もある

394 :名前は開発中のものです。:2009/12/29(火) 10:12:58 ID:Mul0eZVk
まあシングルトンなんか使う時点で…

395 :名前は開発中のものです。:2009/12/29(火) 10:14:09 ID:qD3DEd6e
シングルトンは普通に使うだろ

396 :名前は開発中のものです。:2009/12/29(火) 10:31:45 ID:Mul0eZVk
とりあえずシングルトンにしとけばオブジェクト指向っぽいしどこからでもアクセスできて便利と思ってる奴が多すぎる
グローバル変数だと意識して使うのは勝手だけどさ

397 :名前は開発中のものです。:2009/12/29(火) 11:41:51 ID:4TKwhtv1
SEGAはプログラマが悪いんじゃなくて企画が悪いんじゃね?

398 :名前は開発中のものです。:2009/12/29(火) 12:33:29 ID:MJuE+QA3
宣伝が悪い

399 :名前は開発中のものです。:2009/12/29(火) 12:33:57 ID:IYgt3GZP
つまりなにもかも悪いのか

400 :名前は開発中のものです。:2009/12/30(水) 18:16:44 ID:UY2bjnZL
ChangeFontType(DX_FONTTYPE_ANTIALIASING_EDGE);
↑でフォントを変更すると異常に重くなる。
これ以外で文字も目立たせる方法ってあります?
たくさんの色つかってる背景なので、文字が目立たなくて見にくい

401 :名前は開発中のものです。:2009/12/30(水) 18:19:27 ID:61sxYcJT
CreateFontToHandle

402 :名前は開発中のものです。:2010/01/01(金) 10:45:01 ID:OYP4V88L
VC++確かにべんりだーー。
{}のつながりがわかるじゃないか。
bccのときはこめんとひっつでした。
ただぎょうがわかればいいな〜〜


403 :名前は開発中のものです。:2010/01/01(金) 10:49:31 ID:usKzGBmk
一度VC#やVB触ったらVC++なんかゴミにしか感じられなくなるけどな

404 :名前は開発中のものです。:2010/01/01(金) 10:52:44 ID:tpzydI5S
VC#やVBも機械語と比べたらゴミにしか感じられないけどな

405 :名前は開発中のものです。:2010/01/01(金) 12:36:09 ID:WC0TdB7O
>>402
メニューの[ツール]->[オプション]->[テキストエディタ]->[C/C++]->[全般]
で行番号をチェック

406 :名前は開発中のものです。:2010/01/01(金) 13:08:58 ID:/td8CeQE
>>402
それはお前のインデントが悪い

407 :名前は開発中のものです。:2010/01/01(金) 15:11:34 ID:7pzjYUfB
VC#やVBってVC++より遅いんだろ?
それにVC#はガベジなんちゃらというので急に重くなるそうじゃないか
アクションとかシューティングに向くの?

408 :名前は開発中のものです。:2010/01/01(金) 15:26:26 ID:rtNA4Eqo
その通りだからC++でやりなよ

409 :名前は開発中のものです。:2010/01/01(金) 16:19:43 ID:oXGgPpta
>>407
.NETのガベージコレクションは優秀だから重くなることは無いよ
Xbox360では多少難あるけどね
実行速度遅くて困るなんてことは今の時代のPCスペックじゃ有り得ないそ
Javaのゲームも余裕で動く時代だし
アクション、シューティングもネットブックで動かせたよ

410 :名前は開発中のものです。:2010/01/01(金) 16:32:52 ID:i5316gGW
勝手に動いたガベコレが2フレームくらい時を止めても困る

411 :名前は開発中のものです。:2010/01/01(金) 16:44:58 ID:usKzGBmk
今時そんな細かい処理速度が表に出てくるほどのゲームを作るのは大変だぞ
そんなカツカツの高負荷のゲーム作るんだったらそもそもDXライブラリなんか使うべきじゃないしな
それはともかく>>403は単にIDEの出来だけを言ったつもりだった

412 :名前は開発中のものです。:2010/01/01(金) 16:48:57 ID:qgsN6nSc
VC#()笑 VB()爆

413 :名前は開発中のものです。:2010/01/01(金) 17:46:25 ID:+lDteCCN
ゼタセカンドでさえ遅れるのを許されない設計の場合

まず
・設計を改める
 削れる処理はないか。
 もっと速い処理はないか。  特に算術演算はコンパイラでさえ最適化しきれない「なにがやりてーんだタココラ」って効率の悪いコードになりがち。
 セオリーから外れてないか。 ウェイトを「カウントアップ」でやろうとしてないか。

などを見直し、それでもダメだ!1ヨクトセカンドでも遅れるのは許されぬ!ってとき

ハードウェアとダチ公になる


のだ。
遅れるってのは結局「OSのスリープに頼っているから」である。
OSのスリープはもちろんOSがやることなので「今は特に眠くないです。」といったらスリープしてもらえない。
そこをハードウェアとダチトモコレクションすることで、強制的にスリープするのだ。

414 :名前は開発中のものです。:2010/01/01(金) 17:52:47 ID:+lDteCCN
格闘ゲームだったら体力が0になったとき義塾大学になるのはもちろんだが、
気絶などのステータスもある。何のモーションのとき何が何でキャンセルできるのか

そういうことも常に演算する対象だが、これを

if(cancell_OK == 1)

とかやってるやつは基本がなってない。

char  cancell_OK, cancell_NG, cancell_only_special・・・・・・・

などと延々必要になるではないか。
ステータス管理の変数は1つにまとめろ。それは可能である。


というふうに、効率の悪いコードになっているのを改めることでだいぶ良くなる。



415 :名前は開発中のものです。:2010/01/01(金) 18:19:25 ID:Xn7CcDBA
>ステータス管理の変数は1つにまとめろ。それは可能である。
へぇ〜どうなるの 40文字以内で教えてください

416 :名前は開発中のものです。:2010/01/01(金) 18:20:21 ID:ulJ3MFDL
>ウェイトを「カウントアップ」でやろうとしてないか。
これについて教えて下さい

417 :名前は開発中のものです。:2010/01/01(金) 18:20:50 ID:+lDteCCN
結局のところ、格闘ゲームにおけるステータスってのは0か1しかない。
分かるだろ。の

418 :名前は開発中のものです。:2010/01/01(金) 18:22:58 ID:qgsN6nSc
>>414
cancell…

ステータスはビット演算でやってもいいが可読性が著しく低いから、
boolの配列作って0〜nの数字をそれぞれステータス名でenumしてる
スパゲッティどころか脳髄の如く絡まってるコード持って自慢げにメモリ使用量が〜〜とか言ってる奴いるとぶん殴りたくなる
というかぶん殴る

419 :名前は開発中のものです。:2010/01/01(金) 18:23:47 ID:+lDteCCN
カウントアップウェイト

信じられないことに、いまだに良く見るんだが
for(i=0, i < During; i++)

のこと。逆も然り。
for(i=During; i !=0; i--)

のような


これ数えてる間、CPUがずっとそれに占有されるだろ
これじゃウェイト、スリープの意味がない。

420 :名前は開発中のものです。:2010/01/01(金) 18:25:49 ID:ulJ3MFDL
>>419
これ駄目なの?普通に使ってた
代わりにどう書けばいいの?

421 :名前は開発中のものです。:2010/01/01(金) 18:27:56 ID:+lDteCCN
ウェイトやスリープってのは、

「何もしないんだから、その間他の処理をさせよう」

ってのが基本だ。また、そうでないとウェイトしてる間他の何の処理もできないから
極端に言えば画面が停止することになる。


普通は、OS越しに駆動するゲームだったらOSに用意されるスリープ命令を使う。
OSがない組み込みなどで動かすゲームなら、割り込みを使う。

422 :名前は開発中のものです。:2010/01/01(金) 18:38:45 ID:ulJ3MFDL


423 :名前は開発中のものです。:2010/01/01(金) 19:16:43 ID:CHW7ms0X
ループ処理の話かと思った

424 :名前は開発中のものです。:2010/01/01(金) 19:24:26 ID:Xn7CcDBA
unsigned long stat;
#define CANCEL_OK 0x00000001
,,,
 if (stat & CANCEL_OK)
 ...
 else if (stat & CANCEL_NG)
 ...
とか書くのかな

>boolの配列作って0〜nの数字をそれぞれステータス名でenumしてる
みたいなほうが好きだ
ただ例にあげてるとおりに格闘ゲームだとするとキャラクターの1フレームごとの変数の数が増えるのをきらうのはわかる

425 :名前は開発中のものです。:2010/01/01(金) 19:28:11 ID:DuVCrQzJ
>OSがない組み込みなどで動かすゲームなら、割り込みを使う。

GBAとかMSXとか古いゲーム機の時のことでしょ
懐かしいな

426 :名前は開発中のものです。:2010/01/01(金) 19:28:36 ID:+lDteCCN
時間軸で考えると、
例えば「1時間後に働けよ」というのがスリープの考え方。

「じゃあその1時間何をするか」。
1時間、ずーっと1,2,3,4,5,6,7,8,・・・・と声に出して数え上げるとする。
これじゃ、なんか用事があっても何も出来ない。

「じゃあ本でも読むか」となれば、別の処理(本を読んで知識を得る)が出来る。

どっちやっててもシステム時間として1時間は過ぎるが
片方は「実質的に意味のあることを何もしてないのにパワーだけ食う」
片方は「実質的に何もしないんだから別のことをする」

どっちが効率的か分かるだろう

427 :名前は開発中のものです。:2010/01/01(金) 19:31:29 ID:+lDteCCN
また、ループも

for(i=0; i < During; i++){
 Plus += Exactly;
}

ではなく、
if(During == FuckingAss){
 Plus += Exactly;
 Plus += Exactly;
 Plus += Exactly;
 Plus += Exactly;
 Plus += Exactly;
 Plus += Exactly;
}

などとしたりすることがある。
基本的にコッチのほうが速いからだ。
CPUとコンパイラにもよるが。

428 :名前は開発中のものです。:2010/01/01(金) 19:32:53 ID:ulJ3MFDL
>>427
へー

429 :名前は開発中のものです。:2010/01/01(金) 19:35:16 ID:ulJ3MFDL
でも1000回のループとかだと、1000行書いてたらさすがにソース長くなって鬱陶しいよね
大体何回までのループなら>>427の↓のパターンで書いてもいいの?

430 :名前は開発中のものです。:2010/01/01(金) 19:37:18 ID:+lDteCCN
デッドライン、つまりここまでに必ず処理終えろ!っていう最終期限が決まってるシステムでは
forループではなく、こういうふうな展開したループもどきが使われることも多い。

難点は、見た目素人っぽいこと

それ以外は何してるか分かりやすくていいのだが
「こっちのほうが速いよ」ってことをなかなか認めてもらえないのが難といえば難


これを、デッドラインまで繰り返す
デッドラインが決まっているということはおおよそのアタリがつくし、
そんなに長いループにもならない。なってはいけない。

431 :名前は開発中のものです。:2010/01/01(金) 19:42:28 ID:+lDteCCN
まあこういう小ネタは
「もっと軽くしたい」ってときの最終手段なので

根本から遅いのであれば設計を見直したほうがいいよ

432 :名前は開発中のものです。:2010/01/01(金) 19:44:49 ID:Xn7CcDBA
>ID:+lDteCCNが考える中で
じゃあWindowsのDXライブラリで
たとえば1フレーム50ミリ秒にするのにSleepを使わない最適なメインループはどういうの
公式のサンプルがいいのなら「それ」といってくれればいいです

433 :名前は開発中のものです。:2010/01/01(金) 19:46:30 ID:qgsN6nSc
マジレスするとDXライブラリ使うような環境でこんな事を考える必要は無い

434 :名前は開発中のものです。:2010/01/01(金) 19:48:17 ID:ulJ3MFDL
>boolの配列作って0〜nの数字をそれぞれステータス名でenumしてる
これ具体的にどんな感じで書けばいいの?

435 :名前は開発中のものです。:2010/01/01(金) 19:50:56 ID:+lDteCCN
俺やったら、スリープはCPUに直結する。
例えばPowerPCはタイマユニットを持っているので
これに値を入れてカウントさせる。アンダーフローと同時に割り込みが入る。
その割り込みでタスクを駆動させる。

こういうハード寄りもいいとこのタイマ管理ってのはアプリで使うもんじゃないというし、
まあそれもそうだろうが実現する場合これが一番いいのだ。

ハードウェアのタイマクロック計上はタスクじゃないので、一切影響を及ぼさない。
普通OSのスリープは多かれ少なかれCPUのパワーを食うが
俺のやるタイマは一切食わない。割り込み処理のオーバーヘッドは微々たるもの。

436 :名前は開発中のものです。:2010/01/01(金) 19:52:10 ID:ulJ3MFDL
>>435
全然わからんからサンプルソースで説明しておくれ

437 :名前は開発中のものです。:2010/01/01(金) 19:54:51 ID:OvIEzR2y
wwwwww
DXライブラリのスレでPowerPCwwww

面白いヤツだなお前

438 :名前は開発中のものです。:2010/01/01(金) 20:05:29 ID:+lDteCCN
PowerPCは例えだし
サンプルといっても、やりたい事を記した関数しかないのだがw

割り込みはソフトウェアじゃない。
割り込みは、ベクタ方式の場合ベクタベースからオフセットしたところにプログラムカウンタが来るだけだから
別にソースで表すもんじゃない。
また、PowerPCならベクタじゃない。

439 :名前は開発中のものです。:2010/01/01(金) 20:07:18 ID:rctl5BXb
割り込みベクタとか。正月でやっぱらったロートルPGが集まるスレはここか?


440 :名前は開発中のものです。:2010/01/01(金) 20:08:35 ID:rctl5BXb
やっぱらったって酔っぱらったなw
俺も飲んでるがなww

441 :名前は開発中のものです。:2010/01/01(金) 20:10:31 ID:+lDteCCN
でもハード寄りプログラムは面白い。
普通あんまり使わないウォッチドッグタイマ

どうしても更新したいのに処理が終わらなかったとき
これで強制的に更新したりできる
たまにはハード寄りのオブジェクトを作ってみても面白い

442 :名前は開発中のものです。:2010/01/01(金) 20:42:23 ID:WC0TdB7O
>413で間違えて書き込んだのか知らないけど
ここは主にDXライブラリやそれに関する話をするスレなので
DXライブラリに全く関係ないPowerPCの話はやめてほしい

あとゲームではあまり意味の無い、
>427のような時期尚早な最適化を進めるのはどうかと思う
今のVC++の無償版には最適化機能が付いているし

443 :名前は開発中のものです。:2010/01/01(金) 20:50:31 ID:+lDteCCN
考え方はx86系統でも同じなのに・・・w

444 :名前は開発中のものです。:2010/01/01(金) 22:16:35 ID:yLIIIbHt
>>434
横レスだが、たぶんこんなかんじじゃないの

enum StatusSet{
Stat_POINSON,
Stat_PARALYSIS,
Stat_DISEASE,
Stat_CURSE,
Stat_NUM
};

bool phys_stat[Stat_NUM];
for(int i=0;i<Stat_Num;++i) phys_stat[i] = false;

あとはif( phys_stat[Stat_POISON] )とかでもswitchで振り分けてもいいし
STLのbitsetは役に立たないかな?使ったことないけど

445 :名前は開発中のものです。:2010/01/01(金) 22:41:12 ID:qgsN6nSc
>>444
意図してたのはちょっと違った
enum StatusSet{
JUMP,
WALK,
DASH,
ATTACK,
};

bool stat[5];
if (stat[JUMP]) { 〜〜 }

という。
#まあjumpとかwalkは色々やるべきなのでintで管理すべきだが……

446 :名前は開発中のものです。:2010/01/01(金) 22:49:37 ID:ulJ3MFDL
>>444-445
ありがとん

447 :名前は開発中のものです。:2010/01/01(金) 23:18:29 ID:4nYhycH7
ID:+lDteCCNみたいなオナニーはブログででもやってくれ

448 :名前は開発中のものです。:2010/01/01(金) 23:28:38 ID:/td8CeQE
私はステータスはビット演算派だ。
可読性が指摘されているが、
やり方が悪いくせに可読性が低いと決めつける奴に進歩はない。

#define JUMP (1 << 0)
#define WALK (1 << 1)
#define DASH (1 << 2)
#define ATTACK (1 << 3)

unsigned long stat;

if (stat & WALK) { 〜〜 }

↓ジャンプアタック
if (stat & (JUMP | ATTACK)) { 〜〜 }

-----------------------------------------------

Cをアセンブラ視点で見られるかどうかは重要だと思うが、
今は最適化のレベルが上がっているので、
>>427のようなロートルな話は意味がないと思う。


449 :名前は開発中のものです。:2010/01/01(金) 23:30:56 ID:+lDteCCN
なんかコンパイラを優秀な最適化屋と思ってるのがいるが、

logとビットシフトでは10秒も差がある。

450 :名前は開発中のものです。:2010/01/01(金) 23:57:47 ID:1cbp2whq
言ってることの半分もわからないけど
DXライブラリと無関係なのはわかる

451 :名前は開発中のものです。:2010/01/02(土) 00:16:20 ID:ek4oo2Ge
まあこいつプログラム板ゲ製板どこにでも湧くキチガイなんだけどな

452 :名前は開発中のものです。:2010/01/02(土) 00:26:34 ID:08xjavwk
どうせたいがい描画がボトルネックになるから細かいことを気にしてもほとんど意味がない

453 :名前は開発中のものです。:2010/01/02(土) 00:27:36 ID:HeY6umvi
>logとビットシフトでは10秒も差がある。

454 :名前は開発中のものです。:2010/01/02(土) 00:33:31 ID:08xjavwk
実際に表に出てくるパフォーマンスっていうのは「積み重ね」じゃないからな
細かいことはIOや描画の桁違いのコストで吹き飛ぶ

455 :名前は開発中のものです。:2010/01/02(土) 00:36:42 ID:txdXna1V
コミケ終わったとたん速度はえ〜〜〜w
>>405
ありがとです
行表示できました
まだ、便利な機能があればおしえてほしいです。

456 :名前は開発中のものです。:2010/01/02(土) 11:44:35 ID:Ab6bZvqB
>logとビットシフトでは10秒も差がある。

10秒って・・・・・・Z80とかクロック4Mhzの時代の話ですか?

457 :ひらしょ:2010/01/02(土) 13:50:19 ID:xqJ6LKWH
流れさえぎってすまないが、ゲームプログラマになる前に云々の著者です。
シングルトンがああなのは、getInstanceの速度をあげるため。
if一回減らせる。描画APIラッパとかだとここ重要。
create二回で死ぬのも「二回呼んじゃダメ!」と言いながら
assertで死ぬわけで、意味のある死に方。
ゲームにおいては、
間違ったコードを書いても動き続けることは重要ではない。
間違った、あるいは非効率なコードを書いたら
すぐわかるようにしておいて、出荷までに直すべき。

458 :名前は開発中のものです。:2010/01/02(土) 14:03:41 ID:+OdFeBMV
平山さん?SE-GA-♪

459 :名前は開発中のものです。:2010/01/02(土) 14:09:07 ID:X1WEcwoJ
うわ、こんなスレまで見てんのかよ
老いぼれセガ社員必死だな
Seleneスレ荒したのお前だろ

460 :名前は開発中のものです。:2010/01/02(土) 14:09:36 ID:7cOQTtto
>>459
Selene作者帰れよ

461 :名前は開発中のものです。:2010/01/02(土) 14:38:27 ID:Y2eIfDvE
ここは有名人の集うインターネッツですね

462 :名前は開発中のものです。:2010/01/02(土) 14:41:47 ID:+OdFeBMV
証拠うpまだー?

463 :名前は開発中のものです。:2010/01/02(土) 15:39:32 ID:HeY6umvi
>>457>>390の書き込みに対してか

>>390はassertが何のためにあるのかも知らないただのプログラム初心者だな
スレ違いでチラシの裏にでも書くような内容を堂々と書くくらいだしな

>>459
Seleneの現行スレ、過去スレ見たけど全然荒れてないぞ
あと、お前はアンチSEGAのスレにでもいけ

464 :名前は開発中のものです。:2010/01/02(土) 18:47:34 ID:US5QyJsT
3.01きたな

465 :名前は開発中のものです。:2010/01/03(日) 09:52:26 ID:uXTT7Kpp
>>457 ゲームならその仕様で良いだろうね。
”ゲームプログラマになった後の〜”の執筆もよろしくお願いします

466 :名前は開発中のものです。:2010/01/03(日) 11:10:30 ID:WXd0Gz3I
ちょっと相談なのですが、座標はfloat型で取得していて、
マップは20×15で通れるところが0、通れないところが1で2次元配列読み込み済。
自キャラは32×32の場合、DXライブラリのサンプルにあったマップとのあたり判定の例に従って

float oldX,oldY;//移動前の座標

int key = GetJoypadInputState(DX_INPUT_KEY_PAD1);

oldX = (*it).x ;//移動前のX座標
oldY = (*it).y ;//移動前のY座標
    int x1 = (*it).x , y1 = (*it).y;
int x2 = (*it).x+32 , y2 = (*it).y+32; //右下の座標(どこで使うか考えている)

printfDx("%d,%d,%d,%d\n",x1,y1,x2,y2);



467 :名前は開発中のものです。:2010/01/03(日) 11:12:21 ID:WXd0Gz3I
float df = GameFrame::IdouHosei(4);
if(key & PAD_INPUT_UP) (*it).y = (*it).y - df;
if(key & PAD_INPUT_DOWN) (*it).y = (*it).y + df;
if(key & PAD_INPUT_LEFT) (*it).x = (*it).x - df;
if(key & PAD_INPUT_RIGHT) (*it).x = (*it).x + df;
if((*it).x<0) (*it).x=0;
if((*it).x>608) (*it).x=608;
if((*it).y<0) (*it).y=0;
if((*it).y>448) (*it).y=448;

       x=x1/32;
y=y1/32;

if(map[y][x]==1){
(*it).x = oldX ;
(*it).y = oldY ;
}

(*it).anim->draw(0, (*it).x, (*it).y);

こんな感じにすると若干思っているのとずれるんですよね…。
当たり判定なので左上の座標と右下の座標を取得するところまでは考えたのですが、
どのようにしたら実情にあったマップとのあたり判定になると思いますか?

468 :名前は開発中のものです。:2010/01/03(日) 11:25:02 ID:CHMCqqiY
とりあえず見難いから->使っとけよ

移動させてから戻すんじゃなくて、二次元配列のマップチップなら移動先が0かどうか判定するほうがいいんじゃね

469 :名前は開発中のものです。:2010/01/03(日) 11:26:09 ID:mNxKxxAQ
>>467
>こんな感じにすると若干思っているのとずれるんですよね…。
ちょっと分かりづらいので、何が原因でどういう風にずれるのか詳しく教えて。

470 :名前は開発中のものです。:2010/01/03(日) 11:44:39 ID:WXd0Gz3I
>>469
うまく言えないのですが、ぶつかるべきところでぶつからないで食い込んで止まったりする、という感じでしょうか・・・。
あと、通行可のはずのところに入れなかったり。
マップに入れるところ、入れないところを作りたいのですが。


471 :名前は開発中のものです。:2010/01/03(日) 11:52:19 ID:v00n4e/G


何でもそうだが、

条件判定は少なければ少ないほどよい。
っていうか現場でifififififififififififififififif重ねる奴は怒られる。

switch-caseで済む場合もあれば
ビットシフトで済む場合もある

俺はswitch-case大嫌い
下に来るまでクロックを食いながら来るからだ
だから個人的にはビット演算以外認めない
ビット演算なら、立てておけば何が来ても一瞬だからだ

472 :名前は開発中のものです。:2010/01/03(日) 12:06:18 ID:v00n4e/G
ビット演算が嫌いだったり何らかの理由でどうしてもswitch-caseにしなければならないのなら
ステータスに数字を割り振って、その値が指すものに直に飛ばしてもよい

擬似テーブル方式だな
内心嫌だった

とにかく、ifififififififififififififififififififififififififififififififififififififififififififififififififififififififififififififififififififififif重ねるのは見た目にもよくないし
実行速度的にも良くないので絶対に改めるべきだ。
単純なswitch-caseも絶対に避けるべきだ。10項目あったら10項目めに来るまで最低11クロックかかる。
11クロックもあったらシェーダを3回も回せる。
じつにもったいない話だ。

473 :名前は開発中のものです。:2010/01/03(日) 12:07:15 ID:aWVerO1p
まず

x=x1/32;
y=y1/32;

x=x1/20;
y=y1/15;

じゃないか?

その上でマップに当たった場合、
ギリギリまでキャラクタを移動させる処理が足りない。
それをやらないと、キャラクタがブルブル震える。

あと変数の名前をもうちょっと考えてやろうな。
配列の引数に渡すセル番号の値がキャラ座標と同じx,yはひどい。
規格が違う。

474 :名前は開発中のものです。:2010/01/03(日) 12:10:36 ID:CHMCqqiY
とりあえずマップが格子状ならキャラクターのx,yも同じ値で管理すべき
実際の位置は表示部分で考えるか、滑らかな動きがいいなら別途キャラクター表示x,yを用意して補正してやる

475 :名前は開発中のものです。:2010/01/03(日) 12:15:25 ID:mNxKxxAQ
>ちょっと相談なのですが
という言い回しだったので「アルゴリズムを提案してほしい」ということかと思ったのに、実は「バグを見つけて下さい」ということだったとは・・・
>>473で解決だな。

476 :名前は開発中のものです。:2010/01/03(日) 13:43:46 ID:+Y7mHkgr
お前ら馬鹿か
自キャラは32×32だから/32でいいだろ
出鱈目教えんなよw

それと
if(map[y][x]==1){
(*it).x = oldX ;
(*it).y = oldY ;
}
となってるが
それはキャラの左上しか減り込みチェックしてないから
int x2 = (*it).x+32 , y2 = (*it).y+32 は
int x2 = (*it).x+31 , y2 = (*it).y+31 に変えて
map[y1][x1], map[y1][x2], map[y2][x1], map[y2][x2] をチェックしてやらんといかん
他も変えるべき個所はあるがとりあえずここまで


477 :名前は開発中のものです。:2010/01/03(日) 13:47:15 ID:+Y7mHkgr
間違えたw
>map[y1][x1], map[y1][x2], map[y2][x1], map[y2][x2] をチェックしてやらんといかん
はなかったことね
取りあえず4隅をチェックするということ

478 :名前は開発中のものです。:2010/01/03(日) 14:02:44 ID:+Y7mHkgr
あとね、ID:WXd0Gz3I のことやろうとするとね、結構大変だから、俺もやったけど
引き返すなら今のうちかも、特に初心者は
ある程度慣れた人ならできるだろうけど

俺の場合は下行くか上行くか左行くか右行くかによって場合わけで上の人が嫌いって言ってたswitch-caseでやったけど
まあ上手いことやればswitch-case使わなくてもできるんだろうけど
俺の場合は上行った場合は左上と右上の2隅チェック、
右行った場合は右上と右下の2隅チェック、以下略
ってやってったと思ったんだけど

479 :名前は開発中のものです。:2010/01/03(日) 14:31:11 ID:CHMCqqiY
初心者が誤解するとアレだから一応言っておくけどswitch-caseは基本JMPだから。

480 :名前は開発中のものです。:2010/01/03(日) 15:24:02 ID:WXd0Gz3I
あたり判定みたいに右下と左上のみの判定じゃ難しいみたいですね。
なんとなくそれっぽい動きができればそれでいいのですが…。
switch-caseも一度考えてみます。

481 :名前は開発中のものです。:2010/01/03(日) 16:42:55 ID:TuIYpr0P
>>480
スレ斜め読みのおいらが答えると、まず、floatは辞めよう。
一度、float型で、単純な計算をさせると分るけど、floatは精度的に難がありすぎる。
使うなら、intかdoubleを。(特に今回は浮動小数点が必要なさそうだからintで十分)

あと、値が何を示しているのか?をきっちりと考える事。
(x2が、自キャラがギリギリ外れてる位置なのか?ギリギリ入っている位置なのか?)
可能なら、それぞれの名前をx1=>x_top x2=>x_under y1=>y_left y2=>y_rightとか、
ちゃんと意味する名前に・・・。

また、無意味なマジックナンバーはさっさと定数に。
static const int SQUARE_SIZE=32;とかにする。

さらに、一般的にキャラと通路がほとんど同じ大きさだと、
将棋みたいなマス目管理じゃないと、操作不可能になりやすい。
(何か絶対の理由が無ければ、キャラの処理的な大きさは7割で処理していっても問題無い。)

めんどくさいんで、人の書いたモノの紹介で濁すけど、
今回は、基本ただの四角形と四角形の判定辺りで行ける。
http://marupeke296.com/COL_main.html
の その4 のはじめの所を読めば問題解決するだろう。



482 :名前は開発中のものです。:2010/01/03(日) 18:04:43 ID:smx+9BoV
宇宙船を舞台にしたFPSゲームを作ろうと思っています。
次のような要素を実現したいのですが・・・
@エイリアンを倒した数によって、ヒロインのおっぱいが大きくなる。
Aステージをクリアしたあと、ヒロインのおっぱいを揉める。
@に関しては、おっぱいの大きさごとのモデルを作るのではなく、DXライブラリの
プログラムで、おっぱいだけを大きくしたいです。
Aに関しては、プレイヤーの動きに応じてちゃんとおっぱいがもにもにするようにしたいです。
DXライブラリで可能でしょうか?

483 :名前は開発中のものです。:2010/01/03(日) 18:10:25 ID:Cn7qbODV
3D?
おっぱい以前に,さすがにFPSならDXライブラリじゃなくてもっとちゃんとした3Dゲームエンジン使った方が結果的にずっと楽だよ

484 :名前は開発中のものです。:2010/01/03(日) 18:12:54 ID:FbdCmvgh
        ,,,      ,,,,,,         : .と お 大 お エ
       _ = ~~ ``ヽ_,=''~´  ´~ヽ    :  は こ き .っ イ
    _= ~               ヽ   : 思 が く  ぱ リ
    ~=、    ミゞ、  , -彡     ヽ.  : わ ま .し. い ア
       ~=、、、Cl~evj <e~}6)_   、、、ミ : ん  し  よ を .ン
        ミ.~~ /', ゚ ;'7  ミ7ヾ~- 、  : か  い う    の
       ≡   (','゚, '.人  ゝ |  ヽ  : ね     な    命
        `=  `ー'   iノ'  | / |          ん    で
         ~ーノノノノノ'′               て



  _  ∩ピタ
(; ゚д゚)
し   |
|   |
し ⌒J



   ( ;´゚д゚)     ・・・・・・・・・
  c(,_U_U ガク



            ( ;´゚Д゚)   おっぱいは何のためにあるんだー
           c(,_U_U
 _,,..-―'"⌒"~⌒"~ ゙゙̄"'''ョ
゙~,,,....-=-‐√"゙゙T"~ ̄Y"゙=ミ
T  |   l,_,,/\ ,,/\

485 :名前は開発中のものです。:2010/01/03(日) 20:05:43 ID:wq7ATXDp
>>482
3Dメッシュの1部分の頂点座標を変更することが出来れば可能ではないだろうか
DXLibではメッシュの中の1点の頂点情報を変更する関数が見当たりませんでした
直DirectXではLockVertexBufferで頂点情報を抜き出し、一部変更してからUnlockすれば書き換えできる
その他知る限りだとDarkBasicのSET VERTEXDATAがそれらしき機能かもしれない
自分はボーンの使い方わかないので、頂点書き換え方式でキャラのモーション作ってます

486 :名前は開発中のものです。:2010/01/03(日) 21:49:29 ID:v00n4e/G
シェーダでやったほうが1000倍ラクだと言っておく

487 :名前は開発中のものです。:2010/01/04(月) 00:50:49 ID:96m9JQJM
おっぱいシェーダw

488 :名前は開発中のものです。:2010/01/04(月) 08:25:51 ID:TtKqpyJC
究極のおっぱいシェーダーをダウンロードできるところを教えてください
おっぱいはTonnyかべっかんこみたいなのが好みです

489 :名前は開発中のものです。:2010/01/04(月) 11:15:32 ID:fBgUH+Pe
makeしたら負けやと思う




490 :名前は開発中のものです。:2010/01/04(月) 15:41:04 ID:7VFKyHz5
>>486
HLSLで頂点シェーダやったけど、メッシュ全体の平行移動しかわからない
一部分の頂点座標を動かすってoffset引数使うとまでは調べられたが情報全然ありません
どうやってやるのでしょうか

491 :名前は開発中のものです。:2010/01/04(月) 16:44:21 ID:R2vcIv7j
スキニング

492 :名前は開発中のものです。:2010/01/05(火) 23:31:28 ID:V0sHGwwt
3Dゲーム作ってるんだけど、キャラクターモデルの大きさとかって影響あるの?
ビットマップと違って3Dはラスターデータだから、データの重さにはあまり影響ないように思うんだけど。
テクスチャの大きさが影響するとか?
もしそうなら、大体どれくらいの大きさのモデルが基準になるんだろう。

493 :名前は開発中のものです。:2010/01/05(火) 23:58:55 ID:7uq6yiIC
サンプルを参考にゲームを作り、1面、2面…とバラバラにcppを作ったのですが、
これを一つにまとめて、クリアしたら次の面にいくようにしたいのですが、どのような方法がありますか?

494 :名前は開発中のものです。:2010/01/06(水) 00:27:54 ID:lKDLfFv0
>>492
ポリゴン数とテクスチャサイズはパフォーマンスに影響するよ。
市販のゲームを参考にすると良いと思う。
ttp://www.geocities.jp/gamerabbits/programing_08.htm

>>493
「#include」「extern」を使う。
ttp://www.geocities.jp/ky_webid/c/032.html

495 :名前は開発中のものです。:2010/01/06(水) 02:00:14 ID:odLPnjyO
ポリゴン数の話でなく、オブジェクトのサイズの話の方なら
3DCGソフトによって座標系や単位もバラバラなので関係ないよ。
ただ作業上の手間はあるので、サイズは統一しておいた方が
良いとは思う。
Dxライブラリの場合は、メタセコに合わせているので市販の3DCG
ソフトから直接xで書き出した場合は、極小で表示されると思う。
3DCGソフト側で適正なサイズでモデリングするか、メタセコ経由
してサイズを調整するのが無難かも。

>>493
switchとかでもできるけど、シーン(面)ごとにクラスに分けてるなら
基底のクラス作ってそっから各面を派生させたほうが楽かも。
シーン遷移(シーケンス遷移)やstateパターンとかでググるといいかも。

496 :名前は開発中のものです。:2010/01/06(水) 02:15:00 ID:ngavL09N
質問者のレベルを考えると

 if ( scene == SCENE_TITLE ) Title();
 else if ( scene == SCENE_PLAY ) Play();

でも良い気がした。

497 :名前は開発中のものです。:2010/01/06(水) 02:17:06 ID:BbbKJDe6
関数ポインタなんてどですたい

498 :名前は開発中のものです。:2010/01/06(水) 02:41:18 ID:T+FI4egH
モデルの大きさは1以下にしたほうがいいとか
どっかに書いてあった気がする

浮動少数点の精度がどうたらこうたらで

499 :名前は開発中のものです。:2010/01/06(水) 16:02:24 ID:AxwVnUF1
void model_load( char *file,int zx, int zy){
〜略〜
mapmodel_h = MV1LoadModel(file) ;
      〜略〜
}

//グローバルスコープ
int mapmodel_h;

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){

      〜略〜
model_load("newmap2.mqo",5,6);

これのmodel_load関数のどこが間違ってるの?デバッグ中に「モデルファイル newmap2.mqo が読み込めませんでした」とか怒られる
ちゃんとファイルを置く場所も間違ってないのに・・・

500 :名前は開発中のものです。:2010/01/06(水) 16:15:50 ID:Yz0j5Uar
それはね、ほら、あれだよ

501 :名前は開発中のものです。:2010/01/06(水) 19:54:12 ID:+MjWEeUN
ファイルを置く場所が間違ってないなら、そのファイルが問題なんじゃないだろうか。
試しにDxLibのサンプルのファイルに置き換えてみるとかどうだろう。

あと念のため、>>301-302も見てみてね。

502 :名前は開発中のものです。:2010/01/06(水) 21:30:52 ID:AxwVnUF1
・・・回答ありがとう。解決したよ・・・

たった今、もの凄い恥ずかしいミスをしている事に気づいた。ぅゎー

503 :名前は開発中のものです。:2010/01/07(木) 00:27:42 ID:YFEgAVA7
うまくいかないのでやり方を教えてほしいのですが、

story.cpp内のdraw関数では、
switch(nowstage) {
case 0:
DrawGraph(0,0,img[0],FALSE);
(nowfstageは現在プレイ中のステージ。クリアすると+1されるようになってる
img[0]には画像が読み込まれている)
という宣言がしてあって、

void ShootGame::drawGameClear(){
slgmap.draw();
jikicnt.move();
bakucnt.move();
GameFrame::drawGameClear();
int key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
if(key & PAD_INPUT_B)story.draw();
// if(key & PAD_INPUT_B)setGameState(GAME_MAIN);
}

とした場合、該当のキーを押している間は画像が表示されるのですが、キーを離すと表示されません。
まずキーを押したら画像が表示されて、その後キー入力で画像を切り換えて何枚か表示させた後、
またキーを押したらGAME_MAINに戻るようにしたいのですが、どうしたらいいですか?

504 :名前は開発中のものです。:2010/01/07(木) 01:03:02 ID:TMdG719d
enum
{
  START,
  FIRST,
  SECOND,
  END,
};

int draw_state = START;

drawGameClear(){
  int key = GetJoypadInputState();
  if(key & PAD_INPUT){
    draw_state++;
  }
}

some_function(){
  if(draw_state == START){
    // hyouji sinai
  }
  else if(draw_state == FIRST){
    // 1maime hyouji
  }
  else if(draw_state == SECOND{
    // 2maime hyouji
  }
  else if(draw_state == END){
    // GAME_MAIN ni modoru
  }
}

505 :名前は開発中のものです。:2010/01/07(木) 01:04:01 ID:TMdG719d
あ、キーを押した瞬間だけ検知するロジックが必要だな

506 :名前は開発中のものです。:2010/01/07(木) 01:10:32 ID:TMdG719d
bool before_key_state = false;
bool now_key_state = false;

chk_key(){
  before_key_state = now_key_state;
  if(GetJoypadInputState() & PAD_INPUT){
    now_key_state = true;
  }
}

chk_key()を毎フレームかコールバックでやってるなら
キーが押されたときに実行して以下の処理で検知とか

if(!before_key_state && now_key_state){
  // ima osareta
}

507 :名前は開発中のものです。:2010/01/07(木) 01:11:44 ID:TMdG719d
こうか。。超適当
chk_key(){
  before_key_state = now_key_state;
  if(GetJoypadInputState() & PAD_INPUT){
    now_key_state = true;
  }
  else{
    now_key_state = false;
  }
}

508 :名前は開発中のものです。:2010/01/07(木) 15:40:47 ID:4ItCtcBu
上記のchk_key関数を作ってGameClear内に呼び出すようにしたのですが、
方法が悪いのか、やはりキーを押している間しか画像が表示されません。
現在このような形にしています。

bool before_key_state = false;
bool now_key_state = false;
はすべての関数の外で呼び出し、
(int cstate = STARTは外で呼び出すと2回目から画像が出なくなったので、中にしました)

void ShootGame::drawGameClear(){
int cstate = START;
chk_key();
int key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
if(key & PAD_INPUT_B){
cstate++;
}

if(cstate == START){
slgmap.draw();
jikicnt.move();
bakucnt.move();
GameFrame::drawGameClear();
    }
else if(cstate == FIRST){
story.draw();
}
else if(cstate == SECOND){
story.draw();
}
else if(cstate == END){
setGameState(GAME_MAIN);
}

509 :名前は開発中のものです。:2010/01/07(木) 15:43:45 ID:4ItCtcBu
if(cstate == START){
以下をsome_function関数にして、
void ShootGame::drawGameClear(){

int key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
chk_key();
if(key & PAD_INPUT_B){
cstate++;
some_function();
}
}
というのもやってみましたが(当然ですが)できませんでした。

chk_keyの中身は、
void ShootGame::chk_key(){
int key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
before_key_state = now_key_state;
if(key & PAD_INPUT_B){
now_key_state = true;
}
else{
now_key_state = false;
}
}
というような形になっています。

510 :名前は開発中のものです。:2010/01/07(木) 15:52:30 ID:4ItCtcBu
キーを離すと「cstate = START」の状態に戻っていると思います。
if(key & PAD_INPUT_B){ }内の cstate++;の前後に
if(cstate == START){ を入れるというのも試してみたのですが、
やはりうまくいきません

511 :名前は開発中のものです。:2010/01/07(木) 16:22:43 ID:3PYGN21/
そりゃ cstate はローカル変数だからな
それじゃあその関数呼ばれるたびに cstate = START; がセットされるわな
int cstate = START; を static int cstate = START; に変えるか
あるいは cstate をメンバ変数にするかしないと

あと、キー押し続けチェックは彼とは違ったやりかたになるけど

chk_key();
int key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
if(key & PAD_INPUT_B){
cstate++;
}
の部分を以下に変えたらどうか
static bool holdDownB = true;
int key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
int pushB = key & PAD_INPUT_B;
if (pushB && !holdDownB){
 cstate++;
 holdDownB = true;
}
if (!pushB) holdDownB = false;

512 :名前は開発中のものです。:2010/01/07(木) 16:39:31 ID:4ItCtcBu
ありがとうございます。
確かにintでは値の保持ができませんね…。気が付きませんでした。
静的変数にしなくてはいけなかったんですね。
あとキー入力の部分もありがとうございました。
考えていた通りに動かすことができました。

513 :名前は開発中のものです。:2010/01/07(木) 16:45:13 ID:tQIgGLUE
DxlibをC#で使ってる解説サイトとかないかな?


514 :名前は開発中のものです。:2010/01/07(木) 17:40:30 ID:eYJAziPK
>>513
C#版は一部の関数が使えないこと以外はC版と同じ。
readme.txtに書かれていること以上に解説することがないから解説サイトもないよ。

515 :名前は開発中のものです。:2010/01/07(木) 22:19:47 ID:TMdG719d
static変数使うと初期化がうまくできなくなりがちなんだよなあ

516 :名前は開発中のものです。:2010/01/07(木) 23:25:56 ID:eYJAziPK
>>515
別に静的変数を使わなくても実装できるよ。
せっかくC++使ってるんだしクラス化してみたら?
↓みたいな感じで。

// ジョイパッド管理クラス
class Joypad
{
private:
enum
{
MAX_BUTTON = 28 // DXライブラリは最大28個のボタンに対応している
};

int PressedCounts[MAX_BUTTON]; // 各ボタンの押されたフレーム数を保存しておく

public:
void Update(); // ジョイパッドの入力状態を更新する
int GetPressedCount(int InputType, int Button); // ボタンが押されたフレーム数を取得する
};

// 使用例:-------------------------------
// ジョイパッドの入力状態を毎フレーム1回だけ更新する
joybad->Update();

// パッド1のBボタンが押された
if(joybad->GetPressedCount(DX_INPUT_KEY_PAD1, PAD_INPUT_B) == 1)
{
// 何らかの処理
}

517 :名前は開発中のものです。:2010/01/08(金) 02:41:50 ID:8yWASrLd
態々クラス化する程のことか
少なくとも手間は普通にコーディングした方が全然掛からないが

518 :名前は開発中のものです。:2010/01/08(金) 09:30:18 ID:TquDKlBD
ならその方法で良いんじゃない?
クラス化はあくまで一例でしょ
君のいう普通がどんななのかは知らないけど

519 :名前は開発中のものです。:2010/01/08(金) 21:55:23 ID:G0v30nLn
スクリーンのある位置のpixelが、
何色を表示しているかわかる方法ってありますか?

520 :名前は開発中のものです。:2010/01/08(金) 21:59:21 ID:UpbwAmjx
ある

521 :名前は開発中のものです。:2010/01/08(金) 22:04:52 ID:3zMDBTld
ある。

522 :名前は開発中のものです。:2010/01/08(金) 22:08:20 ID:G0v30nLn
GetPixelですか?


523 :名前は開発中のものです。:2010/01/08(金) 22:11:52 ID:3zMDBTld
なんでそれを聞く必要があるの?リファレンスにも書いてあるし自分で試すことも出来るのに

524 :名前は開発中のものです。:2010/01/08(金) 22:16:19 ID:5mIUw3Vj
>>523
言いたいことは分かるけど、おまいさんに突っ込む資格は無いだろうw

525 :名前は開発中のものです。:2010/01/08(金) 22:23:08 ID:G0v30nLn
>>520,521,523,524
なんとか出来そうになりました
ありがとうございます

526 :名前は開発中のものです。:2010/01/08(金) 23:05:49 ID:qPTthljo
ワロタ

527 :名前は開発中のものです。:2010/01/08(金) 23:08:41 ID:hMOVMPlC
できそうってまだできてないのw

528 :名前は開発中のものです。:2010/01/09(土) 10:14:37 ID:D2rGgWHr
ストライクウィ○チーズ保管庫画像取得
http://maniax.dlsite.com/work/=/product_id/RJ057302.html
結構使える

529 :名前は開発中のものです。:2010/01/09(土) 10:31:31 ID:KNCSUVMR
>>528
wgetでおk

530 :名前は開発中のものです。:2010/01/10(日) 04:28:31 ID:PNNRGsjZ
ゲームプログラマになる前に覚えておきたい技術を買ったんだけど
難しすぎるだろこれ
DXライブラリのサイトのほうがどれだけわかりやすいか

これは勉強する本じゃなくて、もう理解してる人が確認する
ためのもんか?

531 :名前は開発中のものです。:2010/01/10(日) 04:43:49 ID:ePiCCxYA
少なくとも入門書レベルなら、他人に教えてあげられるくらいの実力は要ると思う。
それでもプロとしてみるなら初心者だろうね。

532 :名前は開発中のものです。:2010/01/10(日) 04:58:47 ID:PNNRGsjZ
何をやってるかはわかるんだけど、自分の力だけではコード書けない
結局サンプル見ながらそれを打ち込むだけ
こんなんじゃ意味ないでしょ?

買うのまだはやかったなー

533 :名前は開発中のものです。:2010/01/10(日) 05:01:50 ID:ePiCCxYA
とりあえず一番最初の倉庫番チャレンジしてみたらどう?
自分は昼から始めて夕方までかかった orz

534 :名前は開発中のものです。:2010/01/10(日) 07:32:15 ID:JParRIfb
>>532
最初は意味わかんなくて、できる人のソースをコピペ。
次に少しずつソースを読解できるようになり改造していく。
そしてやっと自力ですべて書けるようになる…のが
普通の流れだと思うよ。

ひらしょー本は、初心者に構造的に説明しようと誠実に書いて
くれている結果、冗長で読みにくくなった部分はあるとは思うけど
必要なことは抑えてある本だと思うので、まずは本に書いて
ある事が分かるように勉強していけばいいんじゃないかな。

何が分からないかにもよるし、教え方の手腕の問題もある
だろうけど、すぐに理解できちゃうような内容しか書いて
いない本だとお金出して買う価値もないと思うし、
ゲーム関連技術がもし簡単に書けちゃう内容だと、こんなに
解説本も出ないと思う。

535 :名前は開発中のものです。:2010/01/10(日) 11:04:17 ID:Rc1hlYFq
将来使うはずだと無理矢理クラスを使って書いてるけど
今のところ決定的にcに比べて便利だと思うところはないなぁ
確かに変数と関数を一塊にできるのは気持ちがいいのだが・・・

536 :名前は開発中のものです。:2010/01/10(日) 11:07:58 ID:2OywdL5M
listとか両方で実装してみると大分ちがわね?

537 :名前は開発中のものです。:2010/01/10(日) 11:20:33 ID:dmK/QlFI
>>532
Chapter13(I部 2次元のゲーム)までは頑張れ。

>>535
継承、カプセル化、ポリモーフィズム、演算子のオーバーロード、STLあたりを理解できるとメリットを感じられるようになるよ。

538 :名前は開発中のものです。:2010/01/10(日) 11:44:54 ID:QNWx2gsU
最初はコピペ、それを改造、ってのはごく普通の流れだろうな。

俺も昔は雑誌に載ってたプログラムをぽちぽち打ち込んでたもんよ。

539 :名前は開発中のものです。:2010/01/10(日) 11:46:10 ID:wtJzH8/F
俺も昔はラジオを録音してたもんよ

540 :名前は開発中のものです。:2010/01/10(日) 13:31:00 ID:pKLMp+mv
今は3Dゲーならudkとかunityとか、2D紙芝居なら吉里吉里とかnスクとかがあるから、
趣味でゲーム作る程度ならプログラムまで手を出す必要はないよ。

541 :名前は開発中のものです。:2010/01/10(日) 15:45:18 ID:sQQs0/m1
俺の場合は最初はソース呼んで理解するところから入ったがな
コピペがあまり意味あるとは思えん
そっから自己流のアレンジで打っていったがな
まあある程度コピペっちゃあコピペだけどな
まあコピペは動作確認には必要かも知れんがな
あとポリリズムとかは使ってったけどカプセル化は結局面倒になって公開しちゃえーて戻ったけどな
結局グローバル変数使いまくりに戻ったし、まあ使いまくりって程でもないが
カプセル化やろうと思えばできるけどだってアクセサ通すと速度落ちそうな気すんだもん、それが気になってな
小規模の個人レベルであまりカプセル化のメリット感じられんのだが
ポリポリなんちゃらは俺もlistで重宝してるな
まあポリポリ使うより天麩羅使う方がすっきり書ける場合もあるしなあ

542 :名前は開発中のものです。:2010/01/10(日) 17:31:32 ID:/Tzv4S+1
そりゃあ、ポリリズムなんて使ってたらな。

543 :名前は開発中のものです。:2010/01/10(日) 17:36:55 ID:ohvCsHNW
Javaなんかと違ってC++はクラス作るのが面倒なんだよな
場合によってはかえってミスしやすくなったり保守性が下がったりする

544 :名前は開発中のものです。:2010/01/10(日) 17:45:33 ID:RHOGN5ub
質問なんですが、画像でいうLoadGraphのように文字列を先にhoge[数字]読み込んでおいて、
DrawString(x,y,hoge[数字],Cr) ;のように呼び出して使う…ような感じになる方法ってありませんか?
あと、文中に改行も含めたいのですが・・・。
できれば1行ずつ表示されると嬉しいです。

545 :名前は開発中のものです。:2010/01/10(日) 18:00:03 ID:wtJzH8/F
外部ファイルを読み込みたいのか?
それなら龍神録にサンプルが載ってる。csv用だけどtxtにも転用できるはず

546 :名前は開発中のものです。:2010/01/10(日) 18:38:42 ID:VQ1HZqsF
やりたい事がはっきりしてるんだから、自分で作ればいいだけでは。

547 :名前は開発中のものです。:2010/01/10(日) 18:52:06 ID:RHOGN5ub
内部の別のクラスでTEXTの内容を変数に格納しておいて、
それをDrawString(x,y,hoge[数字],Cr) ;で呼び出したいんです…
char hoge[1]="AAA";
DrawString(x,y,hoge[1],Cr) ;
みたいな形です。

548 :名前は開発中のものです。:2010/01/10(日) 18:58:51 ID:2OywdL5M
普通に読み込んで、文字列の位置を計算をして出力

549 :名前は開発中のものです。:2010/01/10(日) 19:01:30 ID:TNXhxGf1
何を言っているのかわからないし
何をしたいのかもわからない

550 :名前は開発中のものです。:2010/01/10(日) 19:16:21 ID:RHOGN5ub
画面に複数行の文字を表示したいんです。
通常はDrawString( 250 , 240 - 32 , "Hello C World!" , Cr );って書くと
Hello C World!
と表示されると思うんですけど、このHello C World!の部分を、
改行を含む、変数を入れたいんです。



551 :名前は開発中のものです。:2010/01/10(日) 19:20:29 ID:3/rctmpl
#include <string>
using namespace std;

string str[10];
str[0] = "AAA";

DrawString(x,y,str[0].c_str(),Cr);

文中に改行を含めたいってのはたぶん\nとか文中に入れたいんだと思うから
C++ splitとかでググってなんかフォントの縦幅とかなんたらやればいいんじゃないかな…

552 :名前は開発中のものです。:2010/01/10(日) 19:42:52 ID:TNXhxGf1
何言ってるのこいつ?

553 :名前は開発中のものです。:2010/01/10(日) 19:43:31 ID:z71TR0/5
sprintf(str, "Hello C world!\n");
DrawString(x, y, str, Cr);

554 :名前は開発中のものです。:2010/01/10(日) 19:59:40 ID:2OywdL5M
for(i = 0; i < numof_lines; ++i) DrawString(x, y + i * font_size, str[i], color);

555 :名前は開発中のものです。:2010/01/10(日) 21:11:56 ID:dmK/QlFI
>>544
そういう関数は用意されてないので自作するしかないよ。
改行文字を検索して文字列を一行ずつに分割、forループでY座標をずらして描画すればいいんじゃない?

556 :名前は開発中のものです。:2010/01/10(日) 21:40:30 ID:MFEe7NV6
DrawFormatStringの関数の
デフォルトのフォントの大きさってどれくらいなの?
書いてないから分かんないよ

557 :名前は開発中のものです。:2010/01/10(日) 21:57:23 ID:/Tzv4S+1
作者が悪いみたいな言い方で気に入らねえなあ。
コードみりゃ書いてあんだろ、16だ。

558 :名前は開発中のものです。:2010/01/10(日) 23:42:22 ID:ePiCCxYA
話の流れとは全然関係ないんだが、画面サイズを2パターン用意したら、なんかすげぇ面倒なことに(笑)
「なんとなく」ってだけで実装するもんじゃねーなあ。

単純に拡縮するだけなら簡単なんだろうけども。



559 :名前は開発中のものです。:2010/01/10(日) 23:46:51 ID:2OywdL5M
ルートレイヤ(固定サイズ)に描画→スクリーンに拡大描画でいいじゃん

560 :名前は開発中のものです。:2010/01/10(日) 23:52:21 ID:PVCd/Cxa
16 : 9 って今後は用意すべき?

561 :558:2010/01/11(月) 01:11:32 ID:HJnYHrsQ
>>559
それは>>558の3行目で否定してる「単なる拡縮」だw

もともと800x600でゲームを作ってたんだけどさ、
とある理由により、小さいウィンドウのバージョンを作らなきゃならなくなったんだ。

でもそのまま縮小すると、特にドット絵なんかは見てられなくなるし、
元が800x600用(あくまで縮小版はオマケ)なので、縮小版を基準にして800x600用に拡大するのも納得いかず。

そんなわけで、それぞれの画像の大きさを変えずに、ゲームの中身を変えようと思ったのが色々と失敗だった(笑)


>>560
主流が16:9になるか16:10になるかは別として、今後は4:3のモニタは減っていくだろうからなあ。
とはいえ現状ではモニタ側で4:3に対応(レターボックスや引き延ばし)してくれたりするし、作りやすい方でいいんじゃない?

562 :名前は開発中のものです。:2010/01/11(月) 01:27:26 ID:1pzIf3AP
今すぐ用意すべき

563 :名前は開発中のものです。:2010/01/11(月) 01:44:29 ID:Rz8RXzhw
ドット絵が汚くなるってのは補完してるからじゃなくて?ニアレストネイバーでやれば綺麗に縮小されないかな

564 :名前は開発中のものです。:2010/01/11(月) 02:18:06 ID:HJnYHrsQ
>>563
ドット絵は無理じゃない?
あとクリティカルな部分はともかく、1つの画像ファイルでなんとかしたいよね。

565 :名前は開発中のものです。:2010/01/11(月) 02:25:08 ID:b9O3GovE
ペイントでキャラの画像を作る。保存をするとふちの部分の色が変わるのは何でだろう(´・ω・`)

566 :名前は開発中のものです。:2010/01/11(月) 03:05:07 ID:Rz8RXzhw
ペイントの拡大縮小は補完処理が働くから確実にドット絵が汚くなるよね

567 :名前は開発中のものです。:2010/01/11(月) 03:06:28 ID:/BVVeYOc
565は拡大縮小してるとは言ってないけどね。

568 :名前は開発中のものです。:2010/01/11(月) 08:45:34 ID:50WrHthA
>>565
色が劣化する形式で保存してるんじゃないの?

569 :名前は開発中のものです。:2010/01/11(月) 09:45:29 ID:MF6sCU3I
文字の回転ってどうやってやるんですか?
△の記号を90度回転させたものがほしいんだけど・・・・

570 :名前は開発中のものです。:2010/01/11(月) 09:52:18 ID:bJEynoIQ
>>565
画像をRGBにすれば解決する サイズは大きくなるがな

571 :名前は開発中のものです。:2010/01/11(月) 10:18:00 ID:32xuNCiI
文字入れられるだろ
それ回転すればいいだけ

572 :名前は開発中のものです。:2010/01/11(月) 10:18:14 ID:8N572MW3
>>569
画像にでも描いて回転描画させろ

573 :名前は開発中のものです。:2010/01/11(月) 10:22:10 ID:bJEynoIQ
>>569
DrawVString

574 :名前は開発中のものです。:2010/01/11(月) 10:27:58 ID:MF6sCU3I
>>572
それはやれると思ってたけど
変だったんで。
結局、文字を回転させる方法はないのか?
よくゲームである
△(90度回転)6 △(90度回転)な感じにしたい。

575 :名前は開発中のものです。:2010/01/11(月) 10:32:32 ID:dSgt7dTb
>>574
方法はいくらでもある。
そして、いくらでもやってる人がいる。
以上

576 :名前は開発中のものです。:2010/01/11(月) 11:01:12 ID:MF6sCU3I
>>575
でもやり方は知らないんでしょ?
知ってる人お願いしますね。

577 :名前は開発中のものです。:2010/01/11(月) 11:40:02 ID:yFPTqlzr
>>561
そうか、ワイドもあったか
ゲームやるならドットバイドットでやりたいよね

578 :名前は開発中のものです。:2010/01/11(月) 11:40:28 ID:bJEynoIQ
で、>>573は試したのかね

579 :名前は開発中のものです。:2010/01/11(月) 11:43:03 ID:JhPE/M8b
>>569
興味があったから探してみた。初心者なんで見当違いだったらスマソ
ttp://bbs.wankuma.com/index.cgi?mode=al2&namber=42794&KLOG=73
ttp://msdn.microsoft.com/ja-jp/library/cc428368.aspx

580 :565:2010/01/11(月) 12:24:49 ID:b9O3GovE
色々試したらできました
ありがとうでした。

581 :名前は開発中のものです。:2010/01/11(月) 15:35:07 ID:C8nZ8yZZ
 |> <| こういうことだろ?

582 :名前は開発中のものです。:2010/01/11(月) 15:43:43 ID:32xuNCiI
<| |> だと思ってた

583 :名前は開発中のものです。:2010/01/11(月) 16:11:51 ID:i9YgsXIH
  (゚д゚ )
 <| y |>

584 :名前は開発中のものです。:2010/01/11(月) 16:25:44 ID:MF6sCU3I
>>582
が正解

585 :名前は開発中のものです。:2010/01/12(火) 00:34:41 ID:Lz7AOqT1
>>581>>582の違いはなんだ?
abをbaと書く程度の差じゃないか

586 :名前は開発中のものです。:2010/01/12(火) 19:18:12 ID:fpWsGGI2
オブジェクトのy座標が-0.2のときそれを描画ルーチンにわたすと
0の位置に描かれそうな気がするんですけど
(つまり-0.9〜0.9が同じ位置に表示されそう)
DXLibにそのままわたすとどうなりますか?

あと固定小数点のたとえば int y100;の1/100が1ドットとするとき
 int y_for_draw;
 if (y100 < 0)
 {
  y_for_draw = (y-99) / 100;
 }
 else
 {
  y_for_draw = y / 100;
 }
でfloorになる?これは一般的にどう書かれる?

587 :名前は開発中のものです。:2010/01/12(火) 19:32:24 ID:UxS4I4g/
言っている意味がよく分からない。もっと要点絞ってくれ

588 :名前は開発中のものです。:2010/01/12(火) 19:52:43 ID:vZoY7Utz
>>586
>オブジェクトのy座標が-0.2のときそれを描画ルーチンにわたすと
>0の位置に描かれそうな気がするんですけど
>(つまり-0.9〜0.9が同じ位置に表示されそう)
>DXLibにそのままわたすとどうなりますか?
C言語では小数から整数への変換は小数切捨てになる。
「型キャスト」で調べてみて。

>でfloorになる?これは一般的にどう書かれる?
ならない。もっと言えばコンパイルすら通らない。
「y_for_draw = (y-99) / 100;」は小数点以下を切り上げしていないので。
一般的かどうかは分からないけど、固定小数点数を浮動小数点数にしてmath.hのfloor関数を使った方が簡単だと思う。

589 :名前は開発中のものです。:2010/01/12(火) 19:57:29 ID:fpWsGGI2
>>587
質問は2つです

1つめはDXLibでたとえば描画ルーチンのXY座標に(-0.3, -0.9)をわたしたときと(0.1, 0.9)をわたした時が同じ場所になってしまうのでは?

2つめは
たとえば、キャラクターの座標の内部的な整数の変数(たとえばint x_naibu, y_naibu;(前質問ではint y100;))が
100移動すると「1ドット」動いたことになるとすると、
描画ルーチンには基本 (x_naibu / 100) を x座標としてわたすことになりますが、
もし x_naibu が -99 でも 99 でも (x_naibu / 100)はゼロになってしまいます。
これを解決する一般的なやりかたが知りたいという話です。

書き込みに間違いが
 y_for_draw = (y-99) / 100; は y_for_draw = (y100-99) / 100;
下は  y_for_draw = y100 / 100;

590 :名前は開発中のものです。:2010/01/12(火) 19:57:59 ID:MSorSp1h
>>535
最初はそんな感じやね
C++実用レベルは理解しなきゃいけないこと多くて投げ出しがち
でも使い続けることをおすすめする
何よりまず慣れることが大事、慣れれば勝手にクラスありきになる
次第に理解が深まってゲーム製作には大いに役立つ

591 :名前は開発中のものです。:2010/01/12(火) 20:04:11 ID:VTukhXVT
C++はタブーとイディオムがある程度わかってくればいいんだがそこまでがしんどい

592 :名前は開発中のものです。:2010/01/12(火) 20:11:01 ID:fpWsGGI2
>C言語では小数から整数への変換は小数切捨てになる。
ありがとう
>「型キャスト」で調べてみて。
型のサイズの順位とか知らないことがたくさんありました。

>>でfloorになる?これは一般的にどう書かれる?
>ならない。もっと言えばコンパイルすら通らない。
ちょっと間違えました。
>>589のようにしてコンパイルはとおってますが、何か穴があるかもと心配でした。

ちなみにdoubleを使ってたらたとえば加算する数値をきっちり1.0にすることができないことによる不具合を味わったことがあり、
固定小数点なら100を加えるときっちり1ドットだけ動くのが確定している利点があると思うんです。

593 :名前は開発中のものです。:2010/01/12(火) 20:36:56 ID:vZoY7Utz
>>592
誤:y_for_draw = (y100-99) / 100;
正:y_for_draw = (y100+99) / 100;
やりたいのはこういうことじゃない?

固定小数点数にもデメリットはあるし、個人的には浮動小数点数を使った方が良いと思うんだけどなあ・・・
・表現として分かりづらい(ソースコードが見づらい)
・扱える数値の範囲が狭い
・浮動小数点数を扱う標準関数やその他のライブラリが使用できない

594 :名前は開発中のものです。:2010/01/12(火) 20:50:28 ID:efhBp1Rb
ふと思ったんだけど -0.5 の小数点以下を切り捨てってのは
普通は 0 になると考えるのか -1 と考えるのか。

595 :名前は開発中のものです。:2010/01/12(火) 21:01:29 ID:fpWsGGI2
>>593
>誤:y_for_draw = (y100-99) / 100;
>正:y_for_draw = (y100+99) / 100;
いえ、修正後を再掲すると
 if (y100 < 0)
 {
  y_for_draw = (y100-99) / 100;
 }
 else
 {
  y_for_draw = y100 / 100;
 }
で、"y100"が 0〜99 のときは描画ルーチンはゼロの座標をわたしたくて、
y100が -100〜-1 のときは「-1」の座標、-101のときは「-2」にしたいので
それにはこれで合ってると思います。

ちなみに固定小数点は今回だけのミニゲームで試しにやってみようって感じです。
次からはまた浮動小数点使うようになりそうです。
>・表現として分かりづらい(ソースコードが見づらい)
「y100」って感じの変数名で意外と解決されそうだったり^^;

596 :名前は開発中のものです。:2010/01/12(火) 23:19:04 ID:q3clJG+f
俺も全く同じことしてたわw
変数名の付け方も
マイナスは考慮してなかったけど
y100は表現的にある程度解決できてもそれ以外、それに関わる他の変数とか範囲とかがややこしくなってくるんだよねえ

>・浮動小数点数を扱う標準関数やその他のライブラリが使用できない
キャストすればいいんじゃないの?

597 :名前は開発中のものです。:2010/01/13(水) 00:33:55 ID:c62gE9Ki
>>595
ごめん、勘違いしてたみたい。
floor関数の動作なら>>595で大丈夫そう。

>>596
>キャストすればいいんじゃないの?
誤差を無くすために固定小数点数を使っているのでそれをやると駄目だと思うんだけど・・・

「y100」という変数名が分かり易いというのはかなり疑問を感じるな。
最初に見たとき「y+100」か「y-100」の書き間違いかと思ったし。
あと小数第2位までしか扱えないのはかなり精度が低いと思う。
アクション性の高いゲームだと誤差の影響が出そう。

598 :名前は開発中のものです。:2010/01/13(水) 00:47:43 ID:ikjcXzx3
そもそも固定小数点使ってるのは誤差を無くす為だったのか
まあ y100 というのは苦肉の策でそのまま yを使うよりはまだ分かり易いだろうということと、
そら他人からみたらあれっとは思っても自分で使う分には若干間違い減らす可能性が上がるかなといった程度だろ
あくまで少数第2位までを使うのは表示上の問題だけじゃないの?
表示する場合は整数しか扱えないが内部的には小数で記憶しておきたいという
そもそも別に少数第2位までしか扱えないわけではないと思うがなあ
ただ座標の値を少数第2位まで持ちたいってだけで
計算まで少数第2位までしか使えないってわけじゃないでしょ

599 :名前は開発中のものです。:2010/01/13(水) 11:01:12 ID:5DwaMjit
log.txtを勝手に生成されるんですけど
生成しないようにするには可能?

600 :名前は開発中のものです。:2010/01/13(水) 11:13:13 ID:c62gE9Ki
>>599
SetOutApplicationLogValidFlag(FALSE);

601 :名前は開発中のものです。:2010/01/13(水) 11:54:25 ID:e0BJb6Ws
2.25bなんだが、
vista で CheckHitKey( KEY_INPUT_RSHIFT );
がうまく動作しない。
XPだと動く。RSHIFTだけ動かないんだよな。
なんでだろう?

602 :名前は開発中のものです。:2010/01/13(水) 12:44:41 ID:c62gE9Ki
>>601
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1352

603 :名前は開発中のものです。:2010/01/13(水) 13:01:04 ID:b/PQw5gR
質問です。
画像などをロードするとっきって、パスをいつもちまちま指定しないといけないのでしょうか?

例えば、画像をロードする場合、
Load("Data\\img\\hoge.png");
みたいな感じではなく、単に
Load("hoge.png");
のようにロードできたら楽なのになぁと思った次第です。
ファイルが増えるに従って、管理がしやすくするためにパスも長くなっていきますし……。

もちろん自分でパスをセットしてくれる関数を組むのもアリなのですが、
VC#みたいに、リソース追加&ファイル名指定でさっくり使えたら楽だなと思ったので……。

リソースからの読み込みができる関数はみつけたのですが、
IDでの指定なので、どのファイルがどのIDなのか覚えるのが面倒となってしまい使いにくいorz

604 :名前は開発中のものです。:2010/01/13(水) 13:22:01 ID:qeehEc52
>>603
自動的にDataフォルダを検索してhoge.pngを探してロードするってこと?
win32APIの関数使えば出来なくも無いと思うけど多分労力に見合うほどのメリットはないと思うよ
何回もロードするもんでもないし

605 :名前は開発中のものです。:2010/01/13(水) 13:26:47 ID:HfkhU9/3
>>601-602

俺は601じゃないけど、2.25bをまだ使ってる。
で、601の様な現象知らなかったわけだが、602の解決してる時点で9月だよな。
俺が持ってる2.25bはタイムスタンプが5月だし、公式でDLできる2.25bも5月のものだ。

602の示してるレスで公開されてるtestバージョンはバージョンアップされるたびに上書きされてるから、
(今落として確認したが)つい先日のものになってるな。

2.25bバージョンの最新って管理人さん持ってるかなぁ……。

606 :名前は開発中のものです。:2010/01/13(水) 13:35:20 ID:c62gE9Ki
>>603
>IDでの指定なので、どのファイルがどのIDなのか覚えるのが面倒となってしまい使いにくいorz
IDをファイル名と同じにするとか分かり易い名前に変えてしまえばいいだけでは?

607 :名前は開発中のものです。:2010/01/13(水) 13:46:41 ID:H0QsxNXz
最近バージョンだと何か問題でもあるのか?

608 :名前は開発中のものです。:2010/01/13(水) 15:49:43 ID:Yyh3OrXE
DXライブラリが最新バージョンだと動画をLoadGraphで読んでPlayMovietoGraph使って表示したとき透明色が適用されない
(といっても透明色にするにはエンコード方式は古いMicrosoft Video 1くらいしか使えない諸刃の剣)


609 :名前は開発中のものです。:2010/01/13(水) 16:07:06 ID:HfkhU9/3
俺が過去に作ったゲームを最新のDXライブラリでリコンパイルすると透過色が無視されるてるなー。

610 :名前は開発中のものです。:2010/01/13(水) 16:39:46 ID:fVXUl//w
孔明の罠

611 :名前は開発中のものです。:2010/01/13(水) 17:47:10 ID:b/PQw5gR
>>604
その通りです。
ロードする際に使った文字列を、ハンドル代わりにつかっているので、
メリットとしては、指定をいちいちしなくてすむので楽になります。

たとえば、
Draw("hoge.png");
とかで、色々操作できるような設計にしています。

Win32APIの関数でできるのですか。
直接MSDNから探し出すスキルがない残念スキルですが、調べてみようと思います。

>>606
おおなるほど、これは盲点でした……。

612 :名前は開発中のものです。:2010/01/13(水) 19:35:30 ID:KRarygD9
>>611
良い方法じゃないかもしれないけど、マクロと
stringかsprintf系の関数使って文字列つなげば
一応Load()には、ファイル名渡すだけでもすむよ。
//--------------------------------------
#define HOGE_PATH "..\\iData\\img\\"

void Hoge::LoadData(const char* data_name)
{
char path[255];
sprintf(path, HOGE_PATH "%s.png", data_name);
Load(path);
}
//--------------------------------------
みたいな感じで(エラー処理とかは省略)。
ちなみにHogeのコンストラクタ内とかで、APIのFindFirstFile()
とか使って、フォルダ内の任意の形式のデータ名を列挙して
読み込むようにすれば、Hogeの生成時にpngの形式だけ自動で
読み込むとかも可能。

ただスクリーンショット取れるゲームとかでない限り、画像
データの名前や数は変わらないはずだから、ハードコーティング
するよりパス含んだデータ名を列挙したテキストとかを作って
おくのがいい気もする(もちろんこれも手動では作らない)。
そうしておけば、画像の数とかに変更あってもプログラムの方は
何もいじる必要ないし。

613 :名前は開発中のものです。:2010/01/13(水) 20:53:47 ID:fVXUl//w
なんというレベル・・・

614 :名前は開発中のものです。:2010/01/13(水) 22:45:52 ID:K/6CPc2l
俺はstd::mapを使ってるな。値を画像ハンドルにしてる。
キーを文字列にすれば分かりやすいし。


615 :名前は開発中のものです。:2010/01/14(木) 02:11:03 ID:842AZX10
同じファイル名が来ることはないのか

616 :名前は開発中のものです。:2010/01/14(木) 02:36:14 ID:Y9GNPZz3
画像ファイル名一覧(分割するなら分割数なども)を
外部のテキストファイルに置いて、それを読み込む手法は便利ちゃ便利だし美しいな。

ツクール系や画像ビューワなどのアプリを作りたいというなら別にしても、
結局、その画像を使うにはプログラムの修正が必要だったりするわけで、
そこまで外部化するメリットが無い気がする。

それならファイル名をプログラム側で固定してしまうというのも十分アリじゃないかな。
「趣味で!」「勉強のため」というなら好きにやるべきだし、そういうこだわりは重要だと思うけれど。


>>615
拡張子無しとか、拡張子を固定するとか、
あとは最初はbmpで次はjpg…みたいに読み込む優先度を決めておくとか。



617 :616:2010/01/14(木) 02:42:40 ID:Y9GNPZz3
送信してから思った。

最近は個人レベルのゲームプログラミングでも、
ゲームの内容を外部のスクリプトファイルで定義するスタイルが増えてきてるみたい。

全部をスクリプト化しろとは言わないけど、
例えばメニュー画面の挙動とか、何らかのキャラクターのアニメーションの仕方とか、
そういう部分的にでも外部に出しちゃう作りにすれば活かせるかもね。

まあ、非常に手間ですが。

618 :名前は開発中のものです。:2010/01/14(木) 10:10:33 ID:DPt8d+Sq
外部ファイルにパスや必要な情報書いて読み込み、
それをクラスに格納して処理、コンテナに追加して保持、分割も自動でやってる
ハンドルはアドレスをクラスに用意したポインタのメンバ変数に格納して
再ロードしても画像ハンドルへのアクセス先は変わらないようにしてる
SetRestoreGraphCallbackに↑で書いたコンテナから再ロードする関数登録

ハンドルの情報が消えてしまうときって、それまでに画像読み込んで取得したハンドル全て消えるよね?
何が消えるかよくわからなかったから
描画関係全て再設定させてるんだけど、皆さんは再ロード処理どのようにしてますか?


619 :名前は開発中のものです。:2010/01/14(木) 11:35:51 ID:f9B4N6q6
>>618
何を言っているのかわからない

620 :名前は開発中のものです。:2010/01/14(木) 11:42:32 ID:Wuk1wnH6
>>618
>ハンドルの情報が消えてしまうときって、それまでに画像読み込んで取得したハンドル全て消えるよね?
まずこれがよく分からない・・・
リファレンスに全部書いてあると思うけど。

621 :名前は開発中のものです。:2010/01/14(木) 12:57:05 ID:GEhjs3wb
ドラクエとかマップとかキャラ動かすプログラムは1個つくったら
流用が基本だよな あとはちょくちょく改造

現にSFCのドラクエ3ってSFCドラクエ6の流(ry


622 :618:2010/01/14(木) 12:59:53 ID:DPt8d+Sq
ごめん、書き方悪かった
何が消えるってか何が初期化されるのか、
ハンドル以外にもあったようなのでそれもききたかった
(DXライブラリのスレだったかな?カメラがどうとか)
ってハンドルは全て消えるよね・・・

で、リファレンスに全部書いてあるのか
見落としてたっぽい、すまねえ見てくる

623 :名前は開発中のものです。:2010/01/14(木) 13:11:27 ID:GEhjs3wb
ffshowの取り込み機能使うと紙芝居のような連番のjpgが作れる
(例:0.jpg〜1000.jpg (画像の形式:jpgにフレーム番号の桁数は0に設定))
(画像の形式はpngやbmpとかできるけどファイル容量が馬鹿でかくなる)
プログラムテストで使う大量の連番JPG1個ずつくるのめんどせーって人はおすすめ


624 :名前は開発中のものです。:2010/01/14(木) 13:53:55 ID:842AZX10
俺も各クラスの画像にはハンドルのポインタ渡して
ウィンドウ⇔フルスクリーンにするときとか再ロードする場合は一括でやれるようにしてる

625 :名前は開発中のものです。:2010/01/14(木) 14:22:58 ID:f9B4N6q6
めんどくせーのでエスパーすると
ハンドル情報が無効になった場合の対処でよろしいアルか?

626 :618:2010/01/14(木) 21:00:02 ID:DPt8d+Sq
いやもう、まじでわかりづらくてすまん
>>624と同じやり方だし、これはこれでいいかな
カメラもライトもモーション状態も全部復元できた
つーわけでスルーしてくだされ

627 :名前は開発中のものです。:2010/01/15(金) 12:18:57 ID:MEm+h6H+
更新通知はオブザーバーパターンかな

628 :名前は開発中のものです。:2010/01/15(金) 23:03:18 ID:GfBht2fI
WinSockを使ってオンラインのゲームを作りたいと思っています。
非同期通信にした後、
ウィンドウメッセージをどうやって受け取ればいいのでしょうか

629 :名前は開発中のものです。:2010/01/15(金) 23:16:16 ID:mIIIz4fa
通信とウィンドウズメッセージ処理は別スレッドで

630 :名前は開発中のものです。:2010/01/15(金) 23:20:44 ID:MEm+h6H+
bccとvc++以外のコンパイラで使いたい場合はDLL化するしかないかな?

631 :名前は開発中のものです。:2010/01/16(土) 14:25:40 ID:q2B4ABrd
C#用のDLLが使える
普通のCインターフェイスだから

632 :628:2010/01/16(土) 16:27:15 ID:rUwaGg5H
開発環境はVisual Studio 2008 Express Editionです。
>通信とウィンドウズメッセージ処理は別スレッドで
これは、マルチスレッドにする、ということでしょうか?
あと、ウィンドウメッセージを受け取るにはPeekMessage関数を使うのでしょうか?

633 :名前は開発中のものです。:2010/01/16(土) 16:40:06 ID:jHRnZJbI
まだ、はやい

634 :名前は開発中のものです。:2010/01/18(月) 15:10:04 ID:NiKHIjeB
どうにかgifアニメを表示できないでしょうか?

635 :名前は開発中のものです。:2010/01/18(月) 15:50:40 ID:ocST5QSJ
ばらして一つ一つ表示すれば

636 :名前は開発中のものです。:2010/01/18(月) 16:17:33 ID:1VuUUtA0
コマごとに読み込んでハンドルを配列に入れて回しながら表示してみろ

637 :名前は開発中のものです。:2010/01/18(月) 16:19:59 ID:Y1kYbBl9
みんなアニメーションの抽象化ってどうやってんの?

638 :名前は開発中のものです。:2010/01/18(月) 16:36:31 ID:ZRf7R4pO
>>637
デザ・・・と言いたいところだが、キチガイ扱いされるので言わない^^b

639 :名前は開発中のものです。:2010/01/18(月) 16:36:50 ID:AJVbiEYR
アニメーションの抽象化ってなに。

640 :名前は開発中のものです。:2010/01/18(月) 16:37:28 ID:ocST5QSJ
14歳に乗ってたな

641 :名前は開発中のものです。:2010/01/18(月) 17:21:08 ID:NiKHIjeB
ありがとうございます!
gif自体がDXライブラリで表示できないみたいなので
ばらしてbmpに変換して表示させます。

642 :名前は開発中のものです。:2010/01/18(月) 18:17:21 ID:/YEQVsc4
ソフトによってはgifアニメを書き出す要領でアニメーション用にずらっと並べた形で排出してくれるものもあるから要チェック

643 :名前は開発中のものです。:2010/01/18(月) 18:40:53 ID:NiKHIjeB
Giamっていうツールで分解してみます。
gifが表示できたらなあ・・・

644 :名前は開発中のものです。:2010/01/18(月) 19:23:22 ID:p6A/ppr3
gifの表示だけは諦めた方がいい
と思ったけど何年か前にライセンス切れたとかだったっけ?

645 :名前は開発中のものです。:2010/01/18(月) 19:34:01 ID:YzUndEty
gifアニメ、
PlayMovie()で出来たはず。

646 :名前は開発中のものです。:2010/01/18(月) 19:40:04 ID:NiKHIjeB
>>645
うおおおおおおおおおおおおおおおおおおおおおお
できたあああああああああああああああああああああああああ
ありがとおおおおおおおおおおおおおおおおおおおお

647 :名前は開発中のものです。:2010/01/18(月) 19:44:19 ID:/YEQVsc4
playmovieが使えるのか、初めて知った

648 :名前は開発中のものです。:2010/01/18(月) 19:44:24 ID:aB6jW3dA
でもgifアニメ表示する利点というか利用価値が思いつかない

649 :名前は開発中のものです。:2010/01/18(月) 19:46:09 ID:YzUndEty
これは作者も知らないと思う、osの機能だから。

650 :名前は開発中のものです。:2010/01/18(月) 19:57:40 ID:NiKHIjeB
本当にありがとうございました。
ただのビューワを作ろうかと・・・
できないと諦めかけてたので>>645さんありがとう!

651 :名前は開発中のものです。:2010/01/18(月) 21:14:28 ID:ZRf7R4pO
>>645
APIの旅からの帰還
お待ちしておりました
全員敬礼!

652 :名前は開発中のものです。:2010/01/20(水) 21:26:19 ID:ZmWqqE9G
#define MAX_MOVIE_NUM (100) // 同時に持てるムービーハンドルの最大数
と、DxLib.hの中に書いてあったのですが、
この(100)の値を変えても100以上読むことができません
変更を適応する方法とかありますでしょうか・・・

653 :名前は開発中のものです。:2010/01/20(水) 21:37:33 ID:ZmWqqE9G
ライブラリの改造で事足りました
スレ汚しすまそ
以下スルーお願いします

654 :名前は開発中のものです。:2010/01/20(水) 21:42:45 ID:SKKsOccv
俺は言われるとスルーできねえ太刀なんだよ
どうしてくれんんだてめえ

655 :名前は開発中のものです。:2010/01/20(水) 22:09:33 ID:q0DDgX3G
キレやすそうだな。

656 :名前は開発中のものです。:2010/01/20(水) 23:52:50 ID:cMpODo4B
真面目なかたなのね

657 :名前は開発中のものです。:2010/01/20(水) 23:59:20 ID:zuhGGFh3
太刀だけにキレやすいってか
うまいこと言うじゃねーか

658 :名前は開発中のものです。:2010/01/21(木) 06:53:57 ID:zKTatolx
だれうま

659 :名前は開発中のものです。:2010/01/21(木) 17:26:19 ID:VSiukrvi
おれうま

660 :名前は開発中のものです。:2010/01/21(木) 17:42:38 ID:ASaFDbPd
きみのためならうま

661 :名前は開発中のものです。:2010/01/21(木) 18:34:21 ID:f/5KsMY8
かゆ・・・うま・・・

662 :名前は開発中のものです。:2010/01/21(木) 21:15:18 ID:3z0s89gO
昨日、この屋しきから逃げ出そうとした研究いんが一人、射さつされた、て はなしだ。
夜、からだ中 あついかゆい。
胸のはれ物 かきむしたら 肉がくさり落ちやがた。
いったいおれ どうな て
May 19, 1998

やと ねつ ひいた も とてもかゆい
今日 はらへったの、いぬ のエサ くう
May 21, 1998

かゆい かゆい スコットーきた
ひどいかおなんで ころし
うまかっ です。
4

かゆい
うま


663 :名前は開発中のものです。:2010/01/24(日) 17:17:54 ID:t3rqV2es
MV1GetFramePositionでフレームの座標取れた人いる?

664 :名前は開発中のものです。:2010/01/24(日) 17:45:49 ID:eNyArIdy
>>663
何かそれと関連するような書き込みみた
MV1Frame系の根本辺りにバグでてるのかもよ
試してないから憶測な

665 :名前は開発中のものです。:2010/01/24(日) 18:30:40 ID:t3rqV2es
>>664
そうなのか・・・

666 :名前は開発中のものです。:2010/01/24(日) 18:53:34 ID:mtzPnJPW
SetWindowStyleModeのあと
ドラッグ&ドロップが効かなくなるのは仕様ですか

667 :名前は開発中のものです。:2010/01/24(日) 19:30:56 ID:mtzPnJPW
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
char Key[MAX_PATH];
char File[MAX_PATH];
int open;
bool flag=false;
SetAlwaysRunFlag(TRUE);//アクテイブでも動作
if(ChangeWindowMode(TRUE)!=DX_CHANGESCREEN_OK || DxLib_Init()==-1) return-1;
SetDrawScreen(DX_SCREEN_BACK);
SetDragFileValidFlag(TRUE);//ドラッグ&ドロップ許可
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll(Key)){
open=GetDragFilePath(File);
if(open!=-1){
clsDx();
printfDx("%s",File);
}
DragFileInfoClear();
if(Key[KEY_INPUT_Z]==1){//zキーでスタイル変更
if(flag==false){
flag=true;
SetWindowStyleMode(2);
SetDragFileValidFlag(TRUE);//ドラッグ&ドロップ許可
}
else{
flag=false;
SetWindowStyleMode(0);
SetDragFileValidFlag(TRUE);//ドラッグ&ドロップ許可
}
}
if(Key[KEY_INPUT_ESCAPE]==1)break;
ScreenFlip();
}

668 :名前は開発中のものです。:2010/01/24(日) 19:33:03 ID:mtzPnJPW
DxLib_End();
return 0;
}
//ソースここまで
スタイル変更のあとはどんなことやっても無駄でした。
なにか解決方とかありますでしょうか・・・

669 :名前は開発中のものです。:2010/01/25(月) 13:30:00 ID:KA8nsg8v
SetWindowStyleMode(2);
SetDragFileValidFlag(FALSE);
SetDragFileValidFlag(TRUE);//ドラッグ&ドロップ許可

SetWindowStyleMode(0);
SetDragFileValidFlag(FALSE);
SetDragFileValidFlag(TRUE);//ドラッグ&ドロップ許可

ほい

670 :名前は開発中のものです。:2010/01/25(月) 14:54:28 ID:RTDsX0xD
同じプログラムでもBCCとVCでコンパイルすると微妙に絵画スピード違う?
BCCの方が重いんだが

671 :名前は開発中のものです。:2010/01/25(月) 17:04:41 ID:okvPpsG4
絵画? 描画?

まあ、別のアルゴリズムでビルドされている以上、違いがあってもおかしくはないな。
もしかすると最適化の設定とかもあるかもしれない。

672 :名前は開発中のものです。:2010/01/25(月) 17:30:21 ID:0o6Nm1jn
描画の速度は同じだと思われるが最適化の性能はコンパイラによって大分違う
っつっても今は両方同じくらいだと思うが
古いのは効率悪い

673 :名前は開発中のものです。:2010/01/25(月) 17:32:24 ID:LL1ffQYA
CPU メモリ グラフィックカード MMX 他のソフトが動作してないか
などなど
条件を一致させるのは至難の技

674 :名前は開発中のものです。:2010/01/25(月) 19:00:44 ID:6DMAN8Oi
>>669
ありがとうございます!
無事ドラッグ&ドロップがスタイル変更後も効くようになりました
なんだかくやしいです

675 :名前は開発中のものです。:2010/01/26(火) 01:58:18 ID:tj2S0wJn
隠し関数一覧とかないの?
リファレンスに機能の半分くらい乗ってなくね?

676 :名前は開発中のものです。:2010/01/26(火) 02:34:26 ID:PVZ337CH
そんなあなたにおすすめ、DxLib.h

677 :名前は開発中のものです。:2010/01/26(火) 02:43:45 ID:tj2S0wJn
既に見ながら発掘してるけど、使い方分からんのが沢山あるし。

678 :名前は開発中のものです。:2010/01/26(火) 03:09:22 ID:p39VC7Ub
LoadSoundMem("ファイル名");
SetSoundCurrentTime(時間,サウンドハンドル);
PlaySoundMem(サウンドハンドル,DX_PLAYTYPE_LOOP,*2 BGMを最初から再生するかというフラグ);

*2 TRUEで最初から再生(デフォルト) FALSEで途中から再生できる

int bgm;

bgm=LoadSoundMem("a.wav");
SetSoundCurrentTime(5000,bgm);
PlaySoundMem(bgm,DX_PLAYTYPE_LOOP,FALSE);

a.wavの5秒後から再生する(BGMファイルの曲の長さ仮に5秒以内のファイルなら最初からになる ・・・と思う)


679 :名前は開発中のものです。:2010/01/26(火) 13:26:42 ID:PVZ337CH
>>677
内部用の関数だったり、試験的に実装した関数なんかが多いから、
公式リファレンスが無いのは仕方ない。

仮に第三者がリファレンスを作ったとしても、
内部用関数である以上、いつ仕様が変更されてもおかしくないわけだし。
…以前、DXライブラリのWikiを作ろうとした人がいたけれど、あれどうなったのかなあ。


DxLib.hにはしっかり丁寧にコメントが書かれてるし、実用レベルでそんなに困ることはないと思うけどな。
コメントを読んでも意味がわからない関数は、たぶん今の自分には関係ない関数だと思っていい。

680 :名前は開発中のものです。:2010/01/27(水) 02:10:49 ID:+9fTCg9n
まあ PlayBeep()なんて
誰得な関数もあるしな

681 :名前は開発中のものです。:2010/01/27(水) 02:46:02 ID:wVIH00tk
それってBeep音鳴らすの?
だとしたらエラーの警告音とかに使えそうじゃない?

682 :名前は開発中のものです。:2010/01/27(水) 12:43:56 ID:bk5n/QgN
エラーが発生したなら、素直にOSへ投げた方が良さそうだしなあ。
Beep音に限らずね。

逆に、ゲーム内で「エラー」の演出をしたいというなら、
それ専用のサウンドファイルを用意するべきだろう。


683 :名前は開発中のものです。:2010/01/27(水) 13:28:51 ID:VlaGcRFB
SetDrawBlendMode( DX_BLENDMODE_ALPHA, 128);
LoadGraphScreen( 30, 10, "a.bmp", TRUE);
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0);
をやると一気にfpsが小さくなるんだけど、それを避ける方法ある?
丁寧に教えてください。断片じゃ分からないんで。


684 :名前は開発中のものです。:2010/01/27(水) 13:34:10 ID:eUrMXCBM
ハハッ
公式見てこいよ 根本から間違ってる

685 :名前は開発中のものです。:2010/01/27(水) 13:43:01 ID:D7qew4lJ
ハハッワロス

686 :名前は開発中のものです。:2010/01/27(水) 14:40:35 ID:eQLJYwgf
宣言 int LoadGraphScreen( int x , int y , char *GraphName , int TransFlag ) ;
概略 画像ファイルを読みこんで画面に表示する

要するに、ハードディスクから画像を”読み込んで”表示するわけだ。
毎フレーム、データ読み込んでたら重くなるの当たり前。

687 :名前は開発中のものです。:2010/01/27(水) 15:40:40 ID:VlaGcRFB
>>686
ttp://dixq.net/g/39.html
ここの人の見てαブレンド処理したんだけどそんな変なの?
できれば、αブレンド処理の速いやり方教えてほしい。

688 :名前は開発中のものです。:2010/01/27(水) 15:44:59 ID:eQLJYwgf
違う!
αブレンドのやり方はそれでいい!

一つ訊きたいが、fpsがどうとか言ってるって事は、ある程度形は出来てるんだよな?
アクションかシューティングか、何作ってるのか知らないけど。

てことは、キャラなりなんなりを毎フレームに表示させてるんだよな?

そのキャラを表示する時に LoadGraphScreen を使って表示してるのか!?


689 :名前は開発中のものです。:2010/01/27(水) 15:50:10 ID:eQLJYwgf
君はさ、学校に通う時、

朝、本屋へ行って教科書買って、学校行って勉強して、終わったら教科書捨てて、
次の朝、また本屋で教科書買って、学校行って勉強して、終わったら教科書捨てて、
また次の朝、本屋で教科書買って、学校行って勉強して、終わったら教科書捨てて……

ってやるか? やらないだろ?

毎フレーム LoadGraphScreen を使うってのは毎日教科書買ってるようなもんなんだよ。

690 :名前は開発中のものです。:2010/01/27(水) 15:52:15 ID:VlaGcRFB
>>688
キャラはDrawGraphで表示してる。
オプション画面に切り替えた時、点数などを表すボードみたいものに
LoadGraphScreenを使ってる。だから、ゲームには影響ないんだけど。
オプション画面に切り替えた時fpsが一気に下がって気になって今回
聞きました。

691 :名前は開発中のものです。:2010/01/27(水) 15:59:36 ID:eUrMXCBM
>>690
オプション画面に切り替えたら画面停止でもすんの?
プログラムのフロー分かってる?

692 :名前は開発中のものです。:2010/01/27(水) 16:00:00 ID:gFzXyqzf
最初に表示するとき一回ロードしておいて、それを毎フレーム描画するようにすればいいだろう

693 :名前は開発中のものです。:2010/01/27(水) 16:07:18 ID:D7qew4lJ
私のために争うのはやめて!

694 :名前は開発中のものです。:2010/01/27(水) 16:08:24 ID:VlaGcRFB
>>691
それはしない。一気にfpsが落ちる。ブレンド処理で。
単にTフレームごとに作画してScreenFlip()で表示してます。

>>692
詳しくおねがいします。

695 :名前は開発中のものです。:2010/01/27(水) 16:09:48 ID:D7qew4lJ
全部DrawGraphですればいいんじゃないかなぁ? アハハハハハハハ!

696 :名前は開発中のものです。:2010/01/27(水) 16:11:58 ID:VlaGcRFB
>>695
ブレンド処理したいんですけDrawGraphでも可能なんですか?

697 :名前は開発中のものです。:2010/01/27(水) 16:14:13 ID:D7qew4lJ
>>696
てめーなに中だよコラ
リファレンスに目を通してから質問しろカス

698 :名前は開発中のものです。:2010/01/27(水) 16:16:13 ID:eQLJYwgf
あのさ↓の意味ちゃんと解って使ってる?

SetDrawBlendMode( DX_BLENDMODE_ALPHA, 128);
LoadGraphScreen( 30, 10, "a.bmp", TRUE);
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0);

1行目で「これから描画するものはアルファブレンドモードにしますよ」
2行目で「a.bmpを読み込んで描画しますよ」
3行目で「これから描画するものはブレンドなしにしますよ」

ってだけだよ?

699 :名前は開発中のものです。:2010/01/27(水) 16:16:22 ID:VlaGcRFB
DrawGraphでもブレンド処理可能みたいですね・・・。
ありがとうございます。


700 :名前は開発中のものです。:2010/01/27(水) 16:18:42 ID:VlaGcRFB
>>697
ヤンデレの人ありがとうございました。

701 :名前は開発中のものです。:2010/01/27(水) 16:23:54 ID:eUrMXCBM
まあ常識的に考えてブレンド処理なんて頻繁に使われるものがDrawGraphで使えないわけないわな

702 :名前は開発中のものです。:2010/01/27(水) 17:37:50 ID:SU7TxAxC
int zeikin[1000000];
int amakudari;

for(amakudari=0;amakudari<1000000;amakudari++){
zeikin[amakudari]=LoadGraph("官僚.bmp");
}



703 :名前は開発中のものです。:2010/01/27(水) 18:42:02 ID:4CYQjQL/
だいたい4MBくらいか。たいしたことないな。

704 :名前は開発中のものです。:2010/01/29(金) 14:26:55 ID:DRAuGFCj
小手先のテクとかはそれなりに分かってきたと思うんだけどゲームの作り方が分からん
うーんバイトでも探して勉強させてもらおうかな。でも使えないバイトとか来たら迷惑かな

705 :名前は開発中のものです。:2010/01/29(金) 15:45:51 ID:yml/58A3
>>704
そもそも採用してもらえないと思うけど・・・
どこまで作れるのか知らないけど解説サイトも本もいっぱいあるし、いくらでも勉強できると思うんだけどなあ。

706 :名前は開発中のものです。:2010/01/29(金) 16:04:31 ID:X4/enaKn
むしろ小手先にテクニックの方が理解は難しいと思うが。

いったいどんなゲームを目指してるんだ。

707 :名前は開発中のものです。:2010/01/29(金) 17:52:34 ID:DRAuGFCj
シューティングで勉強してるけど思うようにいかない
とりあえず自機も敵機も○で表現して
直進する玉を打ったり衝突判定したりとかなら一応できたんだけど
なんか死ぬほど処理が重いし(処理落ちしまくり)、拡張しにくそうだし
機体のパラメータデータとかステージデータの扱い方とかもわからないし
今はちょっとハードルを下げてインベーダーに変えようかなと思ってる

708 :名前は開発中のものです。:2010/01/29(金) 17:55:43 ID:jCVSqiZx
龍神録は見たか?

709 :名前は開発中のものです。:2010/01/29(金) 18:24:47 ID:kJL+rTdA
>>707

どこの部分で処理食ってるか調べるんだ。

「衝突判定」が怪しいから、衝突判定を飛ばしてみて
処理落ちするかどうか確認するとか。

710 :名前は開発中のものです。:2010/01/29(金) 18:38:06 ID:DRAuGFCj
>>708
まだなので、ちょっと読んできますね

>>709
というかボトルネックは衝突判定と玉の生成破棄ぐらいしか思いつかない
モートン順序とかネットで読んだりしたけどなかなか理解と実装までいけないですわ・・・

711 :名前は開発中のものです。:2010/01/29(金) 18:38:15 ID:jCVSqiZx
dxlib使ってる環境で衝突判定による処理落ちはあまり考えられないんじゃないかなあ
俺はloadgraphとか自発的なSleepを疑う

712 :名前は開発中のものです。:2010/01/29(金) 19:21:22 ID:bXBGYPJV
重いのは上司と女のケツ

713 :名前は開発中のものです。:2010/01/29(金) 19:23:42 ID:Pa0ASUM2
足りないのは知識じゃなくて情熱

714 :名前は開発中のものです。:2010/01/29(金) 20:40:58 ID:/bsOILuR
PCのスペックも分からんし、
「死ぬほど重い」がどれくらいなのかも分からない(FPS60で重いと言う人だっている)、
ゲームの内容もさっぱりだしなあ。

それでもプレイ出来ないほど重くなるとは考えにくいんだが。

715 :名前は開発中のものです。:2010/01/29(金) 20:57:24 ID:QBlyvB6i
LoadGraphScreenをしてる、とか?
知り合いがなんか思いって言ってたからソース見たら、毎フレームスクリーンショットを取るという謎な動作してたりした。
ぶっちゃけ、重いってのはなんか変な事してるんだと思うよ。

716 :名前は開発中のものです。:2010/01/29(金) 21:35:34 ID:VeYpTI6t
何が変なことかわかる経験をお持ちでないから仕方が無いことよ

717 :名前は開発中のものです。:2010/01/29(金) 21:37:02 ID:Pa0ASUM2
俺も低スペックPCだと重くなる。
それもFPSがなぜか半分になる。
ウィンドウがノンアクティブでも動作する設定にしてノンアクティブにしたときの動作と似ている。
DXlib特有の何かがあるんだと思う。

718 :名前は開発中のものです。:2010/01/29(金) 21:38:36 ID:QBlyvB6i
ソースっていうかプロジェクトうpったらアドバイス貰えるかもね
ソース晒すの抵抗あるだろうし、個人的にVC++かVSじゃないと困るけど

719 :名前は開発中のものです。:2010/01/30(土) 00:36:37 ID:zzrUYLD6
画像Aの(x, y)に画像Bの(x1, y1, x2, y2)を転送ってできます?

720 :名前は開発中のものです。:2010/01/30(土) 00:38:24 ID:cifYwtzO
うん

721 :名前は開発中のものです。:2010/01/30(土) 06:43:38 ID:P5qgz5J8
>>710
思いつく思いつかないじゃなくて
各セクションごとの消費時間調べて
どこがボトルネックなのか調べるぐらいはすべき

722 :名前は開発中のものです。:2010/01/30(土) 09:38:05 ID:BdSu0ysP
PCのスペックも分からんし、
「死ぬほど重い」がどれくらいなのかも分からない
ゲームの内容もさっぱりだしなあ。

723 :名前は開発中のものです。:2010/01/30(土) 09:48:06 ID:EF522hf9
昔、STGの敵を一体だけ出してテストしてたときに
妙に動きが重いなーと思ったら
300体の敵がピタリ重なって表示されていた

724 :名前は開発中のものです。:2010/01/30(土) 11:23:55 ID:BdSu0ysP
俺もあったなw

725 :名前は開発中のものです。:2010/01/30(土) 11:50:08 ID:mWel1DHT
あるあるw

726 :名前は開発中のものです。:2010/01/30(土) 12:31:38 ID:zzrUYLD6
>>720
すいませんそれは一体どうやればいいんでしょう?
SetDrawScreen(handle);
Draw〜〜
とやってもバグってウィンドウの外に描画されてしまいます

727 :名前は開発中のものです。:2010/01/30(土) 12:46:37 ID:cifYwtzO
>>726
BltSoftImage

728 :名前は開発中のものです。:2010/01/30(土) 12:49:56 ID:zzrUYLD6
SoftImageって遅くないですか?

729 :名前は開発中のものです。:2010/01/30(土) 12:51:56 ID:cifYwtzO
使い方による

730 :名前は開発中のものです。:2010/01/30(土) 15:02:29 ID:zvCh6Jzw
そもそも早さを気にするような関数なのか?

731 :名前は開発中のものです。:2010/01/30(土) 16:16:41 ID:zzrUYLD6
ソフトイメージ使ってみました
これは便利なものですね
しかしCreateGraphFromSoftImageで変換しないとアルファブレンドができないのが難点ですね

732 :名前は開発中のものです。:2010/01/30(土) 16:23:02 ID:cifYwtzO
そもそも変換して使うもん
しないと君の言うとおり非常に表示が遅くなるよ

733 :名前は開発中のものです。:2010/01/30(土) 17:03:39 ID:zzrUYLD6
おや、FillSoftImageがバグってますねこれ

734 :名前は開発中のものです。:2010/01/30(土) 17:04:55 ID:TNYZudKh
ID:zzrUYLD6
(#^ω^)ビキビキ

735 :名前は開発中のものです。:2010/01/30(土) 17:07:37 ID:zzrUYLD6
>>734
なにか?

736 :名前は開発中のものです。:2010/01/30(土) 17:21:39 ID:GX4pyXso
愚痴ならチラシの裏にでも書いとけよ

737 :名前は開発中のものです。:2010/01/30(土) 18:18:02 ID:QgRnLSPg
馬鹿な発言からして*SoftImageの解説を読んで無いな

738 :名前は開発中のものです。:2010/01/30(土) 19:10:19 ID:BdSu0ysP
>>735
関係者なんだろ


739 :名前は開発中のものです。:2010/01/30(土) 20:21:19 ID:UcIFEpC1
ID:zzrUYLD6
(#^ω^)ビキビキ

740 :名前は開発中のものです。:2010/01/30(土) 20:29:33 ID:zzrUYLD6
>>739
言いたいことが有るならハッキリ言ったらどうです
コピーアンドペーストしかできないというわけではないんでしょう?

741 :名前は開発中のものです。:2010/01/30(土) 21:04:41 ID:wCFnb5ju
>>733バグがあるって言うなら、ちゃんと症状を書いて欲しい
ちゃんと検証をしないでバグがあるって言うのは荒らしと同じだよ

742 :名前は開発中のものです。:2010/01/30(土) 21:10:38 ID:cifYwtzO
どう考えてもこいつの仕様把握ミスか使い方間違ってるかだけどな

743 :名前は開発中のものです。:2010/01/30(土) 21:47:57 ID:zzrUYLD6
http://codepad.org/JesphHgh
http://www1.axfc.net/uploader/Img/so/71545

バグだろ

744 :名前は開発中のものです。:2010/01/30(土) 22:05:12 ID:BIjXD56Q
会話で否定から入るタイプ
礼を言わない自分のことばかり

745 :名前は開発中のものです。:2010/01/30(土) 22:16:56 ID:nicWHVwK
こういう奴はなぜか自分が嫌われてることに気づかないんだよなw

746 :名前は開発中のものです。:2010/01/30(土) 22:22:34 ID:dQt5iAcR
もうそのへんにしとこうぜ。

747 :名前は開発中のものです。:2010/01/30(土) 22:46:17 ID:zzrUYLD6
>>743に問題が有るとして、それを指摘できるレベルの人間はここにはいないと言うことでよろしいでしょうか?
もし問題がないのなら、私に対していわれのない批判を向けた人たちは謝罪するべきです
私はそれが社会人としての最低限のマナーだと考えます

748 :名前は開発中のものです。:2010/01/30(土) 22:55:31 ID:cifYwtzO
何かモノを教えてもらった際にはお礼を言いましょう
私はそれが社会人としての最低限のマナーだと考えます

749 :名前は開発中のものです。:2010/01/30(土) 22:58:58 ID:ZFqeJ0u6
そもそも何がしたいのかわからん

750 :名前は開発中のものです。:2010/01/30(土) 23:02:09 ID:dQt5iAcR
>>747
>もし問題がないのなら、私に対していわれのない批判を向けた人たちは謝罪するべきです

俺は静観してただけだから無関係だが、
説明しなければ批判受けてもしょうがなかろう。

751 :名前は開発中のものです。:2010/01/30(土) 23:11:56 ID:m0apTEno
DXライブラリをビルドできる環境が無いのでなんとも言えないが
Ver 3.01 での NS_FillBaseImage関数 (DxBaseImage.cpp の5124行目あたり) で
DWORD の Color が WORD にキャストされているので、ARGBのうち、ARが捨てられている気がする
このキャストをなくせばいいんじゃないかなー


752 :名前は開発中のものです。:2010/01/30(土) 23:28:01 ID:zzrUYLD6
>>751
DWORDに修正してビルドし先のコードで試したところ正常に動くようになりました
丁寧に修正箇所も教えていただいて、どうもありがとうございました!

753 :名前は開発中のものです。:2010/01/31(日) 06:29:35 ID:7H/reV3I
馬鹿ばっかり・・・

754 :名前は開発中のものです。:2010/01/31(日) 13:54:18 ID:HHPX/Q69
>>753
もっと蔑んだ目で言って下さい

755 :名前は開発中のものです。:2010/01/31(日) 14:32:44 ID:CuC3sxxQ
>>754
      | |/ノ二__‐──ァ   ヽニニ二二二ヾ } ,'⌒ヽ
     /⌒!|  =彳o。ト ̄ヽ     '´ !o_シ`ヾ | i/ ヽ ! 
     ! ハ!|  ー─ '  i  !    `'   '' "   ||ヽ l |

756 :名前は開発中のものです。:2010/01/31(日) 15:25:26 ID:JBJvvpkE
>>754
        ',::r、:|  <●>  <●>  !> イ
        |:、`{  `> .::  、      __ノ
       |::∧ヘ  /、__r)\   |:::::|

757 :名前は開発中のものです。:2010/01/31(日) 17:18:12 ID:2P10BkIV
アニメーション作りたかったから
double owari;
do{
DrawGraph(0,0,player[3],TRUE);
DrawGraph(0,0,player[4],TRUE);
DrawGraph(0,0,player[5],TRUE);
DrawGraph(0,0,player[6],TRUE);
owari = FALSE
}while(owari = TRUE);
やったらパソコンが動かなくなったよ!
誰か助けて

758 :名前は開発中のものです。:2010/01/31(日) 17:22:47 ID:JBJvvpkE
owari==true

759 :名前は開発中のものです。:2010/01/31(日) 17:25:48 ID:2P10BkIV
出来ました!!
ありがとうございます
しかし画像が動いてない・・・

760 :名前は開発中のものです。:2010/01/31(日) 17:43:27 ID:PA+3lzr7
そりゃScreenFlip挟んでないからな…

761 :名前は開発中のものです。:2010/01/31(日) 17:45:11 ID:2P10BkIV
画像も動いたし一件落着かと思ったんですが
double owari;
do{
SetDrawScreen( DX_SCREEN_BACK ) ;
ClsDrawScreen() ;
DrawGraph(0,0,player[3],TRUE);
ScreenFlip() ;
WaitTimer(500);
ClsDrawScreen() ;
DrawGraph(0,0,player[4],TRUE);
ScreenFlip() ;
WaitTimer(500);
ClsDrawScreen() ;
DrawGraph(0,0,player[5],TRUE);
ScreenFlip() ;
WaitTimer(500);
ClsDrawScreen() ;
DrawGraph(0,0,player[6],TRUE);
ScreenFlip() ;
WaitTimer(500);
owari = FALSE;
}while(owari == FALSE);
これじゃあゲームが終わりません
誰かアニメーションの書き方を教えてください


762 :名前は開発中のものです。:2010/01/31(日) 17:52:12 ID:PA+3lzr7
ClsDrawScreen();

static int a = 0;
DrawGraph(0,0,player[3+a],TRUE);
if(a<3)a++;

WaitTimer(500);
ScreenFlip() ;

763 :名前は開発中のものです。:2010/01/31(日) 18:01:12 ID:2P10BkIV
ありがとうございます
試してみたんですが、画像が動いてくれません
これはwhileの中に入れて使用するんでしょうか?


764 :名前は開発中のものです。:2010/01/31(日) 18:13:29 ID:c9TXpFDF
コピペするだけじゃなくて、その命令の意味をよく考えてみよう。

765 :名前は開発中のものです。:2010/01/31(日) 18:16:33 ID:JBJvvpkE
とりあえず龍神録読んで来い

766 :名前は開発中のものです。:2010/01/31(日) 18:29:11 ID:W0mdJ7eW
それ以前にリファレンスを嫁
あんだけわかりやすいのがあるんだから・・・

767 :名前は開発中のものです。:2010/01/31(日) 18:31:18 ID:HHPX/Q69
基本的な考えを理解してないな。
例えば絵が1ドットずつ動くプログラムだとすると

  座標0に表示
    ↓
  座標1に表示
    ↓
  座標2に表示
    ↓
  座標3に表示
    ↓
     :

って書くんじゃなくて(これは>761の書き方)、

  座標xに表示 ←―┐
    ↓        |
  xを+1する      | 繰り返す
    ↓        |
    └―――――┘

って書くのを意識するといいよ

768 :名前は開発中のものです。:2010/01/31(日) 18:35:18 ID:1VFB3DYv
かわいいなw

769 :名前は開発中のものです。:2010/01/31(日) 19:00:00 ID:2P10BkIV
double owari;
do{
ClsDrawScreen();
static int a = 0;
DrawGraph(0,0,player[3+a],TRUE);
if(a<3)a++;

WaitTimer(500);
ScreenFlip() ;
owari = FALSE;
}while(owari == FALSE);
こうやってみました
aが0に戻らなくて[6]がずっと表示されてしまいます
あと、できればdo{}while();は使いたくないです



770 :名前は開発中のものです。:2010/01/31(日) 19:07:41 ID:dC7YcGqj
static intがまずいんじゃなか?

771 :名前は開発中のものです。:2010/01/31(日) 19:10:47 ID:PA+3lzr7
>>769
>aが0に戻らなくて[6]がずっと表示されてしまいます
わかってんならaを0に戻せよ…
whileでもforでも好きなもんを使えよ…
>>764-767無視すんなよ…

772 :名前は開発中のものです。:2010/01/31(日) 19:13:09 ID:CfyGLtto
まずはC言語勉強してこい

773 :名前は開発中のものです。:2010/01/31(日) 19:23:57 ID:2P10BkIV
>>771
すいませんでした
if(a>3)a=0;を追加したんですが止まってしまいます
>>764
考えて>>769をつくってみました!
>>765
そのサイト、アニメーションについて載ってなくて…
>>766
http://homepage2.nifty.com/natupaji/DxLib/dxfunc.html
このページでしょうか?
何回か読んだのですがアニメーションについて載ってなかったです…
>>767
座標を動かさないようにするんですか?
>>768
ありがとうございます
>>770
消してみたんですが、動きすらしなくなりました



774 :名前は開発中のものです。:2010/01/31(日) 19:32:13 ID:JBJvvpkE
アニメーションでなく根本的な所から理解出来てない
龍神録一通りやってゲームプログラミングの基礎を学べ

775 :名前は開発中のものです。:2010/01/31(日) 19:36:09 ID:2P10BkIV
すいませんでした
まだ自分はなにも理解していないみたいなので
もう一度最初から学び直してきます
みなさんありがとうございました

776 :名前は開発中のものです。:2010/01/31(日) 19:36:15 ID:PA+3lzr7
>>773
もうDXライブラリ以前の問題だからVIPで聞け
http://yutori7.2ch.net/test/read.cgi/news4vip/1264908880/

777 :名前は開発中のものです。:2010/01/31(日) 19:36:48 ID:GeAXL5Qw
a=3になってるから

778 :名前は開発中のものです。:2010/01/31(日) 19:37:45 ID:Di+guFUQ
>>770
>>772

>>773
if(a<3)a++;
if(a>3)a=0;

こうしたんなら a=3 の場合はどっちも掛からないから a=3 のまま止まるわなあ

779 :名前は開発中のものです。:2010/01/31(日) 19:43:39 ID:2P10BkIV
>>777
>>778
if(a>=3)A=0;
にしたらきちんと動いてくれました!
でも学び直してきます
ありがとうございました
>>776
ありがとうございます
次からはそこで質問しますね

780 :名前は開発中のものです。:2010/01/31(日) 19:44:26 ID:2P10BkIV
うそです
Aじゃなくてaです

781 :名前は開発中のものです。:2010/01/31(日) 20:01:10 ID:uYVfFOYk
このライブラリって64bit windowsでも
問題なく動くの?

782 :名前は開発中のものです。:2010/01/31(日) 20:09:34 ID:CfyGLtto
動かないんじゃね?
ライブラリをDLLにすれば動くかも

783 :名前は開発中のものです。:2010/01/31(日) 20:09:49 ID:0ATLaas4
なんで?

784 :名前は開発中のものです。:2010/01/31(日) 22:57:51 ID:W0mdJ7eW
普通に動くよw
ネイティブでって意味ならたぶん動かないけど、そういう事じゃないだろ?

785 :名前は開発中のものです。:2010/01/31(日) 23:29:30 ID:CfyGLtto
ゲームが実行出来るかじゃなくて
正常にビルド出来るかって意味かと思った
つーかそれだとDLLでも動かないねすまん

786 :名前は開発中のものです。:2010/02/01(月) 00:07:00 ID:2kqPhNjN
ビルドもVSとか使ってるなら通るはずだよ
俺この間までWin7の64bitと、XPの32bitで出先<->家での開発してたし

787 :名前は開発中のものです。:2010/02/01(月) 01:01:10 ID:YQ/gjtQh
本体のビット数とDLLのビット数が違うとダメだけどね。


DXライブラリでもゲーム制作の話でもないけど
この間それで問題が起きてね……w

788 :名前は開発中のものです。:2010/02/01(月) 16:57:45 ID:Lf2Nvhz5
なんで?

789 :名前は開発中のものです。:2010/02/01(月) 17:45:18 ID:ooYrGYNe
なんだっていいさ

790 :名前は開発中のものです。:2010/02/01(月) 18:32:39 ID:864q13BL
long doubleとか使って試せば
787かいいたいことがわかるとおもう
たぶん

791 :名前は開発中のものです。:2010/02/01(月) 18:36:19 ID:PxBHY40/
いや、32bitアプリからは64bitDLLは使えないし
64bitアプリからは32bitDLLは使えない。
だから通常、DLLまで用意する場合じゃ無けりゃ32bitで作ればいいんだけど
.NET FrameworkでAny CPUで作った場合はまることがある。
DLLはネイティブで32bit固定なのに、EXEは実行環境によって32/64変わるから
開発時の環境が32bitだと気がつかない。

ということじゃないかなあ。

792 :名前は開発中のものです。:2010/02/01(月) 18:52:33 ID:Lf2Nvhz5
それで?

793 :名前は開発中のものです。:2010/02/01(月) 18:58:44 ID:xufADCF/
ググレカス

794 :名前は開発中のものです。:2010/02/02(火) 13:39:47 ID:EWwGB+Nl
libを32bitで作って64bitマシンでコンパイルしたオブジェクトとリンクしても問題ないの?

795 :名前は開発中のものです。:2010/02/02(火) 13:53:12 ID:ZXzo3Aq8
なんで?

796 :名前は開発中のものです。:2010/02/02(火) 13:54:59 ID:6T1hs+2r
ビルド時のターゲットはビルド環境とは関係ない

797 :名前は開発中のものです。:2010/02/02(火) 18:27:35 ID:NU2kONNz
「64bitマシンでビルドする」というのと、「64bit用アプリとしてビルドする」というのは別物ってことよね。
コンパイラが対応しているかどうかは別として。(比較的最近のVisualStudioなら問題なし)
もちろん、32bitでも同様。

で、開発マシンが32/64問わず、
 64bit用としてビルドしたアプリ本体 + 32bit用としてビルドしたDLL → 動かない
 32bit用としてビルドしたアプリ本体 + 32bit用としてビルドしたDLL → たぶん動く
であると。

798 :名前は開発中のものです。:2010/02/02(火) 21:43:09 ID:ZXzo3Aq8
それで?

799 :名前は開発中のものです。:2010/02/02(火) 22:29:37 ID:ocqUn9yT
なにが?

800 :名前は開発中のものです。:2010/02/02(火) 23:35:47 ID:3geZi3lZ
つーか64Bitアプリにするほどメモリ使うゲームを作るのかと。

801 :名前は開発中のものです。:2010/02/03(水) 05:04:33 ID:U8Pd5rkG
なんで?

802 :名前は開発中のものです。:2010/02/03(水) 05:54:02 ID:XTUJJ4Iu
基本的には32bitアプリでも動くって話だけど
その基本的って部分がちょっとだけ気になる。

803 :名前は開発中のものです。:2010/02/03(水) 08:44:53 ID:g7fkj8BM
64BitOSで動かすことを気にしてるなら
従前どおりの32Bitアプリが何の問題もなく動くので徒労。

メモリを4GB以上使いたい場合以外にあえて64Bit化する意味は薄い。

804 :名前は開発中のものです。:2010/02/03(水) 14:05:09 ID:5f3a6r9D
シューティングの画像ってサイズ奇数にして中心にオブジェクトのxyを持ってきた方が作り易い気がするんだが、みんな普通にx1y1x2y2でやってるの?

805 :名前は開発中のものです。:2010/02/03(水) 14:18:36 ID:gyXnlokN
場合による。

長方形のキャラ(回転なし)とかだと後者の方が便利だし。

806 :名前は開発中のものです。:2010/02/03(水) 15:51:20 ID:U8Pd5rkG
なんで?

807 :名前は開発中のものです。:2010/02/03(水) 22:19:22 ID:WAfqMpru
お前を食べるためさ!

808 :名前は開発中のものです。:2010/02/03(水) 22:40:10 ID:U8Pd5rkG
変態

809 :名前は開発中のものです。:2010/02/03(水) 23:31:20 ID:y+n9ea+J
DxLIBだとインストール済みのフォントデータしか使えないのかな?
思っていたより使い勝手悪いな…

810 :名前は開発中のものです。:2010/02/03(水) 23:39:52 ID:mUdTkHdF
よくわからんがフォントリソースとして読み込んでから使えとか見た気がするな

811 :名前は開発中のものです。:2010/02/04(木) 01:32:44 ID:9yr7SgZz
d
AddFontResourceを使ってゲーム起動時に追加出来た

812 :名前は開発中のものです。:2010/02/04(木) 10:22:35 ID:B+CnvqXs
思っていたより使い勝手悪いな…

813 :名前は開発中のものです。:2010/02/04(木) 15:03:56 ID:0uWBCETA
DXLIBのデータファイルの暗号化機能を使おうかと思うんだけど
パスワードってリテラルでEXEに埋め込んじゃってダイジョブなん?

814 :名前は開発中のものです。:2010/02/04(木) 15:08:11 ID:WAZ4oke5
思っていたより使い勝手悪いな…

815 :名前は開発中のものです。:2010/02/04(木) 18:53:49 ID:QxyExYir
なにがどう大丈夫なのか解らんが、
自分で何とかできないのなら諦めて普通に使うしかないだろう。

816 :名前は開発中のものです。:2010/02/04(木) 18:55:51 ID:0uWBCETA
いや、キーがバイナリエディタとかで見えちゃうんじゃないかなと思って・・・

817 :名前は開発中のものです。:2010/02/04(木) 19:04:15 ID:1Mq3yDnQ
>>816
ようは
「入力された文字」==「キー」
ってやってもだいじょうぶかきいてるんだろ?

キーはみえる


818 :名前は開発中のものです。:2010/02/05(金) 01:25:04 ID:a9qwHvOS
乱数とかつかって謎の文字列を生成する関数とか作って
それをキーに使ったほうがわかりにくくていいんかな

819 :名前は開発中のものです。:2010/02/05(金) 01:30:13 ID:y9Rl8Gqj
自分でそれができるのならやればいいのでは。
どうしてそこまで隠したがるのか知らないけど。

俺は、俺の作ったゲームをプレイした人が
「このゲームの生データ見てみたい!」
って思ってくれるほど魅力があるデータを作れた自信がないから
そこまで心配はしてないな。

820 :名前は開発中のものです。:2010/02/05(金) 01:31:15 ID:RCBVAjHS
>>816
暗号鍵を何かでエンコードしてリテラルとしてソースコード埋め込んどいて、SetDXArchiveKeyStringにデコードして渡すとか?

821 :名前は開発中のものです。:2010/02/05(金) 02:23:43 ID:9VhG5z2Z
暗号化の機構と、暗号鍵と、暗号化の対象が全て一箇所にある以上
どうしようもない気はする

822 :名前は開発中のものです。:2010/02/05(金) 16:46:58 ID:N9JJZcSG
キャラのポリゴン数ってどれくらいが理想?
今のところ10000ポリゴンはあるんだが。
ちなみにメタセコでCark(分割)4の曲面化つかったデータね
ちなみに胴体だけです
これじゃ動かないかなあ

823 :名前は開発中のものです。:2010/02/05(金) 16:50:07 ID:qcSvBbHw
みんな画像や音声のロードってどうしてるの?
NowLoading...のアニメーションを動かしながらロード、ってのをしたいんだけど、
読み込みとアニメーションを並行してやる方法が分からないんだ

824 :名前は開発中のものです。:2010/02/05(金) 16:52:34 ID:Ir4+43zS
>>822
>>492

825 :名前は開発中のものです。:2010/02/05(金) 19:50:51 ID:EoD901Y8
マルチスレッドじゃね

826 :名前は開発中のものです。:2010/02/05(金) 20:17:16 ID:Ir4+43zS
>>823
1フレームに1つずつファイルを読み込みながらアニメーション表示させる。
マルチスレッドを使ってもいいけどこっちの方が簡単。

827 :名前は開発中のものです。:2010/02/05(金) 20:25:49 ID:qcSvBbHw
>>825
公式の掲示板の過去ログで、2007年にLoadGraphはマルチスレッドに対応してないみたいな事を管理人さんが・・・

>>826
音声ファイルとかだと1フレームの間にロードし終わってくれますかね・・・?

828 :名前は開発中のものです。:2010/02/05(金) 20:30:27 ID:g1+Hi/0a
俺も>>826の方法だけど
たしかにちょっと止まるな

829 :名前は開発中のものです。:2010/02/05(金) 20:30:28 ID:EoD901Y8
起動時に全部読み込んで後でNowLoadingだけ表示しとけばいいんじゃね

830 :名前は開発中のものです。:2010/02/05(金) 20:38:57 ID:XWwIt0Ve
本末転倒w

831 :名前は開発中のものです。:2010/02/05(金) 20:58:53 ID:Ir4+43zS
個人的な感覚でだけど>>829の方法が可能ならこれでいいんじゃないかな。
そもそもプレイヤーにストレスを与えないようにするのが目的だし、実際「NowLoading...」と表示しておきながら読み込み以外の処理もしてたりするしね。
あと>>826の方法は確かに処理落ちする可能性はあるけど何か問題あるの?
どうせプログレスバーを表示させるぐらいじゃないの?

832 :名前は開発中のものです。:2010/02/05(金) 21:03:23 ID:g1+Hi/0a
>>829はネタレスだろw

833 :名前は開発中のものです。:2010/02/05(金) 21:04:42 ID:qcSvBbHw
>>831
起動時に全部読み込むと、読み込みファイルのサイズが大きくなったときにちょっと・・・。
できるだけ逐次ロードしたいから・・・。
あと、最初に読み込もうとすると数秒止まっちゃって、それが気にくわないというかストレス。

834 :名前は開発中のものです。:2010/02/05(金) 21:37:34 ID:RBAQ2+kz
マルチスレッドなしならなうろーでぃんぐはアニメーションさせないのが一番

835 :名前は開発中のものです。:2010/02/05(金) 21:58:05 ID:RjYJfLjO
かなりいい加減なコードだけど、スレッドを使った Now Loading のサンプル
ttp://codepad.org/HMbYruHZ


836 :名前は開発中のものです。:2010/02/05(金) 22:31:40 ID:qcSvBbHw
>>835
おお・・・ 参考にしてみまする

837 :名前は開発中のものです。:2010/02/05(金) 22:43:27 ID:Xzk70bEL
i=0;
なんかループ{
  なんかロード1コ
  なんかナウローディングとか表示
  なんか四角とか描画(x, y ,x+i, y);
  画面更新


CとかDirectXライブラリの記述方法は忘れた

838 :名前は開発中のものです。:2010/02/05(金) 22:55:33 ID:9VhG5z2Z
DXライブラリはともかく、Cの表記とゲームプログラミングの作法は忘れんなw

839 :名前は開発中のものです。:2010/02/05(金) 23:11:28 ID:a9qwHvOS
ファイル単位で読み込もうとするからデカイファイルのせいで処理落ちするコマが出てくるんじゃね?

while(!end())
{
read( Nバイト );
draw();
}

これならフレームレート安定するだろう
でもわざわざ読み込み速度を意図的に落としてまでやるべきなのかは疑問

840 :名前は開発中のものです。:2010/02/05(金) 23:14:04 ID:+ZQFEOdr
DXライブラリで
>read( Nバイト );
ってどうやんの?

841 :名前は開発中のものです。:2010/02/05(金) 23:19:28 ID:qcSvBbHw
スレッド使ってロードしようとしたらエラー吐いて落ちた・・・。
やっぱりLoadGraphはマルチスレッド対応してないってことなのかな・・・。

>>839
kwsk

842 :名前は開発中のものです。:2010/02/05(金) 23:29:20 ID:ax38IgEf
>>835のコードだったらわざわざマルチスレッドにせずとも>>826でやればいいような気もするが

843 :名前は開発中のものです。:2010/02/05(金) 23:31:09 ID:9VhG5z2Z
自己満足で!(超重要

844 :名前は開発中のものです。:2010/02/05(金) 23:45:43 ID:tUrF1ELA
スレッド系はきっちり作らないと他人の環境限定で
ある日突然落ちたりしてデバッグで泣くことになるぞ。

CPUのコア数によって出たり出なかったりとかするからな。

845 :名前は開発中のものです。:2010/02/06(土) 02:01:00 ID:npht8xA6
Now loading...のアニメーションを動画にしたらどうかな?

846 :名前は開発中のものです。:2010/02/06(土) 02:46:06 ID:Y+vgz54E
その動画を読み込ん出る間のNow Loading画面が欲しくなるね!

847 :名前は開発中のものです。:2010/02/06(土) 03:13:17 ID:ryKI6KOb
Now loading...をLoading Complete!に修正すればよくね

848 :名前は開発中のものです。:2010/02/06(土) 04:54:47 ID:sLGxAtvo
「ロードした」なら使ってもいい!

849 :名前は開発中のものです。:2010/02/06(土) 07:42:28 ID:heYW4fwh
>>829はネタのつもりで書いただろうけど、実際にやってる人を見たことあるよ。
静止画を表示しながら読み込み(2秒間)⇒「NowLoading...」(0.2秒)
本人曰く「ただ気分を味わいたかった」と。
でも実際のゲームを見てみるとプレイヤーからはそれは分からないし、むしろ「ロード早いなあ」という印象すら受けた・・・
これも一つの答えなんだと思ったよw

マルチスレッドを使う方法は↓に書いてある。
http://hpcgi2.nifty.com/natupaji/aska.cgi

あと画像はLoadDivGraphで分割読み込みができる。

850 :849:2010/02/06(土) 07:48:32 ID:heYW4fwh
すみません。
掲示板のリンクがダメですね・・・
記事No「1896」です。

851 :名前は開発中のものです。:2010/02/06(土) 09:42:16 ID:AjOTNEN+
>>849
LoadDivGraphで分割読み込み、ってアレはひとつの画像を複数の画像に分割するんであって、
分割してひとつの画像読み込むわけじゃないっていう

マルチスレッドの方は読んでみた
応用してやれないか試してみる

852 :名前は開発中のものです。:2010/02/06(土) 13:12:13 ID:6i+WO82B
そもそも円滑にアニメーションさせる必要なくね?
要所要所で動作が若干止まったりしたほうが読み込んでるっぽくてユーザも安心するし

853 :名前は開発中のものです。:2010/02/06(土) 13:15:04 ID:m1I5HW8a
じじいの酷い言い訳

854 :名前は開発中のものです。:2010/02/06(土) 13:30:09 ID:xpV9NzXE
じじいくらべならまけませんよ?

855 :名前は開発中のものです。:2010/02/06(土) 14:19:32 ID:heYW4fwh
アニメーションの種類によるんじゃなかな?
読み込みの進捗を表示させるようなタイプなら>>823で多少カクカクしても問題ないと思うし、むしろマルチスレッドにすると同期を取るのがめんどくさいし。
逆にもっと派手なアニメーションだと処理落ちすると見栄えが悪くなるのでマルチスレッドにするしかないと思う。
ただ個人的には同人ゲームなら静止画で「NowLoading...」と表示させておくだけで十分だと思うんだけど・・・

856 :名前は開発中のものです。:2010/02/06(土) 15:27:53 ID:hilmmGtE
静止画1枚だとフリーズしてんのかな?って不安になる

857 :名前は開発中のものです。:2010/02/06(土) 16:16:36 ID:+7JZw7l0
カクカクでもいいならマルチスレッド必要ないよな

858 :名前は開発中のものです。:2010/02/06(土) 16:21:12 ID:AjOTNEN+
せめてNowLoading... [ ココ ]   で何かのアニメーションはさせたいよね

859 :名前は開発中のものです。:2010/02/06(土) 22:28:44 ID:fMJ0B1gK
そこは操気弾のアニメを

860 :名前は開発中のものです。:2010/02/06(土) 23:38:51 ID:cCb1U7aq
これって3dもつくれるんだよね?
Blenderにも対応してる?

861 :名前は開発中のものです。:2010/02/07(日) 07:39:53 ID:cnkJTmx7
>>860
>これって3dもつくれるんだよね?
作れるよ。

>Blenderにも対応してる?
モデリングソフトの対応状況は過去レスを見てみて。
BlenderはFBXが使えるみたい。

862 :名前は開発中のものです。:2010/02/11(木) 23:41:27 ID:AgKonL0C
メタセコで武器だけ作って、それを3Dのキャラモデルに持たせるのはどうやるんだろう。
DXライブラリの範疇ではないのかな。

なにか調べる取っ掛かりはない?

863 :名前は開発中のものです。:2010/02/12(金) 02:48:39 ID:iGppiI+j
位置とか角度の親子関係を作れればいいんじゃないかな

864 :名前は開発中のものです。:2010/02/12(金) 04:35:23 ID:Z51oc7q7
>>862
DXライブラリは知らんけどリアルタイムレンダリングがデフォじゃない?

865 :名前は開発中のものです。:2010/02/12(金) 07:46:33 ID:gSVuHgsF
>>862
「コンストレイント」で検索してみるといいよ。
やり方は簡単で>>863の言う通り、「手」の移動と回転を「武器」に加えるだけ。

866 :名前は開発中のものです。:2010/02/12(金) 15:42:11 ID:9oJmNhGP
DrawChipMapってどうやって使うの

867 :名前は開発中のものです。:2010/02/12(金) 21:24:07 ID:m/RgGbdM
GetNowHiPerformanceCount()の内容をprintfしたいんですが%dの部分を何に変えたらいいですか

868 :名前は開発中のものです。:2010/02/12(金) 21:53:10 ID:5g1bekrX
g

869 :名前は開発中のものです。:2010/02/12(金) 22:17:37 ID:gSVuHgsF
>>867
試してないけど戻り値がLONGLONG型なので「%I64d」か「%lld」じゃないかな。

870 :名前は開発中のものです。:2010/02/12(金) 22:39:37 ID:3A3ijQ60
>>863-865

サンクス!

やり方、納得です。
取り敢えず手の回転並進行列とって、そのまま武器に適用させてみる。

871 :名前は開発中のものです。:2010/02/12(金) 23:19:30 ID:gSVuHgsF
>>866
チップグラフィックを使ったマップ描画
int MapWidth, MapHeight : マップデータ全体の幅と高さ
int *MapData : マップデータが格納されたアドレス
int ChipTypeNum : マップに使うチップの種類の数
int *ChipGrHandle : チップのグラフィック配列のアドレス
int TransFlag : 透過色処理の有無
int MapDrawX, MapDrawY : 描画するマップの起点となる左上座標
int MapDrawWidth, MapDrawHeight : 起点座標から描画するマップの幅と高さ
int ScreenX, ScreenY : マップを描画する画面上の座標

(2004/02/08)
2.11 DrawChipMap 関数を非公開関数に変更。

872 :名前は開発中のものです。:2010/02/13(土) 00:47:58 ID:lykIm1Dn
>>868-869

サンクス!

lldでいけました。

873 :名前は開発中のものです。:2010/02/13(土) 18:36:09 ID:nVI35ftX
1つの画像に対して、縦横で別倍率の拡縮、および回転を同時に行うとき、
何か簡単な方法って無いものかな?
拡縮してから回転させたときと、回転させてから拡縮するときとで結果が異なるけどさ。

無いなら無いで、自前で座標を計算してDrawModiGraph()に投げるつもりだけれど。

874 :名前は開発中のものです。:2010/02/13(土) 19:30:01 ID:pV6Ocbxc
ないので俺は自分で関数作った

875 :名前は開発中のものです。:2010/02/13(土) 22:38:54 ID:nVI35ftX
そっか、ありがと。

876 :名前は開発中のものです。:2010/02/14(日) 21:14:56 ID:9DOaOyQ2
半透明処理で

ClearDrawScreen()
SetDrawBlendMode( DX_BLENDMODE_ALPHA, ・・・
DrawGraph(・・・
ScreenFlip()

って書いたら、1箇所使っただけなのにかなり処理が重くなる

DrawGraphが悪い?
フレームスキップするしかない?

877 :名前は開発中のものです。:2010/02/14(日) 21:20:54 ID:lH/o5bwf
いや、俺普通に何箇所も使うけど重くなんないよ?

本当にその四行だけで試してみた?

878 :名前は開発中のものです。:2010/02/14(日) 21:21:28 ID:I7ZtRrpB
フレームスキップは基本過ぎるだろ

879 :名前は開発中のものです。:2010/02/14(日) 21:24:26 ID:9DOaOyQ2
>>877

ClearDrawScreen()
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 )
DrawGraph(・・・ // 普通の画像
SetDrawBlendMode( DX_BLENDMODE_ALPHA, ・・・
DrawGraph(・・・ // 半透明させるの画像
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 )
DrawGraph(・・・ // 普通の画像
ScreenFlip()

こうやってます
画像を重ねる都合上、
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 ) を2回やってます
もっと効率よい方法があるんでしょうか?

880 :名前は開発中のものです。:2010/02/14(日) 21:26:43 ID:9DOaOyQ2
>>877
フレームスキップってどうやればいいでしょうか?
画面処理を別スレッドにして、処理時間オーバーしたら放棄、
でいいの?

881 :名前は開発中のものです。:2010/02/14(日) 21:27:36 ID:9DOaOyQ2
すみません
880 は >>878へのレスです

882 :名前は開発中のものです。:2010/02/14(日) 21:32:50 ID:r2nQlTSv
>>879
いちいち戻さない方が速いかも

883 :名前は開発中のものです。:2010/02/14(日) 21:34:14 ID:I7ZtRrpB
>>880
ググれば幾らかサンプルコードが出てくる。確か龍神録でも触れてたと思うし。
PC上で動くゲームを作るのなら秒間60回更新するように調整するのは基本中の基本。
DXLIBに限った話じゃない。CPU使用率が異常に高かったりしたら間違いなくこっちの問題でしょ。

884 :879:2010/02/14(日) 21:58:05 ID:9DOaOyQ2
3番目の↓
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 )
DrawGraph(・・・ // 普通の画像
が処理を重くしてる原因だったので、これを削ることにしました
ありがとうございます

龍神録というサイトを初めて知ったので、質問してよかった
>>883 ありがとうございます

885 :名前は開発中のものです。:2010/02/15(月) 08:08:26 ID:BUryD20y
何故そこだけ問題があったんだろう。気になる。


>873だが、色々な変形に対応させようと思うと結構面倒だな。引数も増えるし。
回転と拡縮だけにしてしまうか。

……とここまで書いて、
画像クラスを作ってしまえば簡単だということに気づいた。

886 :名前は開発中のものです。:2010/02/15(月) 20:26:12 ID:ccjc3ij8
平面だけでいいなら2*2行列に行列演算を繰り返して
最後にその4点にあわせてDrawModiGraphするってのが汎用的で記述もわかりやすくていいんじゃね?
どっかからできの良い数学ライブラリ持ってきてもいいし
回転拡大スライド程度なら簡単な行列計算だけに絞れるから自分で作ってもいい

887 :名前は開発中のものです。:2010/02/15(月) 20:55:41 ID:BUryD20y
行列とか完全に忘れてて愕然とした orz


>>886
結局のところ、妥協して回転、拡縮、左右/上下反転の3つだけ関数にしたんだが、
どっちかっていうと、コーディングよりも設計に悩んでた。

変形する順番によって最終的な結果が変わる場合があるから、
それらに対応しようとすると、その分だけ引数も増えるわけで、結果として使いにくい関数になっちゃうのよね。

で、画像をクラスにして

 ImageClass img;

 //中略

 img.rotate(3.14);    //180度回転
 img.extend(1.0,2.0);  //縦2倍
 img.rotate(1.57);    //90度回転
 img.draw(0,0);      //0,0に描画

とかでも良かったかな、と思った。


888 :名前は開発中のものです。:2010/02/15(月) 21:00:03 ID:K58uOKXK
・画像内での基準点の位置
・上の基準点が実際に描画される位置
・基準点を中心としたスケール
・基準点を中心とした回転角度
で十分だと思うけど

889 :名前は開発中のものです。:2010/02/15(月) 21:57:09 ID:BUryD20y
>>888
それだけで引数7つあるぜ?

各変形の優先度を決める(もしくは同じ変形を複数回行う)とか、
回転と拡縮以外の変形も出来るようにするなら、どれだけ増えるんだ。

890 :名前は開発中のものです。:2010/02/15(月) 22:01:20 ID:8F/ucvej
回転と拡大縮小って別に順不同じゃね
基点となる座標が変われば別だが

891 :名前は開発中のものです。:2010/02/15(月) 22:17:52 ID:BUryD20y
>>890
ゲームの都合上、縦横で別々に拡大率を設定できるようにする必要があった。


正方形を、90度回転させてから、横に2倍
□□ → ■□ → ■■□□
■■ → ■□ → ■■□□

横に2倍にしてから、90度回転
                ■□
□□ → □□□□ → ■□
■■ → ■■■■ → ■□
                ■□

みたいに変わる。

892 :名前は開発中のものです。:2010/02/15(月) 22:23:00 ID:8F/ucvej
>>891
それって渡す引数のほうを工夫すればいいんでねーの
二つ目は90度回転してから縦に二倍しても同じものを得られるわけだし

DrawExRotaGraph2(int x,int y,int cx,int cy,double ExtRateX,double ExtRateY,double Angle,int GrHandle,int TransFlag,int TurnFlag);
10個だな

893 :名前は開発中のものです。:2010/02/15(月) 22:29:12 ID:BUryD20y
>>892
質問、90度以外でも渡し方次第で出来る?

894 :名前は開発中のものです。:2010/02/15(月) 22:31:47 ID:8F/ucvej
>>893
出来るんじゃね

895 :名前は開発中のものです。:2010/02/15(月) 22:57:23 ID:ccjc3ij8
引数が多いと見苦しいし、書く順番でちょっと混乱しそう
それに回転と伸縮どっちが優先か見た目に明らかじゃないのも気になる

896 :名前は開発中のものです。:2010/02/16(火) 00:28:56 ID:ytIVItbu
なんに使うのかがそもそも想像できない俺……。

897 :名前は開発中のものです。:2010/02/16(火) 03:07:21 ID:JDL3KQO6
>>896
こんな感じでどう?
http://gamdev4.hp.infoseek.co.jp/cgi-bin/up/No_0079jpg.html

898 :名前は開発中のものです。:2010/02/16(火) 04:51:49 ID:iDbvu+FE
>>897
( ゚д゚)ポカーン

899 :名前は開発中のものです。:2010/02/16(火) 05:23:23 ID:g5MLEwas
ようやく理解できた

900 :名前は開発中のものです。:2010/02/16(火) 06:40:46 ID:OQUeahIO
3Dでやれば簡単だぜ

901 :名前は開発中のものです。:2010/02/16(火) 09:20:21 ID:aK6xRRB6
把握。
そういう力技、嫌いじゃないぜw

902 :898:2010/02/16(火) 10:16:29 ID:JDL3KQO6
すまん、いい例えが思い浮かばなかったんだw

903 :名前は開発中のものです。:2010/02/16(火) 10:17:15 ID:JDL3KQO6
名前間違えた、897だ

904 :名前は開発中のものです。:2010/02/16(火) 11:28:24 ID:iwCPzVGw
GetDrawStringWidthの第二引数StrLenはどういう意味があるのでしょうか?
マニュアルには
> StrLen として文字列の長さをわざわざ指定する ようにしたのは色々な側面から見て文字列の長さを指定できるよう にしたほうが良いと思ったからです。
と書いてありますが、どういうケースで指定が必要になるのか想像がつきません。

905 :名前は開発中のものです。:2010/02/16(火) 12:41:35 ID:ghUeZnk+
>>904
DXライブラリの作者さんがそう考えただけで、別に必要なければ使わなければいいだけでは?
例を挙げておくとこんな感じ。第二引数は指定できなくても書けるけど複雑になってしまう。

char Str[] = "今日もいい天気だ";
int MaxWidth = 50; // この幅に収まるように描画したい
int MaxChar = 0; // MaxWidthに収まる最大文字数
for( int i = 0; i < strlen(Str); i++ )
{
 StrWidth = GetDrawStringWidth( Str , i ) ;
 if(StrWidth < MaxWidth)
 {
  MaxChar = i ;
 }
}
Str[MaxChar] = '\0' ;
DrawString( 0 , 0 , Str , GetColor( 255 , 255 , 255 ) ) ;

906 :名前は開発中のものです。:2010/02/16(火) 12:56:47 ID:iwCPzVGw
>>905
なるほど、理解しました。

907 :名前は開発中のものです。:2010/02/16(火) 13:02:27 ID:JDL3KQO6
辛うじて一度だけ使った記憶があるな。
メニュー画面だったかな。文字列をセンタリングして表示するのに利用した。

文字列の前後に空白や記号がある場合、
それらも含めた文字数で横の長さを決めると、ちょっとズレて見えることがある。


……ぶっちゃけた話、
他にも方法は色々あるだろうとか、メニュー画面くらい画像にしろよとか思うので
使う機会はあんまり無い気がする。


908 :名前は開発中のものです。:2010/02/16(火) 17:38:15 ID:S7mGVY2n
C/C++以外からDLL経由で使おうとするとnull文字で終わってない文字列とか渡すのに便利です

909 :名前は開発中のものです。:2010/02/16(火) 21:28:56 ID:QXMNjoNk
>>873
DrawModiGraph()とアフィン変換
アフィン変換 クラスでググるといいかもしれない

910 :名前は開発中のものです。:2010/02/16(火) 22:33:22 ID:7n/4grgh
逆に文字列の長さよりもStrLenの方が短い場合とかに使うんじゃね?
デバッグ文表示で最後まで表示しないで途中で切ることとかよくあるんじゃね?

911 :名前は開発中のものです。:2010/02/16(火) 23:25:40 ID:b96KcuEj
アフィン変換か・・・左右反転と拡大縮小って同時にできるもんなんだな、しらなかった
でもこれってソースになる元画像を読んでからやるの?格納してからメモリ上の画像をハンドルで指定して操作したりできるんだろうか

912 :名前は開発中のものです。:2010/02/16(火) 23:50:46 ID:QXMNjoNk
あ、左右反転もなのか
DrawModiBillboard3Dのがいいと思う

913 :名前は開発中のものです。:2010/02/17(水) 00:19:59 ID:BMwZx7QF
>>912
いや自分は873ではないんだけれども、参考になったので書かせてもらった。横槍すまんね
DrawModiBillboard3Dって左右反転できるのか。x1を右上の座標、x2を左上の座標、x3とx4も同様に交換ってやれば反転するのかな?

914 :名前は開発中のものです。:2010/02/17(水) 02:18:28 ID:V7zWpnOB
ゲームで銃の連射中の音を作りたい
例えば 「ドッギュウン」て音声のファイルがあったとする。
そのファイルを使って単発発射で「ドッギュウン」、連射で「ドッドッドッドッドッギュウン」ってなカンジにしたいんだけど
音声の再生中かを CheckSoundMemで調べて、再生してなかったら再生してもヨシってすると案の定
「ドッギュウン・ドッギュウン・ドッギュウン・ドッギュウン」ってカンジになってしまう。
なので、ソレをナシにすると1ループごとに再生するんであまりにも早くて
「ドドドドドドドドドドッギュウン」ってカンジになる。
音声の再生位置を調べて、ある程度達してたら再生ってやろうと思ったけどそんな関数は無かった。
だから適当に変数用意して3ループ目ごとに再生ってカンジにしようとしているんだけど…(ゴチャゴチャする気もするが)

一般的なゲームの場合ってこういう時どうしてるの?
音声を二つ「ドッドッドッド」「ドッギュウン」用意して、ボタン押しっぱなし時は「ドッドッド」、離す・もしくは一押しの時は「ドッギュウン」とか?




915 :名前は開発中のものです。:2010/02/17(水) 02:32:31 ID:ccv1Zplj
ボタン押してる間「ドッ」をループ
離したら「ッギュウン」でいいんじゃねーの?

916 :名前は開発中のものです。:2010/02/17(水) 05:47:58 ID:9a0E55gk
そんなめんどくさいことしなくても
弾の発射間隔を広げるか、数発ごとに発射音を鳴らすようにすればいいじゃん


917 :名前は開発中のものです。:2010/02/17(水) 06:26:15 ID:CMLdNZJw
弾を撃つと開始されるカウンタを作って
そのカウンタが条件を満たしたとき音を鳴らせばいいんじゃないの?
1ループごとだと早すぎるんなら1おきにするとかもできる。

918 :名前は開発中のものです。:2010/02/17(水) 08:34:48 ID:MHINozGj
>>912
自前で変形させるなら、2Dでも3D(ビルボード)でも大差なくない?

919 :名前は開発中のものです。:2010/02/17(水) 13:16:50 ID:WoQHqNki
>一般的なゲームの場合ってこういう時どうしてるの?
FFのデータ見たら、あらかじめ重なった時の効果音も
組み合わせごとにいっぱい入ってて、意外だった
とかいう話を、どこかのスレで見たような、見なかったような。
手間と配布方式とかによって変わってきそう。

920 :名前は開発中のものです。:2010/02/17(水) 19:53:18 ID:b05sIrPr
>>918
カメラ使って視点操作で楽できるからじゃね?


921 :名前は開発中のものです。:2010/02/17(水) 21:17:38 ID:MHINozGj
ああ、なるほど。

カメラで視点操作ってことは、一括だよな。
メリットでもあるしデメリットでもあるという感じか。

922 :名前は開発中のものです。:2010/02/17(水) 22:06:32 ID:BMwZx7QF
DrawModiBillboard3Dって描画位置が変にならない?
前にDrawBillboard3DをDrawModiBillboard3Dにそのまま置き換えてみたら同じ位置に描画されなかったから使うのやめちゃったんだけど

923 :名前は開発中のものです。:2010/02/17(水) 22:17:31 ID:V7zWpnOB
>>915-917
多彩な案サンクス!やってみるよ俺

924 :名前は開発中のものです。:2010/02/18(木) 02:17:33 ID:artpUogb
アフィン変換ってのとDrawModiGraphでよくね?
DrawModiGraphで左右反転は入れ替えで普通にできたよ。
アフィン変換の使いやすそうなクラス公開してたりするし、よくわからんまま使えそうだ。

925 :名前は開発中のものです。:2010/02/18(木) 16:24:17 ID:wXmsheL/
スクリーンではなくバッファに描画するにはどうすればいいのでしょうか?
例えば、画像描画や文字列描画を組み合わせて描画する物である「メニューウインドウ」をバッファに描画して、
それを透過やら拡大縮小してスクリーンに描画したいです。

926 :名前は開発中のものです。:2010/02/18(木) 16:47:24 ID:S5tbEoCa
>>925
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1533
これでどう?

927 :名前は開発中のものです。:2010/02/18(木) 17:21:51 ID:wXmsheL/
>>926
まさに求めていたものはこれです。
ありがとうございました。

928 :名前は開発中のものです。:2010/02/18(木) 18:10:44 ID:UX2j7dSO
dxlibで書き込める画像って作れるのか・・・
レイヤーシステムどうやって作るのか悩んでたところだよ

929 :名前は開発中のものです。:2010/02/18(木) 18:19:30 ID:sI5JnKeC
BaseImageでもやろうと思えば出来るんじゃない?
SoftImageにも転送付いてたような

930 :名前は開発中のものです。:2010/02/18(木) 18:37:31 ID:UX2j7dSO
SoftImageは変形とかブレンドを自前でやんないといけなくて面倒だった気がする

931 :名前は開発中のものです。:2010/02/18(木) 18:41:04 ID:yr41/JmB
>>897
の右側の魔法陣みたいな斜めにして回転、みたいな変換・表示するのにはどうすればいいかわからない・・・。
というか、アフィン変換した画像というか、DXライブラリでどうアフィン変換利用すれば良いかわからないんだけど、
誰か分かる人頼む・・・。

932 :873=897:2010/02/18(木) 19:07:00 ID:7/BIGMNa
結局アフィン変換がよくわからずに、三角関数で画像を変形させた俺。

おかしいな、大学は理系だったはずなんだけどなー。
行列なんて普通に使ってたはずなのに…… orz

933 :名前は開発中のものです。:2010/02/18(木) 19:28:11 ID:wsPY0Q5n
>>931
斜めにして回転って2Dでやるほうが難しいんじゃないかな。
DrawModiBillboard3Dってカメラ関数使って斜めから見れるん?
>>897の魔方陣のように傾けて見れるならなんとかなりそうだけど。

934 :名前は開発中のものです。:2010/02/18(木) 19:30:18 ID:sI5JnKeC
いわゆる「習う」数学は公式を持ってきた後に「解く」からいけない。そこが重要だと思ってしまう
解くのは別にコンピュータがやればいい。大切なのは解き方

935 :名前は開発中のものです。:2010/02/18(木) 19:40:26 ID:UX2j7dSO
ひょっとして3Dつかって2Dゲーム作る方が楽なのかな
最近はそういうゲームも結構あるよね

936 :名前は開発中のものです。:2010/02/18(木) 19:43:40 ID:cSNnQmS/
DXライブラリ使ってるならまさにその方式を使ってることになるけど

937 :名前は開発中のものです。:2010/02/18(木) 20:41:03 ID:S5tbEoCa
>>931
つまり、画像を2回回転させて描画したいっていうことだよね?
DrawModiBillboard3D関数の引数x1, y1〜x4, y4に各頂点を2回回転させた座標を指定すればいけると思う。
ビルボードじゃなくてモデルとして扱った方が簡単なような気もするけど・・・

938 :名前は開発中のものです。:2010/02/18(木) 20:49:00 ID:7/BIGMNa
>>937
自分みたいに3Dサッパリな人間には、モデルデータを用意するだけでハードルが高いからなあ。
そうなると、従来の画像で扱えるビルボードの方が良さそう。
あとは動的に画像を生成するような場合(スクリーンショットとか)にも向いているかもしれない。

モデルデータを使わずにやるなら、素直に2Dでも良いわけだが。


939 :937:2010/02/18(木) 20:57:50 ID:S5tbEoCa
すみません、>>937に書いた方法はウソでしたorz..
引数x1, y1〜x4, y4は2次元の変形しか指定できないし、DrawBillboard3D関数にはある引数Angleも無いので3次元の回転は無理そうです・・・
モデルにすればMV1SetMatrix関数で自由に変形できるんだけど・・・
>>931の作ってるゲームは2Dなの?
それなら斜めに傾いている画像を使って下さいw

940 :名前は開発中のものです。:2010/02/18(木) 21:04:10 ID:UX2j7dSO
2Dだとやっぱり事前に描いて置いておくのが一番なのかな

941 :名前は開発中のものです。:2010/02/18(木) 21:07:33 ID:cSNnQmS/
>>897みたいな効果を多用するならともかく
一部でしか使わないならそのために複雑な仕組み作りたくないでしょ

942 :名前は開発中のものです。:2010/02/18(木) 21:07:35 ID:7/BIGMNa
2Dゲームなら、それこそ>937の方法で良いような気がするけどなー。

943 :名前は開発中のものです。:2010/02/18(木) 21:43:03 ID:6a8jaVSb
俺もblederで即死したけど
メタセコなら普通に使えた

944 :名前は開発中のものです。:2010/02/18(木) 22:34:17 ID:7/BIGMNa
少ない脳みそ絞って書いてみた。
3Dとかアフィン変換とかサッパリなので2Dで。
http://gamdev4.hp.infoseek.co.jp/cgi-bin/up/No_0080zip.html



945 :名前は開発中のものです。:2010/02/18(木) 23:17:57 ID:yr41/JmB
>>944
マジ感謝・・・なんだが、サンプルコードなくて使い方を迷う

946 :名前は開発中のものです。:2010/02/18(木) 23:44:29 ID:7/BIGMNa
すまん、付け忘れた

extRate_xとextRate_yに1、hImgにグラフィックハンドル、残りの引数には0でも入れてくれれば
とりあえず動くと思う。

947 :名前は開発中のものです。:2010/02/19(金) 00:27:45 ID:u7/N0T5p
俺がいつも使ってる拡張画像表示はこれ

void DrawExRotaGraphF(float ex, float ey, float xScale, float yScale, float Angle, int GrHandle, int TransFlag, int TurnFlag) {
int gx,gy;
float ix,iy,ca=cos(Angle),sa=sin(Angle);
GetGraphSize(GrHandle,&gx,&gy);
gx*=xScale/2; gy*=yScale/2;
VECTOR2D pos[4] = { { -gx, -gy}, { +gx, -gy}, { +gx, +gy}, { -gx, +gy} };
for (int i=0;i<4;i++) {
ix = pos[i].x*ca - pos[i].y*sa;
iy = pos[i].x*sa + pos[i].y*ca;
pos[i].x=ix+ex; pos[i].y=iy+ey;
}
if (!TurnFlag) DrawModiGraph((int)pos[0].x, (int)pos[0].y, (int)pos[1].x, (int)pos[1].y,
(int)pos[2].x, (int)pos[2].y, (int)pos[3].x, (int)pos[3].y, GrHandle, TransFlag);
else DrawModiGraph((int)pos[1].x, (int)pos[1].y, (int)pos[0].x, (int)pos[0].y,
(int)pos[3].x, (int)pos[3].y, (int)pos[2].x, (int)pos[2].y, GrHandle, TransFlag);
}

ていうかこのくらいDXライブラリも用意して欲しいところだが

948 :名前は開発中のものです。:2010/02/19(金) 00:28:54 ID:u7/N0T5p
あ、VECTOR2Dはオリジナルだった
/* 2D用行列 */
typedef struct VECTOR2D {
float x,y;
} VECTOR2D;
まあ使わなくても二次元配列なりで出来るけどね

949 :944:2010/02/19(金) 00:43:49 ID:zmDX76mU
2Dの描画関数群を見てると、Zバッファ版なるものがあるんだけれど
これって何か上手く使えないかな。

公式BBSだと、マスク処理に使うって話があったけれど…


>>947
やってることは自分と同じ…かな? たぶん。
そっちの方がシンプルなコードだがw


950 :名前は開発中のものです。:2010/02/19(金) 01:11:24 ID:u7/N0T5p
>>949
同じだね
縮小拡大前に回転するかしないかってのは入れる値を変えれば出来るし、縦の反転は180度回転させた後に左右反転すれば再現可能
自分はこれをよく使うので最低限のものだけを入れて、必要に応じてラッパー関数を使えばいい(まあこれ自体もmodiのラッパーだけど)

951 :名前は開発中のものです。:2010/02/19(金) 01:32:26 ID:zmDX76mU
>>950
回転させてから拡大(縦横別倍率)ってどうやるの?

952 :名前は開発中のものです。:2010/02/19(金) 01:36:21 ID:u7/N0T5p
拡大率を予めsincosにぶち込めばいい 「回転を見越して拡大縮小する」

953 :名前は開発中のものです。:2010/02/19(金) 02:17:39 ID:zmDX76mU
先生、その見越し方が分かりません

954 :名前は開発中のものです。:2010/02/19(金) 10:00:47 ID:vzeC0aMv
つかそういういくつもの変換を同時に適用するために
行列があるんだと思うが・・・行列を使わないなんて無駄に複雑になるだけだよ。

955 :名前は開発中のものです。:2010/02/19(金) 12:10:45 ID:zmDX76mU
>>954
計算部分を自前でやってるだけで、やってることそのものは変わらない気がする

956 :名前は開発中のものです。:2010/02/19(金) 13:25:42 ID:zmDX76mU
チラ裏で申し訳ない。
画像処理の入門書を読んでるんだが

(1)自前で行列(回転用行列、拡大用行列など)を用意
(2)それらを掛け合わせて、最終的な変形用の行列を作る
(3)変形用行列を関数に渡す

…みたいな感じだった。
行列をクラスにして、演算子のオーバーロードで簡単に加算や乗算が出来るようにするとか
そういう工夫がされているようだ。


あと、公式BBSでこんなの見つけた
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=1033

957 :名前は開発中のものです。:2010/02/19(金) 13:34:25 ID:G1VFwFwU
3D用の関数に行列使えるのがあるよ

958 :名前は開発中のものです。:2010/02/19(金) 13:37:37 ID:gvWv62bY
上で話題にでてたアフィン変換だって2次元に特化した行列じゃんか
クラス公開されててちょっといじれば簡単に使えるのとかあったぞ
行列うんぬんよりクラスがわからんとか?

959 :名前は開発中のものです。:2010/02/19(金) 14:02:46 ID:az/+pLVO
頂点の集合に行列を演算してできた形に描画するのはいいんだが
長方形の画像を自由変形して描画するアルゴリズムはいったいどうやって実装されてるんだろう
ピクセル単位で全部写像してたらすごく遅くなりそうだが他に方法も浮かばない

960 :名前は開発中のものです。:2010/02/19(金) 14:11:57 ID:uvqEn+/2
専用のハードウェアにやらせてるんだから爆速
アルゴリズムとかいう次元じゃない

961 :名前は開発中のものです。:2010/02/19(金) 14:17:06 ID:zmDX76mU
>>957
3Dの方はあんまり見てなかったぜ。
これから勉強しないとな…。

>>958
クラスが分からないとかは流石に発想が飛躍しすぎじゃね?

>>959
テクニカルな最適化や、誤魔化しとかはやってるかもしれないけど、
基本的なやり方は同じで、あとはハードウェア様による力技なんじゃない?


962 :名前は開発中のものです。:2010/02/24(水) 03:58:01 ID:qZkPMJuP

LoadGraphを使う関数を繰り返し呼び出してると
例外が出て強制終了することがある
具体的には、
main(){

:
:
shop->open();

}
とメインの関数からクラスのメンバ関数を呼んだとき、
openを十回くらい呼び出すと、openを呼んで最初に出てくるLoadGraphで強制終了する
open内で何度もLoadGraphを呼び出しているが、最初のLoadGraph以外で強制終了したことはない
他のまったく別のクラスのメンバ関数でも、二回目に呼び出したときに
最初のLoadGraphで強制終了するので、
openでなくLoadGraphに問題があると思うんだけど
そもそもどういう状況でLoadGraphが例外出すか分かりませんか?

メモリ使用量を見る限りメモリリークなどはない
ちなみに使ってるのはBcc版

963 :名前は開発中のものです。:2010/02/24(水) 04:03:15 ID:qXzrwIFO
具体的の意味わかってんのかカス

964 :名前は開発中のものです。:2010/02/24(水) 07:32:26 ID:Jsc/BFjh
例外ってどんな例外? メッセージとか無い?
読み込んでる画像はどんな画像? ファイルサイズとかフォーマットとか。
メモリリークかどうかもどんな環境でどれくらいのサイズの画像を読み込んでるのか教えてくれないとこっちでは判断できない
もっと詳しく


965 :名前は開発中のものです。:2010/02/24(水) 09:49:28 ID:RLyfmrNj
全く具体的じゃないのに具体的には、とはこれいかに。

966 :名前は開発中のものです。:2010/02/24(水) 09:53:22 ID:KFJm0GRx
何が例外出すか分かりませんか?だよ
どういう状況で例外出すってエラーメッセージに全部書いてあるだろうが

967 :名前は開発中のものです。:2010/02/24(水) 10:11:36 ID:a8pqqcvy
エスパーしてみるに、
「最初のLoadGraph」に指定してるファイルが、
 
 (1)形式的に未対応のものを指定している
 (2)指定ファイルの内部フォーマットがおかしい

のどれかなんじゃないのかな?
「最初のLoadGraph」以外は成功してるって話だし。

968 :名前は開発中のものです。:2010/02/24(水) 15:35:20 ID:etAIwZMZ
DX_ライブラリ使っていたら
いつもなら「ch.」(chは構造体)で設定したパロメータが表示されたのに
今日使ってたら表示されなくなった。これってどこの設定変えれば元に戻るの?

969 :名前は開発中のものです。:2010/02/24(水) 16:19:36 ID:AEul0BlH
インテリセンスはよくぶっ壊れる

970 :名前は開発中のものです。:2010/02/24(水) 16:56:28 ID:OQn9U246
たまにJavaやるとEclipseの入力支援の賢さに感動する。

971 :名前は開発中のものです。:2010/02/24(水) 17:28:51 ID:ROg57qmn
いや普通にVS2008の方が賢いだろ C++はダメダメだが

972 :名前は開発中のものです。:2010/02/24(水) 20:46:20 ID:LFTpl00q
>IntelliSense
最近のは分からないけど、ちょっと変なことやると対応しなくなるしなあ。


973 :962:2010/02/24(水) 20:46:27 ID:qZkPMJuP
Bccのデバッガは見方がよく分からなかったのでVC++で原因を調べてみた
移植にかなり手間取ったけど、原因はnew,deleteでの
HEAP CORRUPTION DELETEDだった

ごめんよ、DXライブラリ

974 :名前は開発中のものです。:2010/02/25(木) 00:10:24 ID:wGlYMdYr
VS2008EEC#でDXLib使ってるけど、ゲーム開発はなんでC++が多いいのか・・・?
C#使いやすいと思うんだが・・・


975 :名前は開発中のものです。:2010/02/25(木) 00:27:31 ID:JfnFuENI
C#とC++と、どっちも知らない人間(俺みたいな)が始めようとしたら
そりゃデフォルトで解説されてるC++使うよ。

976 :名前は開発中のものです。:2010/02/25(木) 00:40:37 ID:rlWr6nuc
>>974
>>975
素人はメモリ管理で苦労させられる
C#はライブラリの導入・セッティングまでも驚くほど簡単だ

977 :名前は開発中のものです。:2010/02/25(木) 00:43:57 ID:o6l4NITL
むしろメモリ管理を隠蔽化されると不安になる

978 :名前は開発中のものです。:2010/02/25(木) 00:57:11 ID:xk33jNpg
C#は動作速度どうなんだ?
あと.NETないと動かないんだっけ それはどうでもいいが

979 :名前は開発中のものです。:2010/02/25(木) 01:15:00 ID:rlWr6nuc
>>978
今のPCスペック考えると動作速度気にするのは意味無いかな
同人レベルならFFやメタルギアのような実写モーションやるわけではないし
HSPよりは圧倒的に速いよ、ニコ動見てもHSP+Easy3Dで3Dアクション作ってる奴がたくさん居る
C#もJavaもゲーム製作には十分過ぎる

980 :名前は開発中のものです。:2010/02/25(木) 01:40:51 ID:DXATdGPP
>>974
>>975の理由もあるが、
単純に、C言語覚えたから次はorいよいよC++に〜とかって感じじゃない?
JAVAとかの経験がなければガベコレとかも知らないだろうし。
メモリ管理とかはまぁゲ製作以外で活かせる人なら勉強にもなるから良いやー、とか。

981 :名前は開発中のものです。:2010/02/25(木) 02:07:47 ID:hEXp+gEa
C#は解析が簡単なんじゃないの?
改造し放題だと市販のゲームには向かないと思う

982 :名前は開発中のものです。:2010/02/25(木) 02:29:34 ID:8SXpDUIf
>>974
公式サンプルがC言語で書かれているし、どれか一つ言語を覚えるとしたら自然にC言語になるんじゃないかな。
DXライブラリ自体もC言語で書かれてるしね。

>>981
難読化ツールというものがある。
それにC言語でも解析は可能なので市販する場合は独自に暗号化する必要がある。
特に画像、サウンド、シナリオテキストは見えてしまうとマズいので。

983 :名前は開発中のものです。:2010/02/25(木) 02:39:17 ID:hEXp+gEa
そりゃデータは暗号化するだろうけど、それは言語とは関係ない話では?

984 :名前は開発中のものです。:2010/02/25(木) 05:08:59 ID:SPGhDv+7
>>982
ぜってー使ったこと無いだろ>難(ry
あのスカスカ具合を見てから言えw
データも言語関係ないし

985 :名前は開発中のものです。:2010/02/25(木) 07:36:27 ID:fv/CwMlZ
C++はWiondows標準のexeファイルを作成でき、そのまま実行できる
C#やJAVAはWindows非標準の中間ファイルしか作れず実行環境のインストールをユーザーに説明し、納得させ、実行させなければいけない
余計なソフトのインストールを嫌うユーザーは多い
速度よりも何よりもこの差があるからC#やJAVAは選ばれない

986 :名前は開発中のものです。:2010/02/25(木) 07:53:11 ID:xyh/cBvs
インストーラーで強制インストールとかまんこい

987 :名前は開発中のものです。:2010/02/25(木) 08:25:15 ID:JegjOA7A
デフォルトでインストール済()笑

988 :名前は開発中のものです。:2010/02/25(木) 08:29:09 ID:8SXpDUIf
>>983
どの言語にしても暗号化は必要と言いたかったのだけど・・・

>>984
>あのスカスカ具合を見てから言えw
どの難読化ツールを使ったか知らないけど、それでスカスカだと感じたんならしょうがないね・・・
そこまでセキュリティが必要なものを作っている人もいないと思うけどなあ。

989 :名前は開発中のものです。:2010/02/25(木) 09:03:26 ID:PKMfSc2o
>>981
現状の市販ゲームが改造し放題なのばかりなのに何言ってるんだ。


990 :名前は開発中のものです。:2010/02/25(木) 09:57:05 ID:8oJeVww7
>>984
無料のやつしか使ったこと無いだろ

991 :名前は開発中のものです。:2010/02/25(木) 10:40:15 ID:olOvytZe
DXライブラリから話がずれてるぞ。

992 :名前は開発中のものです。:2010/02/25(木) 18:35:53 ID:937qRGDS
もっと単純に考えると
ゲーム会社とかで使われてる言語は
圧倒的にC++が多いからじゃねーの?

趣味でゲーム作ってるだけって人も多いだろうけど
ゲーム作ってる以上そっちに興味沸くのは当然だろ?

よくわからんけどC#で製作されてるのって箱○ぐらいらしいじゃん
そして箱○があの状況だし…

993 :名前は開発中のものです。:2010/02/25(木) 19:16:33 ID:6cWD1bsH
いや、常識的に考えて、3DゲームをC++以外で作るのは無理がある

994 :名前は開発中のものです。:2010/02/25(木) 21:49:34 ID:ecmRLDIv
C#でDxLib.dll使ってるとコードを書いてるときの違和感が半端じゃない。

995 :名前は開発中のものです。:2010/02/25(木) 22:12:00 ID:L3Szp9iO
わかる
ラップしたくなるけどそんなことするくらいなら普通にDirectX叩いても大して変わらないし

996 :名前は開発中のものです。:2010/02/25(木) 22:56:28 ID:wGlYMdYr
すまん。
言いたかった事は、C#や.net使うと、意外ににC++でやってる様な小技が
簡単にできたりとか。
3Dとか使わないで、ノベルゲとか作るならC#+DXlibが楽だと思ったからなんだ。

>>994
頭にDX.付け忘れたり。




997 :名前は開発中のものです。:2010/02/25(木) 23:22:02 ID:L3Szp9iO
たいていDXライブラリ自体がボトルネックになるから言語なんか何使っても速度はそんなに変わらないよ

998 :名前は開発中のものです。:2010/02/25(木) 23:25:53 ID:nMEq0Meg
a

999 :名前は開発中のものです。:2010/02/25(木) 23:26:34 ID:nMEq0Meg
b

1000 :名前は開発中のものです。:2010/02/25(木) 23:27:06 ID:kia54fEW
うぅぅい

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

269 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)