3 :
名前は開発中のものです。 :2012/02/23(木) 21:39:27.00 ID:Si08WDH/
立てました
そろそろ過去スレを
>>2 に持ってこないと改行制限で辛そう
斜面こわいよー
次スレの時期だというのに無駄に加速しやがって・・・
>>1 乙
まあ1000と気付かずに書き込んじゃったのが俺なので
前スレの
>>998 なんだけど何があほくさかったのか後学のために教えてくれないかな。
こんなこと混ぜ返すのもなんだけど、個人的にかなり大事なことだと思ってるんで。
物理法則がゲームをつまらなくした アニメ的なデフォルメこそゲームに必要な要素だったのだ
前スレでID:00uFnE+fが言ってるのは「現実と同じ重力バランスにすれば強い重力によって坂でも問題は起こらない」ということ 坂で浮かないようにする方法が重力を強くするだけでは、 ゲーム特有のふわりとしたジャンプは実装できなくなってしまう とかそういうこと
ああ、そうだったのかなんか勘違いしてたよ
//#include <windows.h> #include "dxlib.h" #define CX 1024 #define CY 768 #define BPP 16 #define WHITE GetColor( 255, 255, 255 ) #define GRAY(a) GetColor( a, a, a ) #define ACCELL 7.5 #define GRAVITY 15.0 #define CSLOPE 7.5 #define RESIST 2.5 #define JUMP 300.0 #define FERROR 2.5 #define PSIZE 8 double GetSlope( VECTOR* fdata, int numdata, int x ); int GetFloor( VECTOR* fdata, int numdata, int x ); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow) { SetGraphMode( CX, CY, BPP ); ChangeWindowMode( TRUE ); if( DxLib_Init() == -1 ) return -1; SetDrawScreen( DX_SCREEN_BACK );
VECTOR floors[] = { { 0, 64, 0 }, { 100, 64, 0 }, { 200, 96, 0 }, { 250, 104, 0 }, { 500, 32, 0 }, { 800, 32, 0 }, { 1000, 256, 0 }, { 1500, 128, 0 }, { 2000, 64, 0 }, { 2500, 96, 0 }, { 3000, 128, 0 }, { 3200, 160, 0 }, { 3400, 10, 0 }, { 5000, 64, 0 } }; int elements = sizeof(floors) / sizeof(VECTOR); VECTOR player = { 50, 100, 0 }; VECTOR vec = { 0, 0 }; int cam_x; double floor_y; int pre_time, cur_time; double past_time; int bOnTheFloor = FALSE; int bDrawAll = TRUE; int bPreDKey = FALSE; int bPreSPKey = FALSE; pre_time = GetCurrentTime(); while ( ProcessMessage() != -1 ) { ClearDrawScreen(); // 終了判定、表示切替 if ( CheckHitKey( KEY_INPUT_ESCAPE ) ) break; if ( CheckHitKey( KEY_INPUT_D ) ) { if ( !bPreDKey ) bDrawAll = !bDrawAll; bPreDKey = TRUE; } else bPreDKey = FALSE;
// 経過時間の計測 cur_time = GetCurrentTime(); past_time = (double)( cur_time - pre_time) / 1000.0; pre_time = cur_time; // 計算、判定 if ( CheckHitKey( KEY_INPUT_RIGHT ) ) vec.x += ( bOnTheFloor ? ACCELL : (ACCELL * 0.25) ); if ( CheckHitKey( KEY_INPUT_LEFT ) ) vec.x -= ( bOnTheFloor ? ACCELL : (ACCELL * 0.25) ); if ( CheckHitKey( KEY_INPUT_SPACE ) ) { if ( !bPreSPKey && bOnTheFloor ) vec.y += JUMP; bPreSPKey = TRUE; } else bPreSPKey = FALSE; if ( bOnTheFloor ) vec.x -= GetSlope( floors, elements, player.x ) * CSLOPE; if ( vec.x > 0.0 ) { if ( ( vec.x -= ( bOnTheFloor ? RESIST : (RESIST * 0.25) ) ) < 0.0 ) vec.x = 0.0; } if ( vec.x < 0.0 ) { if ( ( vec.x += ( bOnTheFloor ? RESIST : (RESIST * 0.25) ) ) > 0.0 ) vec.x = 0.0; } player.x += vec.x * past_time; player.y += vec.y * past_time; vec.y -= GRAVITY;
floor_y = GetFloor( floors, elements, player.x ); if ( floor_y + FERROR > player.y ) { player.y = floor_y; vec.y = 0.0; bOnTheFloor = TRUE; } else { bOnTheFloor = FALSE; } cam_x = player.x - (CX >> 1); // 描画 for ( int i = 0; i < elements - 1; i++ ) { DrawLine( floors[i].x - cam_x, CY - floors[i].y, floors[i+1].x - cam_x, CY - floors[i+1].y, WHITE ); } if ( bDrawAll ) { for ( i = floors[0].x; i < floors[elements - 1].x; i++ ) { DrawLine( i - cam_x, CY - GetFloor( floors, elements, i ), i - cam_x, CY, GRAY( 64 ) ); } } DrawBox( player.x - PSIZE - cam_x, CY - player.y - (PSIZE << 1), player.x + PSIZE - cam_x, CY - player.y, GetColor( 128, 128, 255 ), TRUE ); DrawFormatString( 0, 0, WHITE, "← →で移動" ); DrawFormatString( 0, 24, WHITE, "スペースキーでジャンプ" ); DrawFormatString( 0, 48, WHITE, "重い時は\"D\"キーで地面非表示" ); ScreenFlip(); } DxLib_End(); return 0; }
double GetSlope( VECTOR* fdata, int numdata, int x ) { double slope; for ( int i = 0; i < numdata - 1; i++ ) { if ( fdata[i].x <= x && x < fdata[i+1].x ) break; } if ( i >= numdata - 1 ) slope = 0; else slope = (double)(fdata[i+1].y - fdata[i].y) / (double)(fdata[i+1].x - fdata[i].x); return slope; } int GetFloor( VECTOR* fdata, int numdata, int x ) { int floor_y; for ( int i = 0; i < numdata - 1; i++ ) { if ( fdata[i].x <= x && x < fdata[i+1].x ) break; } if ( i >= numdata - 1 ) floor_y = -1000; else floor_y = (int)((double)(fdata[i+1].y - fdata[i].y) / (double)(fdata[i+1].x - fdata[i].x) * (double)(x - fdata[i].x)) + fdata[i].y; return floor_y; }
ソース貼るのに長くなるようなら適当なアップローダ使う方が良くない?
マリオに斜面なんてあったっけ?
3辺りからしゃがむと滑ったり
>>16 めんどくせえよ
>>17 少なくとも3にはある
ちなみに俺は物理法則に完全に則るように作れなんてこれっぽっちも言ってねえから
>977 :名前は開発中のものです。:2012/02/23(木) 20:34:40.62 ID:aVCkizLT
>ユーザーが右ボタン押してるのに斜面に差し掛かったらキャラのY座標を操作しないといけないんだぜ?
>普通左右しか押してなかったらX座標しかいじらなくていいと思うじゃん
こんなことを言ったアホのこの点に関して言っただけ
現実に忠実に作るほど答えは限定され、没個性になる
現実に則する事を曲げてでも面白さを追求することは当然
スレ開いたらいきなりソースでワロタ
スレチかもしれませんが質問させてください。 部屋クラスに1~4つの扉(扉の座標や別の部屋クラスへのポインタ)を設定したいのですがどうしたら良いですか? 1つしか扉が無い時に4つ分のメモリを確保するのはなんだかなぁ、と思います。
キャラの左端と右端の差がn1以上n2以下なら坂として処理、 n2以上なら崖に立っている処理 みたいなのでいいんじゃないの
26 :
名前は開発中のものです。 :2012/02/24(金) 01:00:00.17 ID:4gLak98i
i をループで宣言してるのとしてないのでエラーがでるな。
>>23 ビットで判定させるって手もあるけど、
4つぐらいなら別にいいんじゃないの
後はデフォルト引数で指定しなければ扉は常にゼロとか
>>23 質問の仕方を考えような
それクラスとか関係ねーから
「確保するメモリのサイズが不定のときに、メモリの無駄を減らしたいのですがどうしたらいいですか?」
つ 可変長配列
つっても実際にその程度のサイズなら全く気にするに値しないが
>>26 Cでコンパイルしてんじゃねーの?
つーかその程度自分で直せないカスは論外
こんな短いソースでこれだけの事をやれるなんて凄いなぁ。
gccで作ってるんですか(驚愕)
gccだとlinuxでも使えるからな
現実に忠実に作ったらマリオはあんなジャンプできねーしあのジャンプないマリオとか面白くないわな
現実に忠実に作ったら5ドットぐらいのジャンプで何度もジャンプすると即息切れか 1面クリアも厳しいな
アホな人はまだアホなこと言ってんのか
誰のことをアホだと言ってるのかが検討つかない
ミスをめんどくせえよで誤魔化してるプライドの高い人
「現実に忠実に作ったら」ってのは「何を」が抜けてるから抽象的過ぎて
>>33 ,34みたいな不毛な会話にしかならないよね
ソースコード爆撃を控えめに怒られてるのに、すごい上から目線の初心者さんがいるのはこのスレですか
そっとしておいてあげようよ
5ドットじゃなくて10ドットくらいはいけるよね!(ネタ
バッタは自分の身長の何倍も飛びます
バッタ主人公にすれば解決じゃね? 俺って天才じゃね?
そんなバッタ物を作るのか
43を腹筋スレにぶち込みたいという欲求が怒髪天です
48 :
21 :2012/02/24(金) 18:58:48.45 ID:PQNzgB3d
ID被りとか初めてだわ 質問する時にソースを提示しやすくなるし ideoneはテンプレに入れても良いんじゃないかな と提案します
49 :
×21 ○20 :2012/02/24(金) 19:01:42.80 ID:PQNzgB3d
ごめん今のレスの1行目は忘れて
イチャモン付けるだけしか能の無いクズが、悔し紛れにレスせずにはいられなくなりゃ
そら
>>31 -のような見苦しい哀れなだけのレスになるわな
まあこういう無能知的障害者を俺は何度も見てきているから予想通りの反応でしかないわけだが
無能知的障害者共は人への要求と能書きだけは一人前だが、誰一人としてソースすら提示出来ねーな
まあ、能書きに具体性が全く無い時点で実際にやったら躓きまくって一向に実現出来ないクズなのは目に見えていたんだが
餌をママが持って来てくれるのを口を開けて待っているだけのクズニートは
表へ出ても何一つ変わりはしねえな
>>21 のコードは単純に一次関数でやってるから坂道で浮くし
垂直を作ると底から上に一気にワープする。
それにラインのデータを先頭から探索していくため己型のマップだと下の空間に入れない。
const VECTOR floors[] = {
{0, 64, 0}, {100, 64, 0}, {100, 300, 0},{480, 300, 0},
{500, 200, 0}, {400, 200, 0},{400, 100, 0}, {1000, 120, 0} };
こんな感じのデータ。Dで塗りつぶし非表示にしてやってみるとわかる。
>>50 ____
.ni 7 /ノ ヽ\ 壁に向かってしゃべってろゴミ
l^l | | l ,/) / /゚ヽ /゚ヾ\ .n
', U ! レ' / / ⌒ ⌒ \ l^l.| | /)
/ 〈 | (____人__) | | U レ'//)
ヽ\ |lr┬-l| / ノ /
/´ ̄ ̄ノ ゙=ニ二" \rニ |
>>50 まぁまぁ、まずは実力相応の言葉遣いを身に付けてこようよ
>>51 そうだよ
1時間ちょっとで作ったもんを端から端まで眺めて粗探しするくらいどんな馬鹿でも出来るよな
垂直を壁にしたけりゃ別途判定を加えればいいし、
下に入らせるなり、落ちたら戻れないようにしたいなら別途処理を追加すればいいだけだろ
言ったことをテンプレ的に実現したまでだ
そもそも2Dアクションなんて作る気はねえし、
自分の望む仕様通りにその処理を実装すればいいだけだろ
偉そうに人の粗探しと批判だけしている暇があったら
人から物を貰うだけでなくお前も相手に物を提供しようなクズ
>>52-53 知的障害者共、お前らソース提出な
後出しなんて自分で作ったもんに相手のいいとこくっつけりゃいいだけなんだからお前ほどの馬鹿でも出来るから
お前、提供したつもりになってるけど誰も望んでない物な件 ゴミの提出なら誰でもできるw 「坂が難しい」に対してお前は「簡単」って言い放ったが、「坂が難しい」とされている理由の「坂で浮く」ってのができてないじゃないか ただ「誰でも書けるソース」を出しただけ なのに超偉そう 恥ずかしい
>>56 口を開けて待っているだけの分際で端から端まで与えて貰う気になってんじゃねえよ知的障害者
何度も言ってるだろ無能
>>56 ソースはまだですか
ゴミすら提出出来ない知的障害者ですか?
>>57 偉そうな口聞いてるくせにお前馬鹿だったんだなw
って言ってるだけだよ
俺は別にソース欲しがってなんかないし
自分から自分の馬鹿さをひけらかしておいて、それに耐えられず他人を馬鹿扱いか
親の顔が見てみたい
>>59 おっ、この知的障害者やっぱり煽りには食いつくね
批判だけなら「どんな馬鹿でも」出来るぜ
何年も生きてりゃそれくらい分かるよね
人を批判するからにはお前がそれ以上であることを証明しような、って言ってるだけ
そんなことすら知的障害者には難しいことなのかい?
まあ坂の実装ができない人たちが悩んでるところに、「俺が教えてやるよ」と上から目線で突っ込んだ奴が、 坂の実装できない連中と同じレベルだったってだけだ 叩かれてるのが「実力が上だと示せてないのに上から目線だから」ってのがなんでわかんないかな 「自分の発言は煽り」って「自分は言葉の通じ無い荒らし」って宣言と同じだね
アクションゲームの坂が難しいって話は 単純に一次関数でやれば解決って話じゃないんだよ。 はっきり言ってそんなレベルの話はしてないわけ。 それに端から端まで見て粗探ししたわけじゃない。 一次関数の単純な運用を見て指摘しただけ。 批判でもなんでもない。
>>61 相変わらずこの知的障害者は全部与えて貰えるつもりでいんのか
俺がそれを今考えて実装して公開したとしてお前らゴミにパクられるだけだろ
そんなことをわざわざ時間掛けてすると思ってんのか?
脳障害ってのは「全く」何も考えていないんだな
>>62 短時間で画像も使わず短いコードでと考えた結果そうなっただけだが?
上記条件の下にもっと良い方法は必ずあるからまあ是非見せて貰いたいものだね
他人に要求するだけのゴミ以下無能クズじゃないならな
>>63 論点をずらすなよ
俺イケメンだよってほざいてる奴が顔見せたらブサイクだったから笑われてるだけで、笑ってる側のレベルは関係ない
自信満々なのに実力がないお前がおかしいだけ
で、そんなウソツキが「時間がないからこれしかできなかった。本当はできる」って言っても信じられないだろ?
別にソースは要らないから「自分は実力不相応に偉そうにしてました。天才プログラマの振りしてました。ごめんなさい」って反省して欲しいだけだよ
>>65 何言ってんだ?この知的障害者は
誰も天才PGだなどと一言も言っていねーよクズ
別にそんなものは凡才でも出来るだろと言ってるだけだ
っつっとに知的障害者ってのは物事を脳内で勝手に自分の都合の良いように解釈するよな
まあ何度も言うが、お前が見苦しい口だけ無能知的障害者でないことを証明したいのなら
くだらないレスをしてる暇があったらさっさとコードを書く作業をしような
少しくらいは待ってやるからさ
>>66 凡才でもこれくらいできるだろ?って提示したコードが出来てなかったから笑われてんだよw
俺がどうなのかは関係ないんだよ 仕様を満たしてるかどうかは白黒でハッキリ付く部分なんだから
まあ自分が凡才だと自認してるんなら、他の凡才の人たちに対して上から目線はやめてね
お、ここがDXライブラリのスレか…… あれ、俺違うスレ開いたみたいだ
まあ荒らしは困る 余計なプライドばかり高くて
ID:quP1lX6Lが独り言を話すスレ
>>67 だからそんな部分は自分の実現したい仕様に合わせて実装すればいいと言ってるだろ脳障害
>俺がどうなのかは関係ないんだよ
全くもって関係あるね
無能な知的障害者であれば人様に意見する権利はないし、意見を聞く価値も無いからな
だから無能でないことを証明しろと簡単な事を言ったまでだ
当然理解出来るよな?
そして少なくともお前の今までのレスでは、煽られて顔を真っ赤にして偉そうに能書きを垂れているだけの
無能以下でしかないんだよ
はいはいそうですか 自分が無能だったくせに
>>73 無能でないことを証明できもしない知的障害者が何度言ってるんだそのセリフ
顔真っ赤なのを怒りで必死にごまかそうとするよね、DQNって
無能の肩書きを返上するチャンスを散々与えて貰ってるのに 全く生かそうともしない割には食い付きだけはいいんだよなあこの知的障害者 余程悔しかったんだろうけど
いい加減他所でやれよ。ガキかお前ら
>974 名前: 名前は開発中のものです。 [sage] 投稿日: 2012/02/23(木) 20:26:15.18 ID:00uFnE+f
>2Dの斜面はどうってことないだろ
>yをxの関数で現せばいいだけ
>直線や円をチップにすれば関数は簡単
前スレの彼の発言を抜粋。
前スレ974ではyをxの関数で表せばよいといっている。
>>64 "短時間で画像も使わず短いコードでと考えた結果そうなっただけだが?"
この発言は前スレ974に矛盾する。なぜなら一次関数を使うべきだと主張しているのはコードを書く前である。
>>64 "上記条件の下にもっと良い方法は必ずあるからまあ是非見せて貰いたいものだね "
この発言は一行上に矛盾する。短時間ではなく短いコードという制限がなければ一体どういう考え方を採用するのか。
むしろ、それが聞きたいのである。
アクションゲームの坂道の実装の難しさっていうのは、単純にオブジェクトの位置を補正するだけの話ではない。
それを前スレでどうすればよいかと話を始めるときに物理ライブラリのBOX2Dを使ったら効果的だという話が出た。
そこにあなたが前スレ
>>974 で坂道なんてちょろいと偉そうに出てきたわけだ。
そして出てきたソースコードが単純な一次関数を使った位置補正に過ぎないコードだった。
それにみんなは唖然としたわけだ。それに気を悪くしたあなたは周りをゴミくず無能扱いしてファビョっている。
いや悔しがらなきゃいけないことをしちゃったのは ID:TJKzJquSだけなんだが…… 何か言う度に罵倒しか返してこないのは恥ずかしかったからだろうに
まあいいや
取り敢えず
>>21 のソースの床をベジェ曲線にしてくれや > quP1lX6L
床の高さと傾斜を取得する関数を弄るだけだから
くだらないレスを悔し紛れに繰り返してる暇があったら完成するまで必死こいてシコシコやってろ
81 :
名前は開発中のものです。 :2012/02/24(金) 20:15:01.87 ID:TJKzJquS
>>78 ログまであさって随分と必死だねえ
コーディングは出来ないけどそんなことだけは必死になれるんだねえ
何言われてんのかまったくわかってないなコイツ
>>78 >この発言は一行上に矛盾する。
どこが矛盾してんの?初めて思い付いた事じゃないと矛盾なの?
単に適切と思われる方法を選択したと言ってるだけだろ
>短時間ではなく短いコードという制限がなければ一体どういう考え方を採用するのか。
お前どこまで馬鹿なんだよ
近似出来る関数なんていくらでもあるだろ
関数すら一から十まで教えてもらわないと分からないのかクズは
全く以って揚げ足と批判しか能のない(それすら満足に出来ないようだが)脳障害ばかりだな
荒れまくっててワロタw
>>81 ログあさるのはたいしたことじゃないし^^
コーディングできないっていうけどあなたの書いたコードを読めるだけの最低限の能力は保証されてますよ^^
>>85 時間の有り余ってる暇人ニートなんだからコード提出して
お前の汚いコードがどれほどの人に理解してもらえるか試してみような
ああ、
>>51 で当たり前のことを何で鬼の首を取ったようにコイツわざわざ言ってんのかと思ったら
ソースが読めた事を自分の中で誇るべきことだと思ってたのか
それで嬉々として書き込んじゃったんだねえ
そのレベルでどの程度のコードを書いてくれるのか楽しみだねえ
氷の床や 動く床のギミックを作ろうとしたとき、 実装方法によっては、自分が立っている場所の情報を取得することがあると思う。 この延長で、通常の当たり判定(キャラと床の当たり判定)の他に 「斜面の上に居る」というフラグを用意してしまうというのはどうだろう? この斜面フラグが立っているとき、左右キーや下キーで斜め方向に移動するように処理するの。
関数名の接尾辞fのとAA組み合わせると移動時ボケて困ってる人いないか?
AAて何? アスキーアートくらいしか分からん
'i' : 定義されていない識別子です。
また同じ馬鹿が 何のためにプログラムが出来る「はず」の奴がいるスレで 気が向いて作った最適化もしていないコード貼ってると思ってんだか 2Dアクションなんて作る気が毛頭ない人間にバランス調整や てめーの思い通りの仕様を指示する馬鹿がいんだか 何の為のソースだよ
for文内で宣言されたiってかイテレータをスコープの外で使う言語があるの?
スコープ内なんだよ C++で for ( int i = 0; i < 3; i++ ); for ( int i = 0; i < 5; i++ ); って打ってみろやクズ
少なくともコンパイル通してからきてくれよ
普通に通ってるから
そういえば、for(int i=0;~) にしたときの i って 外側になるか内側になるか、昔は決まってなかったんだっけ?
つったく、端から端まで面倒見てやらなきゃ何もできねえくせに 文句だけは一人前だなてめーら つーか文句言ってる暇があったらソース貼れや
古いコンパイラを使い続けてる人が来てるのか MFCとか使わないならVS2010使えや
てめえに指図されることじゃねえよクズ
ちなみにVC6.0な MFCは使わなくなったが、単に変えるのが面倒臭い フォトショにメタセコ、HTMLやAE FLASH AS3.0 まで手出してるから出来るだけラクをする方向で
なんか変なの沸いてるなw
17 :名前は開発中のものです。:2012/02/24(金) 00:22:00.99 ID:esL5m7/W マリオに斜面なんてあったっけ?
なにこいつwww
昨日馬鹿にされたキチガイ発狂
さしずめ推薦受かったから一足早い春休みって所か
結局知的障害者は文句を言うだけ言って、その上で与えて貰い、 何一つ相手に提供してあげることは出来なかったわけだ まあ、家でも親に対してそんな態度なんだろうゴミ以下無能ニートってのは
だらだらと30回くらい書き込んでるけど結局何言いたいの
池沼相手に優越感に浸ってて楽しそうですね
ほら、ぼちぼちあったかくなってきたからね?
で?
書きこむのだけはもうやめてもらいたい 何も教えてくれなくていいですから
>>TJKzJquS
コードさらして会話を成立させてる。
その場力に嫉妬。
企画スレ主は、彼の爪の垢を煎じて飲んだ方がいいんじゃないかww
だが、釣られすぎてるあたり、彼は若さを隠しきれていないようだ
皆、彼のことが好きなんだなwww
>>78 >アクションゲームの坂道の実装の難しさっていうのは、単純にオブジェクトの位置を補正するだけの話ではない。
「何が難しいか」は人それぞれ。
なぜなら「何を見ているか、何を優先しているか」は人それぞれだから。
ID変わって自演まで始めたの?
ID変わったのは日付のせいでしょ。これ以上引きずらなくていいから。
引き籠り乙w ネットの世界ばかりに閉じこもっていると、そのうち後悔するぞw 「そのうち」ってのが死に際でなければいいなww
ゲーム制作をやめさせようとしている人しかいないスレの中で頑張ってるなー
ID:mnhutRY8 ID:x3nqr6Zk
ID変わって他人の振りして自分を擁護する・・・ うーんみみっちい
>ID変わって他人の振りして自分を擁護する 自分がいつもそうしてるから、そう決めつける。 哀れだな。 もう一度、言ってやるよw >ネットの世界ばかりに閉じこもっていると、そのうち後悔するぞw >「そのうち」ってのが死に際でなければいいなww
そのネットの世界でムキになってた奴がかわいそうに
>自分がいつもそうしてるから、そう決めつける。 >哀れだな。
なんで自分の発言引用してるの? ゲーム制作の話ができないなら早く寝なよ
これが真性荒らし発生のパターンか・・・
ソース晒してくれて、固定値と数行弄ればいくらでも自分のしたいように出来るのに それすら出来ない無能がピーピー喚いてるだけのスレ 最後にはバランス調整までしてもらう始末 その喚いていたクズは「何をした?」
晒して「くれた」ように見えたのか 見解の相違だな
コンパイルできないソースありがたすぎる
>>131 だから知的障害者のお前は何をした?
これから何が出来る?
人様を評価するだけで、一切何もしない、こんな無能なクズ知的障害者はもう飽きるほど見てるんだよ
そういう奴に限って、何も言わない奴以上に何も出来ない
だからお前が如何に無能であるかが手に取るように分かるんだ
>>132 出来るじゃん
そもそもエラー内容見れば数秒で直せるのが普通だろ
それすら直せない知的障害者を振り分ける意味では全く丁度いいわ
で、俺の環境では普通に通るソースをわざわざテメエ向けに書き換えて再アップしてやった、と 何もしていない知的障害者が抜かすことがおこがましいわ
わかりやすいw NG余裕でしたw
>>136 お前かどうかは知らんが、ちょっとテメエで手を加えれば出来ることを
元々作る気も無い奴に向かってバランスがおかしいとか、俺の脳内仕様はこうだからこうしろとか
自分のやっていることが如何に基地外じみているか理解していない脳障害がいたんで
ここには初心者しかいないんだから「こんなクソみたいなところもうこねーよ!」って吐き捨ててもっとハイレベルなところ行けばいいのに 初心者はアホだからお前の凄さがわからないだけなんだよ でもしつこいと他の人に迷惑だから我慢してくれ
>>137 いいねえNG
エラーメッセージすら読めない真性無能知的障害者乙
まさか見えちゃいねーよなぁ()
ID赤くして顔も赤くして大変ですねw
ひどい自己紹介を見た。
>>141 当日馬鹿にされた知的障害者乙
まああんだけ馬鹿にされたら最後の最後まで認めたくないよねえ
知的障害者自身は何一つ自分の力を示していないけど
ああ、坂道は難しい、とてもじゃないけど出来ない、って示したか
口だけだけど
レス番飛びすぎワロチwwwwwwwwwwww
はい、知的障害者の見えてませんアピールいただきましたー こんな粘着してる負け犬知的障害者が、本当にNGなんてするわけないんだよねえ 気になって仕方が無いからここまで粘着してきてんだから ああ、またアピールでもするんですか
落ち着けよ。傍から見てるとどっちもどっちだぞ。 俺も以前に坂道処理を作った事あるけど、試行錯誤しながらのめっちゃくちゃなヤツ (傍目にはちゃんと動いているが内部的にはすごく無駄をやってる)だったから 晒してくれたソースには勉強させてもらってるよ。でも口が悪すぎる。 それにケチつける方も、ケチつけるならソースを改良するなり、代替案なり公開してくれるなら 俺としてもさらに勉強できて助かるんだけど、場を荒らすばっかじゃないか。
ちなみに昨日の奴とそいつは別人だぞ
誰が誰だろうとどうでもいい 俺は早くこの流れが終わってほしい
>>139 初心者ですけど勉強したいのでもっとハイレベルなところ教えてください><
>>150 初心者がハイレベルなところに言ってもわけわからないだけで勉強になんてなりませんよ><
>>129 お前の頭の中の「他人のふり」「荒らし」と一緒に、一生引き籠っていろやw
それがお前の望む世界なんだろうww
哀れな真性雑魚めww
そんなくだらないことだらだら書かないで何言いたいかすっきりとまとめてくださいよ
ゴミソース張って居丈高に他人を罵倒するゴミがいるスレw キミの力作にケチつけちゃってゴメンネーw
>>153 ヤツの真性度に興味があった。
ヤツは、俺がセニョール・ソース本人であると思い込み、セニョールが他人のふりして自分自身を擁護していると思い込んでいるようだ。
ま、ケチ付ける奴はロクな脳みそ持ってないってことだな。
セニョール・ソース本人もそれがよくわかっただろう。
釣られすぎだぜ、セニョールXDwwww
ID:n698VX+N
つまりセニョール・ソースが放った2重スパイの罠にかかっていたということか? エクセレント、君は私の想像を遥かに超えたワンダーボーイだったようだね。
ドヤ顔で穴だらけソース晒す奴はとことんまで馬鹿だってのはよーくわかったよwww
いつまで構っているんだ もう無視で良いだろ
せやな
>>147 随分と見えていないレスに対して適切に且つ過剰なまでに反応してますねw
わざわざ見た後にNG設定してまで貼り付けたところで
やってることでそれがバレるのが分からないのかなあ脳に障害があると
>>160 相変わらず何一つ出来もしない負け犬無能知的障害者が吼えてますねえ
一時間ちょいで最低限で実装したソースを自分で改造することも出来ないんですか?
言ってもいないお前らの脳内仕様なんて分かるわけがないんだから、最低限で組むしかないのは考えなくても分かることだろう
てめえら一人一人全ての、まして言ってもいない理想に合った値なんかどこにもねえんだよ脳障害
何のために実行ファイルじゃなくてソースが公開されてるか考えたこともないんのかねえ
そもそも俺は2Dアクションなんて作る気はねえんだから、最適化もバランス調整もする気はねえと言ってるだろ社会のクズ無能
あまりにも無能が騒ぐんで結局多少弄ってやったがな、そいつは最初から最後までお前同様何一つしていないがな
まあ、お前が今までやったことは「抽象的な他人への非難」だけで、能動的な行動も、他人の利益になることも何一つしていない
で、その情報から俺がお前を判断するとしたら、「当日馬鹿にされて噛み付いているだけのただの何一つ出来ない無能知的障害者」になる以外に無いだろ?
お前ら知的障害者が馬鹿にされる理由は、俺が優秀だからじゃなくて、その通り無能で知的障害者で人間のクズだからだ
おつかれさまっす!!
>>164 おうよ
「あそこが出来ていない、俺の脳内仕様ではあの処理があるべきだが、それが無い」
「あの動きが違う、バランスが俺の理想と違うから直せ」
「製作者側」であるはずの奴が、極力短いコードで実装した使い捨ての即興ソースに何を求めてんだよ無能が
完成すればいいの世界だから正直どんな手段使ってもいいと思う
分かったらさっさと手を動かそうな 一方的な要求と、知った風な能書きを垂れ流す知的障害者、 ユーザー気取り、お客様気取りの、とてもじゃないけど作ってるとは思えねえ奴らばかりだが
手を動かすというのは、匿名掲示板に長文書き殴ることなのか。
予想通りのレスだな 俺は作業の傍ら、脳障害共を罵倒しに来てるわけだからな まあ、最近じゃメタセコでモデリングしたり、フォトショでパーツ作ったりで 俺的に負担の多い部分やってるから息抜きする事は多いがな
まだやってんのかよw
____ .ni 7 /ノ ヽ\ 壁に向かってしゃべってろゴミ l^l | | l ,/) / /゚ヽ /゚ヾ\ .n ', U ! レ' / / ⌒ ⌒ \ l^l.| | /) / 〈 | (____人__) | | U レ'//) ヽ\ |lr┬-l| / ノ / /´ ̄ ̄ノ ゙=ニ二" \rニ |
.ni 7 /ノ ヽ\ 嫌なら便所の落書き見てんじゃねえよ知的障害者 l^l | | l ,/) / /゚ヽ /゚ヾ\ .n ', U ! レ' / / ⌒ ⌒ \ l^l.| | /) / 〈 | (____人__) | | U レ'//) ヽ\ |lr┬-l| / ノ / /´ ̄ ̄ノ ゙=ニ二" \rニ |
gzN+Zziaはマジキチ
脳障害者はID:gzN+Zziaだな 掲示板のマナーも守れない
何かレスし返さないと呼吸ができなくて死ぬとか どういう類の生き物なのかお前らは どっちもどっちだからまとめて消えてはくれまいか
韓国人は自分の気がすむまで反論して勝たないと窒息しそうになるらしいぜ
スルーできないお前らもいい加減にしてくれないかなw 某有名大学出てる俺からすると お前ら全員同レベルなんだがw 恥を知ってねw
Dxlib4dって使ってる人居る? 特別大きな問題点とか無ければそっちにいこうしてみようかなーとか思ってるんだけど・・・
UTF16がメインだからそれ以外の文字コードを使おうとすると少し面倒かな 修正も頻繁ぽいし結構いいかんじ
DXライブラリがついに4D描画にも対応したかと思っちゃったじゃないかw
>>179 Thx
UTF16か・・・
標準ライブラリは使うの怖いし、事前にリソース含めて文字コードを全部揃えておくのが安定かな
182 :
名前は開発中のものです。 :2012/02/27(月) 13:12:57.78 ID:+WiwNwyX
chidoriの審査が音沙汰なしんだがおまいらはどう?
chidoriってなんぞ
chidoriが何なのかはしらんが おそらくスレチであろうことは想像が付く
じゃあDXライブラリの話題をひとつ 最近DXライブラリアーカイブのパスが非常に簡単に解析できてしまうことに気付いた こっそり有名ゲームの素材データ見るのが楽しい
「気付いた」で終わらせないで公開して作者に報告するくらいの義理はないのか
作者ってライブラリの作者と作品の作者どっちだろう どっちにしてもバグでも不具合でもないし、本当に見られたくないなら作品の作者がパスの渡し方をちょっと工夫すれば問題ない プログラムに直接平文書いてると見れちゃうってだけだから
それくらいプログラム知識のあるヤツになら見られても構わんというか 「きさま! 見ているなッ!」とかの隠し画像を入れときたくなるくらいだな。
見られても何も困らないからどうでもいい そういうことやりたい奴にやらせない方が可哀想だと思ってる
なんの知識や常識もない子供がやたらめったら配布とかしないためだけみたいなところはちょっとあるよね
俺も気付いても結局平文で指定してるしなぁ 少なくとも自分の作品に関しては、見たいと思うほど好きになってくれてありがとう!って気持ちが 勝手に中身見ることはもちろんあまり良くないと思ってるんで正当化するわけじゃないけど
作ったことは無いけどネットワークゲームやランキングなどに影響なきゃどうでも良いかな オフラインならチートも自由にやってくれて感じでデバグモード消さなかったりとか
>>186 exeファイルのバイナリから鍵文字列抜き出す感じ?
>>194 そんな感じ
意外とあっさり見つかっちゃう
素材データでオナニーとはプロだな
素材データが加工されてあったりして・・・
Dxlibで作ったゲームを配布・売る時って、Dxlib使ったことを明記する?
する どうせライセンス表記は設けなきゃいけないんだから、一緒に載せておく
license.txt ってのを用意して、全てのゲームに添付
どうせライセンスがないことで問題になることなんてないしむしろ訴えられてこそ神
さすがにそれはクズのやることだわ
感謝と尊敬の気持ちが足らんよ
どうやったら解析できないようにできるの?例えば
ごく例えばだけど、ある乱数のシード値からASCIIコードのみを16個くらい取り出してその文字列をキーにするとか。 デコード側はその文字列をそのコードで生成するからちょっと機械語的に隠れそうなきがする
コードの中にキー文字列を書かなければいい キーを数字だけにしておいて、プログラムで指定する際にはint型で確保した後、 itoaなどで文字列に変換して渡したりするとか でも、キーを1,2文字だけにするのが一番簡単で効果あるかも それだけならバイナリの中に記述されててもキーかどうかなんてわからないし
暗号設定の関数呼び出しにブレークされてお終いな気もするけどな そこまでするような奴相手だと自前の暗号化だろうと突破されるだろうけど
結局セーブデータとか暗号化するのと同じ要領でやりゃあいいのか
ビルド前のDXLibのソースの時点で暗号化ルーチンを変えてしまうとか
アーカイブされるファイル個々を符号化する方法もある。 この方法ならアーカイブが展開されてもファイルの閲覧まではできない。 FileRead_open()でファイルをメモリに読み込んでデコードルーチンに投げる。 そのあとに画像なんかはFromMem()関数系でメモリイメージからハンドルを作成する。 デコードルーチンは新しいスレッドで動かす。 デコード自体はDxLib関数は使わないからスレッドは大丈夫だと思う。 BGMなんかはさすがにサイズがでかいし、ストリーミングもできなくなるから符号化しないほうがいいかも。 まあここまでやっても、デコードルーチンや鍵がローカルにあるから、解析好きのやつが中身が見たいと思ったら展開される。
211 :
名前は開発中のものです。 :2012/03/06(火) 01:20:48.31 ID:0kDRHt6K
自前でスレッド立ててファイルの読み込みからデコードまでを任せてたんだけど、 スレッドセーフじゃないのかうまく動く時と途中で止まるとき、デコードが失敗しているときがある ぐぐって調べても全然わからん。 どうしたものか
別スレッドでは大体DXライブラリの関数は使っちゃダメだよ
約1週間書き込みなかったのか
ここで質問していいのかちょっとわからないけど DrawFormatStringでエッジ付きの文字って描画できる?
int ChangeFontType( int FontType ) ; で変更すれば出来るよ
218 :
名前は開発中のものです。 :2012/03/07(水) 19:48:12.93 ID:ZhPgMvIv
ドンキーコングみたいな同人スクロールゲー作って売ろうと思ったが普通に挫折したなww ゲーム作るのは難しすぎ。1年単位とかでやらんと無理だわwww
初代のドンキーコングならつくれるんじゃねーの
なにげに難易度高いと思うけどな。 坂道処理あるし。
ファミコンでも既にお手上げだ・・・
ファミコンのGimmick!とか今度真似て作ってみようかな めちゃくちゃむずかしそうだしなあれ
ロックマンみたいなのが一番楽かも 攻撃もショットだからモーション必要ないし
きっと敵の動きで挫折するな
操作性も悪いとコンボイの謎クラスの難易度になるしな
3Dの設置判定ってどうやってんの? 例えばポリゴンで島を作ったとしても ポリゴンの内側をそのまま不可侵領域にするこも出来ないし
公式ページのサンプルで基本的な動作は習得できる
228 :
名前は開発中のものです。 :2012/03/08(木) 19:59:39.72 ID:imANYpeu
ここで質問して良いのか分からないんですが 昔つくったゲームを久しぶりに動かしたのですが(5年ぐらいぶり) 環境が違うのかIDirectMusicPerformance8のInitAudioで5秒程度止まる為 ゲーム起動がものすごく遅くなりました。 原因が分かりそうな方、いないでしょうか・・・ DirectX SDK June 2006にて作成 現状のPCはwindows7でメモリ8Gとかの割と良いスペックの奴です。
>>228 スレタイにある「DXライブラリ」っていうのは、固有名詞なんだぜ
230 :
sage :2012/03/09(金) 01:33:58.97 ID:nwMKVPbj
>>229 申し訳ない・・・スレ違いって奴か・・・
プログラム板にDirectXのスレあるで
つくづく紛らわしい名前だなと思う
DXライブラリのDXがDirectXから来てるのは間違いないだろうしなー
じゃあDirectXライブラリつくってgoogleに見つかるように放流してみようかな
>>231 そういやゲ製作技術板のほうでDirectXスレをたてなくなったのってなぜだっけ?
昔は両方にあったと思うんだけど
二つある必要がないから、あとプログラム板の住人の方が人口密度が高いから しょぼい質問にも答えが返ってくる。
ゲーム以外でも使われてるしな
でも、間違った答えが返ってきたりするんだが……結局自分で調べて報告したが
集合知なんてそんなもんだ。
嘘を嘘と見抜けない人は掲示板を使うのはなんちゃら
241 :
名前は開発中のものです。 :2012/03/14(水) 23:48:08.13 ID:6w1Q2bPZ
DirectXなんて先の無い物使うよりもUNITYとか使った方がいいと思う DX10からの流れには正直ついていけないわ
で? それをDXライブラリのスレで言ちゃった理由は?
卒業したい人は勝手に卒業すればいいし
Unityこそ片寄った知識しかつかないだろw
245 :
名前は開発中のものです。 :2012/03/15(木) 10:45:15.45 ID:aCL/JNLu
DXライブラリ使った3Dゲーム、 というかゲームで使うためのモデルの作り方載ってるとこないの? アニメーションとかしなくていい Blenderで作ったらところどころ面がおかしい
>>245 モデリングだけならMetasequoiaマジおすすめ
おかしい部分が四角形かポリゴン裏側になってるとかだろ 座標系も変換必要だけどデフォルトでチェック入ってるからそこは平気かな
ウィンドウ周りの不都合が気になって製作が進まない
win32api?でウィンドウを自分で作ったら良いのでは?
そういや windows8 になったら新しいAPIになるんだよな DXライブラリはその辺りも対応する予定なんだろうか
テキストエディタ何がオススメ?
vim一択 オライリーの入門vi買ってこい
254 :
名前は開発中のものです。 :2012/03/16(金) 20:02:38.37 ID:RmlQca5v
vimってキーをたたく回数が多くて効率悪くならね?
矢印キーやマウスのために指をホームポジションから離すことの方が効率悪い
サクラエディタ
日本語対応がしっかりしてさえいれば Notepad++を薦めたいところなんだがなぁ
Scintilla使って自作しる
xyzzy最高
>>257 設定で新規ファイルを強制UTF-8にすればShift-JISを自動認識してくれない以外の問題は無いでしょ
Notepad++とかxyzzyとか幾つか弄った結果、何故かサクラに落ち着いた俺。 仕事だとvi系も使うけど。
3Dのあたり判定(設置判定、壁判定)の入力支援ソフトみたいなのない? ポリゴンを背景に表示してクリックして座標登録して行くようなの希望
ゲーム向けのGUIライブラリって需要あるんかね?
DXライブラリと同居できるならほしい
>>251 対応しないと思うがwin8が古い技術(DirectX9とWin32API)を
サポートするから問題なし。
春休みなのになんで伸びないのこのスレ…
序盤に変なのが湧いちゃったからかな……
DXライブラリは地雷が多すぎる。
よくわからん制約やバグが多発するし、更新したらまたバグ。
流行的にもWebアプリやUnityなどのフレームワーク、スマホで動くことが重視されてきてるし
アマチュアがゲーム作るならC/C++は選ばないってのが標準になりつつある。
プロ志向ならDirectXやOpenGL選ぶだろうしな。
DXライブラリの寿命はそろそろ来てるんじゃないかなって気はする。
>>268 DXライブラリでできたDXUTを求めるくらいだったら
もうDXUTでいいだろと思う。
フレームワーク色を感じない、ライブラリ的なライブラリってだけでもまだまだDXライブラリは戦える アマチュアがC++使わないなら何使ってんだ?
UnityなりOpenGLに行きたいなら黙って行けばいいのに。
ステマだろw
>>270 Objective-C、Java、JavaScript、C#あたりかな。
あとはフレームワーク固有のスクリプトだな。
>>271 どこにUnityやOpenGLに行きたいって書いてある?
てか上でスレが伸びないって言ってる人がいたから発言しただけ。
それを勝手な思い込みで黙ってろってなんのための掲示板なの?
スレ伸ばすだけなら荒らし・炎上でもいいけどねえ。
ゲームを作りたいだけなら、RPGツクールなりNScripterなり使えばいいし、 プログラミングをしたいなら、そしてその候補にC/C++があるなら、DXライブラリは有用である。 ただそれだけじゃねーの? もちろんUnityや最近のツクールでも、プログラミングは可能かもしれないけどね。
Java、C#はまだしも Objective-C、JavaScriptはねーだろ…
ゲームをつくるならC言語一択だよな 他の言語はゲームを作るには冗長 つまり、DXライブラリ&C言語が最良の選択
278 :
名前は開発中のものです。 :2012/03/29(木) 15:43:46.05 ID:3W+R5PNX
冗長?
まぁC使ってるっつーても、まったくC++の機能を活かせてない俺みたいなのもいるけどねー
iPadやHTML5に活路を見出だしている人は少なくないだろうし ありえない話じゃないんじゃね 俺はどっちの言語も願い下げだが
DXライブラリってさ、あのインターフェースが重要なんであって、 バックエンドがDirectXであることは重要じゃないと思うんだよね。 だからOpenGLで実装されたDXライブラリがあっても問題ないよね? ちょっとやってみたいなーとかおもうんだけど
思ったらやってみたらいいじゃん なぜ他人の同意を求める必要がある?
だれかやってくんないかなーってことだと言わせんな恥ずかしい
>>281 インターフェイスと実装が分離できたらさらにDXライブラリがポータブルで強力になるな
是非やってくれ
インターフェースより重要なのは導入から関数の使い方まで日本語でサポートしてくれるところだろ 同等の難易度でならAllegroでもいい訳だし マルチプラットフォーム対応するのならそういった資産が使える利用者にメリットあるんだろうけど
どう使えばいいのか悩まなくて済むのはでかいよな 良さそうなものでも英語オンリーだと使うのにかなり躊躇う
もしSDLやIrrlichitが日本語ガッツリ対応してたら ここまでDXライブラリの独走になってなかったと思うわ
独・・走・・?
いや2番手とかそういう感じでもないんだけど DirectXそのまま書いてる人もいっぱいいるしHSPとかだってまあいるし、特に独走ってイメージがなかっただけですよ
DXライブラリが独走とか言ってる時点で何言っても無駄だと思うけど? 自分の中の狭いコミュニティだけで言ってるんだろうけど。
環境を限定すれば、独走ってほどではないにしろ最有力候補にはなるかもしれん。
>>290 C/C++用のライブラリばかり並んでる中でなんでいきなりHSPが出てくるんだ
そういうのに違和感を感じないっていう感性がよくわからん
作者の考えている事を答えるのが苦手ないタイプなのかな
>>291 はいはいツクールがシェアナンバーワンですね
ツクールは、フリゲ界隈だと強いけど 同人ゲー(シェア)だとDXライブラリの方が強いんじゃないか? もちろんDXライブラリ使ってない凄いの作ってるとこも多いけど 中堅どころはほとんどDXライブラリ使ってるって印象がある。
知ってるDXライブラリ製のゲームのタイトル全部挙げて欲しいな。 どんなもの作ってるか、興味あるからさ。
流石に具体的な名前は出せないし、割合としてどうなのかまでは分からないけど、 同人ゲー界隈だと確かにチラホラ見るな。
DXライブラリの公式ページにいくつか紹介されてるじゃないか
大手はDirectXかOpenGLだろjk
誰もそこは否定してなくね?
DirectX9か11かっていう選択肢はあるけど OpenGLはもう見なくなったな ゲームの話な
minecraftってOpenGLじゃなかったっけ?
>>296 公言してるところは良いと思うんだけど駄目なの?
”興味がある”というのなら、他人に訊くにしても まずは自分でできる範囲で調べてから訊くべきでは。
いや、一つ二つは知ってるから295に答えようと思ったんだけど 296の書き込みがあったから・・・
ああ 「知ってる範囲で」か 今すぐに思い出せるのは某BMSプレイヤーとSTG1個 公言してないだけで、使ってるゲームは 意外と多いんじゃないかと予想する
>>302 企業だとか、超大手同人サークルとかは別にしても
単に、個々のサークル名を出したくなかっただけだよ。
俺はうろ覚えのとこをいちいち確認するのが面倒。
>>307 サークル活動しててここに名を挙げられて迷惑なことはないんじゃないかな
何年も前から結構凄いソフト作ってる所でさえ最近まで全く知らなかった
なんてこともざらなくらい非大手サークルの知名度って低いし・・・
>>300 DirectXが使えないプラットフォームで3Dゲームといえば
ほとんどOpenGLじゃないのか?
>>307 まあ要は自分がDXライブラリでここまでできるのかと感心したソフトを紹介したいだけなんだよね
というわけでDXライブラリの使用をTwitterで公言しているサークルの一つ「LION HEART」
『Mystical Chain』『サナエチャレンジ』など主に東方二次創作ソフトを作ってて、現在『天壌のテンペスト』制作中
Mystical Chainを買ってプレイしてみたんだけど、固定画面ではあるもののゲームシステム、演出、エフェクト、ドット絵
どれも結構クオリティが高くて、そんでそれがDXライブラリで動いていると知って少し驚いた
同人ソフトチェックしてる人なら大抵知ってるかも・・・
ただのライブラリだしゲームのクオリティに DxLib使ってるとかDirectX直接打ってるとか関係なくね?
同じくDXライブラリ使用と知って驚いたソフト『ディアドラエンプティ』
同人ソフトサークル「ふろーずんおーぶ」制作のファンタジーゾーン型STG
Xbox360にも完全移植は難しいかもしれない程の低スペックPC無視っぷりの仕様
でも誰もが低スペックPCにある程度配慮していたので結果的に誰も作ったことがないようなモノに仕上がってる
綺麗な動画があったのでニコニコ動画のプレミアム会員の人はこちらをどうぞ
http://www.nicovideo.jp/watch/sm14755827
>>312 まあね
でも理論上そうだとしても実証されていないとほんとにあのレベルの作品が作れるのか半信半疑だったりしない?
自分もLION HEARTの人は弘法筆を選ばずで、多分DXライブラリじゃなくてもあのクオリティ出せると思うけど
ディアドラエンプティ作った人はサークルメンバーから前作のプログラム担当だった人が抜けちゃって
已む無く絵担当だった自分がプログラムを組むことにしたのだそうな
本格的なプログラム初体験だったからDXライブラリは大いに役に立ったと講演で言ってたよ
315 :
名前は開発中のものです。 :2012/03/31(土) 12:30:06.58 ID:bmWK3Pkg
入門サイトで東方もどきが作られているせいかSTGが多い印象を受けるね
>>315 STG多いよね、しかも多分入門サイトのプログラムを弄って作ったと思われるSTGが・・・
でも使用が公言されてないからここには載せないけど前述ソフトクオリティ並の
格ゲー・横スクアクション・横スクアクションSTG・横スクアクションSTGRPG・SLGもあるよ
フリーソフトあんまりチェックしてないから全部同人ソフトだけど・・・
フリー含めたらハイクオリティなRPGやパズルなんかもあるのかな
それ、素人だまして俺スゲーしてるだけの人じゃないw
318 :
名前は開発中のものです。 :2012/03/31(土) 13:02:28.70 ID:/GUbNrv+
>>309 >サークル活動しててここに名を挙げられて迷惑なことはないんじゃないかな
>>311 >>313 宣伝ステマ自演乙
ここれだけで相手側に迷惑がかかる可能性があることぐらい考えろ
偽英国紳士団もライブラリ使ってたはず
夜行蛾、ステラバニティ、エデンズエイジス、サイバークライシスはログがあったかな クリクロもログはいた気がする。あとエスプガルーダっぽいのも表記があった 個人的には同人STGは半分以上DXLib使ってるイメージ
自分のサークルの作品を宣伝するなら今がチャンス!他のサークルのも一緒に並べればバレないぞ!
知っている中でDXライブラリの使用を公言しているサークルもう一つあった「illuCalab」
『東方十七歩』を制作、現在『TAKKOMAN』制作中
Googleで「DXライブラリ」で検索すると上位にヒットする「DXライブラリのススメ」を書いた人がサークル代表だから知っている人も多いかも
この人は弘法筆を選ばずの典型でDXライブラリを使う理由は「サポートの手間が省けるから」
実際Unityをサクっと使いこなして3Dゲームを作ってしまったりしている
>>318 なるほど、そんな人が居るかもしれないね
ただ仮に311,313をステマだと言い張る人が現れたところでそれを信じる人が何人いるのか
>>320 サイバークライシスというソフトは見たこと無いと思うんだけど検索しても引っかからない・・・
無駄に知名度あげたくない側からすると
>>309 みたいな思考回路持ってる奴は迷惑この上ない
何を語ろうが勝手だろって人には何も言わんが 自己正当化しようとする奴には本気でムカつく ので
良識派気取りたいのならそこら辺にも気を回した方がいいよ
「2chで有名になった」とか汚名以外の何者でもないからな・・
325 :
307 :2012/03/31(土) 16:46:12.51 ID:aSxt+fA0
>>311 なんで俺が出そうと思ったサークルと被ってんのwww
326 :
325 :2012/03/31(土) 16:49:41.71 ID:aSxt+fA0
言い間違い。 出そうと思った → 名前を出すかどうか迷った で。 俺の中で、まさにその2サークルを想定してた
327 :
名前は開発中のものです。 :2012/03/31(土) 16:55:50.42 ID:jz3Jj4zk
こんな所で名前が出た所で有名になるわけないじゃん なにドリーム見てんの?
意味のない煽りあいするなよ。 それだけDXライブラリは同人ゲー製作者に浸透してるってだけの話だろ。
全部初めて聞くし 個人的にはこういった情報は面白いけどね
>>325 同人ゲームサークルで高いレベルのソフトを作っていて発言の中でDXライブラリの話題も普通に出すといったら自然とこの2つに絞られるのかもw
>>323 >>324 327も言ってるけど、ここがゲーム速報板やゲハだったらその意見もわかる
でもここは数年書き込みが無いスレでもDAT落ちしない過疎板だよ?
ディアドラエンプティの作者は今仕事が忙しいらしくて同人活動から離れてるけど
「LION HEART」も「illuCalab」も同人ゲーム界隈では上位クラスで制作ソフトの知名度で言えば少なくとも一万人前後
ここに載ったところで既に知ってる人を除けば新規に知る人なんて高が知れてるでしょう
無駄に知名度上げたくないっての普通にやっても知名度上がらない出来のやつがよく言い訳に使うよな
>>328 アマチュアゲーム制作者の集い(とはいえ多分ほぼ同人ソフト制作者?)の感想でDirectX直叩き派の人が
「DXライブラリ使用率が高い、この傾向は良くない」とつぶやいてた
同人ゲーて古き良きアマチュアPCゲー的なものよりもプロ志向のゲーム目指そうとするから
その条件で絞ると殆ど選択肢が無いのかもね
>>330 どのスレだろうが何書こうが勝手だと思うよ、それについて止めさせようと思ってないし止めさせられないし
けど、なんで「良識人ぶって自己正当化」しないと気がすまないの?
そういうのがムカつくって言ってるだけだよ
作れない奴が顔真っ赤にしてるのかな~?
>>332 何が言いたいのかよくわからん。
まぁDirectX直叩きの人にとっちゃDXライブラリユーザーはツクラーと大差ないんだろうな。
実際俺もDXライブラリ無しじゃWindows環境でゲーム作る事できなかったヘボプログラマーだから解る。
DXライブラリが、PC等の進化について行かなくなってサポート打ち切られたりしたら
一蓮托生でぶっつぶれるもんな。
プロ嗜好うんぬんがどう関係するのかわからんが、こっちの方が問題だろう。
サポート打ち切りになったらゲーム作る気あるやつは直叩き覚えるなり別のライブラリ探すだろうしゲーム作る気ないやつはそのままやめるだけだろ 別に問題とも思わないが
ていうか直叩きは無理だけどDXライブラリの助けがあればゲーム作れるってやつを拾い上げているってプラスの面見るべきじゃねーのその制作者
>>333 どうぞ
>>335 多分DirectX直叩き派の人はそれを懸念しているんだと思う
派手な演出や大量のオブジェクトを高速に裁けるC++とDirectXの組み合わせとなったときに
DirectX直叩きや海外産エンジンが敷居が高くて手を出せないとなるとSeleneとDXライブラリしか選択肢が無いというのが実情だと思う
Seleneが消えかかってるしね・・・一時期話題になった今年リリース予定のSiv3Dはまだ未知数
主旨忘れてた
同人界隈ではあと2003年くらいからDXライブラリを使ってる老舗サークルを紹介したかったんだけど
Twitter、マニュアル含めほぼDXライブラリ使用を表に出してないのでそんなサークルもあることを伝えるに留める
あとDXライブラリ使用作品の知名度ではかなり上位にありクオリティも高い未完成品としてはまどか☆マギカの3DACT
ttp://www.nicovideo.jp/watch/sm14606851 ニコニコ動画での再生数は45万越え・・・だがまどか人気の賜物なので再生数にDXライブラリは関係ない
作者はうp主の弟の高校生、少し経過を追ってみたがどう考えても弟スペック高過ぎ
これも弘法筆を選ばすの例で彼なら時間さえあればDirectX直叩きでも作れたであろうし
仮にこれを今年作っていたら間違いなく今流行のUnityで作っていたであろう
まあこんなDXライブラリ使用作品もあるよということで・・・
>>336 >>337 なるほど
ディアドラエンプティの例みたく専門外の人がDXライブラリ使ってプログラム作ってる例もちょくちょく見かけるから
DXライブラリに相当するものが無かったら専門外の人は他の制作可能な環境を探して
専門目指す人はDirectX直叩き又は海外産エンジンに挑戦という構図になるだけかもね
DirectXのライブラリなら俺も前に作ってたけど スレッド、XML、zipと足していったら作りきれなくなったわ。
海外物て機能ごとにバラバラなのが多くてさらにバージョンアップが良くあるから追いかけるのが大変なんだよな boost,zlibあたりは他の用途でも使うから普段から更新してるけど描画エンジン,GUI,OpenAL,物理エンジンetc 下手にそれぞれの最新版集めても動かないし英語我慢してもセットアップが面倒 あとUnicode含めても日本語表示やファイルパスに弱いよな・・・
DXライブラリの存在を知ってゲーム作ろうと思った奴だっていっぱいいるだろう 俺がそうだしな、DXライブラリには感謝してるぜ。
>>336 他人にとっちゃ問題じゃなくても当人にとっちゃ問題なんだよ。
そもそも直叩き覚えられるくらいならDXライブラリに頼ってない。
DirectX直で叩けるというか、自前のライブラリは作ってみたけど 動作実績とかメンテナンスとか規模の関係で、実際に何か作るときはDXライブラリ頼りな俺が居る
正直DirectX直叩きでやりたいんだがグラフィックチップ毎の動作チェックなんてまず無理だから結局ライブラリに頼ってしまう 実際ネットで公開して動作報告を求めるとバグとかの報告は来るんだけどハードウェア依存の動作不良の報告はほとんど来ない 結構メジャーなグラフィックチップでの不良を確認したまま配布してたのだがそれについての報告もゼロ 結局フリーゲームが動かなくてもそのままゴミ箱に送られるだけで報告してくれる人は殆どいないってことに気付く ここらへんは気付かずに有料化してたらと思うと怖いね、だからこその体験版なんだろうけど
>>332 そんな些細なとこつついてるから、肝心なとこの技術があがらない
どっちであれ、すでにあるものを利用するって意味では一緒なんだから
生産性が高い方を使えばいいんだよ
そうじゃなくて作り出すほうに力を入れるべき
>>335 DirectXなんて9から11にかわって全部覚え直しだよ
9の時だって何回仕様変更したんだよ
そういう意味ではDXライブラリのほうがよほど安定してる
>>344 個人的にはあんま変わらんと思うけど、やる人の相性もあるしな
導入部分として選択肢が多いのはいい事だと思う
どうせスキルアップしたってゲームエンジン使うんだから直叩きにこだわる意味は薄いんじゃないだろうか
昔はアセンブラが必修科目だったが今はそうでもないしな
もちろん趣味でやる人が直叩きにおもしろさを感じる事までは否定しないよ
俺だってマイナーCPUでアセンブラ使うのは楽しいしな
直叩きできる人がゲームエンジン使えるかっていったらまた違う話だから、大は小を兼ねる的なイメージしてたら改めたほうがいい
>>347 >DirectXなんて9から11にかわって全部覚え直しだよ
そんな事はわかってる。
問題はそれを理解するだけの頭があるかどうかだ。
9が理解できないのに11が理解できるとかがあるなら別だけど。
DirectXの手続きは、毎回コード眺めながら思い出してる。 その部分だけに集中してるわけじゃないから暗記は出来ないwww
んでさー お前らゲーム作ってるの?
つい最近新作リリースしたばかりだよ。 売れてるかどうかはまだわからん。 今は燃え尽き状態で何も作ってないが。
乙 一作作ってみてDXライブラリへの不満や逆にこの機能が良かったなんてのある?
353 :
351 :2012/04/01(日) 16:11:09.68 ID:FKtKpYD9
俺の事か。一作じゃなくて三作目だけどね。 不満ねぇ……大抵の事は公式で要望したりすれば改善してもらえるから基本的に不満はないんだけど。 PlaySoundMemでBGM流してるけどフェードアウト機能とかあればいいなぁとは思ったな。 自分で作ったやつは管理が面倒でいかん。 パレット機能があればいいなぁとも思ったがまぁこれは無茶な希望だな。 画像ごとの輝度を上げる機能が欲しかったが、これも代替機能あるらしいし……。
自前でラッパして使うことが結構多いから、 DXライブラリに無い機能は、その過程で作っちゃったりするんだよな。
三作目か凄! パレット機能おれも欲しい でも確か固定機能で対応してないんだよな シェーダーでパレット実現できるけどパレットのためだけにシェーダー未対応PC切り捨てとかありえないし・・・ 輝度は単にRGB上げるだけだったらDX_BLENDMODE_ALPHAとDX_BLENDMODE_ADD使う代わりに DX_BLENDMODE_ALPHA_X4とDX_BLENDMODE_ADD_X4使えばいけるよ 各RGBが4倍されるからSetDrawBright(64,64,64)で普段のSetDrawBright(255,255,255)の明るさ
>>350 土日スレにうpしても、レスが2~3個ついて終わりだからつまんない
>>356 自サイトにあげるだけだと、1コメントも貰えなかったりするしなあ。
なんか、DirectX の直打ちは高度な事みたいに思ってる方がいるみたいだけど、 面倒くさいだけでリファレンス読めば大抵理解できるし、そんな高尚なもんじゃないと思うけど。
DirectX も言ってしまえばライブラリだしな
やるやらないとやれるやれないは別の話。 やれないやつはDXライブラリもまともにつかえんよ。 DX9のマルチスレッド制限しらないで DXライブラリのマルチスレッド未対応嘆いてたりな。
シェーダ―使う分にはDX11>DX9>DXLIBになる 基本がHLSLなDX11はとっつきやすいとおもうけど ただDirectX9はつかえなくともDXLIBはそこそこ使える
>>正直DirectX直叩きでやりたいんだがグラフィックチップ毎の動作チェックなんてまず無理だから このあたりHELで吸収してくれると思ってたんだけど違うのね。
DXの初期バージョンと現バージョンとでは、理念も方向性も違うからな
>グラフィックチップ毎の動作チェック 聞いたこと無いけどピクセルシェーダ3.0が使えるか判定するとかそういう話?
動作実績があるというのは有難い
366 :
名前は開発中のものです。 :2012/04/03(火) 12:45:16.34 ID:sq7wwreb
絵がかけなくてマジやばい
367 :
名前は開発中のものです。 :2012/04/03(火) 16:51:37.04 ID:Xf1Hu+PQ
まずはペンタブをぽちる所から
絵より音楽作るの上手くなりたい
>>364 いやチップやドライバが原因でスペック上は使えるはずの機能が使えなかったり
まともに動作しなかったりする
昔に比べたら随分ましになったけどね
タイマーで動く2Dアニメーションクラス作ってるんだが RPGやSLGで使う分にはいいんだが、 アクションやSTGで使えるものを作ろうとすると難しいな。
ループ型、非ループ型、静止画型があれば、その切替さえちゃんとすればどこでも十分使えるんじゃないかな
アニメーションって歩行グラとか画像を切り替えるアニメーションと キャラクターが町を巡回して歩き回るような 座標移動のアニメーションがあると思うんだけど、 後者は一般化できるんだろか。
決め打ちで座標を弄るくらいなら、なんとかならなくもないが、 それ以上だとスクリプトとかそういうレベルになりそうだな。
2Dでキャラクターのグラフィックつけるとどうしてもマリオみたいな縦横のゲームになるよな 平面上のゲームだとグラフィック大量に作らなきゃならないし
完全に真上からだと、グラフィックは減るぜ
人型のキャラだと真上からは映えないのが問題だけどね 初期のGTAとかみたらよく判る
上から視点だとRTSとかTBSみたいなシミュレーションゲーかボンバーマンみたいなやつしか用途ないよなあ・・・
人型のキャラクターを出さなきゃいけないと思ってる時点でゲームの定義狭すぎ
サンプルコードが動かないんだが、理由はなんなんだこれ?
http://codepad.org/2diVmQkw OSはUbuntu 11.10上のVirtual Boxの中で動かしてるWindows Server 2008 R2 Standard 64bit。
仮想マシンの方に当ててるメモリは551MB、3Dアクセラレーションと2Dビデオアクセラレーションは有効にしてある。
>>380 はウィンドウは出るけどそのまま固まって応答なしになるって感じ
>>381 開発環境はVC++2010Professionalです
DirectX入ってんの?
DXLIBのヘッダーじゃなくてスタティックライブラリの方が パス通ってないんじゃない?
SDKのUtilitiesにあるDXDiagを実行して各機能が動いてるかチェックしてみそ
プログラムとファイルの検索からdxdiagってやって出てきたやつを実行した結果 DirectXの機能 DirectDrawアクセラレータ: 使用可能 Direct3Dアクセラレータ: 使用可能 AGP テクスチャ アクセラレータ:利用できません とのこと。一番下がよくわからん…
グラフィックには基本VRAM使うけど足りない分は 遅いシステムメモリを混ぜて使うことができる。 でもこの混在メモリ(AGP)をグラボがサポートしてなくても DXLIBは動作するはず。関係ない。
Virtual Boxのグラフィックエミュレーションがきっちり動いてない気がする DXライブラリの初期化部分書き換えてHEL選べば動くパターンかな、試せる?
いや、ソースの方。気楽にできる体制じゃないなら試さなくていいよ どのみちDirectXのプログラムが最低限動くかどうかが分かるだけで根本的な解決にはならんから
SDKサンプルのビルド・動作が正常化かどうか試せばいいんじゃないか
>>392 そもそもDirectXに触れるのが始めてみたいなもんだからDirectDrawのオブジェクトの時点で混乱してできそうにない。すまない。
>>393 SDKの方のサンプルはちゃんと動作するな
やっぱりDXライブラリの方の問題なのか?
頭にブレークポイントつけてトレース実行しながらDXlibのログをチェックすればどこで止まるのか分かると思うけど まさかVC++ごと落ちてるとか?
>>396 そうか、それもそうだ少しやってみよう
ちなみにクラッシュするのはビルドされたアプリケーションの方。VCは生きてる。
>>396 ウインドウを出してキーの入力待ちをするだけのコードでやってみると、DxLib_Init()で停止してるっぽい
ログ見ても何かに失敗した旨の事は書いていないんだよな…
1261:IDirect3DDevice9 オブジェクトを取得します...ハードウェア頂点演算を使用します
ってとこでログは終わってる
ソース読む限りでは同期待ちの計算あたりで止まってるのかな けどvirtualBoxに垂直同期絡みのオプションなんてないよなぁ もしライブラリのコンパイルができるのならDxGraphics2.cppの4134~4168行をコメントアウトして GRH.FrameTime=16; に置き換えてみるとか・・・
>>399 DevMode.dmFields=なんとかってとこから
DXST_ERRORLOG_ADD(なんとかってところまででいいの?
>>399 自分も同じところ見てた。これ失敗したらループ抜けなくなるんだな
たぶんスキャンラインの位置が正しく取得できていない予感
>>400 今のやつだと5661行あたりのお話
>>401 すると一フレームの時間を取得する箇所を変更してやればいいのか
DxStatic.hをライブラリにコンパイルすりゃいいということか?
>>400 すまん、うちのVS2008だから行番号表示が違うのかも
// 1フレームの時間を取得しておく
の後の{}で閉じられたところです
>>401 for(;;)なんて書き方死ぬほど久しぶりに見たw
while(1)もそうだけどうちの規約じゃ縛り首にされる
>>402 ちょっと時間かかるけど変更した後に
VC++ならDxLibMake.vcprojを開いてReleaseでビルドすればいいんじゃないかと
>>404 書き込んだあとに自分でも何言ってんだこいつ状態だったw
ライブラリに変更加えてやってもやはり例の如くクラッシュするorz 仮想マシンやめるか、DXライブラリやめるか…
そこまでいけば問題が有りそうな範囲はほんの数行に限定されるでしょ とりあえずDXST_ERRORLOG_ADD( _T( "適当な数字\n" ) ) ;をそこらへんに散らして どこが原因なのか炙り出したら?
レス流し読みしただけだけど、 既存のDXライブラリ使ったアプリは動くのか?
動作環境的に、公式には頼れない類の問題だろうからなあ。大変そうだ。
DxLibのバグ対策で公式頼みになるのを避けるために バグがあったら自分でなんとかしようと思うんだけど ライブラリ側にステップインとかで入っていく方法分かりませんか? どうやってライブラリをデバッグしたらいいんだろうか。
昔、普通にソースをVCのプロジェクトに組み込んだ記憶があるな……どうやったのかは忘れたが
デバッグ版のLibならステップイン出来ないかな できないならライブラリのビルドのプロジェクト作ってスタートアップに設定してデバッグプロパティで DXライブラリのデバッグしたい関数のある実行ファイル指定する
DxLib_Init()をコールする前に、 ChangeWindowMode( TRUE ); SetWaitVSyncFlag(FALSE); とかコールしておくと、フルスクリーンやvsync待ちが原因かの切り分けはできる、のかな
GetVSyncWaitTime()が悪さしているのかな? そこでどうがんばってもログが止まっている
ソリューションにDxLibMakeのプロジェクト追加して プロジェクトの依存関係設定してやればいんじゃね?
ライブラリを作るプロジェクトを開いてdebugで一旦コンパイル ライブラリを呼ぶプロジェクトを開いてツール->オプション->VC++ディレクトリ ->ディレクトリを表示するプロジェクトをライブラリファイルにしてライブラリを作るプロジェクトのdebugディレクトリをトップに追加 ライブラリを呼ぶプロジェクトをdebugビルト 正しいやり方は知らないけどこれで普通にライブラリの中もトレースできる
他の仮想化ソフト(VMwareとか)使ってみるとか?
処理的には何も変更していないdebugの方でビルドしたライブラリをコピーしたら動くようになった…意味が解らない… レスを読んで返答してくれた人たちに最大級の感謝をしたい。 おかげでライブラリのコンパイル方法とかも勉強できたし。
・DXライブラリが一部のemu上で動作しない ・debugビルドしたDXライブラリの場合は動作する ってこと?
debugビルドっつっても別に特別な事してるわけじゃないんじゃない? コンパイルパラメータが違う程度で。 上手く動くやつと動かないやつの違いを探してみないとな。
ちなみに以前、似たような現象があったが、あの時は 「アーカイブしたデータを読み込む時に異常に時間がかかる(のでフリーズしてみえる)」 というバグだったので、今回のサンプルは関係ないけど、まぁ参考までに言っておく。
VC++は設定パスを辿って最初に見つけたライブラリを使う DXlibはリリースビルド時はDxlib.libを、デバッグビルド時はDxLib_d.libを使う 多分このあたりをきちんと理解してないだけだと思われ
>>424 激しく初耳だ。改めて自分の無知さが恥ずかしい。
でもログに幾つか出力するマクロを加えてビルドしただけなんだけど何故こうなるのか…
あと現在の問題点で、 ウインドウモードにすると左下によくわからないアイコンのようなものが表示されることがある DrawBox関数でFillFlagをtrueにすると描画されなくなる(falseだとしっかりと描画される) ってのがある。 まあなんとかなる程度だからいいけど。 誰か情報があったらお願いします。
て
お、規制解除された 今更だけど、以前、急にDXライブラリ製のゲームだけ動かなくなって、 その時はグラボのドライバを入れ直したら直った、ってことがあったよ
そういえば他のグラボの人がvirtual boxで再現確認ってしてるのかな そこで再現されないならグラボが原因ってのはありうるわけか
DXライブラリを使おうとする人は、大抵普通のWin環境持ってるからなあ。
linuxでわざわざdirectx動かすより openglつかったほうがいいんじゃないか?
432 :
名前は開発中のものです。 :2012/04/11(水) 22:09:21.55 ID:nOhzJPxm
初心者スレから誘導されて来ました LoadSoundMem()とPlaySoundMem()で効果音を鳴らしています。 再生が終了する前に同じ音を鳴らすと、最初の音が終了してしまいます。 2つの音を鳴らすにはどうすればよいでしょうか DuplicateSoundMem()などで事前に複数のハンドルを用意しておくしか無いでしょうか
>>432 前にここで同じ事書いたけど回答得られなかったな
その方法で解決してると思うよ
そりゃリファレンスに答えが書いてあるんだから回答得られなくて当たり前だろw わからない人ほど基本から外れたがるのは何なんだろうな
わからんからだろ
シンプルに考えるなら、DuplicateSoundMemで取得したサウンドハンドルを配列なりlistなりで保持しておき、 CheckSoundMemで再生中ではないハンドルを検索して、そのハンドルの音声を再生って感じかね。
同時発音数だけハンドル生成してインデックス付けて循環、発音チェックとかはやらない
現実的な話をすると一つの音を複数再生させるよりも 複数の音を一つの音として再生できるようにした方が聴いた時に自然になる
ゲーム的な話をすると、ほとんどのゲームは同じ効果音は重ねて再生せず、前の効果音を止めて再生してる でも違和感ないでしょ?
同じ音を重ねてもうるさいだけだしな。 でもまぁ、432はどうしても重ねて鳴らさないといけないような特殊な事をやりたいのかもしれんし。 例えば楽器代わりに使うとか。
もしくはステレオやサラウンドで空間表現がしたかったりかな
便乗になるのだけど、SEで連続して爆発する音の場合、 DuplicateSoundMemで複製しておいて ずらしてならすってことでいいのかな?
左右のスピーカーに割り振るような場合とかは、途中で切れると困る
具体的な使用場面を明確にすることが先決かな
DuplicateSoundMemって再生カーソルの複製作ってるだけで バッファのコピー作ってないと思うから メモリ浪費が大きいということはないと思う。
誰もメモリ消費量の話してないし憶測で適当なこというなやボケ
横から罵倒とか何様のつもりだボケ
>>432 です、皆さんありがとうございます
>>440 >>445 そうですね、ある意味楽器みたいな感じなんです
STGやアクションで、自分のいる位置や敵撃破位置で、SEが変わったらどうなるかな?と思いまして
PlaySoundFile ( PlaySoundMem ) と PlayMusic の違いがわからん
PlayMusicはストリーミング PlaySoundはバッファリング じゃなかったっけ?
DirectXの音管理がDirectMusicとDirectSoundに分かれてた名残 MIDIを使わないのなら総てPlaySoundでOK
PlayMusicにハンドルがない不思議 MCIと一緒のせいだろか
PlayMesicMem()あるよ。リファレンスにはないけどね
455 :
名前は開発中のものです。 :2012/04/16(月) 20:47:38.30 ID:sqQ7wHbj
そういえばたまにバージョンアップせずに過去のバージョン使ってる人いるけど、なんなんだろうな 設定で単純にファイル差し替えるだけにできるのに
闇雲な「ライブラリのアップデートで動かなくなる」みたいな状況や言葉がやたらネット上にあるから普通怖いでしょ
そんなの滅多にないが それにバックアップはとっておくべきものだろうし
使いたい機能が特になければ新しいのじゃなくてもそれほど困らないんじゃ?
単にめんどいからじゃね、つまりあまり考えてないという
ライブラリの更新は基本的に自作ソフトのメジャーアップデートに合わせるし 特にクリティカルなバグフィックスでもなきゃアップデートしないよ 無駄な作業が増えるだけで大して意味ないもん
2.x→3.xのとき、当時作ってたゲームが動かなくなったなあ
c++の命名規則ってどうしてる? c#とかjavaだとクラス関数の先頭を小文字にするけど C(DXLIB, Win32, DirectX)だと大文字だよね。
制作集団に特に決まりがなければ好みの問題です
>>462 >c#とかjavaだとクラス関数の先頭を小文字にするけど
C#は先頭大文字でしょ
クラス Ckurasu 変数 kurasu
m_value
staticなクラスとシングルトンの差が分からないんだけど
静的メンバ関数はクラスのインスタンスが生成されなくてもアクセスできる 静的クラスはいつインスタンスが生成されるか分からない 静的メンバ関数から静的クラスの生成を確定させれば、ちょっぴり安心
>>467 static なクラス
初期化プロセスが自動で発生しない。
解放の必要がない。が、解放プロセスが自動でコールされないことを意味する。
シングルトン
初期化プロセスの発生するタイミングが不定 (意図的に呼べば確定は可能)
唯一のインスタンスをメソッド内でstaticに確保すれば
終了前に必ず解放プロセスが呼ばれることを期待できる。
(ポインタを確保してnewした場合はデストラクタが呼ばれないので注意)。
正直、あんまり変わんないけどね。
半分は趣味。
>>468 それだけだとVCだと非スレッドセーフだからちょっぴり安心なのか
staticなクラスってクラスのメンバが全てstaticっていう意味なんじゃないの?
Chidoriとかあったの覚えてるか?国産3Dフリーライブラリということで応募したら、Facebookで友達と認められなきゃダメだという奇妙さ。 それでも待ってたら、向こうからあなたはどういう立場でどういう用途で使うのか教えて、それを審査してDL許可が出るだって 日本はホントライブラリくらいで閉鎖的でダメ。こんなことだから日本は世界から取り残されてガラパゴスになる 以上愚痴終わり
ガラパゴス自体はなにも悪くないけどな その環境に対して最適化されてるってことだから
物を作る人間なら何かを他人のせいにしたらオシマイっすよ 違うと思うことは自分で覆せばいいだけ つうかソース公開して改造も認められてるDXライブラリスレで言うべき愚痴じゃないだろ
>>472 「ぐらいで」っていうならそれを自分で準備しなきゃね。
誰もあなたのために無償労働したくはないでしょ。
フリーを銘打っていて実は…ってのは悪質だが、他人に求めすぎてて
しかも「こんなことだから」って合理化するのはとても格好が悪いよ。
合理化じゃなくて正当化な
すまん。心理用語の合理化ね。
>>475 こういう狭小が奴が多いから、海外のように大規模フレームワークを制作して
多くの会社で共有しようって流れにならないんだよな
他人に頼らず、自社製のしょぼい独自フレームワークにこだわった結果が今の現状
>>478 あほいうなよ。それはビジネスとしてかあるいは協力体制の契約を
おこなってやってるものだ。一方的な関係じゃない。
次の荒らしの口実は日本の閉鎖性かw ここはDXライブラリスレですから言い争いは他のスレでやってください
日本のに比べて海外のは世界で通用する汎用性が~だったら海外の使えばいいんじゃw
DXライブラリは好きだから荒らす気はないよ 設計思想も共感できるしね あくまで現状を語っただけ 売れるものを大量生産するハリウッド的思想はやっぱり儲かるんだよ 映像はすごいが、どれもよく似たパターンだなってのはあるけど じゃあ、日本が独自性があるかって言うと世界的に見たら確かにあるが 国内で比べると、判子アニメ、判子ゲームだらけ だったら、もっと技術提携するような方向にもっていけないのかなと思うよ 海外のフレームワーク使えっていうけど、いろんな意味で無理でしょ
国内ゲーム企業の技術提携はあっていいと俺も思う。 あと、DXライブラリ作者さんに少し報われてほしいな。
サイト見てきたけど、どう見てもフリーライブラリじゃないだろ 有償で法人向けに提供されているようにしか見えないよ 個人や同人で使うならこういうのは実績ないと厳しいんじゃないか
無償提供はしてるらしいぞ。たぶん売れなかったんだろ。 あるいは、フレームワークのシェアを広げて何か付加価値の部分で商売する目的かも。 まあ、それでもどこの馬の骨ともしれない奴にぽいとただであげるよ、 とはいかないのは当然の措置だよね。
486 :
名前は開発中のものです。 :2012/04/19(木) 18:09:39.23 ID:Z6NQbpXt
無償版はウォーターマークが常に表示されるとか 使わせる気無いなw
体験版か
企業の技術提携どころか社内でも技術共有できずに、 車輪の再発明を繰り返してたりするらしい
ありそうな話だ。
技術で食ってきた日本人の気質がそうさせているんだろうな もう個人プレイでやれるような時代じゃないのに
教育もまともにせず、ようやく使えるようになったころにはもういい年で 新しい発想も生まれず、頭の硬い地味な作業を繰り返すだけの人間に育つ 保身のための行為が自分の首を占めている結果になっているのにも気づかないんだよね
よくわからんのだが、ここでそういう毒を吐く事が君にとって何かプラスになるのか? 新しい発想のキッカケになるとか。
思いついたことをその度垂れ流すな そういうのはtwitterでやれ
>技術で食ってきた日本人の気質がそうさせているんだろうな こんなこと言ってる時点で現場にいない人間なのがまる分かりなんだが
個人プレイでやれないのは才能・実力不足だしね
>>494 現場といってもいろいろあると思うけどね
>>495 それはそうだが、Unityのようなソフトウェアを個人で作れますか?って話
もういいから
siv3Dは大学のチームでやってるんか? 個人だとseleneの二の舞になりそう
個人プレイで一番つらいのは時間だな いくら時間あっても足りねえよ
DXライブラリの入出力関数しか使わないんだけど他に使うものあるの? まあゲームによって違うとは思うけど
>>502 他の奴も1つ2つ使ってることはあるけど、俺もだいたいそんな感じかなあ。
DXライブラリがそういう理念で作られてるというのもあるだろう。
ゲームプログラムで面倒なのってほとんど入出力じゃねーの。
XOBXのパッドに対応してないのかな スティックと十字キー押しても、戻り値0
シンクパッドの真ん中のボタンも使えるようにならないかな?
箱のパッドって、仕組みからして違うんだっけ?
XBOXのドライバはどうしたんだ。
ここの人たちがどんなゲームを作ってるのか気になる。 普段俺の手の届かない次元で話ししてるからなぁ
DXライブラリを使って汎用ゲームエンジン組んでるだけでゲーム自体は普通のSTGだな
俺もただの2Dゲー作ってるだけだよ。(先日完成して今は何も作ってないけど) ただ、ここで出るプログラミング話は全く付いていけてないw
エロゲって素直にいいなさいよ
DXライブラリでエロゲってことは、スクリプトローダとかそういう系統か。
脱衣STGかもしれぬぞw
DXライブラリでエロゲって商業だとちらほらみるな
ブロック崩しと
DXライブラリを使って普通の2DSTG作ってるだけだよ いつになったら完成するのやら
>>505 DxLib.hでGetJoypadDirectInputStateを検索してみな
この関数使えばXBOXのパッドの入力も取れるよ
3.07fが出てた
>>520 ん?
一応ガイドボタン以外は全部取れたと思うが・・・
箱? 箱◯?
ま、UNITYみたいのが出てきたいまDXライブラリは役目を終えつつはあると思う UNITYスレもスレ住人もくそ杉だが
そう、それはよかったね
3Dしかまともに作れないからなぁ・・・ 確かに次の時代のゲーム開発環境ではあるけど、まだプログラムする意味が無くなる程の代物ではないかな ADV作るならNScripter・吉里吉里、2DRPG作るならRPGツクール これに 3Dゲームを作るならUnity が加わった感じ 当然3DならどんなジャンルでもUnity使った方が良いというわけでもないけど
526 :
名前は開発中のものです。 :2012/04/24(火) 02:41:00.88 ID:pixaW8Xr
2dアクションゲームを作るならDXライブラリでいいと思う?
いいと思う。 ただ時代の流れで、肩身が狭いのは覚悟しておく必要があるね。 見栄えはやっぱり3Dの方がいいし。 (もちろんテクスチャやモデリング次第だが、最近は技術が成熟してきてるし、ツール系も充実してきてるようだし)
DXライブラリはあくまで描画や音楽再生を手軽にできるだけだから、 ゲームの動作は全部自分で書かないといけないのは変わらないことに注意だ 2Dアクション程度ならステージエディタを用意する以外はそれほど難しくないと思うけど
C/C++勉強用としてなら、まだまだ最前線で戦ってる印象
自分で書かなきゃいけないのが逆に勉強用としてはいいよな 本音言えばもうちょっと製作支援になるのが欲しいけど ちょっとしたのでいいからキャラモデル作ってくれるのとか
俺はそういうツール化するのはヤダな。 あくまで個人的な話だが、DXライブラリは、俺にできない事をサポートしてくれて、 俺にできる事は自分でやらせてくれる、ちょうどいいレベルのものだ。
ゲーム用3Dモデルなんて、「ちょっとしたツール」レベルがプロユースレベルな世界だぞ
ちょっとしたモデル Lv60と。
unityってDXライブラリで整理された同様のゲームよりコードより重くなるよな 触った事ないからわからないけど、 プログラム並みに自由度あるのか? ◯◯ゲームツクールと同じ気がしなくもない
もっと言えばマインクラフトと同じものを作ろうとしたときC++やjavaみたいにストレートに作れるのかと・・・
作れる作れないはライブラリにあらず 作者の意気込みできまる
まぁ、コストは多少度外視してでも、 手段は選ばずに、目的を実現しちゃえばいいよな、 趣味の世界なら。
重さはある程度作れるようになってから考えればいいよ。 それとUnityはプログラム使うよ。
最近はツクールもかなりプログラム寄りの作り方が出来るらしいしなー…
ツクールで3Dゲーム作れないだろ
と思うじゃん? ポリゴンが表示できないだけで3Dはできる
ツクール系でFPS作ってるのってなかったっけ……?
たしかにDoomみたいなやつは作れそうな気がするな
3D格闘ツクール
>>544 あれなんて選択肢から用意されてるモーション選んで差分調整するだけじゃん
アレはただのモーションエディット機能の付いた格ゲー
GraphBlendRectBltで合成した画像って たとえばキャラチップの透過部分は優先される? 水画像をキャラ部分だけに合成したいんだけどそこ上書きされると困るんだ
透過って工夫しないと前後関係が狂うよな
DXライブラリにマウスカーソルを変更する関数ってある? 指マークにしたり砂時計にしたりする奴
マウスカーソルを非表示にして、マウスポインタの座標に任意の画像を表示するやり方ではだめなの?
だめなの!
やってること同じだとおもけど なんでだめなの?
作ってるのがゲームじゃなくてツールだから それでOKならすでにやってるし
理由になってないし、DXライブラリに拘る理由も分からんし。
DXライブラリのゲームで使うエフェクトエディタなんだよ
ツールならほかにもGUIいるしなぁ。 スクロールバーとか全自作するぐらいなら他の言語使ったほうがいい。
WinAPIでできたけど、ちょっとチラつくな このくらいは仕方ないか
ツールはC#でDxLibのがよさげやね
559 :
名前は開発中のものです。 :2012/05/08(火) 18:24:11.12 ID:U1Qqw03N
今さっきゲーム用のグラフィック書いてた所.... もうこれだけで10日くらい費やしてる。 しかも静止画。 まぁ2Dスクロール作ろうとしてるんだが... デザインだけでこれだけかかるとやる気はあっても 時間が足りなさすぎる。 書いた絵を動かさないといけないって考えると途方もない よな。そもそもゲームって大人数で数カ月何年かけて作るもんだよな。 一人でやろうとして馬鹿みたいだ。 皆できないと思って諦めよう....
560 :
名前は開発中のものです。 :2012/05/08(火) 18:25:44.22 ID:U1Qqw03N
ゲーム作る時はやっぱ、大人数でやるべきだ。 DXライブラリは便利だがやっぱ時間かかりすぎる。 自分の役割が音楽であれ画像であれ、プログラム部分であれ、 確実に関わってるなら自分で全部作れなくても嬉しいだろ。
どんな超大作作る気か知らんが、基本的にゲームなんて一人で作った方が楽だぞ コードとグラフィックと音楽とか分野で分けて3人体制とかならわからんでもないが、それでも相当大変だぞ。 大人数で数か月何年かけて作るもんって、 それは最近のプロ(最新のグラフィックで3Dバリバリのゲーム作るような)に限った話。 試しに一人でテトリスでも作ってみなよ。 しっかり全ての機能を詰め込むと、それなりに時間かかるけど途方もないって程じゃない。 プロが大人数で何年もかけて作ったゲームよりも、素人一人が短期間で作ったテトリスの方が何倍も面白いだろうな。
最初は糞みたいなグラだろ、普通。 エンジン作ってるときなんかCUIの数字の羅列と睨めっこだぞ? で、完成に近づいてきたらちゃんとした絵を描く。 絵心が無いならとりあえず60点程度の絵は描いて公開。 で、絵師を募る。
例えば熊のキャラクター描くじゃん。 それをさ、動かすには、色々なアングルから描かないといけないでしょ? しかも、プログラム使って動かせるんじゃね?とかも思うわけ。 プログラムとデザインの間で何か巧い事できないかなと思うと プログラムもデザインも捗らないんだよ.... 総合的な動作機能の結集がゲームなわけで、 単にツール作ったり、マンが描いたり、音楽作ったりするわけじゃないでしょ。 テトリスくらいなら10日あれば作れると思うけど。
では残念ながら、ご縁がなかったということで。
>それをさ、動かすには、色々なアングルから描かないといけないでしょ? 3Dやればいいじゃん。 俺はできんからコツコツやるしかないけど。
動かすって一言でまとめられても、こっちは君の頭の中まで見えないからなあ。 普通2Dで動かすって言ったら、基本1枚だろ。もちろんQVなんかだと多少枚数増えるけども。 プログラムを使って動かすとかも意味不明、部品に分けてアニメーションするってことか? 基本的にゲームで難しいのは、面白いアイデアと、最終調整なんだよね。 コード、絵、音楽は単に作るだけだよ。 商業レベルのテトリスを10日で作れる能力があれば、そんなくだらないことで愚痴ってないだろと思ってしまうな。
>>565 2Dが好きなんで。3Dは神の上だろ。凡人の俺には無理だ。
色んな機能詰め込んで、目に見えない部分で快適な動作するような
スクロールゲーム作りたい。
そういやゲーム会社勤めてる人って多い人では月250時間くらい働くそうだな。
どんだけゲーム作るの大変なんだよ....
体もつのか?
>>564 だな。少なくとも大学の授業期間やるもんじゃない。
絵は簡単でいいから動くゲーム作って公開してしまえば、 そのゲームに絵を付けたいってやつが出てくるかも知れないぞ。
>>563 それは単にアイディアが固まってないだけじゃね?
ゲームなんか作ったって金がもらえるわけでもいい大学にいけるわけでも就職に有利になるわけでも出世に有利になるわけでもないからな 資格の勉強したり友人と交友深めたり読書でもしてた方がマシ 商業レベルのゲーム作ろうと思ったらそれこそ人生の一部をドブに捨てる覚悟が必要になる なんの見返りもないのに人生を捨てる馬鹿はいないわけで
学生が暇つぶしか現実逃避だかで気軽に手を出してみたが良いが 製作の厳しさを知って挫折感を味わったというだけのお話。
DXライブラリで一番分かりやすい解説サイトってどこだろう? 館でいいのかな
公式リファレンス。
確かにリファレンスは一個一個は分かりやすいけど 組み方が分からないとな…
あれで組み方がわからないってどういうことなんだ
DXライブラリ以前にゲーム作ったことがないのだろ。言わせんな恥ずかしい。
館でいいと思うよ。
DXライブラリが解り易いのは公式リファレンスだ。 プログラムの組み方知りたいなら他所へ。
マニュアルの方しか見てなくて,ゲームのサンプルがあることに気がついて いないって事は・・・ないよな?
>>581 うわああああごめん本当ありがとう
こっちの方が参考になりそう
挫折しないための鉄則があるかもしれない ・1日で完成するゲームを作って発表しろ(習作でもなんでもいい) ・それができたら2日で完成するゲームを作(略) ・それができたら4日で完成するゲームを作(略) ・それができたら8日で完成するゲームを作(略) 日数の増やし方は適当。実際にはもっと適した日数があるかもしれない
584 :
名前は開発中のものです。 :2012/05/08(火) 23:20:38.15 ID:ZUBEYPbm
>>583 確かに作る事は楽しくなるかもしれんが、何を目指すんだろww
挫折せずに楽しくゲームを作り続けるだけじゃ。
585 :
名前は開発中のものです。 :2012/05/08(火) 23:21:25.79 ID:ZUBEYPbm
でも良い案だと思う。 いつかそれを試すか。 後3年は無理だが....
絵がかけないから3Dに逃げたんだけど今度は大きさが合わないでござる
ちゃんと1mm=1単位 とか決めて作らないと……
ゲーム作ること自体が楽しい
ステフスレでグラフィックだけ募集したらいいんじゃないか
590 :
名前は開発中のものです。 :2012/05/09(水) 19:24:08.53 ID:fBkaoQm7
マジレスすると中学の時に戻りたい。 中学の時にプログラミング勉強してたらよかった。 あの時ゲームしかしてなかった。 今は単位を取る事のほうが大事。
>>380 この件、うちの環境で試してみたら、同様に固まってしまいます。DXライブラリを自前で
コンパイルする以外の方法で既に解決してる等の情報があったら解決法の提供いただけるとうれしいです。
こちらの環境:
ホスト/ゲスト共にWindows XP Pro. SP3 (DirectX 9.0c)、コンパイラ: Visual Studio 2008 Express
DXライブラリ: 3.05 (最新の3.07fにしても解決せず)
VirtualBox: 4.1.14
3Dアクセラレーションと2Dビデオアクセラレーションは有効。
VirtualBox Guest Additionsのビデオドライバインストール済。
見た目の現象も
>>381 の↓と同様。
> ウィンドウは出るけどそのまま固まって応答なしになるって感じ
Log.txtに出るメッセージも同じ
「IDirect3DDevice9 オブジェクトを取得します...ハードウェア頂点演算を使用します」
で終わってる。
ChangeWindosMode(TRUE)して、SetGraphMode()で指定したサイズのウィンドウが
出るので、そこまでは動いてるっぽい。固まってる状態でタスクマネージャで見ると状態=応答なし。
>>388 うちでもdxdiagではDirect3D 7のテストが下記エラーで失敗する以外は
正常(バウンスする□やXロゴの立方体が正しく表示される)。
| ステップ 40 (バック バッファを1つ持つフリッピング プライマリ サーフェスを作成中): HRESULT = 0x88760064(エラー コード)」
>>414 のSetWaitVSyncFlag(FALSE);も入れてみたけど解決せず。
Log.txtも「IDirect3DDevice9 オブジェクトを取得します...」で終わるのも変わらず。
Debug/Releseビルド共に同じ現象で解決せず。
元レスの人はDXライブラリを自前でdebugビルドしたものにしたら動いたようですが、こちらは未確認。
時間があれば週末にでも
>>399 含めて試してみるつもりですが、
既に解決済だったら徒労なので何か情報ありましたらお願いします。
>>590 正直、大学の時期を逃したら先はないよ。
就職後は時間に余裕がなくなる一方だ。
※ ただしニートを除く
しかし一番いいのは大学でしっかり勉強する事だ。
>>590 今プログラミングやれよ。好きなだけsin、cos使えるんだぞ
DXライブラリのゲームが動かない場合は、directXのツールで異常なしと表示されてても、グラボのドライバを入れなおせば治る場合が多いよ
>>592 就職して10年経ったら会社辞めてプログラミングするわ。
597 :
名前は開発中のものです。 :2012/05/09(水) 23:41:17.09 ID:9iScSVCb
いまやらない奴が10年後に何をやるって? 時間が無いとか逃げてるようじゃ向いてないよ。 時間は無いものじゃなく、作るもんだ
ゲーム作りなんてほどほどに諦めとけ。 10年古い遊びだし、ニートになったらどうするつもりだ?
サインコサインタンジェントが全然わからん sin cosはセットで使って角度から座標を求める tanはなんだろ?
ゲーム製作では、アークタンジェント(タンジェントの逆関数)で、座標から角度を求める。 自機狙い弾を撃たせる時とか、使用頻度は高い。
実際にそんな処理をやってたら重くてしょうがないw 数学関数の呼び出しはループの中では極力行わないのが常識。
昔はゲームコンテストに中学生が入賞して大金を手に入れたり ゲームプログラマーデビューしたと聞いた
中村光一のことかなと思ったけどちょっと違うか… 昔はネットも普及してなかったけどそういう夢はあった時代だねえ
中村祐一
ゲームはオワコン
>>601 そんなに重い?
想定するPCで処理落ちしない程度に抑えるのは当然として、仕様を諦めるほどのものか?
マウスカーソルの方に向きが変わるエフェクトだって毎フレーム角度を取らなきゃ出来ないだろうし、そういう表現を全部諦めなきゃいけないほど今のPCって遅い?
私も実際そういうの作ったけど、重いと言われた事はないなぁ。もっと重くなりそうな処理はたんまりあったのに。
sinテーブルとか使ってた頃の常識じゃないかな
10数年前の常識だから、今はバンバン使ってもいい つーか使わなきゃ3Dゲーム作れないよ・・・
sin cos テーブルなら俺今も使ってるけどね。 同じ計算何度もさせるのに、いちいちsin cos 再計算させるとか無駄だし。
テーブルなんて使ってたら超長距離の狙撃ゲーとかできなさそう
テーブルの間の値を取るときに線形補完でもすれば結構使えそうな気はするな
612 :
名前は開発中のものです。 :2012/05/10(木) 15:21:30.43 ID:VHianwBM
内積とか使わないの?
そんなピンポイントな仕様の時だけテーブル使わなければいいだけじゃ。 CPU性能が上がったからテーブル使わなくていいじゃん、て理屈なら メモリ増えたからテーブル大きくしてもいいじゃん、って手もあるし。
でかいテーブルにキャッシュ圧迫される位なら素直に計算したほうが速いと思う
インタプリタで弾幕STGが作れる時代だぜ?
俺も最初は普通に計算させていたが、「これテーブルでいけるんじゃね?」と思って テーブル処理させるようにしたら、スピードは変わらなかったがCPUファンが急に静かになった。 また、随分前に別のスレで同様の議論が起こった時、サンプルコード作って実測値を求め、 コードとその結果を晒すと、今までなんだかんだと言ってた連中は黙り込んだ。 つまり比較検討すらせずに論じてたわけだ。 よって俺は、PC性能が向上したからテーブル処理は不要という説は机上の空論だと思ってる。
三角関数のコストの話題をsinテーブルで例えたのは俺だけど 特に誰もそれを不要とか言ってないからね 俺もちゃんと的確な場所で使えば今でも十分通じる最適化の手法だと思っております
テーブルで処理してる人って固定小数点数とか使ってるの? 俺は浮動小数点数使ってるんでテーブル化の恩恵とかいまいちピンとこない グラフィックの処理限界が先に来るんでCPUの処理速度に無頓着なのもあるんだろうけど
VCで数学系の関数を高速化する命令ってなかったっけ? 内部でテーブル作ってくれるやつ
アプリケーションの計算頻度しだいで必要としか言いようがない。
数年前のCPUでさえ、普通に毎回計算しても弾幕シューで一万発60フレーム出せるし core2とかなら更に数倍計算できるだろうし
1日目 dxlibraryをインストール 2日目 visual c++をインストール 3日目 Dxlibraryのサンプルプログラムを観賞 4日目 リファレンスを見て関数勉強 5日目 リファレンスサイトを探す 6日目 you tubeを見て作品観賞 7日目 ニコニコ動画を見て作品観賞 8日目 Dxlibraryの普及度をネットで調べる こんな感じで一向にゲーム作る気になりませんでした^o^ やる気はあるんだよ? バイトしてるほうがマシだなでもww
sinテーブルなんかは最適化には有効だけど、 わざわざsinテーブルなんて作るよりベタ書きでいいじゃんって話でしょ。 毎秒何フレーム描画したいかにもよるけど、どんな酷い書き方しても今のCPUなら最低でも60fpsは出るぞ。 そもそもcore2なんて化石だしなあ。 三千円出してSandyのCeleronでも買えばいい。
>>622 お前みたいなやつに限ってやる気はあるってのが口癖だったりするんだよな。
自分でもう一度眺めてみろよ。
既にdxlibをインストールしてるのに、後から普及率を調べたり
リファレンスがあるのに、別のリファレンスサイトを探したり、
今までいろいろなゲームを見たことがあるはずなのに、今さらゲーム作品を鑑賞している。
全部プログラムを書くことからの逃げでしかないだろ。
1時間程度でvc++インストールしてdxlib入れて、リファレンスとにらめっこしながら書きはじめない時点でやる気が無いのと同じ。
atan2は普通に使ってるけど、 1/60sec.内に必ず処理が終わるようにしなければならない、っていう決めのもとで、 newとdeleteなど動的なメモリ確保する処理がこわくて使えない 具体的にはSTLのmapがこわくて使えない 低確率であろうとも負荷が集中して1/60secを超えるリスクがもしあるのなら、と思って使ってない そんなことがあるのか、よくわからないんだけど で、全インスタンスを予め確保して使ってる アクションゲーならあらかじめ敵最大1000匹とか決めておいて、インスタンス1000個を配列で確保して、 で1個1個に生死フラグをもたせてる
>>621 自分弾幕やらないからよく分からないのだけど
解像度800x600 で 8x8の小さなドット敷き詰めても 7500発にしかならないと思うんだ
一体どんなゲーム(計算方法が分かっているならツール?)なんだろ
どっちかっていうと勉強できない奴がゲーム作るのに逃げたって風潮なのに 回転座標とか行列とか、三角関数とか嫌にならないのかね。
>>626 あくまで昔作ってたゲームでどこまで弾が出せるかの計測の結果だから、実際のゲームでそんなに出したわけじゃないよ
なので、普通にゲーム作る分には三角関数は最適化しなくても余裕はあまりまくるって意味
>>627 やらない奴のテンプレすぎるw
内積はベクトルが作る面積、外積は体積だよな。
高校の頃は、ゲームに活用できる単元だけテストの点数高かったな ゲーム制作に活かせることなら興味モリモリだろ普通
目的なくリファレンス見ても何も頭に入らないと思うんだが
ロダやパス聞いて叩かれてるタイプ
グローバル変数使いまくってたのをクラスにまとめてすっきりしたと思ったら100エラー越えて泣いた。 オブジェクトの宣言てどこですればいいの。もうexternは使わんと決めたお…
同じスタイルでやるならexternの数を減らせる以外の効果は無いと思うよ externが一個で済むようになるならいいじゃん
>>636 散らかってた変数や関数を複数のクラスにまとめたってこと。そして素人の俺はクラスの数だけexternすることに。
もっとゲーム設計に適したやり方はないの?とお前さんらに泣きついた次第
セーブ・ロードするんでもなきゃ、下手にクラスにまとめないほうがいいよ クラスにまとめるくらいなら、ネームスペースで囲っとけ
>>638 クラスは便利って聞いたから慣れようとしたんだけどね。いろいろ試してみる
クラスの実体をグルーバル変数にしない→どうやって実体化したクラスにアクセスするか?→ポインタ(リファレンス)を渡す 後はメンバのアクセス権とかを設定すればなんとなくC++っぽいプログラムになる
基本的にexternてextern "C"位しか使わないはずだけどな ポインタの引数渡しだとかシングルトンとかでポインタ返したりするので間に合うし #pragma once等で多重インクルード防止してるよね?
642 :
名前は開発中のものです。 :2012/05/11(金) 08:33:33.00 ID:ZM042uCS
目的が達成されればやり方はなんでもいいんだよ
クラス設計見てないからなんとも言えんが、 ゲーム総括クラスを一つwinmainで メッセージループ入る前やWM_CREATEで生成、終了時破棄ってのが普通じゃないか? ってかDXライブラリ関係ないな。クラス設計スレあったと思うよ。
>>625 毎フレームmapに自前でnewはあんまやらないと思う
別コンテナにすでにインスタンス確保してあるなら、
そのポインタかスマートポインタを入れたらいんじゃね
DXライブラリって直接半透明に画像描画することって出来ないのかな? 透明メッセージ枠やりたかったけどSetDrawBlendModeが必須なのか…
普通は、それができるようにDXライブラリを更にラッピングして描画関数やフレームワークを作る
α情報ある画像ならいけるよ
透明メッセージ枠くらいならアルファ画像の方がいいんじゃないかな。
649 :
名前は開発中のものです。 :2012/05/11(金) 22:34:22.76 ID:4SsxSVut
自貼りするのは構わんが、あちこちのスレにマルチはするなよ。
透明画像なんて使えたのか…
>>644 ありがとう
STLのmapでのinsert/eraseでsecondをポインタにするのなら、
ほとんどnewとかdelete発生しない
(か発生してもサイズが小さいから、負荷が集中しても1/60sec超えるほどにはならない)
ってことか
mapが内部的に保持している要素数をオーバーしたときに再配置が生じるくらいかな…
先に大量に配置してからclearしておけばいいのかな
1/60secに常に収まることが必要な敵オブジェクトやタスクの管理にもmapは使えそうな気がしてきた
必要に応じてvector/set/multimapあたりになるのかもしれんけど
宣言した変数に文字を代入したいんだけどcharやintじゃダメなのかな char Sound = BGM1; みたいにやってるんだけどどうも美味くいかない 文字はcharだと思ってたんだが
ごめん分かり辛かったかもしれない --main.cpp----------------------------------------------- int BGM001 = LoadSoundMem( "BGM/音声.mp3" ); int BGMVol = 255; //BGM音量 int SEVol = 255; //SE音量 char SoundSet,SoundVol = BGM001 , 255; void Sound_On(); --Sound.cpp---------------------------------------------- char SoundSet = 0; int SoundVol = 0; void Sound_On(){ ChangeVolumeSoundMem( SoundVol, SoundSet ); } -------------------------------------------------------- こんな感じで指定するだけで流すBGMとその音量を楽に変えられるようにしたいんだけど 文字列が使えないとなるとここからどうすればいいんだろう全く分からない
Cの基礎文法から地道に勉強したほうがいいよ 勉強するのが嫌ならchar[]とかstringで検索
おっぱい
657 :
名前は開発中のものです。 :2012/05/12(土) 11:08:26.00 ID:4PAPvi2J
>>654 ツリーマップとかハッシュマップがしたいんじゃないか?
stringってなんだよ char*やchar[]となにが違うんだ
動的に配列を確保したぃだけどできる? kurasu hoge[] = new kurasu[i]
なにって、文字列長可変できることに決まってるじゃまいか
>>654 色々とダメすぎ。
char型にint型を代入しようとしているし、
char SoundSet,SoundVol = BGM001 , 255;
こんな代入ってできたっけか?
少なくとも、このコードで文字列を使うようなところはないぞ。
LoadSoundMem()の引数で使うのなら別だけど。
最低でも、配列ぐらいは勉強しようぜ
>>654 "BGM/音声.mp3"以外に文字列使ってるところないと思うけど
あとcharは+-127で 255いれるならアンサインドしないといけない。
SoundVol = BGM00はキャストしないといけないけど
int型のハンドルからcharにいれるとおかしくなる
charがsignedとは決まってないぞ? unsignedとも決まってないが
>>664 釣乙と思って調べてみたらマジで処理系依存だった。
今まで何も意識してなかったんだぜ。
666 :
654 :2012/05/12(土) 14:28:24.06 ID:6R8HK7WJ
ダメ過ぎてごめんなさい charもstringも使わずに出来ました、レスくれた人ありがとう
atan2って0渡すと落ちない?
c#用のdxlibがあるらしいけど、 使い心地はc用と比較してどう?
>>667 処理系依存なのでVCは0を返す
BCCならエラーになるかも
GCCは0だったかな?
>>667 C99対応処理系の場合、設定次第で例外を生成する
>>668 構造体名が全部大文字だったり
C#ならenumを使うようなところが全部const静的メンバだったり
C#を使い込んでいる人ほど使いにくいと感じるかもしれない
個人的な感想をいうと
「どうしてもC#で使いたい人向けにとりあえず用意しました」
という感じが強い
使い心地という観点では、正直あまり良くない
まぁ、もともとCやC++用のライブラリだから仕方ないんだけどね
enumで定義して欲しいとかはC/C++でもあるけどね 演算に利用するような定数でもなければ、型で縛っといてくれた方が安全だし
練習に簡単なじゃんけんゲー作ってたら面白くなってきた
674 :
名前は開発中のものです。 :2012/05/12(土) 22:35:13.58 ID:vkMbVikO
どうせ軽いフレームワークは自作するんだろ? そのついでにC#らしからぬ所を隠してしまえばいい。
>>652 再配置ってvectorなんかで起こるメモリの再割り当て?
↑ならmapでは特に気にしなくていんじゃないかな
ゲームプログラミング作り難しすぎ。 O型のやつは大雑把だから細かいプログラミングは絶対不向きだな。
言い訳乙
>>675 そうなん?
例えば10個の、敵その他オブジェクトへのポインタをmapにinsert/eraseをしてて、
場面によってオブジェクトが1000個に増えるようなときって、
mapが持ってるメモリ上の領域って10個分から1000個分に拡張されるんじゃないかなとか思う
でそのときに再配置というか、追加割り当てが発生するんじゃないかなとか
まぁその規模の処理で1/60秒食われるわけもないから、気にする必要もないのか…
プログラミングが難しいとか正気か?
こういう場で血液型占い持ち出すやつは文系でも最下層の人間だろうから難しくても無理はない
682 :
591 :2012/05/13(日) 08:53:27.43 ID:8OrJeLU+
>>591 DXライブラリをビルドして試してみました。
>>399 さんの推測で当たりのようです。
DxGraphics2.cppの4134~4168行をコメントアウトして
GRH.FrameTime=16;
にしたら動きました。(16という値は1000(ms)/60(fps)=16.666...ですよね多分)
上の行番号はDXライブラリ3.05での値で3.07だと変わっていると思うので、
// 1フレームの時間を取得しておく
のコメントの部分を探して、そこを同様に変更すればとりあえず回避できると思います。
ログ出力を埋め込んで見たところ、当該処理の中で呼び出している
GetRasterStatus()×4のうち、2番目のfor(;;)ループ
(// VBlank が終わるのを待つ)が無限ループしてるようです。
回避策は分かったけど、正しい修正方法までは分かりませんでした。
当該処理の中で呼び出しているGetRasterStatus()がおかしな値を返して
来ている?ようですが、原因まで調べるだけの知識・スキルは有りませんでした。
公式サイトの掲示板の方にも報告しようと思いますが、VirtualBox固有の問題
だと思うので、作者さんのところに環境が無いと調べて対策するのは難しいでしょうね...
>>679 じゃあジャンケンのプログラムを余計なとこは省いてレス行以内で書けるか?
#include <stdlib.h> #include <stdio.h> #include <time.h> void shoubu(int a, int b) { char* hand[] = {"グー", "チョキ", "パー"}; printf("あなた:%s vs 相手:%s\n", hand[a], hand[b]); if (a == b) printf("あいこだった\n"); else if ((a+1)%3 == b) printf("あなたの勝ち!\n"); else printf("相手の勝ち!\n"); } void main() { unsigned int a; srand(time(0)); printf("あなたの手は?(0=グー, 1=チョキ, 2=パー):"); scanf("%d", &a); shoubu(a%3, rand()%3); }
なにこれうごかない
ちょ、俺書いてたのにw
w
>>671 ありがとう
公式に機械的にc#用に変換したとあったね
おとなしくxna使うわ
689 :
679 :2012/05/13(日) 10:02:11.55 ID:oOXluPnN
#include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){ if( DxLib_Init() < 0 ) return -1; int game=0,zibun=-1,aite=0,hantei=0,temp=0;//ゲームの状態・自分・相手・判定・勝敗チェック用の char* hand[] = {"グー", "チョキ", "パー"};//パクった グー=0 チョキ=1 パー=2 char* win[] = {"勝ちました", "負けました", "あいこでした"}; SRand(GetNowCount()); SetDrawScreen( DX_SCREEN_BACK ) ; while( ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0 ){ switch(game){ case 0://初期化 aite=GetRand(2); game=1; break; case 1://入力待ち DrawString(0,0,"グー=Z チョキ=X パー=C 選んでからスペースキーでバトル",GetColor(255,255,255)) ; if(zibun!=-1)DrawFormatString(0,32,GetColor(255,255,255),"現在の選択は「%s」",hand[zibun]) ; if(CheckHitKey(KEY_INPUT_Z))zibun=0; if(CheckHitKey(KEY_INPUT_X))zibun=1; if(CheckHitKey(KEY_INPUT_C))zibun=2; if(zibun!=-1 && CheckHitKey(KEY_INPUT_SPACE))game=2; break; case 2://判定 DrawFormatString(0,0,GetColor(255,255,255),"自分の手は「%s」、相手の手は「%s」",hand[zibun],hand[aite]) ; if(zibun==aite)hantei=2; else{ temp=zibun;if(temp==2)temp=-1;if((temp+1)==aite)hantei=0;else hantei=1;} if(zibun!=-1)DrawFormatString(0,32,GetColor(255,255,255),"%s。エンターキーで再戦、ESCで終了",win[hantei]) ; if(CheckHitKey(KEY_INPUT_RETURN))game=0; break; }; ScreenFlip(); ClearDrawScreen(); } DxLib_End(); return 0; }
コード汚すぎるけどDXライブラリで動く的な
DXライブラリ関係ない話が多いなw
>>685 全角スペース消せ
ksに付き合うなよ…w
問題を出されると組みたくなるのはプログラマの性
>>681 reserveはvector系にはあるけど、map系にはないみたい
>>652 のやりかた(最初にたくさん確保してからclear)をすればいいのかもしれない
mapって配列で保持してるとでも思っているか…
>>678 再配置ってのが
push_backしまくってvectorが確保したメモリ超えたときに起こる
メモリの再確保&要素全コピー&古い領域解放のことだと思って
mapじゃ起こらないから気にしなくていんじゃねって思ってレスした
vectorは
>>681 に同意でreserveとセットだと思ってる
>>696 ,697
たしかに、その話ではないね。
言いたかったのは、
・mapの実装が、要素間をポインタでリンクしてるものだとする。
・mapに要素を追加した場合は、
既存の要素が持っているポインタ値が、新要素へのリンクを示す値になる
だから…
あっごめん再配置の問題ないわー
途中で何度も挿入と削除繰り返す場合は 要素でアクセスする必要ないならlistのが良いし ソート不要ならunordered_maptも考慮してもいい
>>699 ありがとう
例えば敵オブジェクトを1000要素の配列に入れて、存在フラグtrue/falseで管理し、
存在フラグtrueのものだけ処理を行う、という用途で、
要素検索によるランダムアクセスしないなら、
listが向いてるって感じか
用途に応じて選ぶ際の参考になるわ
701 :
名前は開発中のものです。 :2012/05/13(日) 18:38:44.99 ID:pSj6hJ1W
map, vector, listでクラス使う際は ポインタ <T*> を使うのがいいんだな javaやってて気付いた
vectorでどうやって動的にクラス配列確保するんだよ( ;´Д`)
703 :
名前は開発中のものです。 :2012/05/13(日) 22:18:11.78 ID:pSj6hJ1W
だからポインタ使えって。コピーコンストラクタ書かずに済むし速い。 プリミティブなら逆にポインタ使わないほうがいいけど。
>>701 の<T*>をぐぐったけどよくわからんかった
ので
>>702 もよくわからんし
>>703 もわからん
もちろんプリミティブならそのままsecondに代入しちゃってのはわかる
普通にvector使えばいいんじゃないの?
706 :
名前は開発中のものです。 :2012/05/13(日) 23:22:50.12 ID:pSj6hJ1W
>>704 Hogeなら vector<Hoge*>ってこと。
するとSTLが管理するのはポインタの配列だけで
ポインタが指すインスタンスは結局自分でnew(), delete()する必要があるね。
vector::push_back()とかにあわせて
参照先new(), delete()するラップクラス作っちゃったり。
ああ、T*というところがわからなかったけど、
要はmapならsecondにはポインタを入れておけばいいってことで、
>>644 と同じことをいってるってことね
mapならというかコンテナ全般、プリミティブじゃないなら ほとんどの場合ポインタかスマートポインタになると思う インスタインス生成する場合でも生成してからポインタをコンテナに入れる
敵がドアを破って追いかけてくるゲーム作りたいけど何時間くらいで 作れますか? マップは平面です。 100時間くらいで作れますかね?
>>709 どんなゲームかよくわからないけど、一般に絵描くのに時間がかかると思う
ドンキーコングみたいなゲーム作るには何時間くらいかかりますかね? ディクシーのポニーテールジャンプみたいなアクションとか難しいですか?
DXライブラリスレで質問したということは、 ツクールなどでなく、プログラムを0から作るということだよね プログラムの経験がないなら、プログラムのやり方をつかむまでにも、時間がかかると思う
使う言語が分からん。
使うツールが分からん。
どんな設計するか分からん。
そもそもどんなゲームか分からん。
>>709 の技量が分からん。
本当に
>>709 だけだったら1時間もかからないんじゃない?
__人≡_扉_敵≡_扉___
↑を適当に表示すれば?
手を動かさない限りは100万年あってもできないからw
>>711 難しくはないけど、何時間で作れるかはわからない。開発時間なんて測ったことないから。昨年作った自分のゲーム(STG)見たらデバッグでのプレイ時間は今調べたら12時間くらい。だから製作時間は100時間は超えてると思う。
俺は1年で1作品作ってるけど1年の内この期間は言語の勉強して、この期間はライブラリ作って、みたいな感じ。ゲーム作ってる期間は3ヶ月くらい。
参考になりましたでしょうか?
716 :
名前は開発中のものです。 :2012/05/14(月) 21:51:45.72 ID:FOic/R1y
話変わるけど、
>>715 さん。
シンプル500って知ってるかい?
あぁいう感じのゲーム好きなんだわ。
500の脱出ってしってる?
あんな感じのインターフェースが良いな。
初心者です^ω^
言語はCです。(C++は無理)
ライブラリはDxlibraryとvisualC++
(C++は無理) visualC++
>>716 ClassはまだしもStringとか使ってないの?
720 :
名前は開発中のものです。 :2012/05/14(月) 22:39:41.11 ID:FdCjrB5P
「free game classic(フリーゲームクラシック)」とは? 3ヶ月ごとに開催される個人運営のコンテストでみんなの投票で 順位を決めます。 「プレイ時間は90分内」「先行公開が可能」など、ルールがあるので要注意。 3位までにギフト券3000~1万円が贈られるます。 ゲームを作ってコンテストに参加するもよし、ただ遊ぶでもよしです。
721 :
名前は開発中のものです。 :2012/05/14(月) 22:54:07.17 ID:FOic/R1y
>>718 フラッシュだとツール臭するからな。
CやBASICで10年以上前の簡単なPCゲームみたいなん作るのが楽しいんだよ。
あーコン部思い出すわ。
10年程度じゃまだレベルたけーぞ。
>>722 違うって。
12年前くらいのPCゲーム。
Shock Priceの500円の脱出ってゲームしってるか?
あぁいう簡素だけど、コミカルでわくわくする雰囲気の
レトロゲー作りたいんだよ。
昔に戻れる。
パソコン部思い出せる。あーあのころに帰りたい。
>>722 お前コン部の楽しさしらないだろ?
公立なのに夏にクーラー利いた部屋に出入りしたら
勉強できないのにコンピュータだけは得意なメガネ君がカタカタやってる。
で俺は話ついていけないから、今度のコンクルール何出そうか?みたいな
話題提供したら乗ってくれる、色々教えてくれる。楽しいぜ?和気藹藹。
女子はパソコン苦手だから、固まってお喋りしてる。可愛い子もいた。
土曜日なら先生少ないから、サッカー部の生徒が可愛い女子目当てに
乱入しちゃったりしてさ。
あのころに戻りたい。
コンピュータ部ってX6800、PC98、FMタウンズの勢力争い三国志みたいなとこだった
>>725 俺の知ってる部活と違う。クーラーしか共通点がない。
全員でエロゲのセーブデータ解析&先公から頼まれた市販ソフトのコピー遂行。
解析データは投稿。
>>725 はどこの世界に生きてたんだよ・・・
>>725 俺もdoubtだわw
「パソコン」が通称だった時代は、まだ全く身近じゃなかったんじゃないか?
サッカー部に女子がまとわりついてるってんなら分かるが。
あと、
>Shock Priceの500円の脱出ってゲーム
アマゾンのユーザレビューでボロクソ言われてんなww
「パソコン」はまだ言うなw スマソ
マイコン
コンピュータの話をするとそんなもん何の役に立つんだと 老害教師に鼻で笑われたなー
実際役に立たないから困る
実際ゲームのメイン部分ってwhileじゃないと駄目なの? GPの館に書いてあったんだが
他の制御構文は for:初期化式と再初期化式が省略可能だが余分 do~while:初回無条件に実行が必要じゃない goto:基本的に使用は避ける 無駄が無いからwhileを使う
while以外に何を使いたいんだ?w
do~whileを使うプログラマ、使わせるSEはクズ
統一させないといけない仕事ならともかく、 趣味でやる分には好きにすればいいと思うよ
while(true)よりfor(;;)の方が速いらしい
そもそもそれぞれ機能が違うんだから「ループ処理」みたいにバカな一括りにしてないで使い分けろよw
そんな微妙な差をきにするほどのゲームなのかと聞きたい
for, foreach, while, doはforに統一してもいいよな。 for(int i=0; i<5; i++){} for(Type object : array){} for(true){} {}for(true)
>>740 宗教寄りな個々の拘りの問題で、出来上がる物にそこまで影響してこないでしょ
>>736 がそう思う理由を聞きたい。普段から殆ど使わないけど、なにかか不味かったけ?
do~whileの存在なんて忘れかけてたわw
do~whileは一生使わないと思う
僕この前使ったことあるよ!! 二次元上の点をランダムな点(ただしPCの半径n以外)を得るコードの時に人生で初めて
do whileはstd::next_permutationで使うくらい
747 :
名前は開発中のものです。 :2012/05/15(火) 22:14:03.49 ID:AbQ+Urgd
do{ 処理; if(エラーチェック1) break; 処理; if(エラーチェック2) break; 処理; return;//正常終了 }while(false); エラー処理 return; これでgoto要らず・・・
構文がもし do while(条件) { ... } だったら、もうちょっと使ってたかもしれない
あと有名なのははDuff's Device send(to, from, count) register short *to, *from; register count; { register n=(count+7)/8; switch(count%8){ case 0: do{ *to = *from++; case 7: *to = *from++; case 6: *to = *from++; case 5: *to = *from++; case 4: *to = *from++; case 3: *to = *from++; case 2: *to = *from++; case 1: *to = *from++; } while(--n>0); } }
>>659 だけど
他で作った好きな要素数の配列をnewしてアドレス変数をポンポン交換してって
使い終わったやつはdeleteで開放
で擬似的に動的配列になるかね
日本語意味不明だけど解読してくれると嬉しい
配列は定数しか無理だよ 動的配列のvectorじゃだめなん?
vectorが内部でやってることだろ。 基本を抑えずvector使っても結局詰まるよ。
vectorとか適当にぶん回しても要素1000くらいまでならマジ優等生 何も考えずにvector使えばいいよ
おまじないプログラマーの甘言を真に受けないように
プログラマーとして一流になる必要などなくて、ゲームが作れればいいんだから、 さっさとvector使えばええやん C++ STL vectorとかでぐぐれば資料もたくさんあるから、必要な情報も得やすい
757 :
名前は開発中のものです。 :2012/05/16(水) 21:17:43.67 ID:xcEAC60x
名前空間とかわけわからんdせう
758 :
名前は開発中のものです。 :2012/05/16(水) 21:22:50.79 ID:xcEAC60x
クラスをインスタンス化する時コンストラクタやiniメソッドでメンバを初期化するとする この時わざわざ class Constructor{ private: int x,y,z; public: Constructor(tmpx,tmpy,tmpz){ x=tmpx; y=tmpy; z=tmpz; } } って名前変えて一個ずつ代入していくのが面倒なんだけど、この方法しかないの? Constructor(x,y,z){} が出来るならいいんだけど
Constructor(int tmpx, int tmpy, int tmpz) : x(tmpx), y(tmpy), z(tmpz) {} とかどうよ
760 :
名前は開発中のものです。 :2012/05/16(水) 22:06:52.36 ID:xcEAC60x
やっぱなんかダサイねん(´・ω・`) tmpとか無くしたい x→tmpx→x ↓ x→x
テンプレートで初期化を自動化するstatic関数作ればいいじゃん こういうのってC++でもできるよね?
762 :
名前は開発中のものです。 :2012/05/16(水) 22:13:40.69 ID:xcEAC60x
なんかこう、パラメータヒントの変数名がtmpでダサい(´・ω・`)
大文字・小文字で区別ができるんじゃ?
同じ名前でもいいぞ、混乱しないようにメンバ変数にthis付けたほうが安全だけど
class point { private: int x,y; public: point() { *this = point(x,y); } point(int x,int y) : x(x),y(y) { } }; ってダメかね
>>758 内部変数とアクセッサ・引数用の変数ネーミングのルールを作る。
内部変数は省略形で書き易く、アクセッサ・引数用は分かりやすく。
それ以上気にすると先に進まん。
なんかいい方法があれば後で直せば良いや、くらいで。
>>764 安全っつーか、thisつけないとアクセスできないでしょ
俺ならこうだな 変数は構造体の中にまとめる 変数が増えても構造体をいじるだけでいい typedef struct xyz { int x; int y; int z; }stXYZ; class Constructor { private: stXYZ xyz; public: Constructor(stXYZ *pstTmp) { memcpy(&xyz,pstTmp,sizeof xyz); } }; //呼び出し側 stXYZ stTmp = {1,2,3}; Constructor constructor(&stTmp);
769 :
名前は開発中のものです。 :2012/05/17(木) 00:24:19.25 ID:Jj8o5dc4
>>767 初期化子リストじゃだめなの?
class foo
{
public:
foo (int x, int y) : x(x), y(x) {}
private:
int x,y;
};
できればコンストラクタに引数渡したくないな
よくわからんけど引数から直接メンバにデータを渡す事は変数介さないと無理でok?
そこは見た目だけの問題だからintとか組み込み型だと最適化で消える場合もある
レベル高すぎてついていけない
別にsetter, getterない publicなメンバ変数を持ってもいいし、 visual studio c++ 専用だけどpropertyという機能もある
C++の構造体ってデフォがpublicなクラスみたいなもんだし メンバ関数作って使い方の感覚得るとかいんじゃね
778 :
名前は開発中のものです。 :2012/05/17(木) 17:43:23.17 ID:ucuijB6C
厨房だけど、何からすればいいか分からん C言語は入門書一冊熟読した 知識はそれだけです
何すれば良いか分からんやつは大抵できないから好き勝手ゲーム作ったりしてれば良いと思う
ファミコンのマリオみたいなの作るといいよ あの滑らかなジャンプの曲線の動きとか作るのすげー勉強になるし、実際に動いてるの見ると楽しい
>>778 作りたいもの作ればいいよ。
作りたいものがなければ違うことやればいいと思うよ
ちょっと待て、熟読したとは言ったが、実際にコードを入力して試したのか? ともかく、DxLibとC言語で簡単なゲーム作る本があるから探して買うか図書館で借りるかして試してみればいいよ。
昔はベーマガを見て覚えたもんだが
俺は見た(読む)だけじゃ絶対身につかなかったな。 実際に動かして見てやっと理解できる。
俺はサンプルプログラムを1個改造して、 次のサンプルプログラムを1個改造して、 気に入ったのがあったら沢山改造して、というのを繰り返して身に着けたな
http://rpg.nengu.jp/game/dl/ このサイトのソース読みながら覚えたいのですが
RPG.vcprojをドラッグアンドドロップして
vc++2008に変換しようとすると
「ゲームファイルの初期化に失敗しました」と何度試しても出ます。
VC++2010は低スペなので使えないのですがどうすれば変換できるのでしょうか
もしダメならこれ以外でVC++2008で公開されているrpgのサンプルがあれば教えてください
お願いします
staticで保持して置いた配列を使い終わったら開放したいんだけどどうしたらいいでしょうか?
staticの固定長配列はプログラムが終了すると自動的に解放されます それ以外に開放手段はありません
関数func1,func2でそれぞれstatic変数を宣言した時、中身は共通になりますか?
C++なら終了するまでスコープから外れないので解放されない。 解放する必要があるなら、 配列へのポインタで変数を確保してnewでヒープを確保、 必要になったらdeleteすればok
>>789 関数内で宣言されるstatic変数はスコープは関数の内部のみ。
従って別物。
>>790 なんかよくわからないので具体的にコード書いてくれると嬉しいです。
・配列arrの引数m分だけ要素数を持つint型配列を引数&pに作成する関数
とかだとわかりやすくて自分が喜びます。
図々しくてすみません。
やはり某製作支援サイトのようにメインループの前に変数宣言した方が良いのかな・・・
>>793 //えーと、
// 適当な配列
int[] arr = {0,1,2,3,4,5,6,7,8,9,}
void dynamic_array(int*& p, int length)
{
//lengthnこのintを確保
p = new int[length];
// arrからコピー
for(int i = 0; i < length; ++i)
{
p[i] = arr[i];
}
}
// pを解放するときは、
// delete[] p;
>>793 >>795 のSTL版
#include <vector>
void dynamic_array(int*& p, int length)
{
auto v = std::vector<int>(length);
p = v.data();
}
なんでここC++スレになってるんだ
DXライブラリで詰まる人はcなのかライブラリなのか区別が付かないからではないでしょうか
俺みたいにDXライブラリに頼らなくてはゲームも作れないレベルの人間だと C++についてもよくわかってなかったりするからつい、だろうね。 他のスレだと”DXライブラリに頼らなくていい人”ばかりに思えて気後れする。
>>796 dynamic_array終了時に開放されね?
>>787 が単にヒープに置きたいということでなければ
>>795 の方法しかないと思う
もしくはvector自体new/deleteするか
今時ダウンロードしてまでゲームやる人いるのかね
>>800 >vector自体new/delete
スマポをnewするとか意味ないだろ。
>>796 はドヤ顔でSTL勧める本人がSTLを理解してなかった良い例。
STLのmapに(キー重複しない)insertを繰り返していくと、 メモリはわずかながら消費されていくと思うんだけど、 それってnewが繰り返されてるってことだよね。 アクション性の高いゲームでメインループ内でnewとか使っていいのかな。 普段は軽い処理でも、メモリ確保と開放が絡むと、どこかでカクついたりしないか心配。 気にせずやってるけどカクつきなんて発生したことないよ、ということなら安心なんだけど。
冷静に考えて、今時って携帯ゲームやネトゲが主体だろ? DXライブラリでパソコンで動くゲームって当たり前だが そういうのが逆に新鮮じゃね?
>>803 もしも、メインループで毎フレームほど行なうっていうのなら、
そういう処理を行なう事自体を、見直す必要があると思うけど。
GCが起動するわけでもないならnew/deleteにあまり神経質になる必要はないと思うけど・・
>>803 new deleteが重いというけど、なにをnew deleteするかでまた違うのよ。
new int とか new char[32] みたいに1回で終われば気にするほどでもない。
new Hoge で Hogeのコンストラクタの中でまたたくさん new() よばれているような
階層深く大きいクラスのnew, deleteが重いから、
その場合だけオブジェクトプールを検討すればいい。
一応ラウンド(ステージ)管理クラス生成時に 設定されたキャラクターの数だけ配列を宣言する形なんだけど 配列用ポインタを持たせたら、参照先が使い捨てになる。 で、動的に配列の要素数を操作すればポインタで使い捨てじゃなくてもいいんじゃないかと
それは最大数がステージの開始時にわかってて、 最大数分のメモリを確保しっぱなしにするって話だろ? それができる(普通な)規模のステージならそれがいい。 ステージだとかシーンと呼ばれる単位で一括確保・解放できればそれがベスト。
最近のPCの場合、個人制作のゲームなら 全部メモリ確保してもいいともうけどな
new/delete遅い遅いっつーけどwinの実装はくそ速いぞ。 一定サイズ以下ならただのプールからの切り出しだし。
>>807 オブジェクトはゲーム起動時に最大数をメモリ確保してある前提だったりする。
そこで、mapにinsertするpairが仮にintとポインタだったとして、
insertのときにそのintとポインタ分の小さいnewが起動するし、
eraseのときにはそれがdeleteされると思う。
で、その回数が膨大になったとき、GCみたいな時間くう処理が起動して
カクついたら困るなーと。特にアクション性の高いゲームだと。
たとえばメモリを新たに大量確保する処理が起動して時間くうとか。
そんなものは発生しない、なら、安心してコンテナ使ってゲーム作れるんだけど。
アクション性の高いゲームでも普通にコンテナ使うのが定番だよ、ということなら安心なんだけど、
そのあたりよくわからなくて。
>>809 具体的なコードがわからないんだよ
class RoundAdmin{
Character character[];
RoundAdmin(int i){
for(int t=0;t<i;t++){
character[i] = new Character;
}
}
}
iPhoneスペース無視されてワロタ
>>813 続き
イメージとしてはこれができたら楽なんだ
winmain(~~~~~){
int state;
while(error()){
switch(state){
case 0:
RoundAdmin RAdmin=new RoundAdmin();
break;
case 1:
state=RAdmin.Func();
break;
case 99:
delete RAdmin;
break;
}
}
}
try,catch,throwじゃ駄目なのか?
goto使えば良いんでね?
>>815 ありがとう。参考になる
自分はまさに個人・小規模でPCゲー製作だから、
out of memoryの心配だけはないんだよな
オーバーライドして作ったクラスのオブジェクトをコンテナに突っ込んでイテレータで回しながら共通関数を実行するんだろ
>>816 OGRE3DのAdvancedOgreFrameworkがシーンの使い分けを解りやすく実装してるよ
仕組みだけなので2Dでも十分使える、ただ3DゲームならOGRE3D使ったほうがDXライブラリより楽だけど
メモリ確保かー。 そういえばこの間、少し大きめの構造体の配列を用意しようとしたんだけど STRUCT_HOGE hoge[1024]; だと実行時エラーで、 STRUCT_HOGE *hoge = new STRUCT_HOGE[1024]; だと問題なく動くってことがあった。 頭では理解してたけど、実際遭遇したのは初めてだった。
ちなみにそれ原因は何ですか?
stackとheapでぐぐれ
ただのスタックオーバーフローってこと?
yes
>>823 大文字で書かれると分かりにくいのは俺が初心者だからかな
普通小文字じゃない?
>>824 それなりにプログラムやってるけど、遭遇したの初めてでなー。
>>829 こういう例示だと、結構使い分けることも多い気がする
>>812 >mapにinsertするpairが仮にintとポインタだったとして、
>insertのときにそのintとポインタ分の小さいnewが起動するし、
>eraseのときにはそれがdeleteされると思う。
ツリーマップは木構造のノードに必要なデータ、キー、バリューを
一つの構造体として1回のnew(), delete()で済ませる。
だからstd::listの追加・削除・挿入は比較的速いアルゴリズムと言われてるが、
これとnew(), delete()の回数自体は変わらない。(木構造を辿る負荷は別計算)
でも毎フレームstd::mapに大量の追加・削除されるのって
そもそも連装配列に向いてないペアなんじゃないか?(キーがHPとか?)
例えば
>>816 なら関数ポインタ or クラス継承して
ストラテジーパターンのポインタを使うべきだ。
>>825 VC++の初期値では、スタックサイズの最大値、ヒープサイズの最大値に
低めの値10MBが設定してあるから、これを超えると例外が発生して終了。
>>832 >一つの構造体として1回のnew(), delete()で済ませる。
>これとnew(), delete()の回数自体は変わらない。(木構造を辿る負荷は別計算)
同意。
小さい負荷が積もり積もって、トータルでみれば大きな負荷となること、
その負荷軽減のためのチューニングや根本的な設計の方針については、
いろいろ情報も得やすいし、なんとかなる気がしている。
他言語のGCのような突発的大負荷の心配をしてたけど、
このケースでは、その心配はあまりなさそうという気がしてきた。
そういえば、ゲーム製作に関わるC, C++全般のスレって無いのか。
>>833 これでエラー回避出来なくなった人って少なくないんだろうな(合掌)
>>834 GCが動き出すぐらいにメモリーをいじってれば、
いずれはフラグメンテーションの餌食になるだろうな。
そうなったら、メモリー管理の方法を根本から見直した方が良いな。
>>838 あったほうがいいかも。
軽く雑談できるくらいのスレは確かに欲しい。
ム板はstlやら何やらで分かれまくっててメンドイ。
C/C++でDXライブラリ以外のメジャーどころのライブラリも 知ってる人がいたらテンプレに入れてみては? 俺は不勉強ゆえDXライブラリしか知らないけど…
考え出したら色々あるな。 boostとかsdlとかwtlとか
switch分岐でnew-deleteできないのかぁ!! 誰かメインループ中でラウンド管理クラス(キャラクター数、オブジェクト数などのゲーム本体を管理するクラス) を作りたいんだけど! 全然わからん。綺麗にできない。 ラウンド管理クラスを、例えばゲームのロード画面時にパッとnewして キャラクターをその分だけパッとメンバの配列を動的に宣言して リザルト画面に戻ったらパッとdeleteしたい
キリがないからやめろ
その前に、自分のできる方法でゲーム完成させて経験値増やしたほうがよいように見える
>>846 キャラクターのクラスをラウンドクラスで配列で持って管理するっていう方法を想定して作ったんだよ
ラウンドクラスをコンストラクタの引数で指定されたファイルでマップやキャラクターや武器を初期化して
このラウンドクラスはその名の通りラウンド中は保持してラウンドが切り替われば新しく作る。
というのがしたいんだ。
だから
switch(hoge){
case 0:
hoge=func();
case 1:
Round round=new Round();
hoge=2;
break;
case 2:
hoge=round.main();
break;
case 3:
delete round;
hoge=0;
break;
}
これがしたい
case0がメニューで1で初期化(つまりロード画面?)2がメインゲーム、3がリザルト画面
みたいな
でもswitchスコープ抜けると開放されちゃうんよ( ;´Д`) staticにすれば、ひょっとしたら言語特性でできるかもしれないし でもそうするとdeleteしても消えないかもしれないし
そういう概念をどこかで齧ったのなら、 そのソースごと真似すればいいんじゃないかな スコープはC/C++では割と基礎的なところなんで、そこの理解がまだ足りないうちに そこまで高度・大規模なことを「そらで」やろうとしても挫折してしまうと思う 手本があるなら手本を理解するまでやったほうがいい、その意味で、手本の真似が足りない
>例えば
>>816 なら関数ポインタ or クラス継承して
>ストラテジーパターンのポインタを使うべきだ。
switchをやめろ。
LILO and switch
なんでローカルにnew
まず、メモリリークチェックしたほうがいいな。
>>847 のプログラミングからは駄々漏れ臭いがぷんぷんする。
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
ゴリ押しおまじないプログラミングは危険だぜ。
854 :
名前は開発中のものです。 :2012/05/20(日) 08:54:21.16 ID:jxpb7tAX
綺麗に書く素人が「綺麗に」とか考えて作っても読みやすくはならんと思うぞ
>>847 メンバ変数にでも保持しておかないと、
スコープ抜けたらローカル変数は保持できないので、結果的にメモリリークする
まあ、
>>849 がFAだと思うが
>>849 確かにswitchはオススメしないって言われた
お手本のコードは無いです。
メインループのこの部分(タイトル画面やメインゲームやオプション画面の変異)って
どのようにした方がいいですか?
他の方法がわからない
今思いついたのは
NowState=&Start();
while(~~~){
NowState=NowState();//次に実行するべき関数のアドレスを返す
}
タスクシステム?というのは聞いたけど昔のものだとかする必要が無いとか言われた
グローバルにenumでモード切り替え用の変数作ってswitchが一番簡単
シーン管理でggr
c#やjavaでいいんじゃないかってくらい全部クラス化してる。 クラスは自分が管理クラス(今回の場合はラウンドクラス)から渡されたデータを使って処理を行う。 例えば一連の流れをいうと キャラクターが攻撃を行ったら判定クラスのメソッドが呼ばれ 判定クラスのメンバ変数ポインタからキャラクターの情報を貰って 判定結果がtrueならダメージ処理クラスに攻撃方法と対象と攻撃者が渡されるメソッドが呼ばれ ダメージ処理クラスが持っているキャラクターの情報を貰って HPが0ならキャラクターに死亡フラグを立て、UIクラスのメソッドに攻撃者と対象を渡す。 つまりキャラクタークラス→判定クラス→ダメージ処理クラス→UIクラス とバトンリレーになってる。 この時、キャラクタークラスや判定クラスやダメージ処理クラスは、キャラクターの情報を持ってないと仕事にならないのでラウンド管理クラスが保持している。 イメージとしてはクラゲと、クラゲの触手 class RoundAdmin{ Character character[]; Judge judge; Damage damage; public: void SetCharaNum(int); void SetJudgeClassChara(Character* hoge){damage.SetChara(hoge);}; void SetDamageClassChara(Character*); } 以上のことを踏まえて誰か中央部の設計お願いします。もう設計の最初からやり直しするのは嫌ですヽ(;▽;)ノ
昨日はアクションでstd::mapが速い遅いの話だったが、今日はRPGの戦闘か?
C++だと相互参照するのに嫌な制限あるから難しいよね。
>>856 のサンプルに入ってるソースではデータと振る舞いを分けちゃってますが、
クラスを名前だけ前方宣言してダブルディスパッチするほうが一般的なのかなぁ。
>>862 こうか?
class Charactor
{
__int HP;
__bool isDead;
__void Attack(Charactor* target, How* how)
__{
____Judge judge;
____bool is = judge.IsHit(target);
____if( is )
____{
______Damage damage;
______damage.Set(this, target, how);
______if( HP == 0 )
______{
________isDead = true;
________UI ui;
________ui.Set(this, how);
______}
____}
__}
};
だめだ、エスパーよろ。
>>865 それぞれの返り値がないから
例えばjudge.ishit()っていうメソッドの中でdamageを定義してメソッドを呼んでる
こう・・・
class Charactor
{
int HP;
int x,y;
double Angle;
bool isDead;
RoundAdmin* Admin;
void Attack(int Kind){
Admin->judge.IsHit(this,x,y,Angle,Kind);
}
};
class Judge{
RoundAdmin* Admin;
void Judge(RoundAdmon tmpAdmin){
Admin=tmpAdmin;
}
void IsHit(Attacker,x,y,Angle,Kind){
for(int i=0;i<Admin->CharaNum;i++){
if(~~~){
Admin->damage.func(Attacker,i,Kind);
}
}
}
}
説明が下手でスパゲティで死にたい
enum { TITLE, MAIN, ENDING, }; int state = TITLE; int main(void) { while() { func[state](); } }
>>863 ゲームオーバー処理の時にゲームシーンをpopして、そのままゲームオーバーをpushすればいいんじゃないの?
871 :
名前は開発中のものです。 :2012/05/20(日) 16:09:24.24 ID:b4J8kKZD
>>870 逆だと思ってました(popしたものが実行されると思ってた)
そういうことですか
>>869 func[MAIN]関数内で保持したい変数ってどうすればいいんですか?
func[MAIN]以外が呼び出されたら消えて欲しいです。
あと今更ですが質問厨でウザいですし基本設計の質問はDxlibスレでスレチだった・・・
Charactor*のようにポインターのマークが後ろにつくのはどういう意味だっけ?
Character* x; // Characterのポインタ型を表す型名 Character*30 // Characterという変数と30の乗算(演算子オーバーロードがされていない場合) Character*=10 // Characterという変数に30を乗算し代入(演算子オーバーロードがされていない場合) /*Character*/ // コメントの終端 どれでもお好きな物をどうぞ C++のスレがないってのは ここで質問して良いって言う理由にはならないからな?
中高生の黒歴史
ありが㌧ Character* x; // Characterのポインタ型を表す型名 ですよね しかし↓このように書くのはどうなんだろう? Charactor *target
>>875 スレタイに「ゲーム製作」入れて、
C/C++ゲーム製作総合スレッド Part1
でいいんじゃない?
これは参考になりますね。どうもありがとうございます~ C++の本には載ってない文法なので疑問でしたが 人それぞれの考え方なんですね
880 :
名前は開発中のものです。 :2012/05/20(日) 21:23:14.14 ID:iNm25OoA
>>879 手元の入門書(2種類)だと載ってるけどな
キャラクターを一瞬真っ白にして描画する方法ってわかる? 例えばダメージを受けたときなんかに使うアレ
>>884 明るさを0にして色反転ってできなかったっけ?
違った、ブレンドモードか。危ない危ない…
SetDrawBright()とSetDrawBlendMode()使って、 一時的に他の色っぽく表示っていうのがこのスレか前のスレかにあったね 参考にさせてもらったわ
別の画像を表示
画像を指定した角度座標でマスクできる関数教えてください! 四角く作ったミニマップがダサいです!
上からマスク画像を表示
>>890 すまんが、その質問からだとどういうふうに描きたいのか分からない。
「○○っていうゲームの△△みたいに」っていう例えでも良いんで
もう少し詳しくやりたいことを説明してはくれまいか。
AVAのミニマップ表示と EXVSの画面右上のミニマップの両方お願いします。
EXVSってただの丸だろ。マスクする必要なしw
構造体のポインタを引数にする関数がうまく使えない。 クラスのメンバ構造体のポインタを渡そうとしても「CClass::TStructからTStructへ変換できません」と言われる。 わけわからん。お助けくだせえ
おっと、それ用のスレがあったんか。スレ汚しすまん
>>889 以前他のライブラリで試そうとしたんだけどどうやっても白いくり抜いたような画像は得られませんでした。
やっぱり出来ないんですよね?
たとえば赤い色の敵がいるとすると青と緑の要素がないからキレイに白くならなかったような
そのときの結論は、手作業で白い敵の絵も作ってダメージのとき
そちらを表示するしかないということでした
シェーダを使うw
>>897 DXライブラリのメモリイメージAPIから作り出すことができる。
ただしDirect3Dは、同じテクスチャを同じ描画モードで
連続して描画すると効率が良いので、
一枚の敵画像の中に白く塗り潰した敵の絵も一緒に入れてしまったほうが
描画するときの効率はいい。
Direct3D9の固定パイプラインがもっている、 あるいはHLSL書いてピクセルシェーダ使うのも描画モードが切り替わるので、 Direct3Dの一括描画を止めてしまう。 手作業で白い敵の絵も作って、アルファブレンドで二枚塗りして フェードさせるのが最も望ましいんじゃないかな。
>>898 わかりません・・・Directx7レベルPGなのでw
>>899 >>900 よくわかりました。ありがとうございます。
おかげでこないだ詰まってた問題も原因がわかりました。
スプライト処理クラスを作って一枚表示ごとに描画モードを
SetRenderStateで変えていたのですが、去年買ったi5パソコンで数百程度の
小さい画像表示で処理落ちし始めてビビリました。
このスレで「描画モードを変えると処理が重くならないか?」という話題があったのを
うっすら記憶していて、SetRenderStateをまとめてやるようにしたら改善されました。
いま「SetRenderState 重い」で検索したらたしかに重たいと警告を発してる開発者さんがいました。
画像ロードする関数を少しラップしてソフトイメージ経由で白マスク画像を作成、連結したもの作らせると結構良さそうかな
ファミコンだったらパレットチェンジでデータ量少なくかつ高速に処理できるのに最新PCって駄目だな
全くだw いちいち色違いのキャラを用意しないといけないとか、面倒だわ。 俺もこの白点滅のやり方について公式とかで質問した人間だから、同類。
>>903 いくつかポイントがあって、合成する元の画像がそれを意識して作られる必要あり。
テクスチャは2の累乗であるwidth, height の正方形である。
だから長方形とかだと裏で大きめの正方形を確保してしまうから、
合成後の画像が正方形のスペースを有意義に使うこと。
カラーパレットが空いている必要がある。
つまり256色を白以外で使いつくされてるとだめ。
今だってピクセルシェーダー使えば同じこと出来るだろ
そんな高度なテクニックは使いこなせねえよ
白抜きしたいキャラクタをまずブレンドモードInvで反転で描くだろ? その上にもっぺん同じキャラクタをこんどはAddで加算描画するだろ? そうすると抜き色以外255で埋まるって寸法よ
別に白画像作ればいいじゃん
アルファブレンドのON,OFFの切り替えが頻繁に起きるぐらいなら 全部アルファブレンドONで描画したほうがいいんだな。 マップタイルだけOFFとか。
Allegroには、グラフィックの背景色以外の部分を指定の色一色にして描画する関数があって、 ビットマップでフォントを用意してそれを指定の色で描いたり、 そのシューティングゲームでダメージを受けて一瞬#fffだか#f00だかのシルエットになるときとか使い道があった
でも白画像でいいよね
作るの面倒くさい。少なくとも自動生成じゃないと。
俺はゲーム内で自動派だけど、 ゲーム外でツールで生成する派とかもいるかもしれんな 要はゲームで実現できればいいし
917 :
名前は開発中のものです。 :2012/05/28(月) 03:51:16.27 ID:xvuBoj/+
ゲームではかなりよくある表現だから関数があってもいいかもな
関数作ったよー>< // r, g, bの色を透過色とみなした白マスクを下に繋げて作成。alphacheckを1にするアルファ値0も透過する。 // AllNum以降はLoadDivGraph系と同じ(ただし複製後の画像を想定して指定すべし)。 int LoadDivGraphWhiteMaskDup(const wchar *infile, int r, int g, int b, int alphacheck, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf) { int inhandle = LoadSoftImage(infile); int w, h; GetSoftImageSize(inhandle, &w, &h); int outhandle = MakeARGB8ColorSoftImage(w, h*2); BltSoftImage(0, 0, w, h, inhandle, 0, 0, outhandle); for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) { int tr, tg, tb, ta; GetPixelSoftImage(inhandle, x, y, &tr, &tg, &tb, &ta); if ((tr == r && tg == g && tb == b) || (alphacheck && ta == 0)) DrawPixelSoftImage(outhandle, x, y+h, 0, 0, 0, 0); else DrawPixelSoftImage(outhandle, x, y+h, 255, 255, 255, 255); } } int outgraph = CreateDivGraphFromSoftImage(outhandle, AllNum, XNum, YNum, SizeX, SizeY, HandleBuf); DeleteSoftImage(inhandle); DeleteSoftImage(outhandle); return outgraph; }
マリオみたいな感じのゲームを作ろうと思ったけどジャンプができない。 色々サイトとか回ってみたけど中々分からない。 誰か教えてくれると幸いです。
重力と地面に立つことを作ればあとは飛ぶだけ
>>919 v=gt
速度の上限を定める
落下しすぎたら戻す
ジャンプで難しいのは着地だけ
どうしてもダメなら最初は加速させずに等速ジャンプでいいと思うよ
押してる間だけ上昇、離したら下降とかね
アクションゲームの最初の壁はジャンプ 次の壁は坂道
最初の壁は床だろう……。
924 :
名前は開発中のものです。 :2012/05/28(月) 10:20:42.61 ID:rvNFgryv
床てY軸の位置こていしとくだけじゃないか
それを言うなら、ジャンプだって下方向へ加速させるだけだ。 さらに言うなら、昔のゲームみたいに(等加速度でなくて)等速直線運動だとしてもジャンプはジャンプだ。
yが毎フレーム5マイナスされる時 厚さ1の床をどうやって判定するんだ
5以内に地面があれば5-距離だけ移動してジャンプ終了、でよくね?
for(i=0; i<5; i++) { y++; if(isAtari()) { y--; } }
ちょっと横から失礼
>>902 これで真っ白な画像を得られました。ありがとうございます。
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) {
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK);
int x = 0;
int Handle = LoadGraph("char.png");
while (ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0) {
SetDrawBright(255, 255, 255);
SetDrawBlendMode(DX_BLENDMODE_INVSRC, 255);
DrawGraph( x, 100, Handle, TRUE );
SetDrawBlendMode(DX_BLENDMODE_ADD, 255);
DrawGraph( x, 100, Handle, TRUE );
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 ) ;
x = x + 1;
}
DxLib_End();
return 0;
}
ブレンドモード切替の負荷の重さにはびっくりしたので
ゲームの最初にこれで白い画像を作って表示することにしました。
932 :
名前は開発中のものです。 :2012/05/28(月) 14:53:28.29 ID:WnycGPJc
DXについて勉強するのにオススメの書籍とかありますか? 横スクロールのアクションゲームを作ってみたいんですが
14才からはじめるわくわく~ みたいなやつ
934 :
名前は開発中のものです。 :2012/05/28(月) 20:02:07.96 ID:GTiho4az
>>932 俺の結論として本は要らない
Dxライブラリは覚えること余りないから必要なのはサンプルでしょ
ネットで他言語でもなんでも見たらいいと思う
公式にあるサンプル全部やって、全部ちょこっとずつ改造してみれば、 次に何を勉強すればいいか道が見えてくるかもね
うお、仮とはいえPMXに対応してきたのか すげーな
>>933 あれ買うなら東方もどきのサイトの方が1000倍マシ
>>932 DXってのはDXライブラリのことを指してるのかな?
DXライブラリ自体は画像の描画や音楽の再生、キー操作の取得なんかを簡単にできるものだと思えばいい。
リファレンスを読めばわかるから、書籍など全く必要ない。
問題は各ゲーム(シューティング、横スクロールアクション、落ち物、パズル、etc...)の構造なんだけど、
この辺は当然ながら言語もDXライブラリも全く関係ないから、ひたすらググればいいと思う。
もちろんシューティングに特化した書籍なんかも売ってるとは思うから、
どうしても本がいいならそういうのを買えばいいと思うよ。
勢い良くぶつかったら吹っ飛んだとか、 しゃがみジャンプで天井ぶつかったら吹っ飛んだとか、 ブロックとブロックの間に挟まって吹っ飛んだとか、 よくある光景ですよね
敵とブロックに挟まれたと思ったらキャラが消えたとか
それは大統領
いつのまにか3.08aが出ていたのね
前回からの違いは主に3D関係か
SetBlendGraphParamが便利そう
まだリファレンスに反映してない?
948 :
名前は開発中のものです。 :2012/05/31(木) 14:24:38.29 ID:LR2h9MNT
3.08a で x64 のプログラムをビルド出来た Release だと駄目みたいだけど
x64のメリットはなに? スピードは同じでメモリがいっぱいとれるとかかな?
X
VirtualAllocでも使わないとメモリーはいっぱい取れないな
プレイヤーの最低動作環境がメモリ4GBを超える場合だろ。 超広大なシムシティでも作るのか?
x64の環境なら、x64で動かしたいと考えるのは自然かもしれない
周辺機器とかソフトとか全部x64対応してないとダメなんだっけ
>>952 マインクラフトみたいなマップで
1ブロック4byte 256*256*256*4で65M
1Gで16マップ分4Gで64マップ分
使おうと思ったらすぐじゃね?
マイクラならプレイヤーの周辺だけマップが読み込めてれば良いんだし、 その64マップ分をメモリに展開しておく理由がないだろう
多くのSLGは遅延ロードで済むようにゲーム側の仕様を工夫しているな。 リアルタイムに全タイルを更新するとしたらCPUもハイスペック、 マルチスレッドで効率を落とさないゲーム仕様に工夫する必要がある。
64bitOS使ってるとデバッグ実行の起動時と終了時がx64の方がスムーズ 俺はそれだけの為にx64lib使ってる んで配布するときはx86libでビルド
DXライブラリはいいけど本体のC++の方で詰んでワロタ
C++なんて関数の途中で変数宣言できるCとして使ってりゃいいんだよ
いわゆるbetter Cか。 C99未対応でも、//のコメントアウトやら関数途中での変数宣言が出来るコンパイラは多いけどね・
DrawStringって変数使えないんだね 使えるのはFormatの方だけか
えっと思ってソース検索してみたが、変数使えてるお std::stringの変数に代入して、c_str()メソッドで使ってる
マジかー でも分かりやすいし俺はFormatだけでいいや…
文字を3Dモデルにして表示してくれる関数があれば絵が描けないのをごまかせるのに
要望送ればいいんじゃね?
Direct3Dにあるやつなら簡単に追加できそうだけどな。
そういう外部ツール作って画像にしちゃうほうが加工とかもできていい気がする
DXライブラリで攻撃する時の剣のエフェクト作りたいんだけど、 三日月作って表示するだけでいいのかな?外側にいくほど透明度を高くしたい 事前加工とか必要だろうか
DXライブラリ使うならDirectXのSDKは入れなくていいんですか?
内側だと東方の穴あき弾みたいになるだろ
どうでもええがなw 本人の好きにさせれば。
975 :
972 :2012/06/08(金) 14:04:03.64 ID:q3HoT9+Z
アルファチャンネル付きの画像を用意するか、諦めて手抜き
俺ならエフェクトを何重かに重ねるかな。
透明度50%の画像を10%ずつ小さくして5枚重ねるとそれっぽいよね あとはレベル補正でなんとかなるかな?
フォトショ
>>975 そういう内側なのか
ドーナツ状にする方かと思ってた
981 :
名前は開発中のものです。 :2012/06/09(土) 02:23:31.12 ID:PDT8+LE/
DXライブラリって物理エンジンも積んでないんでしょ。 しょっぼー。しょぼしょぼりんwwww
でっけー釣り針だなおいwwww
物理エンジンを使わないゲームすら作れないので問題ない
むしろDxLib側のBulletは使わず自前ビルドしたもの使ってる
自分はBox2D積んでるなー。C++用じゃないけど日本語資料多くて助かる。
マルチメディアとそれ以外(圧縮ファイルとか物理エンジン)は 別ライブラリで分けても良さそうだけどね。
マップエディターを作ってたんですけどできたマップが1280*480で SaveDrawScreenを使って640*480の2枚の画像にしてるのですが この画像を1枚にあわせて保存するにはどうすればいいでしょうか 毎回ペイント開いて合わせるのもなんか気持ちよくないので
できたマップが1280*480ならいいじゃん
そのマップエディタが、マップチップ並べる方法のものなら、 二次元配列にそれぞれのマップチップの情報を記録すれば済みそうな物だけど (1マップチップのサイズが40*40なら、640*480が[16][12]の、1280*480が[32][24]の配列になる)、 画像ファイルで保存する方がやりやすい方法にしてるの?
>>989 マップチップを並べる方法です
チームで製作しているのですがお互いまだ慣れておらず絵の担当さんから頂いた画像が細かい座標調整が必要でした
そのためマップエディターで良い感じの位置に調整してスクリーンショットを取る方法にしようと思い至りました
パッドでキー入力を一回だけ判定させる方法ってみんなどうやってる? 1F前のキーをとっておいて判定する方法にしようかと思ってるんだが
それでいいと思う。 ついでに押してる長さとかも一緒に数回分の入力履歴をとっておくようにしたら 今は役に立たなくても、今後使えるようになるかもしれない。 (格闘ゲームのコマンド入力みたいに)
俺はパッドデータ保存・判定クラスを作った。 まず、用途をはっきりさせて、次に、それに合うデータ保存形式を決めた。 あとは、毎フレームで、保存メソッドを呼び出し、データを保存。 判定したい場所で、判定メソッドを呼び出し、保存データを元に判定。 俺の場合はキーリピート的なものが欲しかったので、 ボタンごとに、押しっぱなしになってから何フレ経過しているかをデータで保存するようにした。 保存メソッドでそれを保存。 判定メソッドでは保存したデータを元に、リピート発生の有無などを算出。 流用とか変更がしやすいから楽だったな。
押したキーと押したフレーム数だと 同時押しとか対応できなくない? AとBを押して2秒、とか
そんな特殊な入力判定必要になったことないからわかんない。
ソース書いてみなよ。ここに
1000 :
名前は開発中のものです。 :2012/06/11(月) 02:09:46.59 ID:t30FF6fH
、ゞヾ'""''ソ;μ, ヾ (●) (●)彡 ミ " □ " ミ クワッ! 彡 ミ /ソ,, , ,; ,;;:、ヾ` "'"'"
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。