DXライブラリ 総合スレッド その5
レス数が1000を超えています。これ以上書き込みはできません。
0001名前は開発中のものです。
2009/12/04(金) 16:49:13ID:7SKA4I5zGUIのゲームを比較的容易に作成する事を可能にする、
「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/
0002名前は開発中のものです。
2009/12/04(金) 17:07:40ID:2O781c7T0003名前は開発中のものです。
2009/12/04(金) 17:19:26ID:vm4DXNCAもちろん確認のために2.25bでも試したが透明色やフレームレート落ちや音ズレなしで問題なし
0004名前は開発中のものです。
2009/12/04(金) 18:16:40ID:6AQLzT+8セーブとか実行時に暗号化して書きたい時って割とあるとおもうんだが・・・
0005名前は開発中のものです。
2009/12/04(金) 23:18:48ID:XUOEwrjE弾幕シューティングではないのだが・・・参考になったさ。ありがとう。
0006名前は開発中のものです。
2009/12/05(土) 00:35:03ID:FfRkZmBc確かに使いたいときはよくある。でもそれってDirectXの機能じゃないからじゃ?
0007名前は開発中のものです。
2009/12/05(土) 01:27:00ID:yZDYDRsNセーブデータなんて自分で暗号化すれば済むからでしょ。
0008名前は開発中のものです。
2009/12/05(土) 12:30:22ID:CQOWfBMwものすごい膨大な量のMQOデータが出てきたんだけど・・・
アニメーションを作るたびに毎回こんなのが出てくるの?
そもそもこういう出力結果をゲーム内でアニメとして使えるの?
0009名前は開発中のものです。
2009/12/05(土) 14:14:45ID:Sya3hEP4ゲームのエフェクトで画面全体をくるくる回したりしたいんだけど
0010名前は開発中のものです。
2009/12/05(土) 14:22:43ID:UtZjONga動くんだったら計算させて自前で回転描画すればいいだけだし。
0011名前は開発中のものです。
2009/12/05(土) 15:12:47ID:GsjhaCrH0012名前は開発中のものです。
2009/12/05(土) 15:15:49ID:UZumt6OGアニメーションxファイルで出せよww
MQOはモーションつかないから連番で出すしかない
0013名前は開発中のものです。
2009/12/05(土) 16:02:55ID:gqFDk2ay0014名前は開発中のものです。
2009/12/05(土) 16:14:43ID:IYliNqS40015名前は開発中のものです。
2009/12/05(土) 16:24:59ID:rsncbGmtこれのデスクトップの広さ 1024x768 の方を取得する方法について教えて下さい
0016名前は開発中のものです。
2009/12/05(土) 16:51:52ID:z1L4m3AmGetSystemMetrics(SM_CXSCREEN);
とかで
0017名前は開発中のものです。
2009/12/05(土) 17:17:35ID:rsncbGmtありがとうございました
0018名前は開発中のものです。
2009/12/05(土) 19:31:08ID:GsjhaCrH0019名前は開発中のものです。
2009/12/06(日) 00:09:46ID:AxjxjhaV結局普通にグローバル使った方が楽なことに気付いた
(全てスタティックが駄目というわけではないが)
グローバルでも名前空間とか使えば局所性もある程度保てるんじゃないかなあ
0020名前は開発中のものです。
2009/12/06(日) 00:10:45ID:wryxppBn0021名前は開発中のものです。
2009/12/06(日) 10:11:40ID:+RNAMjqxクラスで雁字搦めにして書かない限りグローバル変数使ったほうが分かりやすい
0022名前は開発中のものです。
2009/12/06(日) 10:20:30ID:AO9SCSiS「やっぱグローバルやめときゃよかった」ってなる。
0023名前は開発中のものです。
2009/12/06(日) 10:33:36ID:+HYK3UFu0024名前は開発中のものです。
2009/12/06(日) 10:48:26ID:goldsq2u>>22のようなことを考えるとグローバルの方がマシ
0025名前は開発中のものです。
2009/12/06(日) 11:12:16ID:Vlb8mlu0なんで?
0026名前は開発中のものです。
2009/12/06(日) 12:19:26ID:jMxq/kh5SetRestoreGraphCallbackに登録する関数で使う変数のために
とりあえず読み込み用クラスのポインタをグローバルなポインタ作ってそこに渡して動作させてる
他に良い方法ない?
0027名前は開発中のものです。
2009/12/06(日) 14:27:31ID:vkleFuhi文字の後ろに・が一緒に表示されるという怪現象が……。
なんだこれ?
まあ、たぶん俺のコードのどっか悪いんだろうが。
0028名前は開発中のものです。
2009/12/06(日) 14:53:59ID:P3Xq2+aMグローバルばかりでやってたがそうでもないのかな
0029名前は開発中のものです。
2009/12/06(日) 15:10:27ID:AxjxjhaV全角だと1バイト分読み込んだ時に正しく認識されないから
全角の場合は2バイト分読み込ませればいいんじゃないかな
0030名前は開発中のものです。
2009/12/06(日) 15:34:50ID:L7OXdhxz配布するときにDXライブラリをインストールしていないPCでも
起動できるような配布の方法はあるのだろうか
よくわかんないけどDXライブラリランタイムみたいなのがあれば、
それを一緒に配布するみたいな方法とかある?
それとも配布するプログラムとは別にDXライブラリをインストールしてもらうしかないのだろうか。
0031名前は開発中のものです。
2009/12/06(日) 15:39:03ID:bw4St35Rよくわかんないけどたぶん上の[Debug]を[Release]に変えて
出てきたReleaseフォルダを配布すればいいと思う
0032名前は開発中のものです。
2009/12/06(日) 15:43:00ID:ez8iS4soダイナミックなDxLibがあるのかわからんけど自作とかしたならその場合はDLLも配布しないといけない
0033名前は開発中のものです。
2009/12/06(日) 15:43:02ID:CJZjyivEDXライブラリは関数の集合だから、ランタイムパッケージは必要ないんじゃないの?
プログラムが実行ファイルにされるときにすべてC言語からアセンブリ言語にされるはず。
相手に準備が必要なものがあるとすればDIRECTXなんじゃないかな。
0034名前は開発中のものです。
2009/12/06(日) 15:43:31ID:vkleFuhiお、直った!
ありがとー。
STLのstring使ってるんだけど、itretorひとつ進めても、
2バイト文字だとふたつ進めたとこからやらないとだめなんだな……勉強になった。
0035名前は開発中のものです。
2009/12/06(日) 15:44:56ID:vkleFuhiIDEのサポートに頼りっきりはこれだから……。
0036名前は開発中のものです。
2009/12/06(日) 16:16:24ID:L7OXdhxz配布ファイル自体の作り方もわかった。ありがと。(早速、フォルダを作成したら、画像ファイルだけは、出来上がったフォルダに手動で追加することになるみたい。)
>>32 ダイナミックなDxLibというのはよくわかんないけど、多分そこまで複雑な機能を使いこなしてないから、
DLLの心配はしなくていいととりあえず思う。
>>33 DIRECTXの準備が必要ということか。
これは、さすがにインストールしてもらうしかないということだね。
これでとりあえずプログラムの配布ができそう。ありがと。
0037名前は開発中のものです。
2009/12/06(日) 16:18:32ID:RsTxI8HkReleaseフォルダの中身だけでおk
0038名前は開発中のものです。
2009/12/06(日) 16:29:03ID:AxjxjhaVまあ普通は[Release]だろうが
003930
2009/12/06(日) 16:48:28ID:L7OXdhxzありがとう!!
0040名前は開発中のものです。
2009/12/06(日) 17:10:59ID:bw4St35Rそういえばアレ何が違うの?
あとDXライブラリ使ったらReadmeに使ったって書かなきゃダメ?
0041名前は開発中のものです。
2009/12/06(日) 17:29:11ID:+RNAMjqxそのままデバッグが入るか否か 少し重くなる
readmeは要らん ただしソースを配布するなら必須
0042名前は開発中のものです。
2009/12/06(日) 17:50:49ID:bw4St35Rありがとー
0043名前は開発中のものです。
2009/12/06(日) 18:03:42ID:vkleFuhi0044名前は開発中のものです。
2009/12/06(日) 18:15:43ID:+RNAMjqx0045名前は開発中のものです。
2009/12/06(日) 19:38:55ID:EqSux42R/****** 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;
}
0046名前は開発中のものです。
2009/12/06(日) 23:30:09ID:vkleFuhiどうもありがとうございますー。
色々考えてみた結果、マルチタスクに手を出さないとダメっぽいということがわかったので、
なんとか実装するか。
0047名前は開発中のものです。
2009/12/06(日) 23:59:28ID:jMxq/kh50048名前は開発中のものです。
2009/12/07(月) 00:00:23ID:QTWxMRN00049名前は開発中のものです。
2009/12/07(月) 00:44:06ID:yr1Q4g2a0050名前は開発中のものです。
2009/12/07(月) 12:52:27ID:qjhIwQdC0051名前は開発中のものです。
2009/12/07(月) 13:02:56ID:5mIc7NoF試験的に、ゲームのプレイ動画を撮ろうと思ったんだが、DXライブラリ3.xで作ったゲームを録画しようとしても全く録画できない。
画面が映らないというより、プロセスを正しく取得できていないような感じ。
ちなみに手元の2.25cだと、ゲームプログラムは弄らずにキャプチャー出来た。(3D機能は未使用)
に多様な状況になったひとっている?
自分の環境が悪いのか、キャプチャーソフトが悪いのか、ライブラリ側の都合なのか調べたい。
OS:WindowsXP SP3
キャプチャーソフト:アマレコ・ライト、Dxtory、DxRec
参考ページ: ttp://www18.atwiki.jp/live2ch/pages/153.html#id_439db353
0052名前は開発中のものです。
2009/12/07(月) 13:45:13ID:SKodZ2cg同じボタンでやるとします。
この場合あるボタンを押すと勝手にAだけでいいのにBまで処理されて
しまいます。Aで止めて、もう一度同じボタンでBの処理をさせる
にはどうすればいいの? お願いします。
0053名前は開発中のものです。
2009/12/07(月) 13:52:55ID:QTWxMRN0WMEでやったらどうなる
範囲指定でやったらどうなる
というか仕様的なことならむしろ本家に行った方がいいと思うが
>>52
連続ってどういうこと?
押しっぱなしじゃなくて連打させたいという意味なら
・キーを押すとONになるフラグを作る
・キーを離すとそのフラグはOFFになる
・キーがOFFの場合しかキーを押したときに処理が行われない
というようにする
0054名前は開発中のものです。
2009/12/07(月) 14:15:07ID:SKodZ2cgCheckHitKey関数しか知らないんで 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;
こんな感じですか?
非効率なような気がします。いい案があればおしえてください。
ちなみにシューティングじゃないんで連打はないです。
0055名前は開発中のものです。
2009/12/07(月) 14:30:14ID:QTWxMRN0なんでそうなるんだよ
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は効率悪いからやめておけ
0056名前は開発中のものです。
2009/12/07(月) 14:43:37ID: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でレスされてるのに気付いたが
ほぼ同じだが投稿しちゃう
0057名前は開発中のものです。
2009/12/07(月) 14:44:31ID:GvCDZJ6Fの↑は>>54を指すので
0058名前は開発中のものです。
2009/12/07(月) 14:44:45ID:qjhIwQdCif (( btn ) && ( ! isPush )) {
switch ( step ) {
case 1 :
doA ( );
step ++;
break;
case 2 :
doB ( );
step ++;
break;
・
・
・
}
}
isPush = btn ;
0059名前は開発中のものです。
2009/12/07(月) 15:00:21ID:SKodZ2cg制御する変数を使わないとやはり難しいみたいですね。
参考にします。
0060名前は開発中のものです。
2009/12/07(月) 16:30:58ID:eqdM01iGunsigned 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フレームごとにイベント、とかできる(シューティングの等間隔のショット処理とかで使える)
}
0061名前は開発中のものです。
2009/12/07(月) 17:30:41ID:03D0QZSjhttp://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
0062名前は開発中のものです。
2009/12/07(月) 20:24:23ID:5mIc7NoFさすがにDXライブラリのサイトで
「○○というソフトを使っても動きません!」という質問はできないだろうw
DXライブラリ側に原因があるなら別だが。
WMEはMSのやつかな。
動画作成に関しては今日初めてやったので詳しくないんだ、すまん。
0063名前は開発中のものです。
2009/12/07(月) 20:49:26ID:QTWxMRN02.25で出来て3.xで出来ないならライブラリ側の原因である可能性が多いだろ
とりあえず色んな方法でキャプチャして、上手くいかなかったら本家行き
まあ、WME+SCFH_DSFでは問題なくキャプチャ出来たが。
0064名前は開発中のものです。
2009/12/08(火) 02:54:12ID:CEeKe2FB余程多くのキー使うのならともかく普通は押し続けの判断したいキーだけでいいんじゃないのか
まあ今のマシンなら全部やっても負荷的には問題ないのかも知れんが
0065名前は開発中のものです。
2009/12/08(火) 08:20:15ID:bmgyrVLx「何フレーム入力されているか」が解るようにしておけば、ボタン関連の操作は「1フレーム目」または、「キーを離したフレーム」で処理すれば
連続で不必要な処理まで進んでしまう事がありません。
例えば本家のGetHitKeyStateAllを自分で使いやすいようにしたのが
GetHitKeyStateAll_2関数です。こんな感じで使えます。
(→コードは次へ)
この例ではエンターの入力時間によって処理を分岐しています。
キーの入力状態を格納する変数がint型なので
_2関数をさらに「離された時マイナスのカウントをする」ようにすれば
離されてからのフレーム数も解ると思います。
・・ところでコードを見やすいように字下げする方法無いんでしょうか;
0066名前は開発中のものです。
2009/12/08(火) 08:21:20ID: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;
}
0067名前は開発中のものです。
2009/12/08(火) 10:08:46ID:ziZ5aZky0068名前は開発中のものです。
2009/12/08(火) 11:20:05ID:U9efz6mVttp://fatalita.sakura.ne.jp/CGI/OKCode/index.html
0069名前は開発中のものです。
2009/12/08(火) 15:24:53ID:oCon0Lhkグラフィックハンドルを直接指定して描画処理をする方法がわからなくて困っています。
GetDrawScreenGraphを使っていったんウラ画面に描画したものを、空のグラフィックにコピーしようとしたのですが
ウィンドウサイズより大きいところに描画されたものはコピーされないみたいでダメでした。
どなたかこの問題を解決できる方はいませんでしょうか?
0070名前は開発中のものです。
2009/12/08(火) 18:10:50ID:EpEGhfoBウィンドウサイズ以上にできるかどうかは知らん。
しかしマップチップ敷き詰めたとしても、どうせ表示サイズ以上には表示できないんだし、
普通に毎フレーム描画でいいと思うが。
まぁ全マップを拡大縮小回転とかガンガンやるならちとずれそうで怖いが。
0071名前は開発中のものです。
2009/12/08(火) 19:18:27ID:oCon0Lhkありがとうございます、いろいろ調べてきます!
2Dアクションゲームを作ってましてとりあえずマップ全体をメモリに描画しといて
スムーズなスクロールをしようと思ってました。
0072名前は開発中のものです。
2009/12/08(火) 19:27:56ID:EpEGhfoB普通に毎フレーム描画でいくべきだと。
よほどヘボなPC使うか、プログラムがヘボでないかぎり
スムースさに変わりはない。
0073名前は開発中のものです。
2009/12/08(火) 19:37:02ID:oCon0Lhkそうですか。
しかし自分の知識不足でどうやって毎フレーム描画でドット単位のスクロールをすればいいのかわからなくて
ttp://www.harukitchen.com/rpg_programming/06/06.htm
ここのサイトを参考にしてるんですけど、この方法だと結局ウィンドウサイズ以上の大きさの描画が必要になるし
どなたか知恵を貸していただけないでしょうか?
0074名前は開発中のものです。
2009/12/08(火) 19:45:37ID:B6+BeJXVウィンドウサイズ以外の描画がしたくないならカメラ座標に映らない座標のオブジェクトは描画しなくていいだけだし、
確かdirectXの仕様で画面外は省略されてた気がする
DXライブラリならオリジナルの描画関数作ってDrawRotaGraphなりに飛ばしてやるのがお勧め
0075名前は開発中のものです。
2009/12/08(火) 19:46:26ID:EpEGhfoBキャラクターの表示はできる?
それをドット単位で動かせる?
それができるならマップもできよ。
マップったって、結局マップチップというキャラクターを並べて表示してるだけだからね。
ドット単位で表示ずらせばいいだけ。
んでもって、画面表示されない位置のマップチップは描画しなければいい。
0076名前は開発中のものです。
2009/12/08(火) 20:11:36ID:oCon0Lhkキャラクタの表示もドット単位の移動もできています。
自分の頭の中では
1,ウィンドウサイズより一回り大きいグラフィックハンドルにマップチップを敷き詰める
↓
2,そこから必要な場所だけを切り取って表示する
という流れしか考えられません(´・ω・`)
しかしこれだと1のステップがクリアできなくてダメだし
簡単にアルゴリズムをアドバイスしていただけないでしょうか?
0077名前は開発中のものです。
2009/12/08(火) 20:19:13ID:oCon0Lhkマップチップを敷き詰めるはじめる座標を(-32-[主人公の座標.x]%32,-32-[主人公の座標.y]%32)
にしてあげて、主人公の座標から必要なマップチップの情報をウィンドウサイズより一回り大きく取り出してあげて
それを描画すればいいんですよね!!
0078名前は開発中のものです。
2009/12/08(火) 20:32:31ID:DQdomlYR0079名前は開発中のものです。
2009/12/08(火) 20:35:04ID:EpEGhfoB0080名前は開発中のものです。
2009/12/08(火) 20:39:47ID:oCon0Lhk今プログラム組んでみたら上手くいきました:)
ありがとうございました、これからもよろしくお願いします。
0081名前は開発中のものです。
2009/12/08(火) 20:40:20ID:EpEGhfoB「主人公の位置」じゃなくて「カメラの位置」で考えてね。
基本的に主人公の位置とカメラの位置は同じだけど、
マップ端に行った時は違ってくるから。
0082名前は開発中のものです。
2009/12/08(火) 20:55:01ID:8T1WO6NwなんかC++&DxLibがちょっと使えるレベルの人間にふさわしい本とかないすかね
0083名前は開発中のものです。
2009/12/08(火) 21:05:16ID:B6+BeJXVアクションゲームアルゴリズムマニアックスとか?
0084名前は開発中のものです。
2009/12/08(火) 21:09:08ID:EpEGhfoB俺だってC++とDxLibがちょっと使える程度だが、ちょっと使える程度のものを作るには不自由ないぞ。
C++&DxLibで何がしたいのか次第でしょ。
0085名前は開発中のものです。
2009/12/08(火) 21:33:24ID:8T1WO6Nw最終的にはシレンっぽいのを作りたいんだが、その前になんか根本的な部分が抜けてるような気がしたんだ
0086名前は開発中のものです。
2009/12/08(火) 21:47:15ID:trfhK022作りたい物だったらモチベーションも保ちやすいし勉強にも身が入る
わからなさ過ぎると嫌になるかもだけど
0087名前は開発中のものです。
2009/12/08(火) 21:47:25ID:B6+BeJXVほらよ
あとは作るしかない
ゲーム作りのノウハウは他人に教えてもらうのではなく経験で身につけるもの
0088名前は開発中のものです。
2009/12/08(火) 22:23:40ID:nVGvorfQプログラムの基礎を勉強したいのか、
プログラムはわかるが、ゲーム作りの基礎を勉強したいのかでまた違ってきそうだね。
ちなみに俺は独学でゲーム作りしてきたから、ゲームは作れても基礎が全然できてねぇ;;
俺も勉強しなおすかな……。
0089名前は開発中のものです。
2009/12/08(火) 23:54:13ID:JpJMUeIi読んでみるといいかもね。あとはデータ構造、基本的なアルゴリズム、
デザインパターンあたりがわかると、汎用性があるかな。
でもまあ、趣味でやるなら勉強と思ってやることはないと思うぞ。
問題を解決しようとして見つけた情報の中で、便利そうなのがあったら
その周辺を重点的に調べる、で結構いろいろできるようになる。
ところでDXライブラリって、core以外のソースは公開されていないよね?
掲示板ちょっとみたら、ソース公開に関する質問はスルーされていたので、
全て公開するかは未定ってところかな。
0090名前は開発中のものです。
2009/12/09(水) 00:17:14ID:5fGPGOQD知りたいのはアニメーションの統一的な制御法とか、膨大(になりそうな)画像やデータファイルの生成・管理法とか
この辺がうまくできなくてコードに直接埋め込んじゃってるからどんどんスパゲッティになっていってわけわからなくなるんだと思う(たぶん)
0091名前は開発中のものです。
2009/12/09(水) 00:20:33ID:q6H67G0jデータの設計や管理などの方がずっと重要
0092名前は開発中のものです。
2009/12/09(水) 00:31:54ID:oBlr8zOS今書いてるコードがスパゲッティになるかどうかは、ゲームを完成させるまで分からない。
幾つもゲームを作りながら、「この書き方だと後々こういうケースにハマって困る」というのを学んでいく
そうやって最適化されていくもんだよ
そこら辺に落ちてるゲームの作り方的な例は最初から最適化されてることが多いが、
何故そのように最適化されてるのか述べてるものはほとんどない
そういう意味も考えながらだと上達が早いと思う
0093名前は開発中のものです。
2009/12/09(水) 00:47:35ID:f8b9o6Brstlとboost使った自作のデータ管理クラスでなんとかなってるよ。
配列の番号とかいちいち覚えてられねーよwwwってことで。
ファイル名と画像なら表示されてるレイヤとか指定すれば色々操作できる仕様。
ただ、俺ゲームどころかまともに作るのすらはじめただから正解かどうかはわからん。
基底クラスのデータ管理で使ってるのは、unordered_map。
0094名前は開発中のものです。
2009/12/09(水) 01:30:17ID:+dPnel+v同じにおいを感じるッ!
ゲームの設計に多少時間をさくのがいいんじゃないかな。
シーケンス制御とか、どのクラスがデータを持つのかとか。
俺もとりあえず動くもの作ってみてあれこれ機能つけたしてくってしてたけど
ちょっと規模が大きくなるとワケワカメになってきたから
丁寧に設計してみようと勉強&作成中。
「ゲームプログラマになる前に覚えておきたい技術」って本、高いけど
その辺の要求に答えてくれてる気がする。
あ、DxLib使ってないけど、読めばより使いこなせるようになると思うよ。
0095名前は開発中のものです。
2009/12/09(水) 01:41:52ID:OFLUsKk50096名前は開発中のものです。
2009/12/09(水) 01:44:54ID:uL4RaiqG俺は使わずにやれてるし、ある程度使わずにやってみずして必要性実感できるものかね
デザパタ学んでからやるべきものかね
ある程度C++使ってから見てみると多少参考にはなるけど
0097名前は開発中のものです。
2009/12/09(水) 01:46:31ID:LrcOl5Bl0098名前は開発中のものです。
2009/12/09(水) 06:23:23ID:kFKKgCNe適当に作る
↓
設計に無理があって、どこかで詰まる
↓
作り直しになる
↓
最初よりマシになるがそれでも設計に無理があってどこかで詰まる
↓
作り直しになる。しかも作り直してる最中にまた詰まることがなんとなく分かる。
だが、具体的にどう詰まるのかは分からないし、その解決策も現スキルでは分からない。
↓
どうせまた作り直すことが分かってしまうとモチベが下がる。
↓
今のところ、この繰り返しでいずれゲームの作り方が身につくと信じて
程ほどに考えて、手を止めすぎないようにしている。
0099名前は開発中のものです。
2009/12/09(水) 06:50:15ID:aw1FDcJg途中で良い設計が思いついたり、飽きてしまうこともあるけれど、
まずはどんなミニゲームでもいいから、とりあえず完成させるべき。
昔の電子ゲーム(ゲーム&ウォッチ)みたいな単純なゲームなら
悩んだり飽きたりする前に、それこそ勢いだけで完成しちゃう場合も。
0100名前は開発中のものです。
2009/12/09(水) 08:10:26ID:cydXuseL俺の自己紹介文をなぜ書けるw
0101名前は開発中のものです。
2009/12/09(水) 13:02:55ID:zYgTW+cQ書いてみたりすると案外プログラム書けて俺スゲーと思うはず
ゲームって作りたいもののイメージが先行して
それを実現するために要求される技術が高すぎるからorzになりやすい
0102名前は開発中のものです。
2009/12/09(水) 14:56:36ID:njV6Yik+そろそろちゃんと基礎からやっとくかーとか思って言語の基礎から説明してくれてる解説サイトを見てみたら
C言語に関しては勉強する部分があんまり残ってなかった
0103名前は開発中のものです。
2009/12/09(水) 15:09:50ID:cydXuseL読んだときにニヤニヤする
0104名前は開発中のものです。
2009/12/09(水) 23:48:43ID:Wiib7oc4あ
あa
あaい
あaいi
と一文字ずつ表示させていく方法について教えて下さい
0105名前は開発中のものです。
2009/12/10(木) 00:24:34ID:qpivaZnnその文字がASCII(1バイト)文字か、そうでないか(2バイト)を関数で判断
それからstringまたはchar型の変数aに代入
→1バイト文字なら、DrawFormatString(a,%s)
→2バイト文字なら、Forループと文字幅関数を組み合わせて文字を横に表示
とかやった記憶がある。
0106名前は開発中のものです。
2009/12/10(木) 11:23:34ID:o5AOUra2新規プロジェクトからDXライブラリを使う場合
どのようにつかったらいいの?
単にプロジェクトに追加すべきファイル_VC用の内容をコピーして
新規プロジェクトで作ったフォルダーに入れただけではリンクでエラーが
でます。新規プロジェクト作成からDXライブラリを使ったコンパイルまでの
流れを易しく教えてください。
0107名前は開発中のものです。
2009/12/10(木) 11:29:59ID:hZmtje4B公式のこれはちゃんと読みながら設定した?
0108名前は開発中のものです。
2009/12/10(木) 12:20:31ID: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) で定義されています。
0109108
2009/12/10(木) 12:26:42ID:o5AOUra2単にそれを新規プロジェクトに移したいだけなんですけど、
よく分からないです・・・。
0110名前は開発中のものです。
2009/12/10(木) 12:57:31ID:1HVns5Nxプロジェクト→設定→C/C++タブ→カテゴリをコード生成にする
使用するランタイムライブラリをマルチスレッド(デバッグ)にする
(このとき左の方の設定の対象がWin32 Debugになっている場合)
それをやったら左の方の設定の対象をWin32 Releaseに変えて、
使用するランタイムライブラリをマルチスレッドにする
→OKボタンを押せばおk
0111108
2009/12/10(木) 13:01:44ID:o5AOUra2>>110
アドバイスから先程できました。
>>110さんがいってる通り、プロジェクトのプロパティは毎回
設定しなおさなきゃならないんですね。一度やったから継続
されるものだと思っていました。ありがとうございました。
今までの疑問が解決されました。
0112名前は開発中のものです。
2009/12/10(木) 23:02:01ID:XglTjGxzhttp://www.play21.jp/board/formz.cgi?action=res&resno=43733&page=&id=dixq&rln=43742
ここに同じ質問があります
0113名前は開発中のものです。
2009/12/11(金) 23:03:13ID:Iqulp5dV0114名前は開発中のものです。
2009/12/11(金) 23:42:17ID:HuvsxFxE0115108
2009/12/12(土) 00:31:17ID:E1BPSoBbChangeCallback使ったらの画像ハンドルはすべてグローバルにしなきゃならないの?
0116名前は開発中のものです。
2009/12/14(月) 00:33:25ID:8p9lCz90そいつにフルスクリーンにされた、という情報を通知してやるとか
0117名前は開発中のものです。
2009/12/14(月) 01:18:53ID:UpilfluK0118名前は開発中のものです。
2009/12/15(火) 12:51:33ID:RIHdLK0rしかしどのようにやればいいのかよくわからず困っています。
何か調整する関数などないでしょうか?
0119名前は開発中のものです。
2009/12/15(火) 13:11:08ID:CgintmXt画像更新の回数を減らすため? もしそうならフレームレート関係なく、画像更新しなきゃ済む事でしょう。
キー入力処理だけループさせて適当にSleepでもはさんでおけばいいんじゃない?
0120名前は開発中のものです。
2009/12/15(火) 14:01:22ID:RIHdLK0r0121名前は開発中のものです。
2009/12/15(火) 22:43:42ID:9aF+TrWPサウンドノベルでも画面の切り替わりであったり、
何らかのエフェクトであったり、後から60FPSで滑らかに表示させたくなるかもしれないので、
60FPSで作っておいて損はないと思うのですが。
もし60FPSにするなら、1フレーム(ループ1周)の時間を計っておき
1/60秒(16.6666...ms)になるまで待機させます。
30FPSなら1/30ですね。
しかしSleep関数は指定した時間「以上」待機してしまうので、
正確にFPSを制御したいなら、少し工夫が必要です。
大した工夫ではありませんが、前回の誤差を次回で修正するような作業が必要です。
モニタは60FPSが一般的で、裏画面描画なら、何もしなくても60FPSになります。
ですから、試してみて待機関数が正常に動作していると勘違いしがちですので、
お気をつけて
0122名前は開発中のものです。
2009/12/16(水) 07:34:00ID:nhTnsvqcカーソルの点滅とか地味に動かすところもあるのにそこだけ描き換えるのも面倒。
0123名前は開発中のものです。
2009/12/16(水) 18:27:09ID:GKpjO21V最近のPCの性能にまかせて60回更新余裕です
0124名前は開発中のものです。
2009/12/16(水) 18:44:25ID:CpLVLwh1CPU使用率とかメモリアクセス減れば電気代節約にもなるだろうし(?)
色々挑戦する分にはいいんじゃないかな。
0125名前は開発中のものです。
2009/12/16(水) 18:52:02ID:O9VqeVrK0126名前は開発中のものです。
2009/12/16(水) 19:20:23ID:zY3Wrvaf0127名前は開発中のものです。
2009/12/18(金) 18:57:42ID:1+hLha67DXライブラリのド初心者です。><
2Dアクションでキャラが歩いてる感じの表現をだしたいのですが。
どうすればいいでしょうか??
詳しいサイトを教えていただけるだけでもうれしいです><
おねがいします><
0128名前は開発中のものです。
2009/12/18(金) 19:09:02ID:B2G1gHKW0129名前は開発中のものです。
2009/12/18(金) 19:16:05ID:fEqZwGFpRPGの歩いてる感じであれば上のサイトでも書いてありますが、
2Dアクションとなると少し違うかも知れませんね。
歩いてる感じといっても、描画だけできればいいのか、
地面とのあたり判定を求めて描画するのかなどで
回答は色々変わってくると思いますが、とりあえず描画だけすればいいんですかね?
アクションゲームは初めて作るゲームとしてはとても難しいと思いますよ。
特に斜め坂、曲面大地とか作らないといけなくなると
マップ管理とかも結構面倒です。
で、描画だけすればいいのであれば、
いくつか歩行グラを読み込んでループ描画すればいいのではないでしょうか?
0130名前は開発中のものです。
2009/12/19(土) 02:45:18ID:ettFnh3/基本はRPGにしようとおもっています><
ただ、戦闘がめんをアクションみたいにしたいとおもっています。
テイルズシリーズみたいなかんじです><
RPGの要領で画像分割で挑戦してみたのですがなにかいわかんがありましたので
迷惑かもしれませんがご教授おねがいいたします><。
0131名前は開発中のものです。
2009/12/19(土) 02:46:33ID:5USgcct80132名前は開発中のものです。
2009/12/19(土) 02:50:33ID:6/6f/NLc0133名前は開発中のものです。
2009/12/19(土) 02:53:29ID:5USgcct8僕が作るのは主観視点の剣劇アクション。
山や森、遺跡を冒険するのです。
グラフィックはXBOX360くらいを目指します。
DXライブラリを使えばできますか?
0134名前は開発中のものです。
2009/12/19(土) 02:58:12ID:7KIcg3Ok0135名前は開発中のものです。
2009/12/19(土) 03:04:45ID:5USgcct80136名前は開発中のものです。
2009/12/19(土) 03:14:03ID:7KIcg3OkDXライブラリは3Dも扱えるが2D向けなのは違いない
http://www.libsdl.org/index.php
DXライブラリの代わりにこっちでやれ
0137名前は開発中のものです。
2009/12/19(土) 10:41:46ID:bRqniW+f>グラフィックはXBOX360くらいを目指します。
DXライブラリではできないのでDirectXを使いましょう。
0138名前は開発中のものです。
2009/12/19(土) 10:44:35ID:aeC7U3rq0139名前は開発中のものです。
2009/12/19(土) 11:10:32ID:5eLz8Bt10140名前は開発中のものです。
2009/12/19(土) 11:22:56ID:Mkh38zVU【UDK】Unreal Development kit ver.1【無料】
http://pc11.2ch.net/test/read.cgi/gamedev/1257586779/l50
0141名前は開発中のものです。
2009/12/19(土) 14:48:51ID:EBmq0OgADXライブラリで作る場合と比べてどれくらいながくなるのか
0142名前は開発中のものです。
2009/12/19(土) 14:54:22ID:bRqniW+f人にもよるし作るモノにもよるので何とも言えない。
DirectXで作る場合はDXライブラリに相当するライブラリを自作することになるのでそれだけの期間が必要になる。
0143名前は開発中のものです。
2009/12/19(土) 15:13:02ID:R8+wJcL7DirectXでやってるやつは自分で自前のライブラリぐらい作ってるだろ
0144名前は開発中のものです。
2009/12/19(土) 15:27:22ID:jOWfP0B6ゲーム製作時間の見当ぐらいだいたいつくだろ。
0145名前は開発中のものです。
2009/12/19(土) 15:34:09ID:FRLZB9mkhttp://pc11.2ch.net/test/read.cgi/gamedev/1219363848/
0146名前は開発中のものです。
2009/12/19(土) 23:55:31ID:WQuVN0Mv今年のHSPコンテストでテイスズオブに近い戦闘システム再現した作品あるぞ
機能の低いHSPでさえ出来るのだからDXLibでもやれると思ってもいいだろう
画面分割に関してはDXLibでは良くわからない、自分はSlimDXで開発しているので
SlimDXはDirectXとほぼ同じようなプログラミングなのでデバイスやビューポート調整して簡単に画面分割できる
0147名前は開発中のものです。
2009/12/20(日) 01:17:43ID:sO/QX8MT普通のRPGの戦闘画面よりかはむずかしいのでしょうか
少し、HSPのコンテストのほうをしらべてみようとおもいます><
ありがとうございなした><
0148名前は開発中のものです。
2009/12/20(日) 01:35:28ID:bOWZLmUi0149名前は開発中のものです。
2009/12/20(日) 01:41:14ID:sO/QX8MTだとおもった。
0150名前は開発中のものです。
2009/12/20(日) 02:40:03ID:yjWmlZscどれ?
0151名前は開発中のものです。
2009/12/20(日) 02:44:10ID:8HD3DPTi2Dのみか3Dを使うのか分からないけど、戦闘画面作るだけなら難しくない
RPGのHP,MPパラメータにしても2Dスプライト重ねるだけでいいし、画面分割の必要性も無い
しかし、RMB再現するって言ったらリアルタイム衝突判定とか移動のAIも必要になってくる
こっちの方が難しいかもね、かなり頭脳巡らせないと
0152名前は開発中のものです。
2009/12/20(日) 02:48:23ID:AKlh0ZUEぷるんぷるん
0153名前は開発中のものです。
2009/12/20(日) 03:07:29ID:yjWmlZsc再生数多過ぎわろたw
0154名前は開発中のものです。
2009/12/20(日) 08:59:33ID:k8v3yd7d天才だな
0155名前は開発中のものです。
2009/12/20(日) 09:37:34ID:fyZALbEaワロタw
0156名前は開発中のものです。
2009/12/20(日) 10:53:07ID:pbr01wLc各種設定処理を作るのにDXライブラリが便利なのはわかるが
キモの部分もDXライブラリなのかなぁ。
0157名前は開発中のものです。
2009/12/20(日) 11:06:38ID:MWGoeVwx0158名前は開発中のものです。
2009/12/20(日) 11:11:04ID:7mE2lHZoアイデアは面白いけどDXライブラリだからどうというようなものでは全くない
0159名前は開発中のものです。
2009/12/20(日) 11:15:43ID:k8v3yd7d0160名前は開発中のものです。
2009/12/20(日) 11:16:35ID:7mE2lHZo画像を指定した位置に表示することさえできれば何使ったっていいわけだ
0161名前は開発中のものです。
2009/12/20(日) 11:37:05ID:8HD3DPTiニコ動ランキングってバトーキン?
MMDのモデルを取り込んで、動かしたりしてかなり有名になったみたいな
どんなゲーム作るつもりなんだろう
0162名前は開発中のものです。
2009/12/20(日) 11:59:57ID:+z1/NVyp何一人話違う方向行ってんだよw 152を見れ
しかし俺もバトーキンさんの動画も見た。マジで、どこまで出来る神ライブラリとおもた
0163名前は開発中のものです。
2009/12/20(日) 12:05:51ID:cTP9K/Ao実質管理人さんが一人で開発サポートしてるのが心配。
これ管理人さんが投げたらそれで終わりだろ。しかもサポートは大変そうなのに無料だし。
0164名前は開発中のものです。
2009/12/20(日) 12:24:05ID:pbr01wLc管理人さんが投げ出すのが心配なら、投げ出さないように
自分ができる事をやりましょう。
0165名前は開発中のものです。
2009/12/20(日) 12:31:14ID:VW9EJyuIそのへんは市販のライブラリやソフトでも同じだと思うよ。
ゲーム用のツールや3DCGソフトで言うと、Hexagonとか
TrueSpaceとかの例もある。
HUMANが作ってたDigitalLocaとかもそうだし。
>>152
その動画で「ヨーグルトきのこ健康法―ケフィアの奇跡」を
購入した人がいるの見て、ちょっとウケた。
これ普通に動かして遊んでても結構楽しい。
良く分からんけど、DirectXかnVidiaのサンプルであった
マウスの動きで波紋が起こるサンプルみたいな事を
やってるのかな。
でもDXLibってピクセルシェーダー使えないし、テクスチャ
領域を直接いじれなかったような気がするけど
1マス=1ポリゴン(四角)でバネのマスにしてるのかな。
0166名前は開発中のものです。
2009/12/20(日) 12:33:05ID:+z1/NVyp確かにたった一人のやる気次第ってのはある意味怖いね。
知名度が高くなるほどプレッシャー的なものも増えるだろうし
0167名前は開発中のものです。
2009/12/20(日) 12:39:12ID:k8v3yd7d0168名前は開発中のものです。
2009/12/20(日) 13:04:38ID:W38UtI0sゲームつくってたんだけどfpsを60にすると目に見えて
アニメーションが劣化するんですよね。
これってある程度防ぐ方法ってありますか?
0169名前は開発中のものです。
2009/12/20(日) 13:15:55ID:p2KLc6SL0170名前は開発中のものです。
2009/12/20(日) 13:43:03ID:hw7zG3Hd2Dか3Dかによってもやり方が変わってくるけど、アニメーションを調整するしかないかな。
0171名前は開発中のものです。
2009/12/20(日) 14:39:39ID:bQQ2+att何フレームで更新してんだよww
1フレームごとアニメーション更新してれば60もあれば十分すぎるだろ
0172名前は開発中のものです。
2009/12/20(日) 15:02:55ID:W38UtI0s気持ちは痛いほど分かります。ただ、辛口の他人がやる場合、取っても
もらえないんですよ。
>>170
やはりコマ数ですか.
>>171
レミングスみたいに並んでアニメーション
させて動かしてると、明らかにぎこちないんですよね。処理落ちかもね?
0173名前は開発中のものです。
2009/12/20(日) 15:46:47ID:bQQ2+attためしにひとつをアニメーションさせてみて滑らかなら、大量にしたことによる処理落ちじゃないかと思う
>>170のとおり、コマ調整したほうがいいと思う
0174名前は開発中のものです。
2009/12/20(日) 15:53:03ID:pbr01wLc2DだとしてもFPSが違ってもゲームスピードは一律になるような処理にしてるのか、とか
状況によって違うと思うんだが。
0175名前は開発中のものです。
2009/12/20(日) 15:56:54ID:O/sMnLk/てやってるんじゃあるまいなww
0176名前は開発中のものです。
2009/12/20(日) 16:42:20ID:W38UtI0s2Dです。
>>175
そんなことしたら、操作できなくなるので分かると思います・・・。
うーん、うまく動かないですね。人の作ったプログラムは分からないこと
が多いので今回でDXライブラリから卒業しようを思います。これからは
友人と同じように自分で一から組み立てます。
レスしてくれた人ありがとう。
0177名前は開発中のものです。
2009/12/20(日) 16:49:25ID:pbr01wLc1フレーム1コマ、1秒間に70コマもの超なめらかアニメーションさせてるって事?
0178名前は開発中のものです。
2009/12/20(日) 16:50:10ID:0xWmRFl60179名前は開発中のものです。
2009/12/20(日) 16:55:09ID:fyZALbEa0180名前は開発中のものです。
2009/12/20(日) 17:03:38ID:pbr01wLc見た目は60FPSだけど。
0181名前は開発中のものです。
2009/12/20(日) 17:38:57ID:O/sMnLk/0182名前は開発中のものです。
2009/12/20(日) 18:01:04ID:bQQ2+attそれくらいでDXライブから離れるのかwww
なんか解決方法あるだろうに
自作でDXいじれるなら、今回のことくらい解決できそうなんだがw
0183名前は開発中のものです。
2009/12/20(日) 18:33:44ID:e25g0Lsq>レミングスみたいに並んでアニメーション
どう考えても処理落ちです
本当にありがとうございました
70FPSに戻してみろ 同じようにカクカクだから
0184名前は開発中のものです。
2009/12/20(日) 18:41:50ID:e25g0Lsqttp://msdn.microsoft.com/ja-jp/academic/cc998627.aspx
>>176
でもDXライブラリに関係無いことをDXライブラリのせいにしてる時点で
こいつにゲーム作らせるの無理だろww
0185名前は開発中のものです。
2009/12/20(日) 19:09:59ID:k8v3yd7d0186名前は開発中のものです。
2009/12/20(日) 19:48:19ID:pJOeWZ3s>>176
には頭にきました。
自分が技術力無い事をライブラリのせいにしないでください。
> WaitTimer(14);
なんでこれ書いたら操作不能になるの?
70FPSから60FPSにすると目に見えて劣化する?
ある程度経験がある人から見たら「は?何言ってんの?」と思うでしょうね。
2chにまともなDXライブラリのスレはここだけ。
制作者さんが見てもおかしくない。
そしてDXライブラリ愛用者が集まるこの場所で、自分の技術力無いこと棚にあげて
ライブラリのせいにしないでほしいですね。
0187名前は開発中のものです。
2009/12/20(日) 21:38:21ID:sO/QX8MTありがとうございます。
RMBというのがよくわかりませんが><
とりあえずいまめざしているRPGはおいといて、
簡単なアクションか格闘ゲームをつくってみたいとおもいます><
DXライブラリのアクションについてくわしくかかれているサイトがありましたら
おしえてほしいです><
あと、ゲーム製作にくわしいかたは、初めはどのようにして知識をつけられたのでしょうか??
ご教授おねがいいてします><
長文すいませんでした><
0188名前は開発中のものです。
2009/12/20(日) 21:40:59ID:n56np6ws0189名前は開発中のものです。
2009/12/20(日) 22:01:17ID:bQQ2+attいろんなジャンルの簡単なゲームを一通り作成しておくとノウハウが身につくよ。困ったときにも応用きく
でも、自分が作りたいものをいきなり作っても大丈夫なくらい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
0190名前は開発中のものです。
2009/12/20(日) 22:03:59ID:pJOeWZ3s作者さんの解説ページって書いてるけど、
それ作者とは関係ないですよ。
URL見たら全然違うのがわかるはず
0191名前は開発中のものです。
2009/12/20(日) 22:36:02ID:8HD3DPTiスペル間違いですLMBでした
テイルズオブシリーズの戦闘システム、リニアモーションバトルのこと
ゲーム作りにしても何にしても、これといった学習方法は無いが
まずは、ウィンドウ作成して絵を表示出きる様にする、そのあとは
背景を表示する、背景をスクロールさせる
背景の上にキャラを表示する、キャラを移動させる、
背景とキャラの移動・衝突判定を出きる様にする(特にRPG)
ここまでが基本じゃないのかな
この後は、攻撃・弾丸の衝突判定とか、敵キャラの移動アクションとか難しいところに入る
自分は格闘ゲーは作らない上得意ではありません、今取り組んでるのはTPSアクションシューティングです
0192名前は開発中のものです。
2009/12/20(日) 22:39:25ID:e25g0Lsq格ゲー並にドット打たないといけない
素材さえ用意できれば処理は難しくない
0193名前は開発中のものです。
2009/12/20(日) 23:21:20ID:bQQ2+att少し大きめのサイズで3Dで作ってアニメ調にしたものを連続bmpにした後、リサイズで小さくするとまるでドット絵みたいになった
素材とかそれでいけるんじゃね?
0194名前は開発中のものです。
2009/12/20(日) 23:56:20ID:IrmYQKgg大して手間は変わらん気がする
0195名前は開発中のものです。
2009/12/20(日) 23:58:08ID:IrmYQKgg0196名前は開発中のものです。
2009/12/21(月) 00:10:43ID:xUGg2iMxファルコムのキャラの作り方がその方法だったかな
3Dモデリングやモーションツールって大抵はbmp吐き出せるものなの?
うちはそういうの自作しちゃったけどね
今時ドット打ちは効率悪いし古いからね
2Dだと解像度高ければベクタグラフィック使う手段もある
0197名前は開発中のものです。
2009/12/21(月) 03:05:35ID:NTt49tZZ再生数すっごいことなってんなw
PSDなどのレイヤー使えるファイルと連携できると・・・!
0198名前は開発中のものです。
2009/12/21(月) 11:11:16ID:s+xzEFRJモーションつける必要もあるけど、αチャンネルがないと
作業しにくいので、メタセコとかのモデラーでなく
統合型ソフトでレンダリングしないと厳しいかも。
レンダリングした画像を、下絵にしてキャラクター用の
ドット打つのだと餓狼とか…。
そのまま使うのだとSFCのドンキーコングとかDSのASHとか
色々あるけれど、ブラー表現とか極端なデフォルメとかの
一部のアニメ的な表現は3Dでは非常にやりにくいし、
モノによっては素でドット打った方が早い部分はあるかも。
具体的に言えば、メタルスラッグのキャラみたいなのは
3Dではやりにくい。大幅に崩れる表情や徐々に溶ける服、
燃えていく様を別々にモデリングしないといけない。
リアル寄りでもそのまま下手に取り込めば、ビキニ空手や
キャプテンサワダになる罠もあるのでケースバイケースかも。
0199名前は開発中のものです。
2009/12/21(月) 11:15:05ID:veAyd7SF超直感的なインターフェイスでポーズ付け出来るし。
0200名前は開発中のものです。
2009/12/21(月) 11:31:04ID:FwaQXbtM3Dやベクターグラフィックではいかにも素人って感じのゲームしか作れんよ
なんかもっさりだったり安っぽかったり
特に3Dアニメーションは市販レベルまで行けてるのを見たことが無い
それに比べてドット絵ならきちんと描ければプロレベルの見た目にかなり近づける
ドット絵自体が数年前の技術ということもあるが、情報を省いて見る人に補完させてるっていうのも大きい
それにドット絵はああ見えて3D背景やエフェクトなど何でも合うしな
問題は高度なドット絵を描くのは適当な3Dを作るよりずっと難しいということだが
0201名前は開発中のものです。
2009/12/21(月) 12:18:32ID:HsTzlVaN俺はヘタなドット絵ぽちぽちやってるが……。
0202名前は開発中のものです。
2009/12/21(月) 13:05:00ID:veAyd7SF0203名前は開発中のものです。
2009/12/21(月) 13:58:40ID:M5BnvTSu0204名前は開発中のものです。
2009/12/21(月) 16:34:49ID:veAyd7SF最終的には自分で描くにしても動作確認用を用意するのも結構手間。
2、4方向に歩くパターンとか棒人間でも大変。
0205名前は開発中のものです。
2009/12/21(月) 16:39:52ID:RkZW1gWl個人的利用だろうしね
0206名前は開発中のものです。
2009/12/21(月) 16:44:08ID:af7rlxGV0207名前は開発中のものです。
2009/12/21(月) 17:42:09ID:veAyd7SFthx
すぐに手頃なのがみつかった。
0208名前は開発中のものです。
2009/12/21(月) 17:59:37ID:CiiXw/fRこんなかんじにフォルダにあるデータ中で
画像データだけを取りだすのってどうやればいいの?
DXライブラリの範囲外だったらすみません
0209名前は開発中のものです。
2009/12/21(月) 19:19:18ID:19KYRCRmいろんなやり方あるけど”画像データだけ取り出す”っていうのなら、それはDXlibでやることじゃないな
C++でやることだ。
描画はDXlibでいいと思うけど
0210名前は開発中のものです。
2009/12/21(月) 19:25:06ID:yYVJ9W7OLoadSoftImage関数じゃないかな?
こういう画像処理系のソフトはDXライブラリ使わなくてもいいような気はするけど・・・
0211名前は開発中のものです。
2009/12/21(月) 19:30:15ID:nO3Vcezpフォルダの中にあるexeやtxtを無視してjpgやbmpファイルだけを
リストに出したいとかそういう意味じゃないか?
0212名前は開発中のものです。
2009/12/21(月) 19:55:49ID:yYVJ9W7Oあー、確かにそう読み取れないこともないですね・・・
普通にWin32APIでファイル列挙してファイル名から拡張子を調べればいいんじゃないでしょうか。
http://www.geocities.jp/ky_webid/win32c/054.html
0213名前は開発中のものです。
2009/12/21(月) 20:11:41ID:RyggKrWP212でやってみる
みんなありがとう!
0214名前は開発中のものです。
2009/12/22(火) 01:35:27ID:BnLx0tn2bccの人っていないのかな
0215名前は開発中のものです。
2009/12/22(火) 01:58:24ID:ftdGCNqI0216名前は開発中のものです。
2009/12/22(火) 02:12:25ID:YWMPh29jツクール以外でも使えるかどうか、ちゃんと確認しとけよー?
ツクール用として配布してる作者さんは、大抵ツクール以外の用途を想定していないw
0217名前は開発中のものです。
2009/12/22(火) 03:03:48ID:66Ma/Sl8いや、動作確認用だから問題ないだろ。
>>214
俺はBCC使ってるよ。
けどそんな事聞いてどうするの。
0218名前は開発中のものです。
2009/12/22(火) 03:28:41ID:YWMPh29jああそうか、仮グラか。最初のレス見落としてた。
そういえば、大学時代に、自分のゲームで使ったグラフィックとかをサークルの共有財産として使いまわそうぜ!なんて話があったなあ。
今でも残っているのだろうか。
0219名前は開発中のものです。
2009/12/22(火) 03:36:44ID:D2L5xjzm0220名前は開発中のものです。
2009/12/22(火) 07:39:18ID:y9OyEOP5bccを選択する理由が思いつかないんだけど?
0221名前は開発中のものです。
2009/12/22(火) 12:44:09ID:LdA+UfBO軽い
0222名前は開発中のものです。
2009/12/22(火) 13:08:31ID:hFovd5oO0223名前は開発中のものです。
2009/12/22(火) 13:28:32ID:ftdGCNqI0224名前は開発中のものです。
2009/12/22(火) 13:37:26ID:BnLx0tn2インクルードに変えるとか、ライブラリに変えるとか、あのへん。
俺もVC++にしたいんだがBccDevの方がシンプルな気がして。
元々bcc入れてたっていうのもあるんだけど。
あとVC++でビルドした実行ファイルの場合、.NETのライブラリがないと動かないとか言うし
簡単そうってことでbcc使ってる
0225名前は開発中のものです。
2009/12/22(火) 14:03:12ID:y9OyEOP5>VC++で開発する場合ってDXライブラリ使うための設定ってアレ毎回する必要ある?
一度だけでOK。
>あとVC++でビルドした実行ファイルの場合、.NETのライブラリがないと動かないとか言うし
動くよ。
ハッキリ言ってbcc使うメリットなんて一つも無いよ。
0226名前は開発中のものです。
2009/12/22(火) 14:13:19ID:BnLx0tn2そうなのかぁ。やっぱVC++覚えるかぁ。
公式テキストみたいの買いに行ってみるわ。
0227名前は開発中のものです。
2009/12/22(火) 14:37:42ID:y9OyEOP5設定方法はDXライブラリの公式ページに書いてあるし、デバッグ方法も「VisualC++2008 デバッグ」とかでググれば出てくるし、本は必要ないよ。
0228名前は開発中のものです。
2009/12/22(火) 14:39:27ID:wghOwS9H移行するのがめんどくせぇからしてないけど。
まぁ、VC++使ってるだけで優位に立ってるつもりの人はどうかと思うが。
0229名前は開発中のものです。
2009/12/22(火) 14:58:45ID:BnLx0tn2あ必要ないの?
うん確かにBCCのときも公式ページに沿ったんだけど。
よく分からないけどbccでコンパイルしてできた実行ファイルとVC++でできた実行ファイルって違うんだよね?
VC++の方は色々と専用のライブラリ的なものがくっついてできているとかいないとか。
だから配布とかするとき公式テキストでもあったら便利かと思った
0230名前は開発中のものです。
2009/12/22(火) 15:12:03ID:y9OyEOP5違うね。
>VC++の方は色々と専用のライブラリ的なものがくっついてできているとかいないとか。
基本的には実行ファイルだけだよ。
まあ、外部DLLを使えばそれも配布は必要になるけど、それはBCCも同じことだし。
0231名前は開発中のものです。
2009/12/22(火) 15:29:45ID:BnLx0tn2あそうなんだ。じゃあVC++覚えてみるわ。
実行ファイル配布先の環境に何かがインストールされてないといけないとか
そのへんでだいぶ勘違いしてたみたい
0232名前は開発中のものです。
2009/12/22(火) 15:45:28ID:YWMPh29jソースファイルのところに一緒に(ディレクトリは分けるが)置いてるなあ。
昔はそんなんだったよね? 違ったっけ?
0233名前は開発中のものです。
2009/12/22(火) 16:07:10ID:wWx/Ra4Y何となくVCに設定するの嫌なんだ
0234名前は開発中のものです。
2009/12/22(火) 22:09:39ID:VsbYtjtsちなみに、BCCも商用の奴つかえばかなりイイぞ。コンパイル速度は相変わらずだし実行速度も申し分ない
商用の奴は体験版をインストールしてごにょごにょすれば・・・コンパイラだけ使えるw
0235名前は開発中のものです。
2009/12/22(火) 22:16:05ID:1IE45+220236名前は開発中のものです。
2009/12/22(火) 22:37:27ID:a/+2LiV5これが一番スマートだと思う
0237名前は開発中のものです。
2009/12/22(火) 22:49:29ID:hFovd5oO0238名前は開発中のものです。
2009/12/22(火) 23:28:53ID:3WelviR/関係がわからんともいう
0239名前は開発中のものです。
2009/12/23(水) 00:04:30ID:xX+wX9Yb昔フラッシュで体験版がごにょごにょすれば普通に製品版と変わらず使えるのを思い出した
0240名前は開発中のものです。
2009/12/23(水) 00:38:07ID:xX+wX9Yb0241名前は開発中のものです。
2009/12/23(水) 00:45:06ID:HaiZ4W1URTS作ってる。まだ地形の当たり判定までだが
てかフリーでモーション付きxファイル出力できるマトモなソフトが無いのがちょっとあれだが・・
0242名前は開発中のものです。
2009/12/23(水) 00:57:29ID:BjZ8BYusそれはDLLを含めたりしてるんじゃないのか・・。
同じ生成物を作っているんだという事を考えれば自分の言ってることが変だと気づくはず
>>226
本なんか買う必要ある??
とりあえず最初はプロジェクト作って実行出来りゃそれでOKでしょ。
複雑な操作を知りたいなら慣れてからでOK
>>238
VisualStudioっていうのはマイクロソフトが提供しているコンパイラ群のこと。
Cだけじゃなく、いっぱいある。公式ページ行けばわかる。
VisualC++ってのはその中のC++のコンパイラのこと
ってか皆なぜVC++毛嫌いする?
プロジェクトとか設定とかを理解しようとしていないだけじゃないの?
0243名前は開発中のものです。
2009/12/23(水) 01:11:58ID:hCvbiDzC3Dで動かそうと思って試したら、自分の使ってる
3DCGソフトのx形式の書き出しがどれも酷かったので、
とりあえずSDKをDLしてコンバータ作ってる。
x形式は方言が酷すぎて、ソフトによって内容が全然違うから
あまり管理人さんに負担をかけるわけにもいかないし。
市販ソフトでも、アニメーションセットつきで
DxLib(とDxLibModelViewer)で正常に読めるx形式を
書き出せるものはないような気が…。
vmdで個別に読ませるのが一番良さそう。
ゲーム作る前に泥沼に嵌っている予感。
0244名前は開発中のものです。
2009/12/23(水) 01:16:20ID:jpOdJMlm別に毛嫌いしてるわけじゃないけど、VC++でDXライブラリやっている期間より、
コマンドプロンプトでちまちまコンソール作ってコンパイル実行してた期間の方が長いから、
なんかすっごい複雑というか、その意味で敷居高く感じんるんだ。
実際Cの本なんかで「この本が終わったらVC++などに進むのもよい」なんて書いてあるぐらいだから。
あくまでもコレ俺の場合だけど。
とりあえず猫と猫と性格の合う人間は変化を嫌うのだ〜。
VC++が便利だとは思うよ。
0245名前は開発中のものです。
2009/12/23(水) 01:22:30ID:jpOdJMlmこの「5.」の部分がいちいちめんどいというかなんというか。
0246名前は開発中のものです。
2009/12/23(水) 01:51:39ID:BjZ8BYusプロジェクトなんか毎日作るものじゃあるまいし。
みんなそんなことで嫌がるのか・・
0247名前は開発中のものです。
2009/12/23(水) 02:06:45ID:1fJhOR2pVCに限らず新しい環境を導入すれば。
慣れてしまったらそういう手間は忘れてしまって何が難しいんだよ一瞬だろwwとか思うけど。
0248名前は開発中のものです。
2009/12/23(水) 02:09:56ID:heof+fKUBCCってデバッグどうやってんの?
>>245
スケルトンプロジェクト作ってないの?
毎回、新規プロジェクト作成してたらめんどくさいだろうね。
0249名前は開発中のものです。
2009/12/23(水) 02:10:36ID:cX0ZOQul入力補完も便利だし、折りたたみとかスマートインデントとかも地味に効果的
0250名前は開発中のものです。
2009/12/23(水) 03:00:34ID:heof+fKU・最適化性能が低い。
・準拠している言語仕様が古い。
・WindowsXP以降のOSに正式対応していない。
VC++の良いところ
・コンパイラは最新の言語仕様に準拠し、最適化性能も高い。
・エディタが高機能。(検索、入力補間など)
・デバッガが高機能。(ステップ実行、呼び出し履歴ウィンドウ、ビジュアライザ、ウォッチウィンドウなど)
・ツール類も開発し易い。
・.NET Frameworkにも対応している。
個人的に思うのはこんなところかな。
無理にVC++使えとは言わないけど、BCCは性能とか開発効率とか考えるとありえないな。
0251名前は開発中のものです。
2009/12/23(水) 03:39:37ID:6YqiOT7Tここで投げ出す人多数
0252名前は開発中のものです。
2009/12/23(水) 07:43:42ID:xMKEyCQy0253名前は開発中のものです。
2009/12/23(水) 08:42:52ID:d0BDOfBc・コンパイラは最新の言語仕様に準拠し・・・てない、最適化性能もウンコ
・エディタが高機能だけどバグだらけ。(特に入力補間など)
・デバッガが高機能。だけどかゆいところに手が届かない
・.NET Frameworkにも対応している。でも.NETの実装がウンコすぎて涙目
こんなイメージが残ってるんじゃないかな
0254名前は開発中のものです。
2009/12/23(水) 09:57:39ID:ThPVjJNa0255名前は開発中のものです。
2009/12/23(水) 10:25:23ID:/5h6oh+60256名前は開発中のものです。
2009/12/23(水) 10:37:25ID:HaiZ4W1U禿同
0257名前は開発中のものです。
2009/12/23(水) 10:39:31ID:heof+fKUVC++6は1998年の製品なので賞味期限がとっくに切れてます。
>>250に書いた「VC++の良いところ」はVC++2005以降ですよ。
もちろんVC++6で有名だったハングアップするバグも修正されてるしね。
0258名前は開発中のものです。
2009/12/23(水) 11:33:39ID:iaZSWOqVしばらくすると何がどうなってんのか分からなくなる
0259名前は開発中のものです。
2009/12/23(水) 11:38:59ID:cX0ZOQul0260名前は開発中のものです。
2009/12/23(水) 11:41:54ID:heof+fKUC?C++?
C#は少なそうだけど。
0261名前は開発中のものです。
2009/12/23(水) 11:54:34ID:bZ4aXTTz0262名前は開発中のものです。
2009/12/23(水) 12:00:42ID:WkIAVwxs0263名前は開発中のものです。
2009/12/23(水) 12:45:25ID:lGLXc/wwバグは実行画面見たらどこがバグってるか大体分かる。
0264名前は開発中のものです。
2009/12/23(水) 13:14:16ID:cX0ZOQul0265名前は開発中のものです。
2009/12/23(水) 14:20:01ID:jpOdJMlmデバッガについては確かにリッチから程遠い。BCCディベロッパーはコンパイラのみよりはもちろんマシだけど。
でもそういやVC++だってコマンドラインからコンパイルとかってできるんでしょ?
vcc ファイル名 とかって入力するのかな。C#とかだったらvsc ファイル名とかだった気が。
0266名前は開発中のものです。
2009/12/23(水) 14:22:57ID:jpOdJMlm>>248
プロジェクト作るのは必須ではないの?
スケルトンプロジェクトとかすまんイミフだ。
ね、なんか分かるでしょ、コマンドライン一本槍で来た奴にとってVC++がハードル高く感じるの。
このへんよ、このへん。
0267名前は開発中のものです。
2009/12/23(水) 14:22:59ID:cX0ZOQul0268名前は開発中のものです。
2009/12/23(水) 14:24:50ID:jpOdJMlmあ、clか。ていってもコマンドラインからやるのって皆まずないんでしょ?
0269名前は開発中のものです。
2009/12/23(水) 14:26:36ID:jpOdJMlm0270名前は開発中のものです。
2009/12/23(水) 14:52:52ID:heof+fKUスケルトンプロジェクト=全てのプロジェクトの雛形となるプロジェクト
新規プロジェクトを作成する場合はこのプロジェクトをコピーして使う。
つまり設定が必要なのはスケルトンプロジェクトだけになる。
>>268
めったに使わないし、cl.exeの存在すら知らない人も多いよ。
PC初心者なら分からないでもないけど、プログラマーがIDEのハードル高いってどうよ?
0271名前は開発中のものです。
2009/12/23(水) 15:02:17ID:cX0ZOQul0272名前は開発中のものです。
2009/12/23(水) 15:26:42ID:jpOdJMlmそうか一度設定したプロジェクトをコピーするのか。
そうすればめんどい設定も毎回しないですむと。
とか言いつつコピーの仕方も地味に聞いちゃえ。
あれでしょ、コピーって名前をつけて保存しなおすってことでしょ?
IDEのインターフェースは分かりやすく作られていると思うわけ。
ただ、なんかやっぱ複雑に感じるわ。操作の仕方とかじゃなくて概念的なもの。
上の人も書いてるけどテンプレートのことなのかもしれないよなあ。
とにかくVC++使うけど。だって使いたかったわけだし。
0273名前は開発中のものです。
2009/12/23(水) 15:37:36ID:bPAuHFVQマイドキュメント→VisualStudio2008→Projectにあるtestフォルダを丸々コピペして
使うだけだと思う
スケルトンナンタラって呼び名は知らなかったけど
0274名前は開発中のものです。
2009/12/23(水) 15:48:05ID:1fJhOR2p他人のサンプルを起動出来ずに1年以上放置していたのもいい思い出
0275名前は開発中のものです。
2009/12/23(水) 16:40:20ID:LLW+qrLJ「俺が考えた作業手順」とか「俺が考えたフレームワーク」を押し付けてくるので、
その文化になじむまで苦労するってのはよくある。
0276名前は開発中のものです。
2009/12/23(水) 17:09:49ID:heof+fKUすみません、「スケルトンプロジェクト」が思ったより一般的な呼び方じゃなかったようですorz..
>>273の言うとおり、単純にフォルダごとコピーして使うだけです。
「コピーの仕方」とか言われてもコピペして、プロジェクトファイルのリネームくらいしかしてないなあ。
ちなみにVisualStudioにはこれをIDEに登録できる「プロジェクト テンプレート」という機能があるので興味があったら調べてみて。
0277名前は開発中のものです。
2009/12/23(水) 20:41:02ID:L6ohnb5y一発操作といえる範囲で、サクラエディタ(などの外部エディタ)でソースファイルを開く操作はできる?
0278名前は開発中のものです。
2009/12/23(水) 20:48:41ID:jpOdJMlmWinAPIやろうとしたらウィンドウ出すにもスゲェ苦戦した
勘違いかもしれんけど、なんか何種類もコードの書き方あるでしょ
それまで「bcc32 ファイル名」でコンソールやってた俺にとって「ハァ?」の連続。
それがDXライブラリならあんなにも簡単にウィンドウが出てキャラまで動いたし。
皆はDXライブラリ使ってどういうゲームを作ったことある?どのへんまで行った?
最近ニコニコのプログラミング系の動画にハマってるんだが(東方のRPGなど)、
なんかマザー2みたいなのできるかな〜とか思ってる俺は楽観すぎるんだろうか?
JAVAでドラクエそっくりのを作ったっていう動画もアップされてたけど、あれはまた特別な才能なのかな?
0279名前は開発中のものです。
2009/12/23(水) 20:52:28ID:bMEj20MZ0280名前は開発中のものです。
2009/12/23(水) 21:05:07ID:heof+fKUできる。
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/771exttool/exttool.html
>>278
理論上はPS2ぐらいまでのゲームは作れる。
あとは本人の技術とやる気次第だと思う。
初心者に優しい設計なのはDXライブラリの良いところだね。
0281名前は開発中のものです。
2009/12/23(水) 21:05:39ID:cX0ZOQulまあでもウィンドウの生成と描画の仕方覚えてしまえばあとはUpdate-Draw繰り返すだけなのはDxLibもWinAPIも同じだ
0282名前は開発中のものです。
2009/12/23(水) 21:22:53ID:ThPVjJNa大作を作らないというのもあるが
0283名前は開発中のものです。
2009/12/23(水) 21:47:42ID:dpgkgKsGわかるわかる。
俺もWindows環境でのプログラムなんてちんぷんかんぷんだったが
DXライブラリに出会った途端にゲーム作れるようになった。
まぁ、細々と作ってるだけだからしょぼいけど、来週のコミケで出すぜ。
0284名前は開発中のものです。
2009/12/23(水) 22:01:52ID:1fJhOR2pとか言われてやってみようとしたけどサイトによってオマジナイの構造が全然違って
検索してみつけたコードをオマジナイに合成出来なかったのはイイ思い出。
0285名前は開発中のものです。
2009/12/23(水) 22:36:20ID:iaZSWOqV半端なC言語の知識から始めるにはDXライブラリが神に思えた
0286名前は開発中のものです。
2009/12/23(水) 22:47:56ID:jpOdJMlm実際Cの外部ライブラリってそんなに色々と種類あるものなのかな?
Cの流行とともに色々なライブラリが開発されたみたいな話は読んだけど
コンソール作っているぶんには標準ライブラリで足りる俺だったし
ま、何であれDXライブラリはしっくり来るというか自然なんだと思う
乱数とかさ。Cのrandなんて乱数とは呼べませんね、DXを知った今
0287名前は開発中のものです。
2009/12/23(水) 23:01:58ID:HteJU5UQなんというかあまりにも井の中の蛙すぎるんだが。
演算各種から圧縮、グラフィック、サウンド、通信、暗号化、
あらゆる目的に応じて大量にあるり、
自分一人で全て使おうと思ったら人生が終わるレベルだぞ。
0288名前は開発中のものです。
2009/12/23(水) 23:03:13ID:HteJU5UQあり
0289名前は開発中のものです。
2009/12/23(水) 23:06:03ID:cX0ZOQul0290名前は開発中のものです。
2009/12/23(水) 23:06:54ID:jpOdJMlmおお早いレス、ナイスタイミング。
そうなのですか。いやあ標準ライブラリすら使い切れないうちにDXを知ってしまったもので。
>>自分一人で全て使おうと思ったら人生が終わるレベルだぞ。
ええ、それはそう思うんですが、ライブラリはもちろん自作したりしませんが、
せめてRPGで使うようなキャラ画を自分で書きたいと思っています。
フリーで検索してみても皆どのへんから借りているのかピンと来なかったですし。
やっぱりキャラ画ぐらい自分で描こうっていう人が多いのかな?
0291名前は開発中のものです。
2009/12/23(水) 23:11:18ID:HteJU5UQ0292名前は開発中のものです。
2009/12/23(水) 23:11:56ID:bPAuHFVQフリーの暗号化ライブラリでいいの無い?
0293名前は開発中のものです。
2009/12/23(水) 23:18:07ID:HteJU5UQ0294名前は開発中のものです。
2009/12/23(水) 23:23:19ID:jpOdJMlm確かに。乱数を使ってみた、とか言い訳してみる。
0295名前は開発中のものです。
2009/12/23(水) 23:49:10ID:1fJhOR2p0296名前は開発中のものです。
2009/12/24(木) 01:10:15ID:wnCzv5Vo0297名前は開発中のものです。
2009/12/24(木) 12:52:53ID:F0zYuTaJそういうのは他のスレで聞いた方いいよ。
0298名前は開発中のものです。
2009/12/24(木) 14:06:29ID:44g9Q8NVというか画像と読み込んでくれない。
どうすればいい?
0299名前は開発中のものです。
2009/12/24(木) 14:13:43ID:8putv25m状況不明でソースないので良く分からんけど、
ライブラリへのパスが通ってて、LoadGraphScreen()だけが
使えないのであれば、画像のパスの指定を間違ってるんじゃ
ないだろうか。
新旧のプロジェクトで、ディレクトリ構造変わってるとか。
0300名前は開発中のものです。
2009/12/24(木) 15:25:46ID:44g9Q8NVディレクトリ構造は変わってませんでした。
念のため
http://homepage2.nifty.com/natupaji/DxLib/dxuse_vc2008express.html
ここに書いてある事全部やり直したんだが駄目でした。
新プロジェクトでDXライブラリを使うには何か特別な設定って必要?
もう自分の頭だけでは解決できませんorz
0301名前は開発中のものです。
2009/12/24(木) 15:44:18ID:eAwQjQv4LoadGraphScreenだけが使えないのかが気になるところ
もしそうなら、マイドキュメントのVisual Studio 2008→Projects→自分のつくったプロジェクト名→自分の作ったプロジェクト名ってところにvcprojって拡張子のがあると思うんだがそこに画像おけば読み込まれると思うんだが
試してみてくれ
0302名前は開発中のものです。
2009/12/24(木) 15:45:17ID:eAwQjQv4書き方微妙ですまん
0303名前は開発中のものです。
2009/12/24(木) 16:00:28ID:44g9Q8NVあとLoadGraphScreenだけが使えない訳ではなく、画像を読み込む関数が使えませんでした。
0304名前は開発中のものです。
2009/12/24(木) 16:05:57ID:eAwQjQv4Dxlib自体使えないかそれともって意味だったから
とにかくよかったな がんばれよ
0305名前は開発中のものです。
2009/12/24(木) 19:54:35ID:xY2Wh0F8> できる。
ありがとう
0306名前は開発中のものです。
2009/12/25(金) 01:32:03ID:uFkH7xmWいいのかな?あと、25にちとかでるけど
0307名前は開発中のものです。
2009/12/25(金) 02:14:02ID:hL2XqgMI0308名前は開発中のものです。
2009/12/25(金) 02:43:02ID:uFkH7xmW150万とかきいたけど。
あんしんした
ありがとう^^
0309名前は開発中のものです。
2009/12/25(金) 02:49:19ID:Pj/9DURL0310名前は開発中のものです。
2009/12/25(金) 03:09:34ID:hL2XqgMI0311名前は開発中のものです。
2009/12/25(金) 03:28:02ID:uFkH7xmWなんだ?
ちょっとこわくなってきたじゃないか;;
\(^o^)/
0312名前は開発中のものです。
2009/12/25(金) 04:20:36ID:DqIGjvQ60313名前は開発中のものです。
2009/12/25(金) 07:07:34ID:ZSVKFocnhttp://dixq.net/vcpp.html
0314名前は開発中のものです。
2009/12/25(金) 10:06:25ID:EP1DxHaQ0315名前は開発中のものです。
2009/12/25(金) 10:20:07ID:L3IT6oO50316名前は開発中のものです。
2009/12/25(金) 14:15:30ID:2d0wlUJ7「じゃあそれで」
悪かったな
0317名前は開発中のものです。
2009/12/25(金) 14:35:04ID:DqIGjvQ6毎回断るのもアレだから2回に1回くらい安く済みそうなときは行く
0318名前は開発中のものです。
2009/12/25(金) 17:25:10ID:ZhGjQlkxもし組み込めるならお勧めソフトを教えていただきたいでござる
0319名前は開発中のものです。
2009/12/25(金) 18:27:52ID:EP1DxHaQ.xも対応して複数のアニメーション組み込めるでござる
0320名前は開発中のものです。
2009/12/25(金) 18:32:34ID:ZhGjQlkxメタセコイアでモデルを作成
そのファイルをRocdebone2でモーション作成
って流れでいいのだと思いますが、メタセコイアのほうでボーン作らないともしかして動かせられない?
Cyberdeliaってツールだとメタセコイアで適当に作ったファイルで.xファイル出力できるけど、DirectXVierwerでエラーが出る・・・
Rocdebone2のインターフェースがごちゃごちゃしててわかりづらいから、ちょっと勉強してみる・・・
0321名前は開発中のものです。
2009/12/25(金) 18:33:38ID:V52nYqVj>もし組み込めるならお勧めソフトを教えていただきたいでござる
有料でも良いなら「Maya」「Softimage」「3ds Max」のいずれか。
無料が良いなら「メタセコイア + (Keynote or Toystudio)」「Blender」「Mod Tool(商用利用は不可)」のいずれか。
0322名前は開発中のものです。
2009/12/25(金) 18:52:38ID:ZhGjQlkxいまToystudioさわってみましたが、使いやすくてびっくり
だけど出力ファイルがDXライブラリに対応してるのはxファイルだけとは・・・
8 名前:名前は開発中のものです。[] 投稿日:2009/12/05(土) 12:30:22 ID:CQOWfBMw
ToyStudioでアニメーション作って、MQOで出力したんだけど、
ものすごい膨大な量のMQOデータが出てきたんだけど・・・
アニメーションを作るたびに毎回こんなのが出てくるの?
そもそもこういう出力結果をゲーム内でアニメとして使えるの?
まさにこれと同じような感じなんだが、xファイルとしては出力できないのでしょうか?
0323名前は開発中のものです。
2009/12/25(金) 18:53:45ID:3T809Z1UX形式の仕様としては、1つのファイルに複数のアニメーションを
組み込めるんだけど、実際に書き出し機能が標準であるソフトは
市販とフリー併せても、RokDeBoneとTOYSTUDIO、エルフレイナ
ぐらいしかないかも。
BlenderやSoftImage(とmodtool)用のプラグインでは公開して
くれている人がいるけど、XNA用とかに特化したデータを
書き出すのでDXライブラリでは読めなかったと思う。
(これは各ソフトやDXライブラリの問題ではなく、そもそも
x形式の自由度が高過ぎるので互換性が低いことが原因)。
RokDeBoneとかで書き出したxデータが、DXライブラリで
読めるかは試してないので読めるかもしれないけど
keynoteやRokDeBoneで、ある程度のモーション作るのは
モーションレイヤーやミキサーないので結構大変な気がする。
けっきょく、DXライブラリで使える複数アニメーションつき
xファイル形式が欲しい場合はツールかプラグインを自作する
しかないんじゃないかな。
でもモデルデータと、モーションは分けている方が何かと
融通は利くと思うよ。修正後の差し替えとかの点でも。
0324名前は開発中のものです。
2009/12/25(金) 19:03:16ID:EP1DxHaQRocdebone2でもボーン入れる作業はできるよ
こっちは線形のボーン。詳しくはおちゃっこ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/
0325名前は開発中のものです。
2009/12/25(金) 19:05:23ID:EP1DxHaQ逆転の発想
0326名前は開発中のものです。
2009/12/25(金) 19:08:48ID:V52nYqVjDxLibModelViewerで確認してみた?
>>322
ToyStudioには無償版と有償版(5000円)があって、残念ながらXファイルをエクスポートできるのは有償版だけなんですよね・・・
まだ仮対応らしいけどMMDのPMDを使うか、FBXからMV1に変換して使うとかも検討してみて。
0327名前は開発中のものです。
2009/12/25(金) 19:09:24ID:ZhGjQlkx>>344
モーションひとつ作るのだけで大変そうですねえ・・・挫折しそうだorz
エルフレイナというやつ、まだチェックしてなかったので見てみました
使いやすそうですけど、やはりフリーだとxファイル出力ができないのですね・・・
>>322での出力もできないというのも、シェア版にしないといけないみたいですね
RokDeBoneが現状自分の最後の望みみたいなので、ボーンの作り方等読んでがんばってみます。
親切にレスありがとうございます(つA`)
>>325
3Dゲーム以外も作ってみたいのでDXライブラリがんばってみますw
0328名前は開発中のものです。
2009/12/25(金) 20:26:29ID:V52nYqVjRokDeBone2付属サンプルの「glow.sig」を編集してXファイルに出力。
これをDirectXVierwer、DxLibModelViewerで読み込んでアニメーション表示OK。
MSサンプルの「dude.fbx」をDxLibModelViewerで読み込んでXファイルに出力。
これをDirectXVierwer、DxLibModelViewerで読み込んでアニメーション表示OK。
しかし、これをRokDeBone2で読み込むと原因不明のエラー。
0329名前は開発中のものです。
2009/12/25(金) 21:00:26ID:2weq8SiY擬似3Dを今まさに作ってる俺には手が届かない話題だな。
0330名前は開発中のものです。
2009/12/25(金) 22:10:40ID:EP1DxHaQ0331名前は開発中のものです。
2009/12/26(土) 02:21:18ID:h7BLtdtNhttp://www.caligari.com/downloads.html
古いバージョンがよければ、一番下にSerialNumberが書いてある。
機能が多くて安かったが、MSの介入があってこのザマだ。
Xファイルのインポートエクスポートがある。
0332328
2009/12/26(土) 13:42:22ID:UrPNO9E9ModTool7.5でFBXを出力、これをDxLibModelViewerで読み込むと強制終了する。
公式のFBXViewerでは正常にアニメーション表示できているのでDxLibModelViewerのバグかもしれないが、ModTool7.5のエクスポータにも色々と問題がありそう。
メタセコイア(Keynote)でFBXを出力、これをDxLibModelViewerで読み込むとエラー。
メタセコイア(Keynote)でXファイルを出力、これをDxLibModelViewerでアニメーション表示OK。
PMD(モデルデータ)をDxLibModelViewerで表示OK。
しかし、Xファイル出力するとデータが壊れることがある。MV1出力は問題なし。
VMD(モーションデータ)をDxLibModelViewerでアニメーション表示OKだが、データによっては読み込めない場合もある。
エラーメッセージも表示されないし、今のところ原因不明。
まだまだ不安定ではあるもののMMDが結構良さげな印象だった。
0333名前は開発中のものです。
2009/12/26(土) 13:44:47ID:R/WYZk+C0334名前は開発中のものです。
2009/12/26(土) 16:52:38ID:IeIeiG58今学習に使っているのは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){ 内で
処理できるようにしたいのですが・・・。
0335名前は開発中のものです。
2009/12/26(土) 17:01:21ID:EuBBUaJestatic before_time;
if(before_time - now_time() > 指定病数){
before_time = now_time();
IdouHose();
}
}
0336名前は開発中のものです。
2009/12/26(土) 17:03:21ID:EuBBUaJe0337名前は開発中のものです。
2009/12/26(土) 17:15:36ID:IeIeiG58move(){を中にまた使うということですか?
nowtimeの初期値はGetNowCountなどの取得で合っているでしょうか。
IdouHose(); とは何のことでしょうか。
質問ばかりですいません。
現在改造しながら勉強しているのですが、ここがどうしてもできないもので…。
0338名前は開発中のものです。
2009/12/26(土) 17:24:29ID:vrlJW6940339名前は開発中のものです。
2009/12/26(土) 17:29:32ID:EuBBUaJeGetNowCountが最大値超えた場合とか考慮必要。
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); //子機移動
}
0340名前は開発中のものです。
2009/12/26(土) 17:29:32ID:IeIeiG58次は改造かな、と思ったのですが…
0341名前は開発中のものです。
2009/12/26(土) 17:32:22ID:IeIeiG58これでできました!ありがとうございます!!
10時からやっていたので本当にうれしいです。
本当にありがとうございました。
0342名前は開発中のものです。
2009/12/26(土) 17:54:19ID:E9OJHMuxEASY3DとかSeleneのほうがいいのかな?
ここで聞くのは野暮だと思うけど、2DゲームでDXライブラリを使って良かったので、
3D機能についての現状を知りたい。
0343名前は開発中のものです。
2009/12/26(土) 18:16:38ID:t2+el/7eもう解決してるけどそういう「何フレーム化に一度」の処理は、1Fごとに++するTimeみたいな変数を作って、
if (Time%60==0)みたいに使ったほうが良い
特にGetNowCountは音ゲー作るかFPS計測する時など1ミリ秒のズレも許されない時以外はあまり使うべきではない
0344名前は開発中のものです。
2009/12/26(土) 20:29:54ID:R/WYZk+C俺
DXlib 3D使ったことない
Selene 使ったことない
Easy3D HSP版だけ使った
HSPで3Dは楽だし結構いろんなことできるしよかったよ
ただ演算多くなる場合は断然cが速すぎ
0345名前は開発中のものです。
2009/12/26(土) 22:19:58ID:UrPNO9E9基本的な機能は揃っているし十分3Dゲームを作れるよ。
ニコ動でDXライブラリを使って作られた3Dゲームが公開されているので一度見てみるといいよ。
しかし、Seleneと比較するとやや機能不足な点もある。
シェーダー、ポストエフェクト、GUI、物理エンジン、スプライト(パーティクル)など。
特にシェーダーが使えないというのはレンダリングの品質に大きく差が出る。(PS3とPS2ぐらい違う)
逆に言えばDXライブラリの方が扱いが簡単なので、3D初心者ならこっちの方が向いてると思う。
0346名前は開発中のものです。
2009/12/26(土) 23:51:39ID:FO5uRkla無いものは自前で実装すりゃいいけど、その頻度が増えると
DXライブラリで無理して作ってる感じになる
ならSeleneとか他の3Dが充実してるライブラリ使ったほうがいい
もしくはDirectX直
どの程度のものを作るかによるってことだな
>>332
FBXならBlenderが良いよ
X、FBX,、PMD+VMDの話題は前にも見た気がする
0347名前は開発中のものです。
2009/12/27(日) 00:12:09ID:kPK58SfxそこらへんがDXライブラリじゃ駄目といわれる所以だよね
出来なくても無いけど2Dほど簡単ではないし、それならちょっと頑張って他のライブラリ使ったほうがずっと天井が高い
0348名前は開発中のものです。
2009/12/27(日) 00:28:01ID:MBrvOJgDつい最近対応したばかりだから仕方ない話だといえばそれまでなんだけど
0349332
2009/12/27(日) 01:02:13ID:bc5V7EbG>X、FBX,、PMD+VMDの話題は前にも見た気がする
情報ありがとう。
前スレ見てなかったけど、Blenderの出力したFBXは問題ないようですね。
ただUIが独特で個人的には使いにくかったので・・・
あとToyStudioの出力したXファイルも問題ないみたいなのでこっちも良いかも。
0350346
2009/12/27(日) 01:27:46ID:GGjOngErつっても、あくまで現時点ね
>>348が言うように、3D対応されたばかりで機能が足らないのは仕方ない
個人的には期待してる
PMD化するのは手間だけど
PMD+VMDは3Dを扱う敷居がぐっと下がる
モーションが連番で別ファイルになってるのも、使ってみればかなり便利
最終的にはMV1にしてもいいしね
3D機能の充実は時間かかるだろうけど、作者にはがんばってもらいたい
0351名前は開発中のものです。
2009/12/27(日) 13:06:29ID:2vbWXkV1高機能で簡単、というのはただ単に高機能というだけよりよっぽど作るのが難しい。
DXライブラリはお手軽なところが受けてるだろうから、あまり機能追加しすぎて複雑にならないことを祈る。
0352名前は開発中のものです。
2009/12/27(日) 14:00:34ID:uhSQPV5X同程度のライブラリでDrakGDKを使ってれば良いと思う。
C言語の初級からでも扱える3Dライブラリで難易度が低い
これで3Dの技術を身に付けて、
2年後くらいにDXライブラリ3Dを始めるのもよい
3Dは表面化されない小さいトラブルが多い。
そして、わけのわからん専門用語も出てくるし....
0353名前は開発中のものです。
2009/12/27(日) 17:13:24ID:z8YG6h4bある程度のレベルのものは創れそうだよ。
少なくとも64以上のものは簡単に作れるだろうし、努力しだいではPS2レベルのも出来るんだろう。
本格的に目指すのでない限りは更新速度や質問できる環境などを考えると、
DXライブラリでぜんぜんいいと思った。
まだ3Dモデルを動かすとこまでしかやってないけどね。
0354名前は開発中のものです。
2009/12/27(日) 17:59:53ID:yZAsy6xSしかし管理人さんって何者なんだろうな
0355名前は開発中のものです。
2009/12/27(日) 18:49:06ID:8drOPqxx0356名前は開発中のものです。
2009/12/27(日) 18:51:42ID:A9L3SGsA0357名前は開発中のものです。
2009/12/27(日) 18:56:35ID:8drOPqxxまで入力したら入力補間で命令がズラっと出るという夢をみた。
いや、まぁ自分で改造すればいいのかもしれんけど…
0358名前は開発中のものです。
2009/12/27(日) 19:16:58ID:z8YG6h4b0359名前は開発中のものです。
2009/12/27(日) 20:07:35ID:M0Cw0Z6WDxLib::
0360名前は開発中のものです。
2009/12/27(日) 20:23:19ID:LDM1qCXB0361名前は開発中のものです。
2009/12/27(日) 20:32:01ID:jKh1EiXg変数は全てグローバル変数で管理して
各ファンクションもサブルーチンとしてしか認識していなかったが
普通に作れた
0362名前は開発中のものです。
2009/12/27(日) 20:37:49ID:bc5V7EbG「ブラー」はモデルを半透明にして重ねて描画じゃダメ?
「鏡」は3Dに限らず描画先を指定できないと思うので無理そう。
>>360
C言語の知識だけで十分だよ。
まあ、14歳でも使えるらしいので。
0363名前は開発中のものです。
2009/12/27(日) 21:54:18ID:mBfODTUHゲーム完成させたらソースコードが12000行とかになって悶絶した
クラス使わないなら関数化は必須に近い・・・
VCの左画面様様だわ
0364名前は開発中のものです。
2009/12/27(日) 22:06:33ID:8drOPqxxアクセス制限が邪魔なら全部publicでもいいからクラス使った方が
変数名とか関数名の管理が楽だぞ
0365名前は開発中のものです。
2009/12/28(月) 01:07:57ID:3r1xx2ry>ブラーとか鏡
今試してみたら3Dでも、SetDrawScreen()でテクスチャにも
レンダリングできたよ。管理人さんが昨日直してくれたバージョンだと
DrawExtendGraph()でも表示できた。
ずらしたり拡大縮小すれば、DirectXの本とかに良く載っているAAや
被写界深度の表現も出来そうな感じ。
できないのはテクスチャをロックしてピクセル単位でいじること
じゃないかな。つまりブラーや鏡とかは可能だけどレンダリングした
画像にポスト処理とかはできない…と思う。
ただこのへんの処理やソートとかは、DirectX直接いじる時と同じで
自分で実装しないといけないぽいので、その意味では既出のように
低レベル(ハード寄り)なので2D機能よりは敷居高い部分あるかも。
0366名前は開発中のものです。
2009/12/28(月) 03:34:23ID:9l/NWr9Wこのエラーは何が原因なんでしょうか?
LINK : fatal error LNK1104:DxLib_VC2005用.exe' を開くことができません。
0367名前は開発中のものです。
2009/12/28(月) 03:42:52ID:/F5FiFDi0368名前は開発中のものです。
2009/12/28(月) 07:59:40ID:TSFI1pm5DXライブラリのエラーではない、以上。
変な場所で実行してるんじゃなければ、
exeファイルのパーミッション確認しとけ。
0369名前は開発中のものです。
2009/12/28(月) 10:27:15ID:9l/NWr9W0370名前は開発中のものです。
2009/12/28(月) 11:44:34ID:Us5hvkZh14歳より歳いってて、Cは授業で少しくらいの自分がいまいち理解できないとちょっと悲しくなるタイトルだと思うんだ。
0371名前は開発中のものです。
2009/12/28(月) 11:45:38ID:dBTW62Xp0372名前は開発中のものです。
2009/12/28(月) 11:49:28ID:jpOTUZve0373名前は開発中のものです。
2009/12/28(月) 11:57:25ID:yuCthtY8SetDrawScreen関数は任意のテクスチャを描画先に指定できないと思うんですがやり方があるんでしょうか?
0374名前は開発中のものです。
2009/12/28(月) 12:43:57ID:u/qep0of0375名前は開発中のものです。
2009/12/28(月) 12:58:13ID:3EFD++9F色々面倒になってグローバルも積極的に使うようにしたがな
0376名前は開発中のものです。
2009/12/28(月) 12:59:10ID:3EFD++9F×グローバル関数
○グローバル変数
まあどうでもいいことだけど
0377名前は開発中のものです。
2009/12/28(月) 13:16:08ID:jpOTUZve0378名前は開発中のものです。
2009/12/28(月) 13:46:53ID:yuCthtY8掲示板(2009/12/27(Sun) 13:35)に投稿されているバージョンで試してみたけど確かに挙動が違う。
ウィンドウの拡縮が反映されてないね。
0379名前は開発中のものです。
2009/12/28(月) 14:29:28ID:vxFbJ2Ow0380名前は開発中のものです。
2009/12/28(月) 14:41:43ID:TSFI1pm5どこから突っ込めばいいんだい?
0381名前は開発中のものです。
2009/12/28(月) 14:49:03ID:YIPGDrjp0382名前は開発中のものです。
2009/12/28(月) 14:54:14ID:jpOTUZve0383名前は開発中のものです。
2009/12/28(月) 15:42:28ID:0XgsQP9Xとりあえずマジレスするが
まずスレチな
次にelseな
elseを使わないと想定していないエラーが起きる場合もあるから
else ifって形にするべき
0384名前は開発中のものです。
2009/12/28(月) 15:43:55ID:vxFbJ2Owelse ifのところのelseをぬいてもおなじように動いたので、
いるのかなと思って
C言語のすれにいきます。
0385名前は開発中のものです。
2009/12/28(月) 15:46:54ID:vxFbJ2Owすっきりしました^^
0386名前は開発中のものです。
2009/12/28(月) 16:46:29ID:EmomTfPw0387365
2009/12/28(月) 17:40:27ID:3r1xx2ry試したことはないけどpng等から作ったテクスチャとか
「任意なテクスチャ」には無理だと思う。
たぶんテクスチャにレンダリングしたい時は、描画可能な
テクスチャを専用で作らないといけないはず。
具体的には、SetDrawValidAlphaChannelGraphCreateFlag()等で
指定してから、MakeGraph()で作ったテクスチャになら
レンダリングできる。
あとはそのテクスチャを普通にDrawGraph()とかで描画できるけど
UVやビルボードに使えるかはまだ試してないので分からない。
このへんを含めてリファレンスには載っていない関数も
かなり多いので、Dxlibのソースや公式掲示板の過去ログ
とか見ると使い方も含めていろいろ発見あるかも。
0388373
2009/12/28(月) 18:48:57ID:yuCthtY8ありがとうございます。
SetDrawScreen関数はMakeGraph関数で作成したグラフィックも指定できるんですね。
リファレンスに書かれていない機能だったとは・・・
0389名前は開発中のものです。
2009/12/28(月) 18:52:49ID:dBTW62Xpなんで隠すんだろうな
0390名前は開発中のものです。
2009/12/29(火) 00:11:37ID:MjH8+OO8「ゲームプログラマになる前に覚えておきたい技術」のシングルトンが変
普通シングルトンといったらpublic static getInstance()内部で初回呼び出し時に
インスタンスを作成するのに、別にインスタンス作成のためのpublic static create()というメソッドがある。
そして、クラス外部のどこかでcreate()を呼び出してインスタンスを作成している。
二回createしたら落ちるだとさ。つまり複数インスタンスをcreateするコードをかけてしまう。
これでは、実行時に落ちるとはいえ、コンパイル時にエラーを検出できない。
たとえば、複数のプログラマが、コードの一部分を分担してそれぞれ作っているときに
それぞれがcreate()していると、コードを分けている段階では問題なくても
一つにマージしたときにエラーが発生するというシナリオが起きてしまう。
0391名前は開発中のものです。
2009/12/29(火) 00:18:26ID:IYgt3GZP0392名前は開発中のものです。
2009/12/29(火) 01:19:32ID:0CS2MVBj教育担当者ですらその程度
だからあそこまで落ちぶれた
0393名前は開発中のものです。
2009/12/29(火) 02:24:27ID:RokfBydottp://ameblo.jp/woooh-p/entry-10031871696.html
2回create()を呼び出すと落ちるのは問題だが
初期化関数を別に用意したほうがいい場合もある
0394名前は開発中のものです。
2009/12/29(火) 10:12:58ID:Mul0eZVk0395名前は開発中のものです。
2009/12/29(火) 10:14:09ID:qD3DEd6e0396名前は開発中のものです。
2009/12/29(火) 10:31:45ID:Mul0eZVkグローバル変数だと意識して使うのは勝手だけどさ
0397名前は開発中のものです。
2009/12/29(火) 11:41:51ID:4TKwhtv10398名前は開発中のものです。
2009/12/29(火) 12:33:29ID:MJuE+QA30399名前は開発中のものです。
2009/12/29(火) 12:33:57ID:IYgt3GZP0400名前は開発中のものです。
2009/12/30(水) 18:16:44ID:UY2bjnZL↑でフォントを変更すると異常に重くなる。
これ以外で文字も目立たせる方法ってあります?
たくさんの色つかってる背景なので、文字が目立たなくて見にくい
0401名前は開発中のものです。
2009/12/30(水) 18:19:27ID:61sxYcJT0402名前は開発中のものです。
2010/01/01(金) 10:45:01ID:OYP4V88L{}のつながりがわかるじゃないか。
bccのときはこめんとひっつでした。
ただぎょうがわかればいいな〜〜
0403名前は開発中のものです。
2010/01/01(金) 10:49:31ID:usKzGBmk0404名前は開発中のものです。
2010/01/01(金) 10:52:44ID:tpzydI5S0405名前は開発中のものです。
2010/01/01(金) 12:36:09ID:WC0TdB7Oメニューの[ツール]->[オプション]->[テキストエディタ]->[C/C++]->[全般]
で行番号をチェック
0406名前は開発中のものです。
2010/01/01(金) 13:08:58ID:/td8CeQEそれはお前のインデントが悪い
0407名前は開発中のものです。
2010/01/01(金) 15:11:34ID:7pzjYUfBそれにVC#はガベジなんちゃらというので急に重くなるそうじゃないか
アクションとかシューティングに向くの?
0408名前は開発中のものです。
2010/01/01(金) 15:26:26ID:rtNA4Eqo0409名前は開発中のものです。
2010/01/01(金) 16:19:43ID:oXGgPpta.NETのガベージコレクションは優秀だから重くなることは無いよ
Xbox360では多少難あるけどね
実行速度遅くて困るなんてことは今の時代のPCスペックじゃ有り得ないそ
Javaのゲームも余裕で動く時代だし
アクション、シューティングもネットブックで動かせたよ
0410名前は開発中のものです。
2010/01/01(金) 16:32:52ID:i5316gGW0411名前は開発中のものです。
2010/01/01(金) 16:44:58ID:usKzGBmkそんなカツカツの高負荷のゲーム作るんだったらそもそもDXライブラリなんか使うべきじゃないしな
それはともかく>>403は単にIDEの出来だけを言ったつもりだった
0412名前は開発中のものです。
2010/01/01(金) 16:48:57ID:qgsN6nSc0413名前は開発中のものです。
2010/01/01(金) 17:46:25ID:+lDteCCNまず
・設計を改める
削れる処理はないか。
もっと速い処理はないか。 特に算術演算はコンパイラでさえ最適化しきれない「なにがやりてーんだタココラ」って効率の悪いコードになりがち。
セオリーから外れてないか。 ウェイトを「カウントアップ」でやろうとしてないか。
などを見直し、それでもダメだ!1ヨクトセカンドでも遅れるのは許されぬ!ってとき
ハードウェアとダチ公になる
のだ。
遅れるってのは結局「OSのスリープに頼っているから」である。
OSのスリープはもちろんOSがやることなので「今は特に眠くないです。」といったらスリープしてもらえない。
そこをハードウェアとダチトモコレクションすることで、強制的にスリープするのだ。
0414名前は開発中のものです。
2010/01/01(金) 17:52:47ID:+lDteCCN気絶などのステータスもある。何のモーションのとき何が何でキャンセルできるのか
そういうことも常に演算する対象だが、これを
if(cancell_OK == 1)
とかやってるやつは基本がなってない。
char cancell_OK, cancell_NG, cancell_only_special・・・・・・・
などと延々必要になるではないか。
ステータス管理の変数は1つにまとめろ。それは可能である。
というふうに、効率の悪いコードになっているのを改めることでだいぶ良くなる。
0415名前は開発中のものです。
2010/01/01(金) 18:19:25ID:Xn7CcDBAへぇ〜どうなるの 40文字以内で教えてください
0416名前は開発中のものです。
2010/01/01(金) 18:20:21ID:ulJ3MFDLこれについて教えて下さい
0417名前は開発中のものです。
2010/01/01(金) 18:20:50ID:+lDteCCN分かるだろ。の
0418名前は開発中のものです。
2010/01/01(金) 18:22:58ID:qgsN6nSccancell…
ステータスはビット演算でやってもいいが可読性が著しく低いから、
boolの配列作って0〜nの数字をそれぞれステータス名でenumしてる
スパゲッティどころか脳髄の如く絡まってるコード持って自慢げにメモリ使用量が〜〜とか言ってる奴いるとぶん殴りたくなる
というかぶん殴る
0419名前は開発中のものです。
2010/01/01(金) 18:23:47ID:+lDteCCN信じられないことに、いまだに良く見るんだが
for(i=0, i < During; i++)
のこと。逆も然り。
for(i=During; i !=0; i--)
のような
これ数えてる間、CPUがずっとそれに占有されるだろ
これじゃウェイト、スリープの意味がない。
0420名前は開発中のものです。
2010/01/01(金) 18:25:49ID:ulJ3MFDLこれ駄目なの?普通に使ってた
代わりにどう書けばいいの?
0421名前は開発中のものです。
2010/01/01(金) 18:27:56ID:+lDteCCN「何もしないんだから、その間他の処理をさせよう」
ってのが基本だ。また、そうでないとウェイトしてる間他の何の処理もできないから
極端に言えば画面が停止することになる。
普通は、OS越しに駆動するゲームだったらOSに用意されるスリープ命令を使う。
OSがない組み込みなどで動かすゲームなら、割り込みを使う。
0422名前は開発中のものです。
2010/01/01(金) 18:38:45ID:ulJ3MFDL0423名前は開発中のものです。
2010/01/01(金) 19:16:43ID:CHW7ms0X0424名前は開発中のものです。
2010/01/01(金) 19:24:26ID:Xn7CcDBA#define CANCEL_OK 0x00000001
,,,
if (stat & CANCEL_OK)
...
else if (stat & CANCEL_NG)
...
とか書くのかな
>boolの配列作って0〜nの数字をそれぞれステータス名でenumしてる
みたいなほうが好きだ
ただ例にあげてるとおりに格闘ゲームだとするとキャラクターの1フレームごとの変数の数が増えるのをきらうのはわかる
0425名前は開発中のものです。
2010/01/01(金) 19:28:11ID:DuVCrQzJGBAとかMSXとか古いゲーム機の時のことでしょ
懐かしいな
0426名前は開発中のものです。
2010/01/01(金) 19:28:36ID:+lDteCCN例えば「1時間後に働けよ」というのがスリープの考え方。
「じゃあその1時間何をするか」。
1時間、ずーっと1,2,3,4,5,6,7,8,・・・・と声に出して数え上げるとする。
これじゃ、なんか用事があっても何も出来ない。
「じゃあ本でも読むか」となれば、別の処理(本を読んで知識を得る)が出来る。
どっちやっててもシステム時間として1時間は過ぎるが
片方は「実質的に意味のあることを何もしてないのにパワーだけ食う」
片方は「実質的に何もしないんだから別のことをする」
どっちが効率的か分かるだろう
0427名前は開発中のものです。
2010/01/01(金) 19:31:29ID:+lDteCCNfor(i=0; i < During; i++){
Plus += Exactly;
}
ではなく、
if(During == FuckingAss){
Plus += Exactly;
Plus += Exactly;
Plus += Exactly;
Plus += Exactly;
Plus += Exactly;
Plus += Exactly;
}
などとしたりすることがある。
基本的にコッチのほうが速いからだ。
CPUとコンパイラにもよるが。
0428名前は開発中のものです。
2010/01/01(金) 19:32:53ID:ulJ3MFDLへー
0429名前は開発中のものです。
2010/01/01(金) 19:35:16ID:ulJ3MFDL大体何回までのループなら>>427の↓のパターンで書いてもいいの?
0430名前は開発中のものです。
2010/01/01(金) 19:37:18ID:+lDteCCNforループではなく、こういうふうな展開したループもどきが使われることも多い。
難点は、見た目素人っぽいこと
それ以外は何してるか分かりやすくていいのだが
「こっちのほうが速いよ」ってことをなかなか認めてもらえないのが難といえば難
これを、デッドラインまで繰り返す
デッドラインが決まっているということはおおよそのアタリがつくし、
そんなに長いループにもならない。なってはいけない。
0431名前は開発中のものです。
2010/01/01(金) 19:42:28ID:+lDteCCN「もっと軽くしたい」ってときの最終手段なので
根本から遅いのであれば設計を見直したほうがいいよ
0432名前は開発中のものです。
2010/01/01(金) 19:44:49ID:Xn7CcDBAじゃあWindowsのDXライブラリで
たとえば1フレーム50ミリ秒にするのにSleepを使わない最適なメインループはどういうの
公式のサンプルがいいのなら「それ」といってくれればいいです
0433名前は開発中のものです。
2010/01/01(金) 19:46:30ID:qgsN6nSc0434名前は開発中のものです。
2010/01/01(金) 19:48:17ID:ulJ3MFDLこれ具体的にどんな感じで書けばいいの?
0435名前は開発中のものです。
2010/01/01(金) 19:50:56ID:+lDteCCN例えばPowerPCはタイマユニットを持っているので
これに値を入れてカウントさせる。アンダーフローと同時に割り込みが入る。
その割り込みでタスクを駆動させる。
こういうハード寄りもいいとこのタイマ管理ってのはアプリで使うもんじゃないというし、
まあそれもそうだろうが実現する場合これが一番いいのだ。
ハードウェアのタイマクロック計上はタスクじゃないので、一切影響を及ぼさない。
普通OSのスリープは多かれ少なかれCPUのパワーを食うが
俺のやるタイマは一切食わない。割り込み処理のオーバーヘッドは微々たるもの。
0436名前は開発中のものです。
2010/01/01(金) 19:52:10ID:ulJ3MFDL全然わからんからサンプルソースで説明しておくれ
0437名前は開発中のものです。
2010/01/01(金) 19:54:51ID:OvIEzR2yDXライブラリのスレでPowerPCwwww
面白いヤツだなお前
0438名前は開発中のものです。
2010/01/01(金) 20:05:29ID:+lDteCCNサンプルといっても、やりたい事を記した関数しかないのだがw
割り込みはソフトウェアじゃない。
割り込みは、ベクタ方式の場合ベクタベースからオフセットしたところにプログラムカウンタが来るだけだから
別にソースで表すもんじゃない。
また、PowerPCならベクタじゃない。
0439名前は開発中のものです。
2010/01/01(金) 20:07:18ID:rctl5BXb0440名前は開発中のものです。
2010/01/01(金) 20:08:35ID:rctl5BXb俺も飲んでるがなww
0441名前は開発中のものです。
2010/01/01(金) 20:10:31ID:+lDteCCN普通あんまり使わないウォッチドッグタイマ
どうしても更新したいのに処理が終わらなかったとき
これで強制的に更新したりできる
たまにはハード寄りのオブジェクトを作ってみても面白い
0442名前は開発中のものです。
2010/01/01(金) 20:42:23ID:WC0TdB7Oここは主にDXライブラリやそれに関する話をするスレなので
DXライブラリに全く関係ないPowerPCの話はやめてほしい
あとゲームではあまり意味の無い、
>427のような時期尚早な最適化を進めるのはどうかと思う
今のVC++の無償版には最適化機能が付いているし
0443名前は開発中のものです。
2010/01/01(金) 20:50:31ID:+lDteCCN0444名前は開発中のものです。
2010/01/01(金) 22:16:35ID:yLIIIbHt横レスだが、たぶんこんなかんじじゃないの
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は役に立たないかな?使ったことないけど
0445名前は開発中のものです。
2010/01/01(金) 22:41:12ID:qgsN6nSc意図してたのはちょっと違った
enum StatusSet{
JUMP,
WALK,
DASH,
ATTACK,
};
bool stat[5];
if (stat[JUMP]) { 〜〜 }
という。
#まあjumpとかwalkは色々やるべきなのでintで管理すべきだが……
0446名前は開発中のものです。
2010/01/01(金) 22:49:37ID:ulJ3MFDLありがとん
0447名前は開発中のものです。
2010/01/01(金) 23:18:29ID:4nYhycH70448名前は開発中のものです。
2010/01/01(金) 23:28:38ID:/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のようなロートルな話は意味がないと思う。
0449名前は開発中のものです。
2010/01/01(金) 23:30:56ID:+lDteCCNlogとビットシフトでは10秒も差がある。
0450名前は開発中のものです。
2010/01/01(金) 23:57:47ID:1cbp2whqDXライブラリと無関係なのはわかる
0451名前は開発中のものです。
2010/01/02(土) 00:16:20ID:ek4oo2Ge0452名前は開発中のものです。
2010/01/02(土) 00:26:34ID:08xjavwk0453名前は開発中のものです。
2010/01/02(土) 00:27:36ID:HeY6umvi0454名前は開発中のものです。
2010/01/02(土) 00:33:31ID:08xjavwk細かいことはIOや描画の桁違いのコストで吹き飛ぶ
0455名前は開発中のものです。
2010/01/02(土) 00:36:42ID:txdXna1V>>405
ありがとです
行表示できました
まだ、便利な機能があればおしえてほしいです。
0456名前は開発中のものです。
2010/01/02(土) 11:44:35ID:Ab6bZvqB10秒って・・・・・・Z80とかクロック4Mhzの時代の話ですか?
0457ひらしょ
2010/01/02(土) 13:50:19ID:xqJ6LKWHシングルトンがああなのは、getInstanceの速度をあげるため。
if一回減らせる。描画APIラッパとかだとここ重要。
create二回で死ぬのも「二回呼んじゃダメ!」と言いながら
assertで死ぬわけで、意味のある死に方。
ゲームにおいては、
間違ったコードを書いても動き続けることは重要ではない。
間違った、あるいは非効率なコードを書いたら
すぐわかるようにしておいて、出荷までに直すべき。
0458名前は開発中のものです。
2010/01/02(土) 14:03:41ID:+OdFeBMV0459名前は開発中のものです。
2010/01/02(土) 14:09:07ID:X1WEcwoJ老いぼれセガ社員必死だな
Seleneスレ荒したのお前だろ
0460名前は開発中のものです。
2010/01/02(土) 14:09:36ID:7cOQTttoSelene作者帰れよ
0461名前は開発中のものです。
2010/01/02(土) 14:38:27ID:Y2eIfDvE0462名前は開発中のものです。
2010/01/02(土) 14:41:47ID:+OdFeBMV0463名前は開発中のものです。
2010/01/02(土) 15:39:32ID:HeY6umvi>>390はassertが何のためにあるのかも知らないただのプログラム初心者だな
スレ違いでチラシの裏にでも書くような内容を堂々と書くくらいだしな
>>459
Seleneの現行スレ、過去スレ見たけど全然荒れてないぞ
あと、お前はアンチSEGAのスレにでもいけ
0464名前は開発中のものです。
2010/01/02(土) 18:47:34ID:US5QyJsT0465名前は開発中のものです。
2010/01/03(日) 09:52:26ID:uXTT7Kpp”ゲームプログラマになった後の〜”の執筆もよろしくお願いします
0466名前は開発中のものです。
2010/01/03(日) 11:10:30ID:WXd0Gz3Iマップは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);
0467名前は開発中のものです。
2010/01/03(日) 11:12:21ID:WXd0Gz3Iif(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);
こんな感じにすると若干思っているのとずれるんですよね…。
当たり判定なので左上の座標と右下の座標を取得するところまでは考えたのですが、
どのようにしたら実情にあったマップとのあたり判定になると思いますか?
0468名前は開発中のものです。
2010/01/03(日) 11:25:02ID:CHMCqqiY移動させてから戻すんじゃなくて、二次元配列のマップチップなら移動先が0かどうか判定するほうがいいんじゃね
0469名前は開発中のものです。
2010/01/03(日) 11:26:09ID:mNxKxxAQ>こんな感じにすると若干思っているのとずれるんですよね…。
ちょっと分かりづらいので、何が原因でどういう風にずれるのか詳しく教えて。
0470名前は開発中のものです。
2010/01/03(日) 11:44:39ID:WXd0Gz3Iうまく言えないのですが、ぶつかるべきところでぶつからないで食い込んで止まったりする、という感じでしょうか・・・。
あと、通行可のはずのところに入れなかったり。
マップに入れるところ、入れないところを作りたいのですが。
0471名前は開発中のものです。
2010/01/03(日) 11:52:19ID:v00n4e/G何でもそうだが、
条件判定は少なければ少ないほどよい。
っていうか現場でifififififififififififififififif重ねる奴は怒られる。
switch-caseで済む場合もあれば
ビットシフトで済む場合もある
俺はswitch-case大嫌い
下に来るまでクロックを食いながら来るからだ
だから個人的にはビット演算以外認めない
ビット演算なら、立てておけば何が来ても一瞬だからだ
0472名前は開発中のものです。
2010/01/03(日) 12:06:18ID:v00n4e/Gステータスに数字を割り振って、その値が指すものに直に飛ばしてもよい
擬似テーブル方式だな
内心嫌だった
とにかく、ifififififififififififififififififififififififififififififififififififififififififififififififififififififififififififififififififififififif重ねるのは見た目にもよくないし
実行速度的にも良くないので絶対に改めるべきだ。
単純なswitch-caseも絶対に避けるべきだ。10項目あったら10項目めに来るまで最低11クロックかかる。
11クロックもあったらシェーダを3回も回せる。
じつにもったいない話だ。
0473名前は開発中のものです。
2010/01/03(日) 12:07:15ID:aWVerO1px=x1/32;
y=y1/32;
↓
x=x1/20;
y=y1/15;
じゃないか?
その上でマップに当たった場合、
ギリギリまでキャラクタを移動させる処理が足りない。
それをやらないと、キャラクタがブルブル震える。
あと変数の名前をもうちょっと考えてやろうな。
配列の引数に渡すセル番号の値がキャラ座標と同じx,yはひどい。
規格が違う。
0474名前は開発中のものです。
2010/01/03(日) 12:10:36ID:CHMCqqiY実際の位置は表示部分で考えるか、滑らかな動きがいいなら別途キャラクター表示x,yを用意して補正してやる
0475名前は開発中のものです。
2010/01/03(日) 12:15:25ID:mNxKxxAQという言い回しだったので「アルゴリズムを提案してほしい」ということかと思ったのに、実は「バグを見つけて下さい」ということだったとは・・・
>>473で解決だな。
0476名前は開発中のものです。
2010/01/03(日) 13:43:46ID:+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] をチェックしてやらんといかん
他も変えるべき個所はあるがとりあえずここまで
0477名前は開発中のものです。
2010/01/03(日) 13:47:15ID:+Y7mHkgr>map[y1][x1], map[y1][x2], map[y2][x1], map[y2][x2] をチェックしてやらんといかん
はなかったことね
取りあえず4隅をチェックするということ
0478名前は開発中のものです。
2010/01/03(日) 14:02:44ID:+Y7mHkgr引き返すなら今のうちかも、特に初心者は
ある程度慣れた人ならできるだろうけど
俺の場合は下行くか上行くか左行くか右行くかによって場合わけで上の人が嫌いって言ってたswitch-caseでやったけど
まあ上手いことやればswitch-case使わなくてもできるんだろうけど
俺の場合は上行った場合は左上と右上の2隅チェック、
右行った場合は右上と右下の2隅チェック、以下略
ってやってったと思ったんだけど
0479名前は開発中のものです。
2010/01/03(日) 14:31:11ID:CHMCqqiY0480名前は開発中のものです。
2010/01/03(日) 15:24:02ID:WXd0Gz3Iなんとなくそれっぽい動きができればそれでいいのですが…。
switch-caseも一度考えてみます。
0481名前は開発中のものです。
2010/01/03(日) 16:42:55ID:TuIYpr0Pスレ斜め読みのおいらが答えると、まず、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 のはじめの所を読めば問題解決するだろう。
0482名前は開発中のものです。
2010/01/03(日) 18:04:43ID:smx+9BoV次のような要素を実現したいのですが・・・
@エイリアンを倒した数によって、ヒロインのおっぱいが大きくなる。
Aステージをクリアしたあと、ヒロインのおっぱいを揉める。
@に関しては、おっぱいの大きさごとのモデルを作るのではなく、DXライブラリの
プログラムで、おっぱいだけを大きくしたいです。
Aに関しては、プレイヤーの動きに応じてちゃんとおっぱいがもにもにするようにしたいです。
DXライブラリで可能でしょうか?
0483名前は開発中のものです。
2010/01/03(日) 18:10:25ID:Cn7qbODVおっぱい以前に,さすがにFPSならDXライブラリじゃなくてもっとちゃんとした3Dゲームエンジン使った方が結果的にずっと楽だよ
0484名前は開発中のものです。
2010/01/03(日) 18:12:54ID:FbdCmvgh_ = ~~ ``ヽ_,=''~´ ´~ヽ : は こ き .っ イ
_= ~ ヽ : 思 が く ぱ リ
~=、 ミゞ、 , -彡 ヽ. : わ ま .し. い ア
~=、、、Cl~evj <e~}6)_ 、、、ミ : ん し よ を .ン
ミ.~~ /', ゚ ;'7 ミ7ヾ~- 、 : か い う の
≡ (','゚, '.人 ゝ | ヽ : ね な 命
`= `ー' iノ' | / | ん で
~ーノノノノノ'′ て
_ ∩ピタ
(; ゚д゚)
し |
| |
し ⌒J
( ;´゚д゚) ・・・・・・・・・
c(,_U_U ガク
( ;´゚Д゚) おっぱいは何のためにあるんだー
c(,_U_U
_,,..-―'"⌒"~⌒"~ ゙゙̄"'''ョ
゙~,,,....-=-‐√"゙゙T"~ ̄Y"゙=ミ
T | l,_,,/\ ,,/\
0485名前は開発中のものです。
2010/01/03(日) 20:05:43ID:wq7ATXDp3Dメッシュの1部分の頂点座標を変更することが出来れば可能ではないだろうか
DXLibではメッシュの中の1点の頂点情報を変更する関数が見当たりませんでした
直DirectXではLockVertexBufferで頂点情報を抜き出し、一部変更してからUnlockすれば書き換えできる
その他知る限りだとDarkBasicのSET VERTEXDATAがそれらしき機能かもしれない
自分はボーンの使い方わかないので、頂点書き換え方式でキャラのモーション作ってます
0486名前は開発中のものです。
2010/01/03(日) 21:49:29ID:v00n4e/G0487名前は開発中のものです。
2010/01/04(月) 00:50:49ID:96m9JQJM0488名前は開発中のものです。
2010/01/04(月) 08:25:51ID:TtKqpyJCおっぱいはTonnyかべっかんこみたいなのが好みです
0489名前は開発中のものです。
2010/01/04(月) 11:15:32ID:fBgUH+Peで
0490名前は開発中のものです。
2010/01/04(月) 15:41:04ID:7VFKyHz5HLSLで頂点シェーダやったけど、メッシュ全体の平行移動しかわからない
一部分の頂点座標を動かすってoffset引数使うとまでは調べられたが情報全然ありません
どうやってやるのでしょうか
0491名前は開発中のものです。
2010/01/04(月) 16:44:21ID:R2vcIv7j0492名前は開発中のものです。
2010/01/05(火) 23:31:28ID:V0sHGwwtビットマップと違って3Dはラスターデータだから、データの重さにはあまり影響ないように思うんだけど。
テクスチャの大きさが影響するとか?
もしそうなら、大体どれくらいの大きさのモデルが基準になるんだろう。
0493名前は開発中のものです。
2010/01/05(火) 23:58:55ID:7uq6yiICこれを一つにまとめて、クリアしたら次の面にいくようにしたいのですが、どのような方法がありますか?
0494名前は開発中のものです。
2010/01/06(水) 00:27:54ID:lKDLfFv0ポリゴン数とテクスチャサイズはパフォーマンスに影響するよ。
市販のゲームを参考にすると良いと思う。
ttp://www.geocities.jp/gamerabbits/programing_08.htm
>>493
「#include」「extern」を使う。
ttp://www.geocities.jp/ky_webid/c/032.html
0495名前は開発中のものです。
2010/01/06(水) 02:00:14ID:odLPnjyO3DCGソフトによって座標系や単位もバラバラなので関係ないよ。
ただ作業上の手間はあるので、サイズは統一しておいた方が
良いとは思う。
Dxライブラリの場合は、メタセコに合わせているので市販の3DCG
ソフトから直接xで書き出した場合は、極小で表示されると思う。
3DCGソフト側で適正なサイズでモデリングするか、メタセコ経由
してサイズを調整するのが無難かも。
>>493
switchとかでもできるけど、シーン(面)ごとにクラスに分けてるなら
基底のクラス作ってそっから各面を派生させたほうが楽かも。
シーン遷移(シーケンス遷移)やstateパターンとかでググるといいかも。
0496名前は開発中のものです。
2010/01/06(水) 02:15:00ID:ngavL09Nif ( scene == SCENE_TITLE ) Title();
else if ( scene == SCENE_PLAY ) Play();
でも良い気がした。
0497名前は開発中のものです。
2010/01/06(水) 02:17:06ID:BbbKJDe60498名前は開発中のものです。
2010/01/06(水) 02:41:18ID:T+FI4egHどっかに書いてあった気がする
浮動少数点の精度がどうたらこうたらで
0499名前は開発中のものです。
2010/01/06(水) 16:02:24ID:AxwVnUF1〜略〜
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 が読み込めませんでした」とか怒られる
ちゃんとファイルを置く場所も間違ってないのに・・・
0500名前は開発中のものです。
2010/01/06(水) 16:15:50ID:Yz0j5Uar0501名前は開発中のものです。
2010/01/06(水) 19:54:12ID:+MjWEeUN試しにDxLibのサンプルのファイルに置き換えてみるとかどうだろう。
あと念のため、>>301-302も見てみてね。
0502名前は開発中のものです。
2010/01/06(水) 21:30:52ID:AxwVnUF1たった今、もの凄い恥ずかしいミスをしている事に気づいた。ぅゎー
0503名前は開発中のものです。
2010/01/07(木) 00:27:42ID:YFEgAVA7story.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に戻るようにしたいのですが、どうしたらいいですか?
0504名前は開発中のものです。
2010/01/07(木) 01:03:02ID:TMdG719d{
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
}
}
0505名前は開発中のものです。
2010/01/07(木) 01:04:01ID:TMdG719d0506名前は開発中のものです。
2010/01/07(木) 01:10:32ID:TMdG719dbool 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
}
0507名前は開発中のものです。
2010/01/07(木) 01:11:44ID:TMdG719dchk_key(){
before_key_state = now_key_state;
if(GetJoypadInputState() & PAD_INPUT){
now_key_state = true;
}
else{
now_key_state = false;
}
}
0508名前は開発中のものです。
2010/01/07(木) 15:40:47ID:4ItCtcBu方法が悪いのか、やはりキーを押している間しか画像が表示されません。
現在このような形にしています。
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);
}
0509名前は開発中のものです。
2010/01/07(木) 15:43:45ID:4ItCtcBu以下を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;
}
}
というような形になっています。
0510名前は開発中のものです。
2010/01/07(木) 15:52:30ID:4ItCtcBuif(key & PAD_INPUT_B){ }内の cstate++;の前後に
if(cstate == START){ を入れるというのも試してみたのですが、
やはりうまくいきません
0511名前は開発中のものです。
2010/01/07(木) 16:22:43ID:3PYGN21/それじゃあその関数呼ばれるたびに 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;
0512名前は開発中のものです。
2010/01/07(木) 16:39:31ID:4ItCtcBu確かにintでは値の保持ができませんね…。気が付きませんでした。
静的変数にしなくてはいけなかったんですね。
あとキー入力の部分もありがとうございました。
考えていた通りに動かすことができました。
0513名前は開発中のものです。
2010/01/07(木) 16:45:13ID:tQIgGLUE0514名前は開発中のものです。
2010/01/07(木) 17:40:30ID:eYJAziPKC#版は一部の関数が使えないこと以外はC版と同じ。
readme.txtに書かれていること以上に解説することがないから解説サイトもないよ。
0515名前は開発中のものです。
2010/01/07(木) 22:19:47ID:TMdG719d0516名前は開発中のものです。
2010/01/07(木) 23:25:56ID:eYJAziPK別に静的変数を使わなくても実装できるよ。
せっかく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)
{
// 何らかの処理
}
0517名前は開発中のものです。
2010/01/08(金) 02:41:50ID:8yWASrLd少なくとも手間は普通にコーディングした方が全然掛からないが
0518名前は開発中のものです。
2010/01/08(金) 09:30:18ID:TquDKlBDクラス化はあくまで一例でしょ
君のいう普通がどんななのかは知らないけど
0519名前は開発中のものです。
2010/01/08(金) 21:55:23ID:G0v30nLn何色を表示しているかわかる方法ってありますか?
0520名前は開発中のものです。
2010/01/08(金) 21:59:21ID:UpbwAmjx0521名前は開発中のものです。
2010/01/08(金) 22:04:52ID:3zMDBTld0522名前は開発中のものです。
2010/01/08(金) 22:08:20ID:G0v30nLn0523名前は開発中のものです。
2010/01/08(金) 22:11:52ID:3zMDBTld0524名前は開発中のものです。
2010/01/08(金) 22:16:19ID:5mIUw3Vj言いたいことは分かるけど、おまいさんに突っ込む資格は無いだろうw
0525名前は開発中のものです。
2010/01/08(金) 22:23:08ID:G0v30nLnなんとか出来そうになりました
ありがとうございます
0526名前は開発中のものです。
2010/01/08(金) 23:05:49ID:qPTthljo0527名前は開発中のものです。
2010/01/08(金) 23:08:41ID:hMOVMPlC0528名前は開発中のものです。
2010/01/09(土) 10:14:37ID:D2rGgWHrhttp://maniax.dlsite.com/work/=/product_id/RJ057302.html
結構使える
0529名前は開発中のものです。
2010/01/09(土) 10:31:31ID:KNCSUVMRwgetでおk
0530名前は開発中のものです。
2010/01/10(日) 04:28:31ID:PNNRGsjZ難しすぎるだろこれ
DXライブラリのサイトのほうがどれだけわかりやすいか
これは勉強する本じゃなくて、もう理解してる人が確認する
ためのもんか?
0531名前は開発中のものです。
2010/01/10(日) 04:43:49ID:ePiCCxYAそれでもプロとしてみるなら初心者だろうね。
0532名前は開発中のものです。
2010/01/10(日) 04:58:47ID:PNNRGsjZ結局サンプル見ながらそれを打ち込むだけ
こんなんじゃ意味ないでしょ?
買うのまだはやかったなー
0533名前は開発中のものです。
2010/01/10(日) 05:01:50ID:ePiCCxYA自分は昼から始めて夕方までかかった orz
0534名前は開発中のものです。
2010/01/10(日) 07:32:15ID:JParRIfb最初は意味わかんなくて、できる人のソースをコピペ。
次に少しずつソースを読解できるようになり改造していく。
そしてやっと自力ですべて書けるようになる…のが
普通の流れだと思うよ。
ひらしょー本は、初心者に構造的に説明しようと誠実に書いて
くれている結果、冗長で読みにくくなった部分はあるとは思うけど
必要なことは抑えてある本だと思うので、まずは本に書いて
ある事が分かるように勉強していけばいいんじゃないかな。
何が分からないかにもよるし、教え方の手腕の問題もある
だろうけど、すぐに理解できちゃうような内容しか書いて
いない本だとお金出して買う価値もないと思うし、
ゲーム関連技術がもし簡単に書けちゃう内容だと、こんなに
解説本も出ないと思う。
0535名前は開発中のものです。
2010/01/10(日) 11:04:17ID:Rc1hlYFq今のところ決定的にcに比べて便利だと思うところはないなぁ
確かに変数と関数を一塊にできるのは気持ちがいいのだが・・・
0536名前は開発中のものです。
2010/01/10(日) 11:07:58ID:2OywdL5M0537名前は開発中のものです。
2010/01/10(日) 11:20:33ID:dmK/QlFIChapter13(I部 2次元のゲーム)までは頑張れ。
>>535
継承、カプセル化、ポリモーフィズム、演算子のオーバーロード、STLあたりを理解できるとメリットを感じられるようになるよ。
0538名前は開発中のものです。
2010/01/10(日) 11:44:54ID:QNWx2gsU俺も昔は雑誌に載ってたプログラムをぽちぽち打ち込んでたもんよ。
0539名前は開発中のものです。
2010/01/10(日) 11:46:10ID:wtJzH8/F0540名前は開発中のものです。
2010/01/10(日) 13:31:00ID:pKLMp+mv趣味でゲーム作る程度ならプログラムまで手を出す必要はないよ。
0541名前は開発中のものです。
2010/01/10(日) 15:45:18ID:sQQs0/m1コピペがあまり意味あるとは思えん
そっから自己流のアレンジで打っていったがな
まあある程度コピペっちゃあコピペだけどな
まあコピペは動作確認には必要かも知れんがな
あとポリリズムとかは使ってったけどカプセル化は結局面倒になって公開しちゃえーて戻ったけどな
結局グローバル変数使いまくりに戻ったし、まあ使いまくりって程でもないが
カプセル化やろうと思えばできるけどだってアクセサ通すと速度落ちそうな気すんだもん、それが気になってな
小規模の個人レベルであまりカプセル化のメリット感じられんのだが
ポリポリなんちゃらは俺もlistで重宝してるな
まあポリポリ使うより天麩羅使う方がすっきり書ける場合もあるしなあ
0542名前は開発中のものです。
2010/01/10(日) 17:31:32ID:/Tzv4S+10543名前は開発中のものです。
2010/01/10(日) 17:36:55ID:ohvCsHNW場合によってはかえってミスしやすくなったり保守性が下がったりする
0544名前は開発中のものです。
2010/01/10(日) 17:45:33ID:RHOGN5ubDrawString(x,y,hoge[数字],Cr) ;のように呼び出して使う…ような感じになる方法ってありませんか?
あと、文中に改行も含めたいのですが・・・。
できれば1行ずつ表示されると嬉しいです。
0545名前は開発中のものです。
2010/01/10(日) 18:00:03ID:wtJzH8/Fそれなら龍神録にサンプルが載ってる。csv用だけどtxtにも転用できるはず
0546名前は開発中のものです。
2010/01/10(日) 18:38:42ID:VQ1HZqsF0547名前は開発中のものです。
2010/01/10(日) 18:52:06ID:RHOGN5ubそれをDrawString(x,y,hoge[数字],Cr) ;で呼び出したいんです…
char hoge[1]="AAA";
DrawString(x,y,hoge[1],Cr) ;
みたいな形です。
0548名前は開発中のものです。
2010/01/10(日) 18:58:51ID:2OywdL5M0549名前は開発中のものです。
2010/01/10(日) 19:01:30ID:TNXhxGf1何をしたいのかもわからない
0550名前は開発中のものです。
2010/01/10(日) 19:16:21ID:RHOGN5ub通常はDrawString( 250 , 240 - 32 , "Hello C World!" , Cr );って書くと
Hello C World!
と表示されると思うんですけど、このHello C World!の部分を、
改行を含む、変数を入れたいんです。
0551名前は開発中のものです。
2010/01/10(日) 19:20:29ID:3/rctmplusing namespace std;
string str[10];
str[0] = "AAA";
DrawString(x,y,str[0].c_str(),Cr);
文中に改行を含めたいってのはたぶん\nとか文中に入れたいんだと思うから
C++ splitとかでググってなんかフォントの縦幅とかなんたらやればいいんじゃないかな…
0552名前は開発中のものです。
2010/01/10(日) 19:42:52ID:TNXhxGf10553名前は開発中のものです。
2010/01/10(日) 19:43:31ID:z71TR0/5DrawString(x, y, str, Cr);
0554名前は開発中のものです。
2010/01/10(日) 19:59:40ID:2OywdL5M0555名前は開発中のものです。
2010/01/10(日) 21:11:56ID:dmK/QlFIそういう関数は用意されてないので自作するしかないよ。
改行文字を検索して文字列を一行ずつに分割、forループでY座標をずらして描画すればいいんじゃない?
0556名前は開発中のものです。
2010/01/10(日) 21:40:30ID:MFEe7NV6デフォルトのフォントの大きさってどれくらいなの?
書いてないから分かんないよ
0557名前は開発中のものです。
2010/01/10(日) 21:57:23ID:/Tzv4S+1コードみりゃ書いてあんだろ、16だ。
0558名前は開発中のものです。
2010/01/10(日) 23:42:22ID:ePiCCxYA「なんとなく」ってだけで実装するもんじゃねーなあ。
単純に拡縮するだけなら簡単なんだろうけども。
0559名前は開発中のものです。
2010/01/10(日) 23:46:51ID:2OywdL5M0560名前は開発中のものです。
2010/01/10(日) 23:52:21ID:PVCd/Cxa0561558
2010/01/11(月) 01:11:32ID:HJnYHrsQそれは>>558の3行目で否定してる「単なる拡縮」だw
もともと800x600でゲームを作ってたんだけどさ、
とある理由により、小さいウィンドウのバージョンを作らなきゃならなくなったんだ。
でもそのまま縮小すると、特にドット絵なんかは見てられなくなるし、
元が800x600用(あくまで縮小版はオマケ)なので、縮小版を基準にして800x600用に拡大するのも納得いかず。
そんなわけで、それぞれの画像の大きさを変えずに、ゲームの中身を変えようと思ったのが色々と失敗だった(笑)
>>560
主流が16:9になるか16:10になるかは別として、今後は4:3のモニタは減っていくだろうからなあ。
とはいえ現状ではモニタ側で4:3に対応(レターボックスや引き延ばし)してくれたりするし、作りやすい方でいいんじゃない?
0562名前は開発中のものです。
2010/01/11(月) 01:27:26ID:1pzIf3AP0563名前は開発中のものです。
2010/01/11(月) 01:44:29ID:Rz8RXzhw0564名前は開発中のものです。
2010/01/11(月) 02:18:06ID:HJnYHrsQドット絵は無理じゃない?
あとクリティカルな部分はともかく、1つの画像ファイルでなんとかしたいよね。
0565名前は開発中のものです。
2010/01/11(月) 02:25:08ID:b9O3GovE0566名前は開発中のものです。
2010/01/11(月) 03:05:07ID:Rz8RXzhw0567名前は開発中のものです。
2010/01/11(月) 03:06:28ID:/BVVeYOc0568名前は開発中のものです。
2010/01/11(月) 08:45:34ID:50WrHthA色が劣化する形式で保存してるんじゃないの?
0569名前は開発中のものです。
2010/01/11(月) 09:45:29ID:MF6sCU3I△の記号を90度回転させたものがほしいんだけど・・・・
0570名前は開発中のものです。
2010/01/11(月) 09:52:18ID:bJEynoIQ画像をRGBにすれば解決する サイズは大きくなるがな
0571名前は開発中のものです。
2010/01/11(月) 10:18:00ID:32xuNCiIそれ回転すればいいだけ
0572名前は開発中のものです。
2010/01/11(月) 10:18:14ID:8N572MW3画像にでも描いて回転描画させろ
0573名前は開発中のものです。
2010/01/11(月) 10:22:10ID:bJEynoIQDrawVString
0574名前は開発中のものです。
2010/01/11(月) 10:27:58ID:MF6sCU3Iそれはやれると思ってたけど
変だったんで。
結局、文字を回転させる方法はないのか?
よくゲームである
△(90度回転)6 △(90度回転)な感じにしたい。
0575名前は開発中のものです。
2010/01/11(月) 10:32:32ID:dSgt7dTb方法はいくらでもある。
そして、いくらでもやってる人がいる。
以上
0576名前は開発中のものです。
2010/01/11(月) 11:01:12ID:MF6sCU3Iでもやり方は知らないんでしょ?
知ってる人お願いしますね。
0577名前は開発中のものです。
2010/01/11(月) 11:40:02ID:yFPTqlzrそうか、ワイドもあったか
ゲームやるならドットバイドットでやりたいよね
0578名前は開発中のものです。
2010/01/11(月) 11:40:28ID:bJEynoIQ0579名前は開発中のものです。
2010/01/11(月) 11:43:03ID:JhPE/M8b興味があったから探してみた。初心者なんで見当違いだったらスマソ
ttp://bbs.wankuma.com/index.cgi?mode=al2&namber=42794&KLOG=73
ttp://msdn.microsoft.com/ja-jp/library/cc428368.aspx
0580565
2010/01/11(月) 12:24:49ID:b9O3GovEありがとうでした。
0581名前は開発中のものです。
2010/01/11(月) 15:35:07ID:C8nZ8yZZ0582名前は開発中のものです。
2010/01/11(月) 15:43:43ID:32xuNCiI0583名前は開発中のものです。
2010/01/11(月) 16:11:51ID:i9YgsXIH<| y |>
0584名前は開発中のものです。
2010/01/11(月) 16:25:44ID:MF6sCU3Iが正解
0585名前は開発中のものです。
2010/01/12(火) 00:34:41ID:Lz7AOqT1abをbaと書く程度の差じゃないか
0586名前は開発中のものです。
2010/01/12(火) 19:18:12ID:fpWsGGI20の位置に描かれそうな気がするんですけど
(つまり-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になる?これは一般的にどう書かれる?
0587名前は開発中のものです。
2010/01/12(火) 19:32:24ID:UxS4I4g/0588名前は開発中のものです。
2010/01/12(火) 19:52:43ID:vZoY7Utz>オブジェクトのy座標が-0.2のときそれを描画ルーチンにわたすと
>0の位置に描かれそうな気がするんですけど
>(つまり-0.9〜0.9が同じ位置に表示されそう)
>DXLibにそのままわたすとどうなりますか?
C言語では小数から整数への変換は小数切捨てになる。
「型キャスト」で調べてみて。
>でfloorになる?これは一般的にどう書かれる?
ならない。もっと言えばコンパイルすら通らない。
「y_for_draw = (y-99) / 100;」は小数点以下を切り上げしていないので。
一般的かどうかは分からないけど、固定小数点数を浮動小数点数にしてmath.hのfloor関数を使った方が簡単だと思う。
0589名前は開発中のものです。
2010/01/12(火) 19:57:29ID:fpWsGGI2質問は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;
0590名前は開発中のものです。
2010/01/12(火) 19:57:59ID:MSorSp1h最初はそんな感じやね
C++実用レベルは理解しなきゃいけないこと多くて投げ出しがち
でも使い続けることをおすすめする
何よりまず慣れることが大事、慣れれば勝手にクラスありきになる
次第に理解が深まってゲーム製作には大いに役立つ
0591名前は開発中のものです。
2010/01/12(火) 20:04:11ID:VTukhXVT0592名前は開発中のものです。
2010/01/12(火) 20:11:01ID:fpWsGGI2ありがとう
>「型キャスト」で調べてみて。
型のサイズの順位とか知らないことがたくさんありました。
>>でfloorになる?これは一般的にどう書かれる?
>ならない。もっと言えばコンパイルすら通らない。
ちょっと間違えました。
>>589のようにしてコンパイルはとおってますが、何か穴があるかもと心配でした。
ちなみにdoubleを使ってたらたとえば加算する数値をきっちり1.0にすることができないことによる不具合を味わったことがあり、
固定小数点なら100を加えるときっちり1ドットだけ動くのが確定している利点があると思うんです。
0593名前は開発中のものです。
2010/01/12(火) 20:36:56ID:vZoY7Utz誤:y_for_draw = (y100-99) / 100;
正:y_for_draw = (y100+99) / 100;
やりたいのはこういうことじゃない?
固定小数点数にもデメリットはあるし、個人的には浮動小数点数を使った方が良いと思うんだけどなあ・・・
・表現として分かりづらい(ソースコードが見づらい)
・扱える数値の範囲が狭い
・浮動小数点数を扱う標準関数やその他のライブラリが使用できない
0594名前は開発中のものです。
2010/01/12(火) 20:50:28ID:efhBp1Rb普通は 0 になると考えるのか -1 と考えるのか。
0595名前は開発中のものです。
2010/01/12(火) 21:01:29ID:fpWsGGI2>誤: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」って感じの変数名で意外と解決されそうだったり^^;
0596名前は開発中のものです。
2010/01/12(火) 23:19:04ID:q3clJG+f変数名の付け方も
マイナスは考慮してなかったけど
y100は表現的にある程度解決できてもそれ以外、それに関わる他の変数とか範囲とかがややこしくなってくるんだよねえ
>・浮動小数点数を扱う標準関数やその他のライブラリが使用できない
キャストすればいいんじゃないの?
0597名前は開発中のものです。
2010/01/13(水) 00:33:55ID:c62gE9Kiごめん、勘違いしてたみたい。
floor関数の動作なら>>595で大丈夫そう。
>>596
>キャストすればいいんじゃないの?
誤差を無くすために固定小数点数を使っているのでそれをやると駄目だと思うんだけど・・・
「y100」という変数名が分かり易いというのはかなり疑問を感じるな。
最初に見たとき「y+100」か「y-100」の書き間違いかと思ったし。
あと小数第2位までしか扱えないのはかなり精度が低いと思う。
アクション性の高いゲームだと誤差の影響が出そう。
0598名前は開発中のものです。
2010/01/13(水) 00:47:43ID:ikjcXzx3まあ y100 というのは苦肉の策でそのまま yを使うよりはまだ分かり易いだろうということと、
そら他人からみたらあれっとは思っても自分で使う分には若干間違い減らす可能性が上がるかなといった程度だろ
あくまで少数第2位までを使うのは表示上の問題だけじゃないの?
表示する場合は整数しか扱えないが内部的には小数で記憶しておきたいという
そもそも別に少数第2位までしか扱えないわけではないと思うがなあ
ただ座標の値を少数第2位まで持ちたいってだけで
計算まで少数第2位までしか使えないってわけじゃないでしょ
0599名前は開発中のものです。
2010/01/13(水) 11:01:12ID:5DwaMjit生成しないようにするには可能?
0600名前は開発中のものです。
2010/01/13(水) 11:13:13ID:c62gE9KiSetOutApplicationLogValidFlag(FALSE);
0601名前は開発中のものです。
2010/01/13(水) 11:54:25ID:e0BJb6Wsvista で CheckHitKey( KEY_INPUT_RSHIFT );
がうまく動作しない。
XPだと動く。RSHIFTだけ動かないんだよな。
なんでだろう?
0602名前は開発中のものです。
2010/01/13(水) 12:44:41ID:c62gE9Kihttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1352
0603名前は開発中のものです。
2010/01/13(水) 13:01:04ID:b/PQw5gR画像などをロードするとっきって、パスをいつもちまちま指定しないといけないのでしょうか?
例えば、画像をロードする場合、
Load("Data\\img\\hoge.png");
みたいな感じではなく、単に
Load("hoge.png");
のようにロードできたら楽なのになぁと思った次第です。
ファイルが増えるに従って、管理がしやすくするためにパスも長くなっていきますし……。
もちろん自分でパスをセットしてくれる関数を組むのもアリなのですが、
VC#みたいに、リソース追加&ファイル名指定でさっくり使えたら楽だなと思ったので……。
リソースからの読み込みができる関数はみつけたのですが、
IDでの指定なので、どのファイルがどのIDなのか覚えるのが面倒となってしまい使いにくいorz
0604名前は開発中のものです。
2010/01/13(水) 13:22:01ID:qeehEc52自動的にDataフォルダを検索してhoge.pngを探してロードするってこと?
win32APIの関数使えば出来なくも無いと思うけど多分労力に見合うほどのメリットはないと思うよ
何回もロードするもんでもないし
0605名前は開発中のものです。
2010/01/13(水) 13:26:47ID:HfkhU9/3俺は601じゃないけど、2.25bをまだ使ってる。
で、601の様な現象知らなかったわけだが、602の解決してる時点で9月だよな。
俺が持ってる2.25bはタイムスタンプが5月だし、公式でDLできる2.25bも5月のものだ。
602の示してるレスで公開されてるtestバージョンはバージョンアップされるたびに上書きされてるから、
(今落として確認したが)つい先日のものになってるな。
2.25bバージョンの最新って管理人さん持ってるかなぁ……。
0606名前は開発中のものです。
2010/01/13(水) 13:35:20ID:c62gE9Ki>IDでの指定なので、どのファイルがどのIDなのか覚えるのが面倒となってしまい使いにくいorz
IDをファイル名と同じにするとか分かり易い名前に変えてしまえばいいだけでは?
0607名前は開発中のものです。
2010/01/13(水) 13:46:41ID:H0QsxNXz0608名前は開発中のものです。
2010/01/13(水) 15:49:43ID:Yyh3OrXE(といっても透明色にするにはエンコード方式は古いMicrosoft Video 1くらいしか使えない諸刃の剣)
0609名前は開発中のものです。
2010/01/13(水) 16:07:06ID:HfkhU9/30610名前は開発中のものです。
2010/01/13(水) 16:39:46ID:fVXUl//w0611名前は開発中のものです。
2010/01/13(水) 17:47:10ID:b/PQw5gRその通りです。
ロードする際に使った文字列を、ハンドル代わりにつかっているので、
メリットとしては、指定をいちいちしなくてすむので楽になります。
たとえば、
Draw("hoge.png");
とかで、色々操作できるような設計にしています。
Win32APIの関数でできるのですか。
直接MSDNから探し出すスキルがない残念スキルですが、調べてみようと思います。
>>606
おおなるほど、これは盲点でした……。
0612名前は開発中のものです。
2010/01/13(水) 19:35:30ID:KRarygD9良い方法じゃないかもしれないけど、マクロと
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の形式だけ自動で
読み込むとかも可能。
ただスクリーンショット取れるゲームとかでない限り、画像
データの名前や数は変わらないはずだから、ハードコーティング
するよりパス含んだデータ名を列挙したテキストとかを作って
おくのがいい気もする(もちろんこれも手動では作らない)。
そうしておけば、画像の数とかに変更あってもプログラムの方は
何もいじる必要ないし。
0613名前は開発中のものです。
2010/01/13(水) 20:53:47ID:fVXUl//w0614名前は開発中のものです。
2010/01/13(水) 22:45:52ID:K/6CPc2lキーを文字列にすれば分かりやすいし。
0615名前は開発中のものです。
2010/01/14(木) 02:11:03ID:842AZX100616名前は開発中のものです。
2010/01/14(木) 02:36:14ID:Y9GNPZz3外部のテキストファイルに置いて、それを読み込む手法は便利ちゃ便利だし美しいな。
ツクール系や画像ビューワなどのアプリを作りたいというなら別にしても、
結局、その画像を使うにはプログラムの修正が必要だったりするわけで、
そこまで外部化するメリットが無い気がする。
それならファイル名をプログラム側で固定してしまうというのも十分アリじゃないかな。
「趣味で!」「勉強のため」というなら好きにやるべきだし、そういうこだわりは重要だと思うけれど。
>>615
拡張子無しとか、拡張子を固定するとか、
あとは最初はbmpで次はjpg…みたいに読み込む優先度を決めておくとか。
0617616
2010/01/14(木) 02:42:40ID:Y9GNPZz3最近は個人レベルのゲームプログラミングでも、
ゲームの内容を外部のスクリプトファイルで定義するスタイルが増えてきてるみたい。
全部をスクリプト化しろとは言わないけど、
例えばメニュー画面の挙動とか、何らかのキャラクターのアニメーションの仕方とか、
そういう部分的にでも外部に出しちゃう作りにすれば活かせるかもね。
まあ、非常に手間ですが。
0618名前は開発中のものです。
2010/01/14(木) 10:10:33ID:DPt8d+Sqそれをクラスに格納して処理、コンテナに追加して保持、分割も自動でやってる
ハンドルはアドレスをクラスに用意したポインタのメンバ変数に格納して
再ロードしても画像ハンドルへのアクセス先は変わらないようにしてる
SetRestoreGraphCallbackに↑で書いたコンテナから再ロードする関数登録
ハンドルの情報が消えてしまうときって、それまでに画像読み込んで取得したハンドル全て消えるよね?
何が消えるかよくわからなかったから
描画関係全て再設定させてるんだけど、皆さんは再ロード処理どのようにしてますか?
0619名前は開発中のものです。
2010/01/14(木) 11:35:51ID:f9B4N6q6何を言っているのかわからない
0620名前は開発中のものです。
2010/01/14(木) 11:42:32ID:Wuk1wnH6>ハンドルの情報が消えてしまうときって、それまでに画像読み込んで取得したハンドル全て消えるよね?
まずこれがよく分からない・・・
リファレンスに全部書いてあると思うけど。
0621名前は開発中のものです。
2010/01/14(木) 12:57:05ID:GEhjs3wb流用が基本だよな あとはちょくちょく改造
現にSFCのドラクエ3ってSFCドラクエ6の流(ry
0622618
2010/01/14(木) 12:59:53ID:DPt8d+Sq何が消えるってか何が初期化されるのか、
ハンドル以外にもあったようなのでそれもききたかった
(DXライブラリのスレだったかな?カメラがどうとか)
ってハンドルは全て消えるよね・・・
で、リファレンスに全部書いてあるのか
見落としてたっぽい、すまねえ見てくる
0623名前は開発中のものです。
2010/01/14(木) 13:11:27ID:GEhjs3wb(例:0.jpg〜1000.jpg (画像の形式:jpgにフレーム番号の桁数は0に設定))
(画像の形式はpngやbmpとかできるけどファイル容量が馬鹿でかくなる)
プログラムテストで使う大量の連番JPG1個ずつくるのめんどせーって人はおすすめ
0624名前は開発中のものです。
2010/01/14(木) 13:53:55ID:842AZX10ウィンドウ⇔フルスクリーンにするときとか再ロードする場合は一括でやれるようにしてる
0625名前は開発中のものです。
2010/01/14(木) 14:22:58ID:f9B4N6q6ハンドル情報が無効になった場合の対処でよろしいアルか?
0626618
2010/01/14(木) 21:00:02ID:DPt8d+Sq>>624と同じやり方だし、これはこれでいいかな
カメラもライトもモーション状態も全部復元できた
つーわけでスルーしてくだされ
0627名前は開発中のものです。
2010/01/15(金) 12:18:57ID:MEm+h6H+0628名前は開発中のものです。
2010/01/15(金) 23:03:18ID:GfBht2fI非同期通信にした後、
ウィンドウメッセージをどうやって受け取ればいいのでしょうか
0629名前は開発中のものです。
2010/01/15(金) 23:16:16ID:mIIIz4fa0630名前は開発中のものです。
2010/01/15(金) 23:20:44ID:MEm+h6H+0631名前は開発中のものです。
2010/01/16(土) 14:25:40ID:q2B4ABrd普通のCインターフェイスだから
0632628
2010/01/16(土) 16:27:15ID:rUwaGg5H>通信とウィンドウズメッセージ処理は別スレッドで
これは、マルチスレッドにする、ということでしょうか?
あと、ウィンドウメッセージを受け取るにはPeekMessage関数を使うのでしょうか?
0633名前は開発中のものです。
2010/01/16(土) 16:40:06ID:jHRnZJbI0634名前は開発中のものです。
2010/01/18(月) 15:10:04ID:NiKHIjeB0635名前は開発中のものです。
2010/01/18(月) 15:50:40ID:ocST5QSJ0636名前は開発中のものです。
2010/01/18(月) 16:17:33ID:1VuUUtA00637名前は開発中のものです。
2010/01/18(月) 16:19:59ID:Y1kYbBl90638名前は開発中のものです。
2010/01/18(月) 16:36:31ID:ZRf7R4pOデザ・・・と言いたいところだが、キチガイ扱いされるので言わない^^b
0639名前は開発中のものです。
2010/01/18(月) 16:36:50ID:AJVbiEYR0640名前は開発中のものです。
2010/01/18(月) 16:37:28ID:ocST5QSJ0641名前は開発中のものです。
2010/01/18(月) 17:21:08ID:NiKHIjeBgif自体がDXライブラリで表示できないみたいなので
ばらしてbmpに変換して表示させます。
0642名前は開発中のものです。
2010/01/18(月) 18:17:21ID:/YEQVsc40643名前は開発中のものです。
2010/01/18(月) 18:40:53ID:NiKHIjeBgifが表示できたらなあ・・・
0644名前は開発中のものです。
2010/01/18(月) 19:23:22ID:p6A/ppr3と思ったけど何年か前にライセンス切れたとかだったっけ?
0645名前は開発中のものです。
2010/01/18(月) 19:34:01ID:YzUndEtyPlayMovie()で出来たはず。
0646名前は開発中のものです。
2010/01/18(月) 19:40:04ID:NiKHIjeBうおおおおおおおおおおおおおおおおおおおおおお
できたあああああああああああああああああああああああああ
ありがとおおおおおおおおおおおおおおおおおおおお
0647名前は開発中のものです。
2010/01/18(月) 19:44:19ID:/YEQVsc40648名前は開発中のものです。
2010/01/18(月) 19:44:24ID:aB6jW3dA0649名前は開発中のものです。
2010/01/18(月) 19:46:09ID:YzUndEty0650名前は開発中のものです。
2010/01/18(月) 19:57:40ID:NiKHIjeBただのビューワを作ろうかと・・・
できないと諦めかけてたので>>645さんありがとう!
0651名前は開発中のものです。
2010/01/18(月) 21:14:28ID:ZRf7R4pOAPIの旅からの帰還
お待ちしておりました
全員敬礼!
0652名前は開発中のものです。
2010/01/20(水) 21:26:19ID:ZmWqqE9Gと、DxLib.hの中に書いてあったのですが、
この(100)の値を変えても100以上読むことができません
変更を適応する方法とかありますでしょうか・・・
0653名前は開発中のものです。
2010/01/20(水) 21:37:33ID:ZmWqqE9Gスレ汚しすまそ
以下スルーお願いします
0654名前は開発中のものです。
2010/01/20(水) 21:42:45ID:SKKsOccvどうしてくれんんだてめえ
0655名前は開発中のものです。
2010/01/20(水) 22:09:33ID:q0DDgX3G0656名前は開発中のものです。
2010/01/20(水) 23:52:50ID:cMpODo4B0657名前は開発中のものです。
2010/01/20(水) 23:59:20ID:zuhGGFh3うまいこと言うじゃねーか
0658名前は開発中のものです。
2010/01/21(木) 06:53:57ID:zKTatolx0659名前は開発中のものです。
2010/01/21(木) 17:26:19ID:VSiukrvi0660名前は開発中のものです。
2010/01/21(木) 17:42:38ID:ASaFDbPd0661名前は開発中のものです。
2010/01/21(木) 18:34:21ID:f/5KsMY80662名前は開発中のものです。
2010/01/21(木) 21:15:18ID:3z0s89gO夜、からだ中 あついかゆい。
胸のはれ物 かきむしたら 肉がくさり落ちやがた。
いったいおれ どうな て
May 19, 1998
やと ねつ ひいた も とてもかゆい
今日 はらへったの、いぬ のエサ くう
May 21, 1998
かゆい かゆい スコットーきた
ひどいかおなんで ころし
うまかっ です。
4
かゆい
うま
0663名前は開発中のものです。
2010/01/24(日) 17:17:54ID:t3rqV2es0664名前は開発中のものです。
2010/01/24(日) 17:45:49ID:eNyArIdy何かそれと関連するような書き込みみた
MV1Frame系の根本辺りにバグでてるのかもよ
試してないから憶測な
0665名前は開発中のものです。
2010/01/24(日) 18:30:40ID:t3rqV2esそうなのか・・・
0666名前は開発中のものです。
2010/01/24(日) 18:53:34ID:mtzPnJPWドラッグ&ドロップが効かなくなるのは仕様ですか
0667名前は開発中のものです。
2010/01/24(日) 19:30:56ID:mtzPnJPWint 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();
}
0668名前は開発中のものです。
2010/01/24(日) 19:33:03ID:mtzPnJPWreturn 0;
}
//ソースここまで
スタイル変更のあとはどんなことやっても無駄でした。
なにか解決方とかありますでしょうか・・・
0669名前は開発中のものです。
2010/01/25(月) 13:30:00ID:KA8nsg8vSetDragFileValidFlag(FALSE);
SetDragFileValidFlag(TRUE);//ドラッグ&ドロップ許可
SetWindowStyleMode(0);
SetDragFileValidFlag(FALSE);
SetDragFileValidFlag(TRUE);//ドラッグ&ドロップ許可
ほい
0670名前は開発中のものです。
2010/01/25(月) 14:54:28ID:RTDsX0xDBCCの方が重いんだが
0671名前は開発中のものです。
2010/01/25(月) 17:04:41ID:okvPpsG4まあ、別のアルゴリズムでビルドされている以上、違いがあってもおかしくはないな。
もしかすると最適化の設定とかもあるかもしれない。
0672名前は開発中のものです。
2010/01/25(月) 17:30:21ID:0o6Nm1jnっつっても今は両方同じくらいだと思うが
古いのは効率悪い
0673名前は開発中のものです。
2010/01/25(月) 17:32:24ID:LL1ffQYAなどなど
条件を一致させるのは至難の技
0674名前は開発中のものです。
2010/01/25(月) 19:00:44ID:6DMAN8Oiありがとうございます!
無事ドラッグ&ドロップがスタイル変更後も効くようになりました
なんだかくやしいです
0675名前は開発中のものです。
2010/01/26(火) 01:58:18ID:tj2S0wJnリファレンスに機能の半分くらい乗ってなくね?
0676名前は開発中のものです。
2010/01/26(火) 02:34:26ID:PVZ337CH0677名前は開発中のものです。
2010/01/26(火) 02:43:45ID:tj2S0wJn0678名前は開発中のものです。
2010/01/26(火) 03:09:22ID:p39VC7UbSetSoundCurrentTime(時間,サウンドハンドル);
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秒以内のファイルなら最初からになる ・・・と思う)
0679名前は開発中のものです。
2010/01/26(火) 13:26:42ID:PVZ337CH内部用の関数だったり、試験的に実装した関数なんかが多いから、
公式リファレンスが無いのは仕方ない。
仮に第三者がリファレンスを作ったとしても、
内部用関数である以上、いつ仕様が変更されてもおかしくないわけだし。
…以前、DXライブラリのWikiを作ろうとした人がいたけれど、あれどうなったのかなあ。
DxLib.hにはしっかり丁寧にコメントが書かれてるし、実用レベルでそんなに困ることはないと思うけどな。
コメントを読んでも意味がわからない関数は、たぶん今の自分には関係ない関数だと思っていい。
0680名前は開発中のものです。
2010/01/27(水) 02:10:49ID:+9fTCg9n誰得な関数もあるしな
0681名前は開発中のものです。
2010/01/27(水) 02:46:02ID:wVIH00tkだとしたらエラーの警告音とかに使えそうじゃない?
0682名前は開発中のものです。
2010/01/27(水) 12:43:56ID:bk5n/QgNBeep音に限らずね。
逆に、ゲーム内で「エラー」の演出をしたいというなら、
それ専用のサウンドファイルを用意するべきだろう。
0683名前は開発中のものです。
2010/01/27(水) 13:28:51ID:VlaGcRFBLoadGraphScreen( 30, 10, "a.bmp", TRUE);
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0);
をやると一気にfpsが小さくなるんだけど、それを避ける方法ある?
丁寧に教えてください。断片じゃ分からないんで。
0684名前は開発中のものです。
2010/01/27(水) 13:34:10ID:eUrMXCBM公式見てこいよ 根本から間違ってる
0685名前は開発中のものです。
2010/01/27(水) 13:43:01ID:D7qew4lJ0686名前は開発中のものです。
2010/01/27(水) 14:40:35ID:eQLJYwgf概略 画像ファイルを読みこんで画面に表示する
要するに、ハードディスクから画像を”読み込んで”表示するわけだ。
毎フレーム、データ読み込んでたら重くなるの当たり前。
0687名前は開発中のものです。
2010/01/27(水) 15:40:40ID:VlaGcRFBttp://dixq.net/g/39.html
ここの人の見てαブレンド処理したんだけどそんな変なの?
できれば、αブレンド処理の速いやり方教えてほしい。
0688名前は開発中のものです。
2010/01/27(水) 15:44:59ID:eQLJYwgfαブレンドのやり方はそれでいい!
一つ訊きたいが、fpsがどうとか言ってるって事は、ある程度形は出来てるんだよな?
アクションかシューティングか、何作ってるのか知らないけど。
てことは、キャラなりなんなりを毎フレームに表示させてるんだよな?
そのキャラを表示する時に LoadGraphScreen を使って表示してるのか!?
0689名前は開発中のものです。
2010/01/27(水) 15:50:10ID:eQLJYwgf朝、本屋へ行って教科書買って、学校行って勉強して、終わったら教科書捨てて、
次の朝、また本屋で教科書買って、学校行って勉強して、終わったら教科書捨てて、
また次の朝、本屋で教科書買って、学校行って勉強して、終わったら教科書捨てて……
ってやるか? やらないだろ?
毎フレーム LoadGraphScreen を使うってのは毎日教科書買ってるようなもんなんだよ。
0690名前は開発中のものです。
2010/01/27(水) 15:52:15ID:VlaGcRFBキャラはDrawGraphで表示してる。
オプション画面に切り替えた時、点数などを表すボードみたいものに
LoadGraphScreenを使ってる。だから、ゲームには影響ないんだけど。
オプション画面に切り替えた時fpsが一気に下がって気になって今回
聞きました。
0691名前は開発中のものです。
2010/01/27(水) 15:59:36ID:eUrMXCBMオプション画面に切り替えたら画面停止でもすんの?
プログラムのフロー分かってる?
0692名前は開発中のものです。
2010/01/27(水) 16:00:00ID:gFzXyqzf0693名前は開発中のものです。
2010/01/27(水) 16:07:18ID:D7qew4lJ0694名前は開発中のものです。
2010/01/27(水) 16:08:24ID:VlaGcRFBそれはしない。一気にfpsが落ちる。ブレンド処理で。
単にTフレームごとに作画してScreenFlip()で表示してます。
>>692
詳しくおねがいします。
0695名前は開発中のものです。
2010/01/27(水) 16:09:48ID:D7qew4lJ0696名前は開発中のものです。
2010/01/27(水) 16:11:58ID:VlaGcRFBブレンド処理したいんですけDrawGraphでも可能なんですか?
0697名前は開発中のものです。
2010/01/27(水) 16:14:13ID:D7qew4lJてめーなに中だよコラ
リファレンスに目を通してから質問しろカス
0698名前は開発中のものです。
2010/01/27(水) 16:16:13ID:eQLJYwgfSetDrawBlendMode( DX_BLENDMODE_ALPHA, 128);
LoadGraphScreen( 30, 10, "a.bmp", TRUE);
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0);
1行目で「これから描画するものはアルファブレンドモードにしますよ」
2行目で「a.bmpを読み込んで描画しますよ」
3行目で「これから描画するものはブレンドなしにしますよ」
ってだけだよ?
0699名前は開発中のものです。
2010/01/27(水) 16:16:22ID:VlaGcRFBありがとうございます。
0700名前は開発中のものです。
2010/01/27(水) 16:18:42ID:VlaGcRFBヤンデレの人ありがとうございました。
0701名前は開発中のものです。
2010/01/27(水) 16:23:54ID:eUrMXCBM0702名前は開発中のものです。
2010/01/27(水) 17:37:50ID:SU7TxAxCint amakudari;
for(amakudari=0;amakudari<1000000;amakudari++){
zeikin[amakudari]=LoadGraph("官僚.bmp");
}
0703名前は開発中のものです。
2010/01/27(水) 18:42:02ID:4CYQjQL/0704名前は開発中のものです。
2010/01/29(金) 14:26:55ID:DRAuGFCjうーんバイトでも探して勉強させてもらおうかな。でも使えないバイトとか来たら迷惑かな
0705名前は開発中のものです。
2010/01/29(金) 15:45:51ID:yml/58A3そもそも採用してもらえないと思うけど・・・
どこまで作れるのか知らないけど解説サイトも本もいっぱいあるし、いくらでも勉強できると思うんだけどなあ。
0706名前は開発中のものです。
2010/01/29(金) 16:04:31ID:X4/enaKnいったいどんなゲームを目指してるんだ。
0707名前は開発中のものです。
2010/01/29(金) 17:52:34ID:DRAuGFCjとりあえず自機も敵機も○で表現して
直進する玉を打ったり衝突判定したりとかなら一応できたんだけど
なんか死ぬほど処理が重いし(処理落ちしまくり)、拡張しにくそうだし
機体のパラメータデータとかステージデータの扱い方とかもわからないし
今はちょっとハードルを下げてインベーダーに変えようかなと思ってる
0708名前は開発中のものです。
2010/01/29(金) 17:55:43ID:jCVSqiZx0709名前は開発中のものです。
2010/01/29(金) 18:24:47ID:kJL+rTdAどこの部分で処理食ってるか調べるんだ。
「衝突判定」が怪しいから、衝突判定を飛ばしてみて
処理落ちするかどうか確認するとか。
0710名前は開発中のものです。
2010/01/29(金) 18:38:06ID:DRAuGFCjまだなので、ちょっと読んできますね
>>709
というかボトルネックは衝突判定と玉の生成破棄ぐらいしか思いつかない
モートン順序とかネットで読んだりしたけどなかなか理解と実装までいけないですわ・・・
0711名前は開発中のものです。
2010/01/29(金) 18:38:15ID:jCVSqiZx俺はloadgraphとか自発的なSleepを疑う
0712名前は開発中のものです。
2010/01/29(金) 19:21:22ID:bXBGYPJV0713名前は開発中のものです。
2010/01/29(金) 19:23:42ID:Pa0ASUM20714名前は開発中のものです。
2010/01/29(金) 20:40:58ID:/bsOILuR「死ぬほど重い」がどれくらいなのかも分からない(FPS60で重いと言う人だっている)、
ゲームの内容もさっぱりだしなあ。
それでもプレイ出来ないほど重くなるとは考えにくいんだが。
0715名前は開発中のものです。
2010/01/29(金) 20:57:24ID:QBlyvB6i知り合いがなんか思いって言ってたからソース見たら、毎フレームスクリーンショットを取るという謎な動作してたりした。
ぶっちゃけ、重いってのはなんか変な事してるんだと思うよ。
0716名前は開発中のものです。
2010/01/29(金) 21:35:34ID:VeYpTI6t0717名前は開発中のものです。
2010/01/29(金) 21:37:02ID:Pa0ASUM2それもFPSがなぜか半分になる。
ウィンドウがノンアクティブでも動作する設定にしてノンアクティブにしたときの動作と似ている。
DXlib特有の何かがあるんだと思う。
0718名前は開発中のものです。
2010/01/29(金) 21:38:36ID:QBlyvB6iソース晒すの抵抗あるだろうし、個人的にVC++かVSじゃないと困るけど
0719名前は開発中のものです。
2010/01/30(土) 00:36:37ID:zzrUYLD60720名前は開発中のものです。
2010/01/30(土) 00:38:24ID:cifYwtzO0721名前は開発中のものです。
2010/01/30(土) 06:43:38ID:P5qgz5J8思いつく思いつかないじゃなくて
各セクションごとの消費時間調べて
どこがボトルネックなのか調べるぐらいはすべき
0722名前は開発中のものです。
2010/01/30(土) 09:38:05ID:BdSu0ysP「死ぬほど重い」がどれくらいなのかも分からない
ゲームの内容もさっぱりだしなあ。
0723名前は開発中のものです。
2010/01/30(土) 09:48:06ID:EF522hf9妙に動きが重いなーと思ったら
300体の敵がピタリ重なって表示されていた
0724名前は開発中のものです。
2010/01/30(土) 11:23:55ID:BdSu0ysP0725名前は開発中のものです。
2010/01/30(土) 11:50:08ID:mWel1DHT0726名前は開発中のものです。
2010/01/30(土) 12:31:38ID:zzrUYLD6すいませんそれは一体どうやればいいんでしょう?
SetDrawScreen(handle);
Draw〜〜
とやってもバグってウィンドウの外に描画されてしまいます
0727名前は開発中のものです。
2010/01/30(土) 12:46:37ID:cifYwtzOBltSoftImage
0728名前は開発中のものです。
2010/01/30(土) 12:49:56ID:zzrUYLD60729名前は開発中のものです。
2010/01/30(土) 12:51:56ID:cifYwtzO0730名前は開発中のものです。
2010/01/30(土) 15:02:29ID:zvCh6Jzw0731名前は開発中のものです。
2010/01/30(土) 16:16:41ID:zzrUYLD6これは便利なものですね
しかしCreateGraphFromSoftImageで変換しないとアルファブレンドができないのが難点ですね
0732名前は開発中のものです。
2010/01/30(土) 16:23:02ID:cifYwtzOしないと君の言うとおり非常に表示が遅くなるよ
0733名前は開発中のものです。
2010/01/30(土) 17:03:39ID:zzrUYLD60734名前は開発中のものです。
2010/01/30(土) 17:04:55ID:TNYZudKh(#^ω^)ビキビキ
0735名前は開発中のものです。
2010/01/30(土) 17:07:37ID:zzrUYLD6なにか?
0736名前は開発中のものです。
2010/01/30(土) 17:21:39ID:GX4pyXso0737名前は開発中のものです。
2010/01/30(土) 18:18:02ID:QgRnLSPg0738名前は開発中のものです。
2010/01/30(土) 19:10:19ID:BdSu0ysP関係者なんだろ
0739名前は開発中のものです。
2010/01/30(土) 20:21:19ID:UcIFEpC1(#^ω^)ビキビキ
0740名前は開発中のものです。
2010/01/30(土) 20:29:33ID:zzrUYLD6言いたいことが有るならハッキリ言ったらどうです
コピーアンドペーストしかできないというわけではないんでしょう?
0741名前は開発中のものです。
2010/01/30(土) 21:04:41ID:wCFnb5juちゃんと検証をしないでバグがあるって言うのは荒らしと同じだよ
0742名前は開発中のものです。
2010/01/30(土) 21:10:38ID:cifYwtzO0743名前は開発中のものです。
2010/01/30(土) 21:47:57ID:zzrUYLD6http://www1.axfc.net/uploader/Img/so/71545
バグだろ
0744名前は開発中のものです。
2010/01/30(土) 22:05:12ID:BIjXD56Q礼を言わない自分のことばかり
0745名前は開発中のものです。
2010/01/30(土) 22:16:56ID:nicWHVwK0746名前は開発中のものです。
2010/01/30(土) 22:22:34ID:dQt5iAcR0747名前は開発中のものです。
2010/01/30(土) 22:46:17ID:zzrUYLD6もし問題がないのなら、私に対していわれのない批判を向けた人たちは謝罪するべきです
私はそれが社会人としての最低限のマナーだと考えます
0748名前は開発中のものです。
2010/01/30(土) 22:55:31ID:cifYwtzO私はそれが社会人としての最低限のマナーだと考えます
0749名前は開発中のものです。
2010/01/30(土) 22:58:58ID:ZFqeJ0u60750名前は開発中のものです。
2010/01/30(土) 23:02:09ID:dQt5iAcR>もし問題がないのなら、私に対していわれのない批判を向けた人たちは謝罪するべきです
俺は静観してただけだから無関係だが、
説明しなければ批判受けてもしょうがなかろう。
0751名前は開発中のものです。
2010/01/30(土) 23:11:56ID:m0apTEnoVer 3.01 での NS_FillBaseImage関数 (DxBaseImage.cpp の5124行目あたり) で
DWORD の Color が WORD にキャストされているので、ARGBのうち、ARが捨てられている気がする
このキャストをなくせばいいんじゃないかなー
0752名前は開発中のものです。
2010/01/30(土) 23:28:01ID:zzrUYLD6DWORDに修正してビルドし先のコードで試したところ正常に動くようになりました
丁寧に修正箇所も教えていただいて、どうもありがとうございました!
0753名前は開発中のものです。
2010/01/31(日) 06:29:35ID:7H/reV3I0754名前は開発中のものです。
2010/01/31(日) 13:54:18ID:HHPX/Q69もっと蔑んだ目で言って下さい
0755名前は開発中のものです。
2010/01/31(日) 14:32:44ID:CuC3sxxQ| |/ノ二__‐──ァ ヽニニ二二二ヾ } ,'⌒ヽ
/⌒!| =彳o。ト ̄ヽ '´ !o_シ`ヾ | i/ ヽ !
! ハ!| ー─ ' i ! `' '' " ||ヽ l |
0756名前は開発中のものです。
2010/01/31(日) 15:25:26ID:JBJvvpkE',::r、:| <●> <●> !> イ
|:、`{ `> .:: 、 __ノ
|::∧ヘ /、__r)\ |:::::|
0757名前は開発中のものです。
2010/01/31(日) 17:18:12ID:2P10BkIVdouble 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);
やったらパソコンが動かなくなったよ!
誰か助けて
0758名前は開発中のものです。
2010/01/31(日) 17:22:47ID:JBJvvpkE0759名前は開発中のものです。
2010/01/31(日) 17:25:48ID:2P10BkIVありがとうございます
しかし画像が動いてない・・・
0760名前は開発中のものです。
2010/01/31(日) 17:43:27ID:PA+3lzr70761名前は開発中のものです。
2010/01/31(日) 17:45:11ID:2P10BkIVdouble 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);
これじゃあゲームが終わりません
誰かアニメーションの書き方を教えてください
0762名前は開発中のものです。
2010/01/31(日) 17:52:12ID:PA+3lzr7static int a = 0;
DrawGraph(0,0,player[3+a],TRUE);
if(a<3)a++;
WaitTimer(500);
ScreenFlip() ;
0763名前は開発中のものです。
2010/01/31(日) 18:01:12ID:2P10BkIV試してみたんですが、画像が動いてくれません
これはwhileの中に入れて使用するんでしょうか?
0764名前は開発中のものです。
2010/01/31(日) 18:13:29ID:c9TXpFDF0765名前は開発中のものです。
2010/01/31(日) 18:16:33ID:JBJvvpkE0766名前は開発中のものです。
2010/01/31(日) 18:29:11ID:W0mdJ7eWあんだけわかりやすいのがあるんだから・・・
0767名前は開発中のものです。
2010/01/31(日) 18:31:18ID:HHPX/Q69例えば絵が1ドットずつ動くプログラムだとすると
座標0に表示
↓
座標1に表示
↓
座標2に表示
↓
座標3に表示
↓
:
って書くんじゃなくて(これは>761の書き方)、
座標xに表示 ←―┐
↓ |
xを+1する | 繰り返す
↓ |
└―――――┘
って書くのを意識するといいよ
0768名前は開発中のものです。
2010/01/31(日) 18:35:18ID:1VFB3DYv0769名前は開発中のものです。
2010/01/31(日) 19:00:00ID:2P10BkIVdo{
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();は使いたくないです
0770名前は開発中のものです。
2010/01/31(日) 19:07:41ID:dC7YcGqj0771名前は開発中のものです。
2010/01/31(日) 19:10:47ID:PA+3lzr7>aが0に戻らなくて[6]がずっと表示されてしまいます
わかってんならaを0に戻せよ…
whileでもforでも好きなもんを使えよ…
>>764-767無視すんなよ…
0772名前は開発中のものです。
2010/01/31(日) 19:13:09ID:CfyGLtto0773名前は開発中のものです。
2010/01/31(日) 19:23:57ID:2P10BkIVすいませんでした
if(a>3)a=0;を追加したんですが止まってしまいます
>>764
考えて>>769をつくってみました!
>>765
そのサイト、アニメーションについて載ってなくて…
>>766
http://homepage2.nifty.com/natupaji/DxLib/dxfunc.html
このページでしょうか?
何回か読んだのですがアニメーションについて載ってなかったです…
>>767
座標を動かさないようにするんですか?
>>768
ありがとうございます
>>770
消してみたんですが、動きすらしなくなりました
0774名前は開発中のものです。
2010/01/31(日) 19:32:13ID:JBJvvpkE龍神録一通りやってゲームプログラミングの基礎を学べ
0775名前は開発中のものです。
2010/01/31(日) 19:36:09ID:2P10BkIVまだ自分はなにも理解していないみたいなので
もう一度最初から学び直してきます
みなさんありがとうございました
0776名前は開発中のものです。
2010/01/31(日) 19:36:15ID:PA+3lzr7もうDXライブラリ以前の問題だからVIPで聞け
http://yutori7.2ch.net/test/read.cgi/news4vip/1264908880/
0777名前は開発中のものです。
2010/01/31(日) 19:36:48ID:GeAXL5Qw0778名前は開発中のものです。
2010/01/31(日) 19:37:45ID:Di+guFUQ>>772
>>773
if(a<3)a++;
if(a>3)a=0;
こうしたんなら a=3 の場合はどっちも掛からないから a=3 のまま止まるわなあ
0779名前は開発中のものです。
2010/01/31(日) 19:43:39ID:2P10BkIV>>778
if(a>=3)A=0;
にしたらきちんと動いてくれました!
でも学び直してきます
ありがとうございました
>>776
ありがとうございます
次からはそこで質問しますね
0780名前は開発中のものです。
2010/01/31(日) 19:44:26ID:2P10BkIVAじゃなくてaです
0781名前は開発中のものです。
2010/01/31(日) 20:01:10ID:uYVfFOYk問題なく動くの?
0782名前は開発中のものです。
2010/01/31(日) 20:09:34ID:CfyGLttoライブラリをDLLにすれば動くかも
0783名前は開発中のものです。
2010/01/31(日) 20:09:49ID:0ATLaas40784名前は開発中のものです。
2010/01/31(日) 22:57:51ID:W0mdJ7eWネイティブでって意味ならたぶん動かないけど、そういう事じゃないだろ?
0785名前は開発中のものです。
2010/01/31(日) 23:29:30ID:CfyGLtto正常にビルド出来るかって意味かと思った
つーかそれだとDLLでも動かないねすまん
0786名前は開発中のものです。
2010/02/01(月) 00:07:00ID:2kqPhNjN俺この間までWin7の64bitと、XPの32bitで出先<->家での開発してたし
0787名前は開発中のものです。
2010/02/01(月) 01:01:10ID:YQ/gjtQhDXライブラリでもゲーム制作の話でもないけど
この間それで問題が起きてね……w
0788名前は開発中のものです。
2010/02/01(月) 16:57:45ID:Lf2Nvhz50789名前は開発中のものです。
2010/02/01(月) 17:45:18ID:ooYrGYNe0790名前は開発中のものです。
2010/02/01(月) 18:32:39ID:864q13BL787かいいたいことがわかるとおもう
たぶん
0791名前は開発中のものです。
2010/02/01(月) 18:36:19ID:PxBHY40/64bitアプリからは32bitDLLは使えない。
だから通常、DLLまで用意する場合じゃ無けりゃ32bitで作ればいいんだけど
.NET FrameworkでAny CPUで作った場合はまることがある。
DLLはネイティブで32bit固定なのに、EXEは実行環境によって32/64変わるから
開発時の環境が32bitだと気がつかない。
ということじゃないかなあ。
0792名前は開発中のものです。
2010/02/01(月) 18:52:33ID:Lf2Nvhz50793名前は開発中のものです。
2010/02/01(月) 18:58:44ID:xufADCF/0794名前は開発中のものです。
2010/02/02(火) 13:39:47ID:EWwGB+Nl0795名前は開発中のものです。
2010/02/02(火) 13:53:12ID:ZXzo3Aq80796名前は開発中のものです。
2010/02/02(火) 13:54:59ID:6T1hs+2r0797名前は開発中のものです。
2010/02/02(火) 18:27:35ID:NU2kONNzコンパイラが対応しているかどうかは別として。(比較的最近のVisualStudioなら問題なし)
もちろん、32bitでも同様。
で、開発マシンが32/64問わず、
64bit用としてビルドしたアプリ本体 + 32bit用としてビルドしたDLL → 動かない
32bit用としてビルドしたアプリ本体 + 32bit用としてビルドしたDLL → たぶん動く
であると。
0798名前は開発中のものです。
2010/02/02(火) 21:43:09ID:ZXzo3Aq80799名前は開発中のものです。
2010/02/02(火) 22:29:37ID:ocqUn9yT0800名前は開発中のものです。
2010/02/02(火) 23:35:47ID:3geZi3lZ0801名前は開発中のものです。
2010/02/03(水) 05:04:33ID:U8Pd5rkG0802名前は開発中のものです。
2010/02/03(水) 05:54:02ID:XTUJJ4Iuその基本的って部分がちょっとだけ気になる。
0803名前は開発中のものです。
2010/02/03(水) 08:44:53ID:g7fkj8BM従前どおりの32Bitアプリが何の問題もなく動くので徒労。
メモリを4GB以上使いたい場合以外にあえて64Bit化する意味は薄い。
0804名前は開発中のものです。
2010/02/03(水) 14:05:09ID:5f3a6r9D0805名前は開発中のものです。
2010/02/03(水) 14:18:36ID:gyXnlokN長方形のキャラ(回転なし)とかだと後者の方が便利だし。
0806名前は開発中のものです。
2010/02/03(水) 15:51:20ID:U8Pd5rkG0807名前は開発中のものです。
2010/02/03(水) 22:19:22ID:WAfqMpru0808名前は開発中のものです。
2010/02/03(水) 22:40:10ID:U8Pd5rkG0809名前は開発中のものです。
2010/02/03(水) 23:31:20ID:y+n9ea+J思っていたより使い勝手悪いな…
0810名前は開発中のものです。
2010/02/03(水) 23:39:52ID:mUdTkHdF0811名前は開発中のものです。
2010/02/04(木) 01:32:44ID:9yr7SgZzAddFontResourceを使ってゲーム起動時に追加出来た
0812名前は開発中のものです。
2010/02/04(木) 10:22:35ID:B+CnvqXs0813名前は開発中のものです。
2010/02/04(木) 15:03:56ID:0uWBCETAパスワードってリテラルでEXEに埋め込んじゃってダイジョブなん?
0814名前は開発中のものです。
2010/02/04(木) 15:08:11ID:WAZ4oke50815名前は開発中のものです。
2010/02/04(木) 18:53:49ID:QxyExYir自分で何とかできないのなら諦めて普通に使うしかないだろう。
0816名前は開発中のものです。
2010/02/04(木) 18:55:51ID:0uWBCETA0817名前は開発中のものです。
2010/02/04(木) 19:04:15ID:1Mq3yDnQようは
「入力された文字」==「キー」
ってやってもだいじょうぶかきいてるんだろ?
キーはみえる
0818名前は開発中のものです。
2010/02/05(金) 01:25:04ID:a9qwHvOSそれをキーに使ったほうがわかりにくくていいんかな
0819名前は開発中のものです。
2010/02/05(金) 01:30:13ID:y9Rl8Gqjどうしてそこまで隠したがるのか知らないけど。
俺は、俺の作ったゲームをプレイした人が
「このゲームの生データ見てみたい!」
って思ってくれるほど魅力があるデータを作れた自信がないから
そこまで心配はしてないな。
0820名前は開発中のものです。
2010/02/05(金) 01:31:15ID:RCBVAjHS暗号鍵を何かでエンコードしてリテラルとしてソースコード埋め込んどいて、SetDXArchiveKeyStringにデコードして渡すとか?
0821名前は開発中のものです。
2010/02/05(金) 02:23:43ID:9VhG5z2Zどうしようもない気はする
0822名前は開発中のものです。
2010/02/05(金) 16:46:58ID:N9JJZcSG今のところ10000ポリゴンはあるんだが。
ちなみにメタセコでCark(分割)4の曲面化つかったデータね
ちなみに胴体だけです
これじゃ動かないかなあ
0823名前は開発中のものです。
2010/02/05(金) 16:50:07ID:qcSvBbHwNowLoading...のアニメーションを動かしながらロード、ってのをしたいんだけど、
読み込みとアニメーションを並行してやる方法が分からないんだ
0824名前は開発中のものです。
2010/02/05(金) 16:52:34ID:Ir4+43zS>>492
0825名前は開発中のものです。
2010/02/05(金) 19:50:51ID:EoD901Y80826名前は開発中のものです。
2010/02/05(金) 20:17:16ID:Ir4+43zS1フレームに1つずつファイルを読み込みながらアニメーション表示させる。
マルチスレッドを使ってもいいけどこっちの方が簡単。
0827名前は開発中のものです。
2010/02/05(金) 20:25:49ID:qcSvBbHw公式の掲示板の過去ログで、2007年にLoadGraphはマルチスレッドに対応してないみたいな事を管理人さんが・・・
>>826
音声ファイルとかだと1フレームの間にロードし終わってくれますかね・・・?
0828名前は開発中のものです。
2010/02/05(金) 20:30:27ID:g1+Hi/0aたしかにちょっと止まるな
0829名前は開発中のものです。
2010/02/05(金) 20:30:28ID:EoD901Y80830名前は開発中のものです。
2010/02/05(金) 20:38:57ID:XWwIt0Ve0831名前は開発中のものです。
2010/02/05(金) 20:58:53ID:Ir4+43zSそもそもプレイヤーにストレスを与えないようにするのが目的だし、実際「NowLoading...」と表示しておきながら読み込み以外の処理もしてたりするしね。
あと>>826の方法は確かに処理落ちする可能性はあるけど何か問題あるの?
どうせプログレスバーを表示させるぐらいじゃないの?
0832名前は開発中のものです。
2010/02/05(金) 21:03:23ID:g1+Hi/0a0833名前は開発中のものです。
2010/02/05(金) 21:04:42ID:qcSvBbHw起動時に全部読み込むと、読み込みファイルのサイズが大きくなったときにちょっと・・・。
できるだけ逐次ロードしたいから・・・。
あと、最初に読み込もうとすると数秒止まっちゃって、それが気にくわないというかストレス。
0834名前は開発中のものです。
2010/02/05(金) 21:37:34ID:RBAQ2+kz0835名前は開発中のものです。
2010/02/05(金) 21:58:05ID:RjYJfLjOttp://codepad.org/HMbYruHZ
0836名前は開発中のものです。
2010/02/05(金) 22:31:40ID:qcSvBbHwおお・・・ 参考にしてみまする
0837名前は開発中のものです。
2010/02/05(金) 22:43:27ID:Xzk70bELなんかループ{
なんかロード1コ
なんかナウローディングとか表示
なんか四角とか描画(x, y ,x+i, y);
画面更新
}
CとかDirectXライブラリの記述方法は忘れた
0838名前は開発中のものです。
2010/02/05(金) 22:55:33ID:9VhG5z2Z0839名前は開発中のものです。
2010/02/05(金) 23:11:28ID:a9qwHvOSwhile(!end())
{
read( Nバイト );
draw();
}
これならフレームレート安定するだろう
でもわざわざ読み込み速度を意図的に落としてまでやるべきなのかは疑問
0840名前は開発中のものです。
2010/02/05(金) 23:14:04ID:+ZQFEOdr>read( Nバイト );
ってどうやんの?
0841名前は開発中のものです。
2010/02/05(金) 23:19:28ID:qcSvBbHwやっぱりLoadGraphはマルチスレッド対応してないってことなのかな・・・。
>>839
kwsk
0842名前は開発中のものです。
2010/02/05(金) 23:29:20ID:ax38IgEf0843名前は開発中のものです。
2010/02/05(金) 23:31:09ID:9VhG5z2Z0844名前は開発中のものです。
2010/02/05(金) 23:45:43ID:tUrF1ELAある日突然落ちたりしてデバッグで泣くことになるぞ。
CPUのコア数によって出たり出なかったりとかするからな。
0845名前は開発中のものです。
2010/02/06(土) 02:01:00ID:npht8xA60846名前は開発中のものです。
2010/02/06(土) 02:46:06ID:Y+vgz54E0847名前は開発中のものです。
2010/02/06(土) 03:13:17ID:ryKI6KOb0848名前は開発中のものです。
2010/02/06(土) 04:54:47ID:sLGxAtvo0849名前は開発中のものです。
2010/02/06(土) 07:42:28ID:heYW4fwh静止画を表示しながら読み込み(2秒間)⇒「NowLoading...」(0.2秒)
本人曰く「ただ気分を味わいたかった」と。
でも実際のゲームを見てみるとプレイヤーからはそれは分からないし、むしろ「ロード早いなあ」という印象すら受けた・・・
これも一つの答えなんだと思ったよw
マルチスレッドを使う方法は↓に書いてある。
http://hpcgi2.nifty.com/natupaji/aska.cgi
あと画像はLoadDivGraphで分割読み込みができる。
0850849
2010/02/06(土) 07:48:32ID:heYW4fwh掲示板のリンクがダメですね・・・
記事No「1896」です。
0851名前は開発中のものです。
2010/02/06(土) 09:42:16ID:AjOTNEN+LoadDivGraphで分割読み込み、ってアレはひとつの画像を複数の画像に分割するんであって、
分割してひとつの画像読み込むわけじゃないっていう
マルチスレッドの方は読んでみた
応用してやれないか試してみる
0852名前は開発中のものです。
2010/02/06(土) 13:12:13ID:6i+WO82B要所要所で動作が若干止まったりしたほうが読み込んでるっぽくてユーザも安心するし
0853名前は開発中のものです。
2010/02/06(土) 13:15:04ID:m1I5HW8a0854名前は開発中のものです。
2010/02/06(土) 13:30:09ID:xpV9NzXE0855名前は開発中のものです。
2010/02/06(土) 14:19:32ID:heYW4fwh読み込みの進捗を表示させるようなタイプなら>>823で多少カクカクしても問題ないと思うし、むしろマルチスレッドにすると同期を取るのがめんどくさいし。
逆にもっと派手なアニメーションだと処理落ちすると見栄えが悪くなるのでマルチスレッドにするしかないと思う。
ただ個人的には同人ゲームなら静止画で「NowLoading...」と表示させておくだけで十分だと思うんだけど・・・
0856名前は開発中のものです。
2010/02/06(土) 15:27:53ID:hilmmGtE0857名前は開発中のものです。
2010/02/06(土) 16:16:36ID:+7JZw7l00858名前は開発中のものです。
2010/02/06(土) 16:21:12ID:AjOTNEN+0859名前は開発中のものです。
2010/02/06(土) 22:28:44ID:fMJ0B1gK0860名前は開発中のものです。
2010/02/06(土) 23:38:51ID:cCb1U7aqBlenderにも対応してる?
0861名前は開発中のものです。
2010/02/07(日) 07:39:53ID:cnkJTmx7>これって3dもつくれるんだよね?
作れるよ。
>Blenderにも対応してる?
モデリングソフトの対応状況は過去レスを見てみて。
BlenderはFBXが使えるみたい。
0862名前は開発中のものです。
2010/02/11(木) 23:41:27ID:AgKonL0CDXライブラリの範疇ではないのかな。
なにか調べる取っ掛かりはない?
0863名前は開発中のものです。
2010/02/12(金) 02:48:39ID:iGppiI+j0864名前は開発中のものです。
2010/02/12(金) 04:35:23ID:Z51oc7q7DXライブラリは知らんけどリアルタイムレンダリングがデフォじゃない?
0865名前は開発中のものです。
2010/02/12(金) 07:46:33ID:gSVuHgsF「コンストレイント」で検索してみるといいよ。
やり方は簡単で>>863の言う通り、「手」の移動と回転を「武器」に加えるだけ。
0866名前は開発中のものです。
2010/02/12(金) 15:42:11ID:9oJmNhGP0867名前は開発中のものです。
2010/02/12(金) 21:24:07ID:m/RgGbdM0868名前は開発中のものです。
2010/02/12(金) 21:53:10ID:5g1bekrX0869名前は開発中のものです。
2010/02/12(金) 22:17:37ID:gSVuHgsF試してないけど戻り値がLONGLONG型なので「%I64d」か「%lld」じゃないかな。
0870名前は開発中のものです。
2010/02/12(金) 22:39:37ID:3A3ijQ60サンクス!
やり方、納得です。
取り敢えず手の回転並進行列とって、そのまま武器に適用させてみる。
0871名前は開発中のものです。
2010/02/12(金) 23:19:30ID:gSVuHgsFチップグラフィックを使ったマップ描画
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 関数を非公開関数に変更。
0872名前は開発中のものです。
2010/02/13(土) 00:47:58ID:lykIm1Dnサンクス!
lldでいけました。
0873名前は開発中のものです。
2010/02/13(土) 18:36:09ID:nVI35ftX何か簡単な方法って無いものかな?
拡縮してから回転させたときと、回転させてから拡縮するときとで結果が異なるけどさ。
無いなら無いで、自前で座標を計算してDrawModiGraph()に投げるつもりだけれど。
0874名前は開発中のものです。
2010/02/13(土) 19:30:01ID:pV6Ocbxc0875名前は開発中のものです。
2010/02/13(土) 22:38:54ID:nVI35ftX0876名前は開発中のものです。
2010/02/14(日) 21:14:56ID:9DOaOyQ2ClearDrawScreen()
SetDrawBlendMode( DX_BLENDMODE_ALPHA, ・・・
DrawGraph(・・・
ScreenFlip()
って書いたら、1箇所使っただけなのにかなり処理が重くなる
DrawGraphが悪い?
フレームスキップするしかない?
0877名前は開発中のものです。
2010/02/14(日) 21:20:54ID:lH/o5bwf本当にその四行だけで試してみた?
0878名前は開発中のものです。
2010/02/14(日) 21:21:28ID:I7ZtRrpB0879名前は開発中のものです。
2010/02/14(日) 21:24:26ID:9DOaOyQ2ClearDrawScreen()
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 )
DrawGraph(・・・ // 普通の画像
SetDrawBlendMode( DX_BLENDMODE_ALPHA, ・・・
DrawGraph(・・・ // 半透明させるの画像
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 )
DrawGraph(・・・ // 普通の画像
ScreenFlip()
こうやってます
画像を重ねる都合上、
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 ) を2回やってます
もっと効率よい方法があるんでしょうか?
0880名前は開発中のものです。
2010/02/14(日) 21:26:43ID:9DOaOyQ2フレームスキップってどうやればいいでしょうか?
画面処理を別スレッドにして、処理時間オーバーしたら放棄、
でいいの?
0881名前は開発中のものです。
2010/02/14(日) 21:27:36ID:9DOaOyQ2880 は >>878へのレスです
0882名前は開発中のものです。
2010/02/14(日) 21:32:50ID:r2nQlTSvいちいち戻さない方が速いかも
0883名前は開発中のものです。
2010/02/14(日) 21:34:14ID:I7ZtRrpBググれば幾らかサンプルコードが出てくる。確か龍神録でも触れてたと思うし。
PC上で動くゲームを作るのなら秒間60回更新するように調整するのは基本中の基本。
DXLIBに限った話じゃない。CPU使用率が異常に高かったりしたら間違いなくこっちの問題でしょ。
0884879
2010/02/14(日) 21:58:05ID:9DOaOyQ2SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 )
DrawGraph(・・・ // 普通の画像
が処理を重くしてる原因だったので、これを削ることにしました
ありがとうございます
龍神録というサイトを初めて知ったので、質問してよかった
>>883 ありがとうございます
0885名前は開発中のものです。
2010/02/15(月) 08:08:26ID:BUryD20y>873だが、色々な変形に対応させようと思うと結構面倒だな。引数も増えるし。
回転と拡縮だけにしてしまうか。
……とここまで書いて、
画像クラスを作ってしまえば簡単だということに気づいた。
0886名前は開発中のものです。
2010/02/15(月) 20:26:12ID:ccjc3ij8最後にその4点にあわせてDrawModiGraphするってのが汎用的で記述もわかりやすくていいんじゃね?
どっかからできの良い数学ライブラリ持ってきてもいいし
回転拡大スライド程度なら簡単な行列計算だけに絞れるから自分で作ってもいい
0887名前は開発中のものです。
2010/02/15(月) 20:55:41ID:BUryD20y>>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に描画
とかでも良かったかな、と思った。
0888名前は開発中のものです。
2010/02/15(月) 21:00:03ID:K58uOKXK・上の基準点が実際に描画される位置
・基準点を中心としたスケール
・基準点を中心とした回転角度
で十分だと思うけど
0889名前は開発中のものです。
2010/02/15(月) 21:57:09ID:BUryD20yそれだけで引数7つあるぜ?
各変形の優先度を決める(もしくは同じ変形を複数回行う)とか、
回転と拡縮以外の変形も出来るようにするなら、どれだけ増えるんだ。
0890名前は開発中のものです。
2010/02/15(月) 22:01:20ID:8F/ucvej基点となる座標が変われば別だが
0891名前は開発中のものです。
2010/02/15(月) 22:17:52ID:BUryD20yゲームの都合上、縦横で別々に拡大率を設定できるようにする必要があった。
正方形を、90度回転させてから、横に2倍
□□ → ■□ → ■■□□
■■ → ■□ → ■■□□
横に2倍にしてから、90度回転
■□
□□ → □□□□ → ■□
■■ → ■■■■ → ■□
■□
みたいに変わる。
0892名前は開発中のものです。
2010/02/15(月) 22:23:00ID:8F/ucvejそれって渡す引数のほうを工夫すればいいんでねーの
二つ目は90度回転してから縦に二倍しても同じものを得られるわけだし
DrawExRotaGraph2(int x,int y,int cx,int cy,double ExtRateX,double ExtRateY,double Angle,int GrHandle,int TransFlag,int TurnFlag);
10個だな
0893名前は開発中のものです。
2010/02/15(月) 22:29:12ID:BUryD20y質問、90度以外でも渡し方次第で出来る?
0894名前は開発中のものです。
2010/02/15(月) 22:31:47ID:8F/ucvej出来るんじゃね
0895名前は開発中のものです。
2010/02/15(月) 22:57:23ID:ccjc3ij8それに回転と伸縮どっちが優先か見た目に明らかじゃないのも気になる
0896名前は開発中のものです。
2010/02/16(火) 00:28:56ID:ytIVItbu0897名前は開発中のものです。
2010/02/16(火) 03:07:21ID:JDL3KQO6こんな感じでどう?
http://gamdev4.hp.infoseek.co.jp/cgi-bin/up/No_0079jpg.html
0898名前は開発中のものです。
2010/02/16(火) 04:51:49ID:iDbvu+FE( ゚д゚)ポカーン
0899名前は開発中のものです。
2010/02/16(火) 05:23:23ID:g5MLEwas0900名前は開発中のものです。
2010/02/16(火) 06:40:46ID:OQUeahIO0901名前は開発中のものです。
2010/02/16(火) 09:20:21ID:aK6xRRB6そういう力技、嫌いじゃないぜw
0902898
2010/02/16(火) 10:16:29ID:JDL3KQO60903名前は開発中のものです。
2010/02/16(火) 10:17:15ID:JDL3KQO60904名前は開発中のものです。
2010/02/16(火) 11:28:24ID:iwCPzVGwマニュアルには
> StrLen として文字列の長さをわざわざ指定する ようにしたのは色々な側面から見て文字列の長さを指定できるよう にしたほうが良いと思ったからです。
と書いてありますが、どういうケースで指定が必要になるのか想像がつきません。
0905名前は開発中のものです。
2010/02/16(火) 12:41:35ID:ghUeZnk+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 ) ) ;
0906名前は開発中のものです。
2010/02/16(火) 12:56:47ID:iwCPzVGwなるほど、理解しました。
0907名前は開発中のものです。
2010/02/16(火) 13:02:27ID:JDL3KQO6メニュー画面だったかな。文字列をセンタリングして表示するのに利用した。
文字列の前後に空白や記号がある場合、
それらも含めた文字数で横の長さを決めると、ちょっとズレて見えることがある。
……ぶっちゃけた話、
他にも方法は色々あるだろうとか、メニュー画面くらい画像にしろよとか思うので
使う機会はあんまり無い気がする。
0908名前は開発中のものです。
2010/02/16(火) 17:38:15ID:S7mGVY2n0909名前は開発中のものです。
2010/02/16(火) 21:28:56ID:QXMNjoNkDrawModiGraph()とアフィン変換
アフィン変換 クラスでググるといいかもしれない
0910名前は開発中のものです。
2010/02/16(火) 22:33:22ID:7n/4grghデバッグ文表示で最後まで表示しないで途中で切ることとかよくあるんじゃね?
0911名前は開発中のものです。
2010/02/16(火) 23:25:40ID:b96KcuEjでもこれってソースになる元画像を読んでからやるの?格納してからメモリ上の画像をハンドルで指定して操作したりできるんだろうか
0912名前は開発中のものです。
2010/02/16(火) 23:50:46ID:QXMNjoNkDrawModiBillboard3Dのがいいと思う
0913名前は開発中のものです。
2010/02/17(水) 00:19:59ID:BMwZx7QFいや自分は873ではないんだけれども、参考になったので書かせてもらった。横槍すまんね
DrawModiBillboard3Dって左右反転できるのか。x1を右上の座標、x2を左上の座標、x3とx4も同様に交換ってやれば反転するのかな?
0914名前は開発中のものです。
2010/02/17(水) 02:18:28ID:V7zWpnOB例えば 「ドッギュウン」て音声のファイルがあったとする。
そのファイルを使って単発発射で「ドッギュウン」、連射で「ドッドッドッドッドッギュウン」ってなカンジにしたいんだけど
音声の再生中かを CheckSoundMemで調べて、再生してなかったら再生してもヨシってすると案の定
「ドッギュウン・ドッギュウン・ドッギュウン・ドッギュウン」ってカンジになってしまう。
なので、ソレをナシにすると1ループごとに再生するんであまりにも早くて
「ドドドドドドドドドドッギュウン」ってカンジになる。
音声の再生位置を調べて、ある程度達してたら再生ってやろうと思ったけどそんな関数は無かった。
だから適当に変数用意して3ループ目ごとに再生ってカンジにしようとしているんだけど…(ゴチャゴチャする気もするが)
一般的なゲームの場合ってこういう時どうしてるの?
音声を二つ「ドッドッドッド」「ドッギュウン」用意して、ボタン押しっぱなし時は「ドッドッド」、離す・もしくは一押しの時は「ドッギュウン」とか?
0915名前は開発中のものです。
2010/02/17(水) 02:32:31ID:ccv1Zplj離したら「ッギュウン」でいいんじゃねーの?
0916名前は開発中のものです。
2010/02/17(水) 05:47:58ID:9a0E55gk弾の発射間隔を広げるか、数発ごとに発射音を鳴らすようにすればいいじゃん
0917名前は開発中のものです。
2010/02/17(水) 06:26:15ID:CMLdNZJwそのカウンタが条件を満たしたとき音を鳴らせばいいんじゃないの?
1ループごとだと早すぎるんなら1おきにするとかもできる。
0918名前は開発中のものです。
2010/02/17(水) 08:34:48ID:MHINozGj自前で変形させるなら、2Dでも3D(ビルボード)でも大差なくない?
0919名前は開発中のものです。
2010/02/17(水) 13:16:50ID:WoQHqNkiFFのデータ見たら、あらかじめ重なった時の効果音も
組み合わせごとにいっぱい入ってて、意外だった
とかいう話を、どこかのスレで見たような、見なかったような。
手間と配布方式とかによって変わってきそう。
0920名前は開発中のものです。
2010/02/17(水) 19:53:18ID:b05sIrPrカメラ使って視点操作で楽できるからじゃね?
0921名前は開発中のものです。
2010/02/17(水) 21:17:38ID:MHINozGjカメラで視点操作ってことは、一括だよな。
メリットでもあるしデメリットでもあるという感じか。
0922名前は開発中のものです。
2010/02/17(水) 22:06:32ID:BMwZx7QF前にDrawBillboard3DをDrawModiBillboard3Dにそのまま置き換えてみたら同じ位置に描画されなかったから使うのやめちゃったんだけど
0923名前は開発中のものです。
2010/02/17(水) 22:17:31ID:V7zWpnOB多彩な案サンクス!やってみるよ俺
0924名前は開発中のものです。
2010/02/18(木) 02:17:33ID:artpUogbDrawModiGraphで左右反転は入れ替えで普通にできたよ。
アフィン変換の使いやすそうなクラス公開してたりするし、よくわからんまま使えそうだ。
0925名前は開発中のものです。
2010/02/18(木) 16:24:17ID:wXmsheL/例えば、画像描画や文字列描画を組み合わせて描画する物である「メニューウインドウ」をバッファに描画して、
それを透過やら拡大縮小してスクリーンに描画したいです。
0926名前は開発中のものです。
2010/02/18(木) 16:47:24ID:S5tbEoCahttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1533
これでどう?
0927名前は開発中のものです。
2010/02/18(木) 17:21:51ID:wXmsheL/まさに求めていたものはこれです。
ありがとうございました。
0928名前は開発中のものです。
2010/02/18(木) 18:10:44ID:UX2j7dSOレイヤーシステムどうやって作るのか悩んでたところだよ
0929名前は開発中のものです。
2010/02/18(木) 18:19:30ID:sI5JnKeCSoftImageにも転送付いてたような
0930名前は開発中のものです。
2010/02/18(木) 18:37:31ID:UX2j7dSO0931名前は開発中のものです。
2010/02/18(木) 18:41:04ID:yr41/JmBの右側の魔法陣みたいな斜めにして回転、みたいな変換・表示するのにはどうすればいいかわからない・・・。
というか、アフィン変換した画像というか、DXライブラリでどうアフィン変換利用すれば良いかわからないんだけど、
誰か分かる人頼む・・・。
0932873=897
2010/02/18(木) 19:07:00ID:7/BIGMNaおかしいな、大学は理系だったはずなんだけどなー。
行列なんて普通に使ってたはずなのに…… orz
0933名前は開発中のものです。
2010/02/18(木) 19:28:11ID:wsPY0Q5n斜めにして回転って2Dでやるほうが難しいんじゃないかな。
DrawModiBillboard3Dってカメラ関数使って斜めから見れるん?
>>897の魔方陣のように傾けて見れるならなんとかなりそうだけど。
0934名前は開発中のものです。
2010/02/18(木) 19:30:18ID:sI5JnKeC解くのは別にコンピュータがやればいい。大切なのは解き方
0935名前は開発中のものです。
2010/02/18(木) 19:40:26ID:UX2j7dSO最近はそういうゲームも結構あるよね
0936名前は開発中のものです。
2010/02/18(木) 19:43:40ID:cSNnQmS/0937名前は開発中のものです。
2010/02/18(木) 20:41:03ID:S5tbEoCaつまり、画像を2回回転させて描画したいっていうことだよね?
DrawModiBillboard3D関数の引数x1, y1〜x4, y4に各頂点を2回回転させた座標を指定すればいけると思う。
ビルボードじゃなくてモデルとして扱った方が簡単なような気もするけど・・・
0938名前は開発中のものです。
2010/02/18(木) 20:49:00ID:7/BIGMNa自分みたいに3Dサッパリな人間には、モデルデータを用意するだけでハードルが高いからなあ。
そうなると、従来の画像で扱えるビルボードの方が良さそう。
あとは動的に画像を生成するような場合(スクリーンショットとか)にも向いているかもしれない。
モデルデータを使わずにやるなら、素直に2Dでも良いわけだが。
0939937
2010/02/18(木) 20:57:50ID:S5tbEoCa引数x1, y1〜x4, y4は2次元の変形しか指定できないし、DrawBillboard3D関数にはある引数Angleも無いので3次元の回転は無理そうです・・・
モデルにすればMV1SetMatrix関数で自由に変形できるんだけど・・・
>>931の作ってるゲームは2Dなの?
それなら斜めに傾いている画像を使って下さいw
0940名前は開発中のものです。
2010/02/18(木) 21:04:10ID:UX2j7dSO0941名前は開発中のものです。
2010/02/18(木) 21:07:33ID:cSNnQmS/一部でしか使わないならそのために複雑な仕組み作りたくないでしょ
0942名前は開発中のものです。
2010/02/18(木) 21:07:35ID:7/BIGMNa0943名前は開発中のものです。
2010/02/18(木) 21:43:03ID:6a8jaVSbメタセコなら普通に使えた
0944名前は開発中のものです。
2010/02/18(木) 22:34:17ID:7/BIGMNa3Dとかアフィン変換とかサッパリなので2Dで。
http://gamdev4.hp.infoseek.co.jp/cgi-bin/up/No_0080zip.html
0945名前は開発中のものです。
2010/02/18(木) 23:17:57ID:yr41/JmBマジ感謝・・・なんだが、サンプルコードなくて使い方を迷う
0946名前は開発中のものです。
2010/02/18(木) 23:44:29ID:7/BIGMNaextRate_xとextRate_yに1、hImgにグラフィックハンドル、残りの引数には0でも入れてくれれば
とりあえず動くと思う。
0947名前は開発中のものです。
2010/02/19(金) 00:27:45ID:u7/N0T5pvoid 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ライブラリも用意して欲しいところだが
0948名前は開発中のものです。
2010/02/19(金) 00:28:54ID:u7/N0T5p/* 2D用行列 */
typedef struct VECTOR2D {
float x,y;
} VECTOR2D;
まあ使わなくても二次元配列なりで出来るけどね
0949944
2010/02/19(金) 00:43:49ID:zmDX76mUこれって何か上手く使えないかな。
公式BBSだと、マスク処理に使うって話があったけれど…
>>947
やってることは自分と同じ…かな? たぶん。
そっちの方がシンプルなコードだがw
0950名前は開発中のものです。
2010/02/19(金) 01:11:24ID:u7/N0T5p同じだね
縮小拡大前に回転するかしないかってのは入れる値を変えれば出来るし、縦の反転は180度回転させた後に左右反転すれば再現可能
自分はこれをよく使うので最低限のものだけを入れて、必要に応じてラッパー関数を使えばいい(まあこれ自体もmodiのラッパーだけど)
0951名前は開発中のものです。
2010/02/19(金) 01:32:26ID:zmDX76mU回転させてから拡大(縦横別倍率)ってどうやるの?
0952名前は開発中のものです。
2010/02/19(金) 01:36:21ID:u7/N0T5p0953名前は開発中のものです。
2010/02/19(金) 02:17:39ID:zmDX76mU0954名前は開発中のものです。
2010/02/19(金) 10:00:47ID:vzeC0aMv行列があるんだと思うが・・・行列を使わないなんて無駄に複雑になるだけだよ。
0955名前は開発中のものです。
2010/02/19(金) 12:10:45ID:zmDX76mU計算部分を自前でやってるだけで、やってることそのものは変わらない気がする
0956名前は開発中のものです。
2010/02/19(金) 13:25:42ID:zmDX76mU画像処理の入門書を読んでるんだが
(1)自前で行列(回転用行列、拡大用行列など)を用意
(2)それらを掛け合わせて、最終的な変形用の行列を作る
(3)変形用行列を関数に渡す
…みたいな感じだった。
行列をクラスにして、演算子のオーバーロードで簡単に加算や乗算が出来るようにするとか
そういう工夫がされているようだ。
あと、公式BBSでこんなの見つけた
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=1033
0957名前は開発中のものです。
2010/02/19(金) 13:34:25ID:G1VFwFwU0958名前は開発中のものです。
2010/02/19(金) 13:37:37ID:gvWv62bYクラス公開されててちょっといじれば簡単に使えるのとかあったぞ
行列うんぬんよりクラスがわからんとか?
0959名前は開発中のものです。
2010/02/19(金) 14:02:46ID:az/+pLVO長方形の画像を自由変形して描画するアルゴリズムはいったいどうやって実装されてるんだろう
ピクセル単位で全部写像してたらすごく遅くなりそうだが他に方法も浮かばない
0960名前は開発中のものです。
2010/02/19(金) 14:11:57ID:uvqEn+/2アルゴリズムとかいう次元じゃない
0961名前は開発中のものです。
2010/02/19(金) 14:17:06ID:zmDX76mU3Dの方はあんまり見てなかったぜ。
これから勉強しないとな…。
>>958
クラスが分からないとかは流石に発想が飛躍しすぎじゃね?
>>959
テクニカルな最適化や、誤魔化しとかはやってるかもしれないけど、
基本的なやり方は同じで、あとはハードウェア様による力技なんじゃない?
0962名前は開発中のものです。
2010/02/24(水) 03:58:01ID:qZkPMJuPLoadGraphを使う関数を繰り返し呼び出してると
例外が出て強制終了することがある
具体的には、
main(){
:
:
shop->open();
}
とメインの関数からクラスのメンバ関数を呼んだとき、
openを十回くらい呼び出すと、openを呼んで最初に出てくるLoadGraphで強制終了する
open内で何度もLoadGraphを呼び出しているが、最初のLoadGraph以外で強制終了したことはない
他のまったく別のクラスのメンバ関数でも、二回目に呼び出したときに
最初のLoadGraphで強制終了するので、
openでなくLoadGraphに問題があると思うんだけど
そもそもどういう状況でLoadGraphが例外出すか分かりませんか?
メモリ使用量を見る限りメモリリークなどはない
ちなみに使ってるのはBcc版
0963名前は開発中のものです。
2010/02/24(水) 04:03:15ID:qXzrwIFO0964名前は開発中のものです。
2010/02/24(水) 07:32:26ID:Jsc/BFjh読み込んでる画像はどんな画像? ファイルサイズとかフォーマットとか。
メモリリークかどうかもどんな環境でどれくらいのサイズの画像を読み込んでるのか教えてくれないとこっちでは判断できない
もっと詳しく
0965名前は開発中のものです。
2010/02/24(水) 09:49:28ID:RLyfmrNj0966名前は開発中のものです。
2010/02/24(水) 09:53:22ID:KFJm0GRxどういう状況で例外出すってエラーメッセージに全部書いてあるだろうが
0967名前は開発中のものです。
2010/02/24(水) 10:11:36ID:a8pqqcvy「最初のLoadGraph」に指定してるファイルが、
(1)形式的に未対応のものを指定している
(2)指定ファイルの内部フォーマットがおかしい
のどれかなんじゃないのかな?
「最初のLoadGraph」以外は成功してるって話だし。
0968名前は開発中のものです。
2010/02/24(水) 15:35:20ID:etAIwZMZいつもなら「ch.」(chは構造体)で設定したパロメータが表示されたのに
今日使ってたら表示されなくなった。これってどこの設定変えれば元に戻るの?
0969名前は開発中のものです。
2010/02/24(水) 16:19:36ID:AEul0BlH0970名前は開発中のものです。
2010/02/24(水) 16:56:28ID:OQn9U2460971名前は開発中のものです。
2010/02/24(水) 17:28:51ID:ROg57qmn0972名前は開発中のものです。
2010/02/24(水) 20:46:20ID:LFTpl00q最近のは分からないけど、ちょっと変なことやると対応しなくなるしなあ。
0973962
2010/02/24(水) 20:46:27ID:qZkPMJuP移植にかなり手間取ったけど、原因はnew,deleteでの
HEAP CORRUPTION DELETEDだった
ごめんよ、DXライブラリ
0974名前は開発中のものです。
2010/02/25(木) 00:10:24ID:wGlYMdYrC#使いやすいと思うんだが・・・
0975名前は開発中のものです。
2010/02/25(木) 00:27:31ID:JfnFuENIそりゃデフォルトで解説されてるC++使うよ。
0976名前は開発中のものです。
2010/02/25(木) 00:40:37ID:rlWr6nuc>>975
素人はメモリ管理で苦労させられる
C#はライブラリの導入・セッティングまでも驚くほど簡単だ
0977名前は開発中のものです。
2010/02/25(木) 00:43:57ID:o6l4NITL0978名前は開発中のものです。
2010/02/25(木) 00:57:11ID:xk33jNpgあと.NETないと動かないんだっけ それはどうでもいいが
0979名前は開発中のものです。
2010/02/25(木) 01:15:00ID:rlWr6nuc今のPCスペック考えると動作速度気にするのは意味無いかな
同人レベルならFFやメタルギアのような実写モーションやるわけではないし
HSPよりは圧倒的に速いよ、ニコ動見てもHSP+Easy3Dで3Dアクション作ってる奴がたくさん居る
C#もJavaもゲーム製作には十分過ぎる
0980名前は開発中のものです。
2010/02/25(木) 01:40:51ID:DXATdGPP>>975の理由もあるが、
単純に、C言語覚えたから次はorいよいよC++に〜とかって感じじゃない?
JAVAとかの経験がなければガベコレとかも知らないだろうし。
メモリ管理とかはまぁゲ製作以外で活かせる人なら勉強にもなるから良いやー、とか。
0981名前は開発中のものです。
2010/02/25(木) 02:07:47ID:hEXp+gEa改造し放題だと市販のゲームには向かないと思う
0982名前は開発中のものです。
2010/02/25(木) 02:29:34ID:8SXpDUIf公式サンプルがC言語で書かれているし、どれか一つ言語を覚えるとしたら自然にC言語になるんじゃないかな。
DXライブラリ自体もC言語で書かれてるしね。
>>981
難読化ツールというものがある。
それにC言語でも解析は可能なので市販する場合は独自に暗号化する必要がある。
特に画像、サウンド、シナリオテキストは見えてしまうとマズいので。
0983名前は開発中のものです。
2010/02/25(木) 02:39:17ID:hEXp+gEa0984名前は開発中のものです。
2010/02/25(木) 05:08:59ID:SPGhDv+7ぜってー使ったこと無いだろ>難(ry
あのスカスカ具合を見てから言えw
データも言語関係ないし
0985名前は開発中のものです。
2010/02/25(木) 07:36:27ID:fv/CwMlZC#やJAVAはWindows非標準の中間ファイルしか作れず実行環境のインストールをユーザーに説明し、納得させ、実行させなければいけない
余計なソフトのインストールを嫌うユーザーは多い
速度よりも何よりもこの差があるからC#やJAVAは選ばれない
0986名前は開発中のものです。
2010/02/25(木) 07:53:11ID:xyh/cBvs0987名前は開発中のものです。
2010/02/25(木) 08:25:15ID:JegjOA7A0988名前は開発中のものです。
2010/02/25(木) 08:29:09ID:8SXpDUIfどの言語にしても暗号化は必要と言いたかったのだけど・・・
>>984
>あのスカスカ具合を見てから言えw
どの難読化ツールを使ったか知らないけど、それでスカスカだと感じたんならしょうがないね・・・
そこまでセキュリティが必要なものを作っている人もいないと思うけどなあ。
0989名前は開発中のものです。
2010/02/25(木) 09:03:26ID:PKMfSc2o現状の市販ゲームが改造し放題なのばかりなのに何言ってるんだ。
0990名前は開発中のものです。
2010/02/25(木) 09:57:05ID:8oJeVww7無料のやつしか使ったこと無いだろ
0991名前は開発中のものです。
2010/02/25(木) 10:40:15ID:olOvytZe0992名前は開発中のものです。
2010/02/25(木) 18:35:53ID:937qRGDSゲーム会社とかで使われてる言語は
圧倒的にC++が多いからじゃねーの?
趣味でゲーム作ってるだけって人も多いだろうけど
ゲーム作ってる以上そっちに興味沸くのは当然だろ?
よくわからんけどC#で製作されてるのって箱○ぐらいらしいじゃん
そして箱○があの状況だし…
0993名前は開発中のものです。
2010/02/25(木) 19:16:33ID:6cWD1bsH0994名前は開発中のものです。
2010/02/25(木) 21:49:34ID:ecmRLDIv0995名前は開発中のものです。
2010/02/25(木) 22:12:00ID:L3Szp9iOラップしたくなるけどそんなことするくらいなら普通にDirectX叩いても大して変わらないし
0996名前は開発中のものです。
2010/02/25(木) 22:56:28ID:wGlYMdYr言いたかった事は、C#や.net使うと、意外ににC++でやってる様な小技が
簡単にできたりとか。
3Dとか使わないで、ノベルゲとか作るならC#+DXlibが楽だと思ったからなんだ。
>>994
頭にDX.付け忘れたり。
0997名前は開発中のものです。
2010/02/25(木) 23:22:02ID:L3Szp9iO0998名前は開発中のものです。
2010/02/25(木) 23:25:53ID:nMEq0Meg0999名前は開発中のものです。
2010/02/25(木) 23:26:34ID:nMEq0Meg1000名前は開発中のものです。
2010/02/25(木) 23:27:06ID:kia54fEW10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。