4 :
名前は開発中のものです。:2013/04/05(金) 03:56:08.42 ID:FZ26RlS8
詳細を記載した方がいいのだろうけど、まずは簡単な回答を頂きたいだけですので
簡素な内容で質問することをお許しください。
DXのサウンド機能の話なんですが、
ステージ中、あるオブジェクトが登場した時だけBGMを変えたいんです。
で、そのオブジェクトが登場した時に元々のステージBGMをストップさせ、
新たに鳴らしたいBGMをplaybgmしているのですが
実行されると無音になってしまいます。
おかしいのはここからで、ステージの場面(scene)をそこから移動させると
鳴り出す、というか聴こえだすんです。(sceneを変えても、ストップさせない限り
BGM再生は生きてるじゃないですか)
しかも、その鳴らすファイルをSEというか短い音でplay関数に変えると問題無く鳴るんです。
もっと言えば、無音になるそのBGMのファイルを別のsceneのBGMとして利用すると
問題無く鳴ってくれます。
つまり、BGMのファイル(mp3)は悪くない。
プログラムソースに問題も無いと、確認出来たわけです。
なにが問題なのか、意味がわかりません。
同じsceneの中で、playbgmは複数利用出来ない
(playbgmを利用してBGMをバンバン変更したりするのは出来ない)
というDXの仕様なのでしょうか?
それともなんか原因が推測出来る方、いらっしゃいませんか?
>>4 PlayMusicとかPlaySoundFileとか使っているならPlaySoundMemのほうを使った方がいいと思うぞ。
6 :
4:2013/04/05(金) 04:47:39.17 ID:cbWh4JId
>>5 レスありがとうございます。
紛らわしい書き方してすみません、
再生にはちゃんとPlaySoundMem(*** , DX_PLAYTYPE_LOOP)をつかっております。
>>4にて書いているplaybgm関数とはDX_PLAYTYPE_LOOPを引数としたもの、
play関数とはDX_PLAYTYPE_BACKを引数としたものになります。
なにか考えられる原因はありますか?
今、一番関心のあるスレを発見
丁度、ボクもDXライブラリの門を叩いて
DXライブラリの門をくぐってゲーム開発に挑戦してみようとしているので
ちょくちょく利用させていただきます
ttp://blog.livedoor.jp/winpg/ ここでゲーム開発日記を書いていく予定です
以後、お見知りおきを
とりあえず
>>4の書いてあることの解釈の確認だが
元々のステージBGMを「A」で新たに鳴らしたいBGMを「B」としよう。
>>4がやりたいことは「A→B→A」という風にしたいが
実際には「A→(無音)→B」という風になってしまうということでいい?
「int Handle」という変数があるとして
Handle = LoadSoundMem( A ) ;
Handle = LoadSoundMem( B ) ;
という風にAとBのBGMを共通の変数に代入をしていないか?
「int Handle1」「int Handle2」というような感じで別々の変数を用意しておいて
Handle1 = LoadSoundMem( A ) ;
Handle2 = LoadSoundMem( B ) ;
にしておかないとダメなのでは。
9 :
4:2013/04/05(金) 05:47:35.24 ID:cbWh4JId
>>8 レスありがとうございます。
自分がやりたいことは「A→B→A」という風にしたいが
実際は「A→無音(B)→A」となってしまう、です。
この無音(B)の時にsceneが変わる(例えばゲームオーバーになり、ゲームオーバー画面に変わる)と、
実は実行されていましたといわんばかりにBの音が聞こえだします(もちろん、Bの実行を停止せずにいた場合)。
また、無音(B)の時ですが、完全な無音の時もあれば、
ブツブツとラジオの電波が悪い時みたいな音がしている場合もあります。
もちろん、ハンドルは別で用意しております。
別々のハンドルで用意したBGMを切り替えたい、だけなのですが。。
>>9 if( CheckSoundMem( Handle ) == 0 ){
PlaySoundMem( Handle , DX_PLAYTYPE_LOOP );
}
BGMが流れていないときだけBGMを流すという処理なんだけど
Bに対してこんな風にはしてある?
11 :
4:2013/04/05(金) 08:01:21.00 ID:6yEsDHhh
>>10 BGMが流れていないときだけ流す?
えっと、BGMを流す関数(playbgm)を作っていて(その関数内にPlaySoundMem(***, DX_PLAYTYPE_LOOP)を入れてます)
vectorのコンテナに入れてある各サウンドファイル(順番がIDとなっています)を、
playbgm関数の引数により、ほしいBGMをハンドルの変数bgmに格納、
それをPlaySoundMem(bgm , DX_PLAYTYPE_LOOP)する。
更新中、今流れているID(BGM)と同じID(BGM)の引数の場合はなにもせず(そのBGM流し続ける)、
別のID(BGM)の引数で実行されたら、新しいIDのBGMを流す、といった関数です。
12 :
4:2013/04/05(金) 08:17:13.65 ID:6yEsDHhh
Bの曲と、BGMを実行するという関数においては
別のsceneではなんの問題もなく流れてくれるので
問題ないと思うのです。
そういう仕様は聞いた事ないな。
DXライブラリじゃなくて単純にプログラムのバグな気がするけど……。
俺がやった事ない部分は「Aの曲を途中で止めて、次に再生するのはその途中から」という部分だが
そこを単純に「最初から再生する」にしてらどうなるのかな?
「途中から再生する」という処理をどうやってるのか気になるところだ。
シーンが変わるとBが再生されるというのは、最初からなのか途中からなのか、
Bが鳴らないと思ってるのは、どこかでボリュームをいじってて、それが0になってるだけじゃないのか、とか。
14 :
4:2013/04/05(金) 08:42:09.57 ID:mB5IBgio
ああ、すみません、Aの曲に戻る時はまた最初からになります。
途中で、といった処理はまったくしておりません。
Aの曲をストップするというのはただ単に終了させることです。
で、Bの曲を頭から流し、Bの曲を終わらせたら
またAの曲を頭から流す、というだけです。
今、簡単なプログラムにして
現画面で、上を押したらAの曲、下を押したらBの曲が流れる
といった感じのプログラムを作りましたが
やはり、Bの曲が流れません。ただ、下を押したらブツブツとおかしな音はしています
(もしかしたらBno曲の出だしが連続再生されているのかもしれないけど、再生処理はAの曲と一緒だからそれもおかしい)。
シーンが変わるとBが再生されるというのは
確認しましたが、頭からでした。
Bの曲が流れるはずのところ
ProcessMessageはちゃんと毎フレーム呼んでる?
まぁ、ゲームオーバーになりうる状況とのことなので多分呼んでるんだろうけど
一応確認
16 :
4:2013/04/05(金) 09:30:50.57 ID:mB5IBgio
もちろん、呼んでます。
追加した二曲目のBGMはどのファイルでもブツブツと音だけしてます。
まるで、頑張って鳴らそうとしてるんです、みたいに。
これはどういう現象なんでしょうか?
で、sceneが移動したら、そのブツブツが止まって
頭から流れるんです。
そこまでおかしいというのなら、
Aの曲を数秒流してから止め、Bの曲を数秒流してから止め、Aの曲を流す。
という”だけ”のプログラムを組んでやってみたらどうかな。
シーンとかそんなの全く関係ない、新しいプログラムで。
それでもおかしいというのならそのプログラムを晒すといい。
ブツブツと鳴るとう現象から、Bの曲を「毎フレーム先頭から流しなおそうとしている」んじゃないかという気がした。
ひょっとしてBの再生命令、最初の一回だけってなってないんじゃない? 何度も実行してない?
そういえば、シーンが変わると鳴り出すってのも、これが原因なら納得だな。
そういえば自分もBGM再生でミスしたことがあるなあ。
コンストラクタで再生、デストラクタに停止するように書いてたんだけど、
Stateパターンを使ってたためか、タイミング的に A構築→B構築→A消滅 になっちゃって、
クラスB内で再生した曲が、その直後にA内で停止されるというお馬鹿なミスだったw
>>18 あ、確かにそれっぽい
21 :
名前は開発中のものです。:2013/04/05(金) 13:55:20.80 ID:S+xkJq8V
Bの曲を別のものにしたら、きちんと鳴る? 例えば、AとBを取り替えてみるとか。
22 :
4:2013/04/05(金) 14:58:18.71 ID:akoAyRai
>>18>>19 たぶんそうだとは思うのですが、、、ただ、AもBも同じ関数を使って鳴らしていますし、
両方ともUpdate関数の中に書いてます。
極端な話、
Update関数内にて、
int a =0;
if(上が押されたら){
a = 1;}
if(下が押されたら){
a = 0;
}
if(a==0){
再生関数(AのBGM,ループ)
}else if(a==1){
再生関数(BのBGM,ループ)
}
で、なんの問題も無しにBGMは切り替わり、鳴り続けますよね?
なのに、BのBGMだけ「毎フレーム先頭から流しなおそうとしている」になるのが納得いきません。
>>21 それぞれを別の曲にしても、B(主では無い方のBGM)の方に設定したBGMは
BGMは鳴らず、ぶつぶつ「毎フレーム先頭から流しなおそうとしている」状態になります。
Update関数ってことは
a=1の時、毎フレームif(a=1)って事じゃないのか
その場合、再生中かどうかフラグ用意して管理しておかないと
っていう妄想でした
24 :
4:2013/04/05(金) 15:30:40.36 ID:akoAyRai
>>23 あ、もちろん再生関数というのは
>>11に書いてありますが
自分で作ったものであり、
同じ曲を再生中の場合はスルーする、という内容を含めた
定義をしております。
XVR7WDIqだけど。
「二重再生しないようにしてる」という言葉を信じるなら、俺の予測は外れてる事になるけど
22の例を見ると、ほんとにちゃんとプログラムできてるのか不安になる。
そのサンプルじゃ、上を押しっぱなしにしない限りずっとAが鳴りっぱなしじゃん。
再生関数の中に、ブレークポイントでも入れてみたら?
>>24 あれ、バグってる場所自分で特定できてるじゃん
int a =0; が関数内でローカル変数として定義されていると
毎回初期化されてしまうな。
>>4 >プログラムソースに問題も無いと、確認出来たわけです。
俺もたまにやるけど、ヒューマンエラーが一番怖い。
「自分は正しい、間違っているわけがない、他に原因があるはず」
しかしそれが間違いを生んでいる主な原因だったりする。
これは現実世界でも多々ある事。
例えば最近問題になっている歴史問題。記録はどの国家も例外無く正確ではない、捏造が多々含まれている。
更に化学においても、「人体に影響は無い」というのは全て嘘だ。体に良いものですら、良い影響と悪い影響がある。ここから「体に良いもののほうが体に悪い」という論理的な矛盾が生まれる。
何が言いたいかというと
っていう妄想でした
30 :
4:2013/04/05(金) 16:09:31.12 ID:akoAyRai
>>25 >>28 あくまで例として書いてしまったがために
突っ込み所満載ですみません。
お二人のご指摘は本来自分で書いてるプログラムではバッチリなはずです。
変数aについては突っ込まれるかなと思ったんですが
例のつもりだったので強行して書き込んでしまいました。
しかし、皆さんが親身になってくださるので
ソースをさらしてみたいと思います。
どうか、原因を突き止めて頂きたいです。
しばし、お待ちを。
31 :
4:2013/04/05(金) 16:10:28.50 ID:akoAyRai
>>29 その通りですね、なので晒してみますので
ご確認して頂きたいです。しばしおまちを。
32 :
4:2013/04/05(金) 16:45:50.42 ID:hmFS+1t8
mp3のサイズがでかすぎてメモリに読み切れてないとかじゃないよね
いっぺんSetCreateSoundDataTypeで再生形式切り替えてみたらええんでない
SoundBox* sound;
sound->getInstance()->loadFiles();
while( 1 ){
if( ProcessMessage() != 0 ){ // メッセージ処理
break;//ウィンドウの×ボタンが押されたらループを抜ける
}
ClearDrawScreen(); // 画面を消す
if( CheckHitKey( KEY_INPUT_UP ) ){
sound->getInstance()->playbgm( 0 );
}
if( CheckHitKey( KEY_INPUT_DOWN ) ){
sound->getInstance()->playbgm( 1 );
}
ScreenFlip(); //裏画面を表画面に反映
}
これで実行してみたが問題はなかった。
更新関数
{
SoundBox::getInstance()->playbgm(1);//Abgmスタート
if(*****){
a=1;
}
if(a=1){
SoundBox::getInstance()->playbgm(2);//Bbgmスタート
}
のところなんだが
更新関数
{
a=-1;
if(*****){
a=0;
}else if(-----){
a=1;
}
if(a=0){
SoundBox::getInstance()->playbgm(0);//Abgmスタート
}else if(a=1){
SoundBox::getInstance()->playbgm(1);//Bbgmスタート
}
普通こんな感じじゃない。
36 :
4:2013/04/05(金) 18:17:50.69 ID:hmFS+1t8
>>33 それがデカくないんですよ、Aは205KB、Bは180KBです。
>>34>>35 うまく流すことが出来たわけですね??
ちょっと
>>34を使わせてもらい、試してみます!
37 :
4:2013/04/05(金) 18:28:45.68 ID:hmFS+1t8
皆さんにも体験してもらうソースがわかりました!!
3つのBGMを読み込ませ、
>>34に付け足した感じですが
while( 1 ){
if( ProcessMessage() != 0 ){ // メッセージ処理
break;//ウィンドウの×ボタンが押されたらループを抜ける
}
SoundBox::getInstance()->playbgm(0);
if( CheckHitKey( KEY_INPUT_UP ) ){
SoundBox::getInstance()->playbgm(1);
}
if( CheckHitKey( KEY_INPUT_DOWN ) ){
SoundBox::getInstance()->playbgm(3);
}
}
ScreenFlip(); //裏画面を表画面に反映
}
これで実行してみてください!
要は、最初に別のBGMを流していて、
その上で、「上」か「下」かで二つのBGMを切り替えて鳴らしてください
これで、同じ現象がおきるはずです!
38 :
4:2013/04/05(金) 18:30:36.95 ID:hmFS+1t8
誤字です。
BGMを3つ読み込ませといてください。
while( 1 ){
if( ProcessMessage() != 0 ){ // メッセージ処理
break;//ウィンドウの×ボタンが押されたらループを抜ける
}
SoundBox::getInstance()->playbgm(0); //1曲目
if( CheckHitKey( KEY_INPUT_UP ) ){
SoundBox::getInstance()->playbgm(1); //2曲目
}
if( CheckHitKey( KEY_INPUT_DOWN ) ){
SoundBox::getInstance()->playbgm(2); //3曲目
}
}
ScreenFlip(); //裏画面を表画面に反映
}
あん?
それだと、キーを例えば下にすると
まず一曲目を流そうとして、
次に三曲目を流そうとして
また次のループで一曲目を流そうとして、
さらに三曲目を流そうとしたりするんじゃ。
40 :
4:2013/04/05(金) 19:49:48.81 ID:jIaUBBdR
ifの条件式それでやってたの?
ていうか閉じ括弧が一個多くね
43 :
4:2013/04/05(金) 19:58:24.44 ID:jIaUBBdR
確かに、ちょっとおかしいことなってますね。
triggerとなる変数でも作って
triggerの値をもとにswitchで
読み込んだ三つの曲をまわすのはどうでしょう?
その時のtriggerの値の指す曲以外は
毎フレームスルーする様に。
普通にキー管理すればよくね
試験ソースなんだろうけど
>>40 気づいてなかったのかよw
playbgmのところはif文囲まないで常に実行状態する状態にしとくのはダメなんだよ。
ちゃんとif文で囲むようにしような。
46 :
4:2013/04/05(金) 20:14:16.54 ID:jIaUBBdR
switchでわけたらすんなり解決しました。
マジでレスくださった皆さんありがとう。
特に朝も早くから付き合ってくれてた人、マジで感謝です。
まさに
>>29そのものずばりだったか
俺はしょっちゅうやる
相談がひとりって、えらく過疎ってんな
DXライブラリはもう廃れてるんか?
仕様についての質問や関数追加についての伺いは公式掲示板が盛んだし、
ゲーム制作に関してのくだらない質問は別の掲示板が盛んなんだよ
そもそもリファレンスと実例が充実してるから、普通は検索すりゃ質問するがない
上の人も、ライブラリ関係ない書き方のミスだしね
そう考えると、ここで話をする内容ってあんまりないね
ゲ製板がそもそも過疎ってるし。
このスレはまだレスの多い方。
ゲームなんか作ってどうするのよ
周りのみんなは受験勉強やら自己啓発で資格取得やら親しい友人と親睦深めたりしてるのに
ゲームプログラミングなんかしてても受験、就職、出世、何の評価にも繋がらないぞ
TOEICの勉強でもしてた方がなんぼかマシ
こんな場末の掲示板までわざわざ来てそんなこと書き込む暇があるなら
そのTOEICとやらの勉強すればいいんじゃないかなぁ
C# & SharpDXに疲れたので、C++ & DxLibに戻ってきた
俺のゲーム制作に対してDirectX直叩きはオーバースペック過ぎたわ
アクションゲームで道具屋作ろうとおもってるけど、メッセージウインドウって
クラス作って幅とか高さとか一行あたりの最大文字数とかをコンストラクタに渡したりしたほうが作りやすいかな?どう実装してる?
趣味に理由を求めてる時点で何かが違う気がする件
漫画なんか読んでどうすんの?と言われてもなあ
漫画とはわけが違うだろ
ゲーム完成させたことあるのか
1本のゲームを完成させるのにどれだけ労力が必要だと思ってんだ
人生の一部をドブに捨てる覚悟がいるんやぞ
それだけの時間を費やしてから意見しやがれ馬鹿たれ共が
こんな場末でそんな下らん事で興奮してると禿げるぞw
ゲ製でゲームづくり批判なんて斬新だなwww
別に一日漫画一冊読むような時間かけて作ってもそのうち完成するわwww
ついでに言うと作者間交流もある
完成させる気もなく作ってるフリを楽しむだけだからいいじゃ
>>53 それはプログラミングだけで満足してるって事なのか、他も評価されないと決めつけているのか
C、C++,背景、ドット絵、キャラ絵、BGM、ゲームシステム、インターフェース、英語・・・
ここから派生するのが
PhotoShop、HTML、プログラミング各資格、英語力、他シェアウェアツール、他プログラミング言語、絵師など
頑張り次第で個人の能力凄い事になるわ
というかコピペにレスすんなw
話ぶった切って悪いけど
モデルの各フレームに設定されてるローカル回転軸ってもしかして取得できないの?
最近ようやくモーションに手を付け始めた所で間抜けな質問かもしれんが見当たらないので教えてほしい
65 :
7:2013/04/06(土) 18:59:23.34 ID:yjsiftoD
http://blog.livedoor.jp/winpg/ とりあえず、私のDXライブラリプログラミングは、
ここまで進みました
生暖かく見守ってください
あ、そういえばここはDXライブラリについての質問を書いてもいいのですよね?
DXライブラリについて疑問に感じたことがあったら
ここに質問を投稿させていただきます
匿名掲示板での一部板以外の宣伝は違反だぞえ
有名人でも困る
>>60 >>ついでに言うと作者間交流もある
DXライブラリ使ってすでに数本ゲーム完成させたが、作者間交流なんてねーよ!w
69 :
名前は開発中のものです。:2013/04/06(土) 21:21:02.56 ID:zyCgIQlo
>>58 バカか?
お前みたいにネットで
しかも自分の関心もない板の過疎スレで
不特定多数相手にいちいち愚痴や
どうでもいいてめえの価値観なんぞほざいてる時間が
最大の無駄だろうがw
ゲーム製作だろうが、漫画描くことだろうが
なにかに打ち込み、頑張る奴を否定してんじゃねえよ、ドアホが。
その先に開けた将来が約束されて無かろうが、
少なくとも、てめえみたいな時間の使い方してないだけ
マシだっつんだよ。
そうとう頭悪いな、てめえはw
あっそ。徒労に終わらなければいいね。
メインループはNumDraw( 256 ) ;じゃないの
気に入らないなら自分でアレンジすればいいのに
あるいは聖書だと思ってるの?
74 :
名前は開発中のものです。:2013/04/06(土) 21:40:01.30 ID:zyCgIQlo
>>70 バカじゃねえの。
どうせ徒労に終わるだのなんだのと
頭ん中だけで結論付けてなにをするにも諦めたまま
引きこもってるのがてめだろ。
妬みから、世の中を楽しんでる奴や、楽しもうと頑張る奴らをネットん中で叩くだけの
ゴミみたいな人生だわな、てめえの人生は。
クソにもならん時間の使い方してジジイになって
なにもしなかったことを後悔して死んどけ、ゴミ野郎。
>>72 その上にこれがあるでしょ
LoadDivGraph( "Num.bmp" , 10 , 10 , 1 , WIDTH , HEIGHT , NumHandle ) ;
>>70 お前は多分根本的に「物を作るタイプ、作れるタイプの人間」じゃないと思う
>>75 だから上にあるのならいいんじゃないの
forでぐるぐるしてるのはNumDraw( 256 ) ;の中なんだから一回しか読み込まれないんじゃね
78 :
名前は開発中のものです。:2013/04/06(土) 22:12:43.13 ID:4FwB4DdP
>>71 そもそも、wait keyで止めてるから、メインループなくね?
コピペに必死にレスしすぎで笑った
ところでゲーム制作で受験や就活に成功してるやついっぱい知ってるよ
少なくともそういう人間がいれば、他の新入生や新人と交流させたときに勝手に教育してくれるから欲しがるんだろうね
>>68 同人ゲームなら制作者同士。結構つるんでるよ。
まぁPGは少ないが。
>>71なんだけど、「数値をグラフィックで表示する」のソースが理解出来ない
せいでクラスで扱えない。エラーが出てビルド出来ない。
最終的にNumDraw()の引数に入る数字に合わせて
画像で表示してくれるってことでしょ?
マクロ定義が#define WIDTH 24、#define HEIGHT 24
変数配列int NumHandle[ 10 ];
プロトタイプ宣言でvoid NumDraw( int Num ) ;
その定義が
void NumDraw( int Num )
{
int i , BeamWidth , x ;
*
*
でしょ?
あとは、NumDraw( ) ;をメインループ内に書けばいいだけだよね?
たったこれだけのことなのに…なぜだ
コンストラクタで
LoadDivGraph( "Num.bmp" , 10 , 10 , 1 , WIDTH , HEIGHT , NumHandle ) ;するとして、
なぜかヘッダファイルで宣言したint NumHandle[10]が、cppの方のvoid NumDrawの定義内で
「int NumHandle[10]が定義されてない」って出る、どうなってんのさ
エラーはほかにも出てないか?
int NumHandleが定義されてないとかいうから場所をグローバル変数の場所にしたら、
int NumHandleが再定義されてますって出るよ
int NumHandle[10]なんか一カ所にしか書いてないのに
書き方ミスかもしれんからソースコードさらした方がいいんじゃないか。
普通にコーディングでミスってるようにしか見えないなあ。
あとグローバルにしたら再定義されてるって出るのは正しい仕様。
面倒くせぇ仕様だなあとは思うけども。
たったこれだけのことなのにって自分で言ってるんだから、考えても仕方ないようなしょうもないミスなんでしょ
そのエラーがでてるプロジェクトを固めてうpってくれなきゃ他人には解決のしようがない
・複数ファイルがある場合、エクスターンしてるか
・場所(順番)まちがってないか
いろいろあるんでソースうpしたら一発でわかるとおもう
passは"numdraw"です
>グローバル変数
C/C++の糞い仕様の一つだな。
嫌ならC#とかJavaを使うしかない。
もう少し決定打になる言語があると良いのだが。
>>81 >>83 ○○なだけだよね、みたいな書き方してるけど、そもそも、コンパイラとリンカの動きってちゃんと理解してるか?
基礎中の基礎の話で悪いけど。
グローバル変数に限らず、関数名でもクラス名でもなんでもそうだけど、それらの名前って、コンパイルの段階で見れば
「その翻訳単位の中で」 定義されてるか否かと判断されるので、その名前が登場しなければそれは未定義だ。
だから、変数ならば extern キーワードを付けて 「これはこの翻訳単位中には無いけど、どこか他所にはあるから気にするな」
とコンパイラに指示して、後はリンク次第にしてしまう訳だ。
関数やクラスなんかで言えば、中身のないプロトタイプだけを別のファイル(慣例としてヘッダ)に書いておいて、
それを、その翻訳単位の頭とかに同梱( include )する訳だ。
これで、この翻訳単位は 「定義の実体があるか無いかに関わらず、少なくとも宣言は揃ってる、未定義はないよ」 としてコンパイルされる訳だ。
その後、リンクの段階で今度は文字通りそれらの翻訳単位がリンクされるんだが、この時、グローバル変数だろうが関数名だろうがクラス名だろうが
「同名の実体 が 定義されていたら」 それは 「再定義されてますよ」 とエラーになる訳だ。
これがド基礎の当たり前の動作なので、例えば変数のような、宣言と実体が伴う物を inlcude するファイルなんかに書いてしまったら、
上手に処理しないと、再定義エラーになるわけだ。 エラーと言うか、リンカが 「どっちが正しい定義なんだよ」 と困ってしまう訳だ。
…その辺ちゃんと理解した上で、ソース見直せ。 簡単な話。
>>90 言語がどうこうじゃなくて、それは自分の理解不足。つか、単に嫌ならグローバル変数使わなきゃいいだけの事。
つか、どうしても必要なら、理解した上で慎重に使うべき。 リンク後に被らないようにとか、適宜 static にして extern させないように明示するとか。
全部ひとつのソースファイルでやってる自分には何の事かさっぱりわからんわ。
あ、書き漏れたゴメン。
なので、
>>81 の話で、クラスの形にラップして 「定義されていない」 と言われるなら、それはその翻訳単位中で見つからないだけ。
続いて
>>83 の話で、もしもヘッダファイル中で変数を宣言してしまって、そのヘッダを複数のソースが inlcude していたら、
リンカの段階で 「再定義されてますよ」 と言われるだけ。
ちなみにもうちょっと書いておくと、 include って言うプリプロセッサ指示は、それを書いたコンパイル対象のソースコード中の、その行の位置から、
単に指定された別のファイルをテキストとして差し込むだけ。その上で、一つの翻訳単位としてコンパイルされて、
それらコンパイルされた宙ぶらりんの中間ファイル(obj)を、リンカがまとめて結合して一つにするって動作なので、そのイメージ持ってもう一度ソース見直せ。
>>93 それはそれで色々問題あるが、所詮他人事なので頑張れとだけ言っておく
逆にグローバル変数つかえないんで俺はC#がかなり面倒だw
>>96 気持ちはわかる。でもC++の時でもなるだけ使わないように設計して書いてる俺
ファイル増えるとワケわかんなくなるから。あの名前被ってないかとか
namespace分けりゃいいだろって話もあるがww
namespace + グローバル変数なら
C#/Javaでclass + public static変数でできるじゃん。
C/C++のグローバル変数やinclude、クラス変数初期化の仕組みは糞だわ。
>>98 それは疑似グローバル変数もどきなんだよね
GUIがC#がらくなんでC#とDxlibでやってみてけど
やっぱC++のほうが実際のコードがらくなんで、
なかとってC++/CLIでもやってみたけど2種類の言語を
さわってるみたいできもちわるかったんでやっぱC++にもどったw
グローバル変数自体が糞なんじゃなくて、
グローバル変数の危うさに気づいてないPGが糞なんだよね。
だからC#/Javaでclass + public static変数ってヤツだろうが
C++のグローバル変数だろうが、
それらを管理下におけなくなった時点で糞コード。
どこからどうアクセスしてるのか分からない、とかね。
>>88 お願いします。
桁数の設定と、桁の中でNULL状態には0を入れるっていうのを
加えてくださいませんか?やりかたがわかりません
すげぇ微妙なゲーム製作雑談になるけど
キャラのステータスの総称を表すときってどんな英単語使ってる?
Statusとか、Parameterとか、他の何かとか。
ステータスにStatus使うと状態異常に困る、Parameterは『ステータス値』としてはいいけど
数値を伴わない『ステータス項目』を表す場合は何か違う気がする
英語の類義語サイトでStatusいれたらこれだけ出てきた、
好きなのを使え
cachet, caliber, capacity, character, condition, consequence, degree, dignity,
distinction, eminence, footing, grade, merit, mode, place, position, prestige,
prominence, quality, rating, renown, situation, stage, standing, state, station,
stature, worth
>>104 サンクス!
だけどみんなが実際にどうしてるかも気になる。
てかこれだけに限らず命名は全部気になる・・・
状態異常はconditionにしてる
>>105 そればっかり気にしていたら作業進まないでしょw
まぁ値をセットする命令なら「setCharacterPoint」という風に後ろに「set」ってつけて
値を手に入れる命令は「getCharacterPoint」という風に後ろに「get」つけているけどね。
後ろに動詞をつけてその次に名詞をつけさせるのがいいんじゃないかな。
関数の命名かと思ったら違った。
状態異常系ステータスにも、その強力さや持続時間とかの要素があるやつのときはあんまり区別しない
専門系(プログラム/ゲーム)の単語に何を使ってるかって話だと思うよ
動詞+名詞とか文法については単純に英語勉強すればいいだけだし
たとえば描画だけでもdraw,render,shade,pict,paintとか
人や状況によっていろいろだし正解なんてないよ
ようは他人に見せたときに説明しやすいわかりやすい単語を選べば間違いないと思うよ
桁数(10で割って0にならなかった回数)だけ右にずらせばいい
>>112 足し算と引き算がわからないなら小学校の教科書読め
直交座標系がわからないなら中学校の教科書読め
質問内容とDXライブラリはまるで関係ない
>>115 そんな冷たいレスするから過疎ってるんじゃないの?
例えば、あなたの言う完全にDXライブラリに関係した質問なら
それこそ公式サイトの掲示板で聞くわ。その方が合理的でしょうし。
なにを期待してスレを覗いてるのかしらんけど
ココはもう少しくだけててもいいんじゃないの?って思うよ、俺は。
>>112 >>114 ヒント
x = BeamWidth * WIDTH ;
x -= WIDTH ;
この二つをいじればいいと思う
>>116 それでも限度はあると思うぞ。
だって、ライブラリ以前の基礎的なロジックの考え方を丸投げとか、
小中レベルの数学の応用に考えが及べないとか、正直独習してくれと思う。
せめて、物を考える力を放棄しないでくれ、と。
>>118 >桁数(10で割って0にならなかった回数)だけ右にずらせばいい
の意味がわからないって言ってるんだよ
特に、10で割って0にならなかった回数だけ、って、なにをするために
そうするのか、そこがわからない
これからって初心者だってココにいる。
もう少しわかりやすい(丁寧な)アドバイスをくれてもいいだろう?
じゃぁ、お前が教えてやれよ。
>>119 括弧内は、整数値から桁数を求めるための方法です
もし知らなかったらと思って書きました
本文は 「桁数だけ右にずらせばいい」 これだけです
ついでに言うと右じゃなくて左です
それが分からないなら諦めれ
DXライブラリってかまずCを学べ
>>113 その手があったか!!
同様の処理する場合、IF使って場合分けしてたから桁が増えると面倒だった
質問者とは別人だがありがとう
char str[100];
sprintf(str, "%10d", num);
printf("%s\n", str);
>>124 ソースも確認せずにてきとーなこと書くな
>>119 それで言うと、多分剰余の事言いたかったんだと推測する
普通に空白は飛ばすようにして文字列の数字を描画する様にしたほうが
前ゼロにも対応できるし
>>124を応用して作った方がいいと思うけどねえ
>>127 ごめんやけども、どんなのか参考になるソース頂戴
void NumDraw(int x, int y, int Num, int keta)
{
do {
DrawGraph(x, y, NumHandle[Num % 10], TRUE);
x -= WIDTH;
n /= 10;
--keta
} while ((n > 0) || (keta > 0));
}
適当にサンプルをいじってみた。まちがっていたらごめん
1文字取り出して '0' 引けば数値が出るでしょ
数字1つ描画するのは元ソースと同じ
>>88だけど
>>101 よくわからいけど、こういうこと?
//keta が0 でひとつ数字が表示される
void NumDraw::DRAW(int x,int y,int Num,int keta)
{
int BeamWidth = 0;
for(int i= 10; Num >= i ; i *= 10)BeamWidth++;
int x2 = keta * WIDTH;
for(int i = 0; i <= keta; i++)
{
if(i <= BeamWidth)DrawGraph(x + x2,y, NumHandle[Num % 10],TRUE);
else DrawGraph(x + x2,y, NumHandle[0],TRUE);
x2 -= WIDTH;
Num /= 10;
}
}
>>131で、テキストをコピペしたんだが、なんかずれた
//keta が0 でひとつ数字が表示される
void NumDraw(int x,int y,int Num,int keta)
{
int BeamWidth = 0;
for(int i= 10; Num >= i ; i *= 10)BeamWidth++;
int x2 = keta * WIDTH;
for(int i = 0; i <= keta; i++)
{
if(i <= BeamWidth)DrawGraph(x + x2,y, NumHandle[Num % 10],TRUE);
else DrawGraph(x + x2,y, NumHandle[0],TRUE);
x2 -= WIDTH;
Num /= 10;
}
}
ちょっと間違えたから
ややこしい事せんでも
>>113が言うように%10*適当ポイント分左にずらせばいいと思うんだけど
ちなみにソースは見ていない
左揃えや右揃えって事?
俺だったら幅を取得してずらすだけだな
>>134 そんないうならお前のソースで示せよ!
無駄のないスマートなソースを示せよ!
drawx -= (int)log10(num) * NUMCHAR_WIDTH;
スマート!
SetGraphModeって関数で解像度を変えられるみたいだけど
これ上げすぎると動作が重くなったりするの?
やってみればわかることをいちいち訊かない。
140 :
名前は開発中のものです。:2013/04/08(月) 21:57:30.28 ID:JGP6MItm
だからなんなのお前。
お前みたいな奴が居座ると
初心者やこれからのDXライブラリを背負う奴らの書き込みが
無くなんだよ。
質問する奴らはスレの存在意義として必要だが、
お前みたいに偉そうに上から
跳ね返すことしか出来ない奴は余計いらねーんだよ。
面白いギャグだなそれ
コピペ化狙いか?
初心者に必要なのは「まず自分でやってみる事」であって、
最初から答えを与えてもらう事ではない。
古来より「憤せざれば啓せず。ヒせざれば発せず」と言って、
自分の力でガムシャラに学ぼうとしながら、後一歩のところで答えを見出せずに
見てるこっちがもどかしくなるくらい悩んでる相手でないと教え導く事はできないのだよ。
>>100 なにいってんだこいつ。アスペの無能PGってところだな。
グローバル変数を管理下におけなくなった糞コードとか意味不明だわ。
文脈を理解しろよ。
146 :
7:2013/04/08(月) 23:18:03.87 ID:BBPWktSj
>>143 まあ、確かにC言語の習得は前提だな
DXライブラリを使ってC言語でプログラミングをするわけだから
C言語が分かってなかったらプログラミングしようがない
だが、初心者がDXライブラリを扱うことを
大そうなことと表現しているのはどうかと思う
DXライブラリ自体はただの関数の集まりだから
「初心者はDXライブラリを扱うのは難しい」という考え方はちょっとわからない
DXライブラリを使わなくてもC言語のプログラミングをするなら
何らかのヘッダーファイルをインクルードして使うんだから
DXライブラリを使っても同じことではないですか?
DXライブラリ関数の使い方は公式サイトで紹介しているのだし
>>140 DXライブラリ背負ってるのは山田巧さんだろw
>>144 糞PGさん、ちーっすwwwwwwwww
春は面白いやつが増えて、見てて飽きない。
コーディングできねぇwww
>>147 どのへんがたいそうな表現なのかわからんが
DXライブラリは超簡単なのわかってるなら、質問する行為そのものがおかしいというのはわかるか?
流れをぶった切って
全スレでお世話になったものです。
なんとか時間演出(夜になったら徐々に暗くなる)と光源処理をかまして
オンボVGAでもサクサク動くようになりました。
ありがとうございます。
あとは細かいバグ・調整を済ませればマップ処理はひと段落です。
さて・・・あとはゲーム部分か・・・
>>149 DXライブラリの個々の関数自体については
仕様書を読めばわかるんだから質問する必要はないと思う
もし、DXライブラリ関数の質問をされたら俺なら公式サイトを見に行け
と言って一刀両断する
ここで質問するDXライブラリに関する質問は、
個々の関数の使い方ではなくて
複数のDXライブラリ関数を組み合わせて妙なことをするような
そういった質問をする場だと俺は思う
ここでC言語の質問をするのはもってのほかだが
153 :
名前は開発中のものです。:2013/04/09(火) 18:18:10.75 ID:1AZiXzbf
質問の内容が間違ってたら、無視なり誘導なり何なりすればいいなだろ
それより質問してる奴らが、お礼言わない方が問題だろ
質問の内容以前に人間として屑
ああん何様だよお前は
質問者様に対してどういう口の聞きかたしてるんだ
お前ら回答者は質問者様が質問をくれてやってるから
活躍できるんだろうがネタがないと活躍できない分際で何様だ
身の程を知れ馬鹿たれが
別に質問が無くてもこのスレは回るけどな
活躍()したいなら知恵袋()にでもいけばいいんでね
総合スレであって質問スレじゃないからね。
ゲ製板は質問スレであっても雑談の比率も多いわな。
それにしても絵に描いたような馬鹿だなw
154はどうみてもネタだろ。
絵に書いたバカに釣られてるのに気づいてないw
これ釣りですら無いだろ……
自作した関数をDXlibの中に入れてもいいんですかね
山田さんに許可をもらうべきかな
>>150 打開乙
C++スレに書いていた処理速度の問題、差支えなければ
どう解消したのか書いて行ってくれると嬉しい
参考になる部分があると思うので
>>162 実際には遅くシェーダーかけて遅くなっていたわけではなく
元々がリフレッシュレートを非同期にしていたので速すぎただけですw
で、非同期の場合だと240fpsぐらいで望んでいる処理速度だったので
リフレッシュレート同期させたあと、擬似的にFPSを240にするようにしました。
こんな感じに
計算⇒描画(スキップ)
計算⇒描画(スキップ)
計算⇒描画(スキップ)
計算⇒描画(今回は描く)
>>161 ソースを公開しないなら「好きにしろ」としか言えない。
ただし、DXライブラリ自体をアップデートすると、当然ながらせっかくの修正部分が消えてしまったりするので注意。
ラッパ関数を作って、DXライブラリに似た命名をしたり、あるいは名前空間に入れてしまうの良いかもしれない。
公開する場合、DXライブラリのライセンスを読んでみたが、再配布については著作権表示等の条件さえ満たせば問題ないみたいだけど。
改変した上での再配布については書かれていないな。多分大丈夫だとは思うけども。
もちろん関連する他のプログラム(MTライブラリとか)のライセンスは考慮する必要があるので、そこだけ少し面倒かな?
そもそもどんな理由で何の処理を含めたいのか聞くのが先かと
圧力センサーとか温度計とか測定機器とのデータのやりとりに使う関数を作ってまして・・・
公開はしないので著作権の方は大丈夫そうですね。しかし山田さんがいまだにアップデートを続けていたのを失念してました。精力的ですね
どうせなら最新版を使いたいしライブラリそのものを自作しましょうかね
YO! YOU ラップ しちゃいなYO!
おおぅ。何か凄そうw
>>166 多分話ぶりからして初心者の人だと思うけど、
そもそもそんな処理レイヤの違う固有用件を、共通ライブラリに一緒に放り込んでしまおうってのが変ではある
別のライブラリに切り分けるのが普通
チラ裏だけど DirectX11 を勉強した結果。DX ライブラリを利用することにしました。
かんたんなことはいいことだ
>>170 かつて何人ものPGが同じ結論に至ったという
Direct2Dってどうだった?
過去にってかここにいるやつは殆どそうだろw
printfDxってフォントサイズ変えられないかな?
DirectX11のジオメトリシェーダを体感したら
おなかいっぱいになってDxLibにもどってきたw
Direct2Dは苦労のわりに必要としてる目的がDirectX11で2D表現できるだけという
しかたないからそうしました感がひしひしとw
DxLibでポイントスプライトさえつかえたらなぁと思うところ。
それ以外はだいたい満足。
WinXPも消えるし、絶対的にDirectX11に移行すべきなんだろうけど
昔DX9やっていまさらまた勉強したくないから仕方なくDXLIB。
2D向けで学習コストが少なければ他のフレームワークに移行したいが決定打がない。
>>175 自己レス。SetLogFontSizeで変えられたが縁取りのせいか潰れて見づらくなる
WinXPは消えないし、かなり残るだろう
LANでしか使わないPCも多いし、ハード買い替えの必要性が無いからね。
もし、マイクロソフトがXP相当のOSを出せばユーザーは移るけど、MSはそうしない。
(XP相当とは、ハード要求がXPであり、XPのソフトが完全に動作する事を意味する )
業務PCの話か?
PCゲームと全く縁の無い環境の話をされても困るんだが。
DirectX9は多分次のBlue(仮)ぐらいまで使われそうだと考えている。
だからしばらくは問題ないと思うよ。
そりゃいつかは移行しなきゃならなくなるだろうけど。
PCゲームで考えたらWindowsXP使ってる人なんてもう絶滅危惧種じゃ…
って思ったけどSteamのハードウェア調査によるとXP利用者は未だに9%近くいるらしい
9%ってすくねぇな。
俺PC3台全部XPだぞ。
もう一台なんて2000だ。
そんなに高スペックが必要じゃないゲーム配布してるけど、
それでもサイトのアクセス解析だとXPユーザーは10%強って所だなぁ。
7が6割弱にまで普及してる。
DrawGraph関数についての質問です
int DrawGraph( int x, int y, int GrHandle, int TransFlag ) ;
公式の説明では、座標はint型で指定するように書かれているのですが、
小数点で座標を指定したいためflaot型の変数を使用しました
コンパイルすると問題なく実行されましたが
VisualStudio2012は、何やら口うるさく警告してきます
コイツを黙らすには、どうすればいいでしょうか?
また、本来int型を指定するところにflaot型で入れると何か不具合が起きるのでしょうか?
実行結果は正常に表示されています
具体的には弾幕をプログラミングしているのですが、
複雑に弾幕を動かす場合、整数だけでは細かい時間差を表現できないため
小数点で座標を指定したいため、int型では小数点の値は入れられないため
仕方がなくfloat型で座標を指定しています
花火のように同じ速度で、真ん中から外側に弾幕が飛んでいく弾幕パターンを
想像していただくと分かり易いと思います
187 :
186:2013/04/12(金) 08:06:18.78 ID:ZgyYHEzu
自己解決しました
座標系を100倍にしたとか
DXLIBは2D系の座標指定はINTなんで100倍が楽だし
3D系はVECTORなんで警告いやならキャストかな
DrawGraphF 使えばいい
そんな基本的なことはここじゃなくてC言語初心者板で聞けよ
俺なら128倍とかにするが、どうでもいいことだなw
自分も以前は256倍でやってたなー。
ビットフィールドで楽してたけど。
低学歴底辺負け組みゲー専が好んで使うゲームエンジンはUnity
低学歴は4gamerのUnity布教をうけ使う
情弱
低学歴負け犬ゲーム専門学校www
>>133 実行してみたけど、
値が変わっても、グラは0のまま表示が変わらない。
あと、引数の桁も提示通りならないよ?
>>194 お前は劣等感の塊なんだな
自分が負け犬だから、他の負け犬を探して叩いて
自己顕示欲を満たしたいんだろ?
勝ち組はお前みたいに器の小さい人間じゃ無いんだよ、残念だけど
>>133 ごめん、桁はあってた。
なにが悪いんだろ、、、
>>133を導入したら数字が動かなくなった。
>>133 ごめん、俺のミスだった。
出来たよ。
ありがとうございます。マジで。
質問させて下さい。
簡易ですみません、1フレームごとに
count変数に+1されているとして、
if(count % 2 == 0){DrawGraph( A )}
if(count % 2 == 1){DrawGraph( A')}
とすれば、画像AとA'を交互に表示(点滅)させることが出来ますよね?
このcount変数を流用して、
もうひとつ、別の画像(B)を点滅させたいとします。
そうしたら、この様にふたつ書くことになりますよね?
if(count % 2 == 0){DrawGraph( A )}
if(count % 2 == 1){DrawGraph( A’)}
if(count % 2 == 0){DrawGraph( B )}
if(count % 2 == 1){DrawGraph( B' )}
ここで問題があるんですが、Aの点滅と、Bの点滅とで点滅の速さを変えたいのです。
if(count % 2 == 0)
if(count % 2 == 1)
の中を触ることで、可能ですかね?
( count / 2 ) % 2 だと倍の時間かかる。
ついでに言うと、パターンが2パターンしかないのなら
if ( ( count / a ) % 2 == 0 ) { DrawGraph( A ) } else { DrawGraph( A’) }
で、aの値を大きくしていけば点滅速度を自在に遅く出来るね。
aが1だと点滅しない。aが0だとゼロ除算で落ちるので注意。
あ、ごめん間違い。
aが1だと点滅しないっての嘘。
int iA=0;
int iB=0;
int aTime = 4;
int bTime = 7;
while(true){
if(iA > aTime){
iA=0;
Draw();
}
if(iB > bTime){
iB=0;
Draw();
}
iA++;
iB++;
}
低学歴底辺負け組みゲー専が好んで使うゲームエンジンはUnity
低学歴は4gamerのUnity布教をうけ使う
情弱
低学歴負け犬ゲーム専門学校www
>>201 バッチリでした
ありがとうございました。
>>201 ちなみに、点滅させる画像が三枚の場合も
それを少しいじるだけで出来ますか?
少しいじるだけじゃダメだけど、考え方がわかるなら応用できるはず。
小学の算数レベルの話だよ。割り算と余りがわかるならできる。
>>207 今日一日考えてみましたが
僕は算数が苦手でバカなんで
思い付きませんでした。
情けなくて泣けてきます
すみませんが、ヒントくださいませんか?
>>208 それ多分、>199の
if(count % 2 == 0){DrawGraph( A )}
if(count % 2 == 1){DrawGraph( A')}
が、何故点滅するか分からないレベルの話だと思うんだけど、そこから説明することになるぜ?
>>208 というか"%"が何の記号かわかってるよな?
>>208 countは1ずつ増えて2で割る(%の部分)と余りが0と1の場合があるから
両方のパターンで処理を分けている
(余り0でAの処理、余り1でA'の処理)
>>208 小学生レベルの算数という表現されているが、応用算術の事だから
実際は小学〜高校の算数を指す
小学校でしか算数を習わない人が大半なので誤解されているが
少なくとも小学レベルの話ではないから安心しる
>>208 追加で説明しておく
( count / a ) %2についてだが、
何故aをいじると描画時間が変わって来るのかといえば、
まず見やすく書けばaが1の時、60÷1=60 60%2=0
だが、ここでaの部分だけを増やしていく
□÷2=60 60%2=0
□÷3=60 60%2=0
□÷4=60 60%2=0
□÷5=60 60%2=0
□内の数字はどう変化しただろうか?
実は必要な時間(count)が増えるんだ
後は自分の感性と照らし合わせて把握してほしい
ライブラリ利用するとか以前のレベルの話になってしまった
たまにはいいんじゃない
昔、-1して絶対値で0,1フラグやってんのとか見て関心したもん
>>213 親身な解説をありがとうございます
必要な時間が増える、というのは理解しましたが
それをどう利用して三枚の画像を点滅させるかが
想像できずにいます
もちろん、%も理解しています。
二枚の画像では余りが0、1、で割り当てれば済みますね。
三枚だと、単純にあまりを三パターンにすればいいのかな?と思うのですが
>>207で「少しいじるだけじゃダメ」と忠告されたので違うと思ったんです。
そこからもうさっぱりで…
A、A' を A[0] A[1] にしてみ
>>216 「少しいじるだけじゃダメ」って言葉に踊らされないで自分でできると思ったやり方で試してみるといいよ。
低学歴底辺負け組みゲー専が好んで使うゲームエンジンはUnity
低学歴は4gamerのUnity布教をうけ使う
情弱
低学歴負け犬ゲーム専門学校www
>>217 >>218 なるほどです、解決致しました。
これもすべて皆様のおかげです、
要領がわかれば単純でしたが自分だけではきっと思いつきませんでしたから。
レスをくださった皆様、どうもありがとうございました!
思わず泣いた
低学歴底辺負け組みゲー専が好んで使うゲームエンジンはUnity
低学歴は4gamerのUnity布教をうけ使う
情弱
低学歴負け犬ゲーム専門学校www
読み込んだ画像にピクセル単位でアクセスしてRGBA取得って出来ますか?
GetPixelとGetColor2でいけるが全ピクセル検査とかするならやめたほうがいいと思う
SoftImage系関数かなぁ
用途によってはオーバースペックになるけど
グラフイックハンドルに直接使えるGetPixel関数とか
隠し関数にありそうな気もする・・・
やるなら画像のDIBに対してピクセルデータのメモリを直接ポインタか配列越しにどうこうした方がマシ
DXライブラリのスレでWinAPIの話してる時点でアレ
DIBとか久々に聞いたわ
そういえばGraphLockなんてのもあったな
まあ手段は色々ありますよという事で
>>229 いやいやwwそもそもこうした方がマシ、って言い方しかしてないでしょうに。
君は、久々に聞いたんじゃなくて、理解できてないんだよ。
何故ならそもそもこれ、「ライブラリ云々の話じゃなくて手段の話」ですし。
つまり、画像データがどうやってメモリに格納されてて、だからどうしたら、って話ですからw
ttp://blog.livedoor.jp/winpg/ 私のゲーム開発は、ようやく、ここまで進みました
皆さんはどこまで進まれましたか?
上記サイトでDXライブラリのゲームプログラムと
実行結果の動画を公開しているのですが、
ざっと見てみて、もっとシンプルに簡潔にまとめられる方法などがありましたら
助言なり突っ込みなりして頂けるとうれしいです。
>>232 いい加減ウザいのだが、一つ助言しておいてやろう。
ゲーム開発におけるプログラミングとはオマケそのものだから。
勉強すればゲームが作れるってのは大間違い。
プログラミングで自己満足してる暇があったら、毎日絵を描け。
背景、キャラクター、インターフェース、世界観など。どれも描けないとダメ。
ここでオナってる暇があったらpixivで絵の練習しろ。
絵も描けない自称ゲーム作家は、才能無いのが丸わかりなので
徹夜プログラミングという豚小屋ランクが限界だ。
234 :
名前は開発中のものです。:2013/04/18(木) 14:33:48.83 ID:kyKgPfiu
何も出来ないゴミのアドバイスでした
>>234 大丈夫です。
もう完全スルーを身に着けましたから、
このような輩の言葉は頭に何も引っかからずに
α値0で通り過ぎていくだけです
>>229 WindowsAPIにもいつか手を出してみたいのですが、
DXライブラリを使う以上、WindowsAPIを直接触る機会ってあるのかな?
WindowsAPIに手を出すということはDirectXにも手を出すということですが、
DXライブラリだけでPS3やXbox360並みのゲーム開発が出来るなら十分かな?と。
あ、そう言えばDXライブラリについての質問があったんだった。
これはDXライブラリに限ることではないのですが、
ゲームをウィンドウモードで起動してゲームをプレイするとします
適当に遊んでいると音楽が鳴ったりするのですが、
音楽演奏中に、別のアプリのウィンドウをクリックとかすると
ゲームプログラムは止まってくれるのだが
音楽だけは鳴りっぱなしなんだよね
あれを何とかしたいのだが、どうにかならないものでしょうか?
238 :
名前は開発中のものです。:2013/04/18(木) 17:37:48.55 ID:uA+yYrAs
酷い自作自演を見た
しかも発狂してないか?w
240 :
名前は開発中のものです。:2013/04/18(木) 17:44:45.39 ID:kyKgPfiu
よぅ糖質野郎
スルーできてないじゃんw
上の方で画像を点滅させるプログラミングに
悩んでいる人を見かけたのですが、
そんなに難しいことなのかな?
何を悩んでいるのかが私には分からない。
if命令の中でカウンタをカウントさせて
リセットするというのを
繰り返せばいいだけじゃないのかな?
ゲー専君「ハッカソンとかGame Jam勉強会参加してます 主催とかもしました」
大御所「そうですか、好きなゲームはなんですか」
ゲー専君モンハン、太鼓の達人、ストリートファイターなどの格ゲーです」
大御所「そうですか何が作れますか?」
ゲー専君「Unityを使ったシューティングゲームです」
大御所「見せてください」
ゲー専君「わかりました ウィイイーン!! 自分はmacbookなもんで(笑) ピッポピ」
大御所「そんな凄そうなことに参加してこんなのしかつくれねーのか 帰っていいよ」
ゲー専君「Game Jamとか福島Game Jamとかでもトークしましたしハッカソンにも参加しました」
大御所「そんなのどうでもいいから」
RPGとかのメッセージ表示ってどう実装してる?
メッセージを表示するウィンドウはとりあえず32*32のマップチップを9個用意して
drawMessageWindow(drawX,drawY,width,height)みたいな関数作って、
表示位置と大きさを渡して出力するようにしたけど、
メッセージの内容ってCSVやテキストファイルに保存して都度読み込んでいるのか
決めうちでソースに書いているのか他の人がどう実装しているのかが気になる。
>>245 そんなの気にするレベルの話か?
普通はなんらか自分で決めたフォーマットで外部ファイルに置いといて、
起動時にロードしてそれぞれ用があるタイミングで用がある部分を使うってだけじゃないの
潰すのは簡単!
-- 、 -‐く /
/ / ー'´\
/ イ /ィ} Y⌒ヽ |
´ V }リ',二二7 ゝ __ノ /
〈/ニ、(。__)|\ /
V{゚f⌒iーく -、\/| /
/ ┌、_」↑ / /´ ̄ ̄
/ ィ´ ー ナ′ /ー、__ノ-
(__/イ__/ / / l \
|| / / r'- V
_ └ー'^ヽ_/ / ∧ 日経
/ `ヽー―--r'´ /
r―f´ ̄ ̄` l \ /
「 l l f_´〉 jノ | _/
{!_{__j |ノ{__ノ /ー'´
l |ーく __/
_ {___ノ
ヘ⌒ヽフ
.. < "`∀´> ,
 ̄\ ( ⊂ :)/ ̄
___/ ̄へ√⌒l⌒´ ̄ ̄\_
´ /Unityスレ\
>>245 理想はエンジン部分作ってイベントはスクリプトって感じだけど
小規模ゲーはスクリプトの導入から慣れるまでの時間が割に合わないから
最初はDLL(libを組み込まないやつ)で差し替えるのが手軽かも
ゲー専は絵が描けない
クリエイターは絵が描ける
違いはこれだけ
ゲー専はプログラマが最強だと思ってる低脳無能
クリエイター(笑)とかと見下し
プログラマ最強だと思ってるがろくなゲームすら作れない無能
>>248 DLLって今でも使われるてるの?
昔ほどゲームの中身に見ない気がする
他の人が使ってるか否かじゃなくて、
自分で作るにあたってそっちの方が都合がいいなら使うべきだろ
エンジンから作るのめんどいし
LGPLのおかげでDLLでしか使えないライブラリとか結構あるよ
最近減ってきたけど
>>232 流れ図きれいだね
どんなソフトを使って作ってるの?
自演うざいなぁ
>>255 そうやって自分が板の雰囲気悪くしてる事に気づいてるの?
>>252 右も左もわからない素人でさ、
>>253みたいに自分の知ってる周りの状況とか
些細なことでも良いんで教えてくれるとすごく嬉しい時期なんですわ
というわけで
>>253もありがとう、Wiki見て勉強するよ
コリジョンを設定するのが面倒だったから対象物との距離で進行可能かどうかを判断させてるけど
不思議と今のところ不便がない。こ、こんなものでいいのかしら
その場合、「どの程度の距離なら進行可能か」という基準が必要になるが
それをコリジョンと呼ぶんじゃないのか。
luajitでも動くな
おもろい
262 :
JET++:2013/04/25(木) 13:43:23.44 ID:s1hOpZu/
>>254 >流れ図きれいだね
ttp://blog.livedoor.jp/winpg/archives/25846166.html 「流れ図」とは、このソースのアルゴリズムのことを言っているのですか?
ありがとうございます
>どんなソフトを使って作ってるの?
ちょっと何を言ってるのか意味が分かり辛いのですが、
開発環境は、Visual Studio Express 2012 for Windows Desktopです
3Dモデラーソフトは、メタセコイアです
画像編集ソフトは、IllustStudio 1.2.7です
関数ライブラリは、DXライブラリです
263 :
JET++:2013/04/25(木) 14:03:27.84 ID:s1hOpZu/
>>256 そいつに何を言っても無駄
自分に反対する意見の人間は全員敵だという幼稚な思考能力しかない
現に
>>256に対する返事が
>>257なわけでしょう
日本語が通じないというか人間の「コトバ」が理解できない
>>255の発言も、
>>254のような少し好意的な発言を見かけたから
勝手に自演だと思い込んで、勝手にうざがっているという。ただのアホ。
一生、死ぬまでイライラとうざがってればいいじゃんと俺は思う
なので
>>255のような発言を見かけても
心ん中で「やった!」と喜んでスルーして放置
どうみてもkazukiだな
誰だよ
あかん、湧いてきたわ
スレが埋まるほど自演を繰り返す奴だから、通報せにゃならん
一切相手しないのが吉
敵機の向きを変えるためにアークタンジェントが必要になったからあれこれ調べてたら標準ライブラリに逆三角関数入ってるやんけ!
あるある・・・
これがあるあるとか、どんだけ無知なんだw
271 :
名前は開発中のものです。:2013/04/26(金) 15:15:08.86 ID:YYiOaJw6
名も無きゴミ絵師がこっちに住み始めたのかwwwww
ヲチage
272 :
名前は開発中のものです。:2013/04/26(金) 15:16:15.60 ID:YYiOaJw6
コンパイラの標準ライブラリに初等関数が揃ってなかったらもはや犯罪レベル
むしろ「atanって何の関数だ?」から逆正接関数を知ったという
俺のような人間もいる
DXライブラリでも言語の標準ライブラリでも
一度は関数一覧の流し見しておくべきだと思う
(暗記じゃなくてな)
何かあった時に「そういえばそんな関数あった気が」ってなるので
問題解決の速度が結構変わるよ
DXライブラリ使う使わないはただの付加的な選択肢の一つだけど、
標準ライブラリとかDX関係無しに普段のプログラミングで普通に使うよな。
DXがきっかけで始めた初心者の人もいるだろうけど、
これだけで物作る訳じゃないし、応用編に行く前に当たり前レベルの道は通っておくべき
sin、cos、atan、atan2に全部同じ角度いれて
求める答えがかえってきたやつをつかってるw
たとえば反射とかね
おいおいここは中卒しかいないのか
逆関数は数Vの範囲らしいし、知らない人は知らないでしょ
もしかしたら今まさに中学在中なんて人もいるかも知れないし
レス少ないところだといくら空気良くしようとしても無駄なんだよな
別に空気良くしなくていいですよ
アークタンジェントは高校ではならわんよ
進学校なら習うよ
どの道、三角関数の類は自分の利き腕ぐらいに使えるようにならないとシンドイ
算数だって中学受験レベルまで押さえておかないと酷いソースになる
atanとか高1くらいで習った
位相求めるのに必須だしな
ho = atan(x);
学校云々より必要な処理考えたとき、文献漁ってヒントを得たときに出会って覚えてくもんだと思う
その経験過程が量的にも質的にも不足してるのかなと思った
数式として覚えるのと、それを日常生活で活かせるのとは別の能力だしねぇ。
後者の能力が欲しいです。
俺もそんなモデリング技術がほしい
それで2番目の何が気に入らなくてどうしたいん?
1番目みたいな画像にしたいだけなら加算合成するしかなくね?
機体の3Dモデルは貰い物です
加算合成だと明るい背景に重ねたときエフェクトがすごく見難くなるから何とかしたくて
αブレンドなら背景との合成の仕方が単純に足し算じゃないから明るい場所でももっと見やすくなったと思うんだけど
加算合成しか無いのかな
でも元画像がほとんど白なのにαブレンドで白を背景によらず全く出せないのっておかしくない?
計算式見ても白が出せないようなことはないと思うし
実際市販のゲームとかでもほとんどαブレンドだから見やすいエフェクトになってるわけだろうし
白が出ないのはDiffuse色設定してるから、発色がそれとテクスチャ色との積になってるだけだと思う
その部分の合成関数を変えられるかまでは知らないけど・・・
Diffuse色→(100,255,168,255)
テクスチャ色→(255,255,255)
ブレンド計算出力→(テクスチャRGB×α値 + 背景RGB×(1-α値)) (ウィキペディアより)
これでなぜ白くならないのか
色の積って言っても255(=1.0f)同士なら白のままだよね?
ちなみにDiffuse色(255,255,255)の結果
http://i.imgur.com/0xTD3ll.jpg あと忘れてたけどα値が寿命に合わせて時間経過で255→0になるようにしてた
光源処理?
一瞬当たりかと思ったけどデフォにしてもあんまり効果なかった
ってかαブレンドって角度によってすごく色変わるな
自分でシェーダ書いて好きに合成した方が自由で早くて作業捗る
R=100*α/256,G=256*α/256,B=168*α/256 (0<=α<256)
なんだから緑にしかならないのは当たり前
DX_BLENDMODE_ALPHA_X4使うとかでなんとかならない?
緑色のモデルを描画した後、Zバッファ無視して少し細い白色のモデルを加算合成とか(適当)
298 :
名前は開発中のものです。:2013/04/28(日) 18:38:40.65 ID:T2Fh/zM1
外部ファイルの読み込みする場合、
DXライブラリを利用したソースを見るに
fopenを使用してる方が大半と感じた。
でも、それはC言語のものであり、
DXライブラリにはfile_read〜があります。
なぜ、それの人気が無いのかな。
いや、仮にライブラリにはファイル書き出し関数が無いから使いたくない、
のだとしたら、別にC++のifstreamを使えばいいんじゃない?
なぜ、皆はC言語のfopenでやるんですかね?
>>298 そういう話ならwin32にもCreateFileとかあるけど(ちなみにCreateとあるけどReadもする)、
要はただの慣れだと思う
慣れ?
違うぜ習慣になってんだ
>>298 ファイル読み込みに限らないんだけど、自分の場合は、
(1)Cを学びだした頃にDXライブラリに手を出したため、古い自作ライブラリはC++の機能が使われていない。
(2)Cの勉強を兼ねたDXライブラリ利用であり、入門書等のコードをそのまま参考にしたため、DXライブラリ依存の処理が少ない。
(3)DXライブラリの機能を余り把握していなかった。あるいはコーディング当時は該当する関数がDXライブラリに無かった。
とか。
file_read って、FileRead_readの事かな?
だったらアーカイブしたファイル読み込むときに普通に使ってるけど。
書き出す必要があるファイル(セーブデータなど)には使わないな。
303 :
名前は開発中のものです。:2013/04/28(日) 23:53:23.47 ID:T2Fh/zM1
レスありがとうです。
なにを使うかはあくまで慣れや習慣のチョイスであって
利便性は考慮した場合の違いとか無いのかな?
結局、ファイルの読み書きで必要なことは
それほど無いから、どれ使っても一緒なんですかね?
304 :
名前は開発中のものです。:2013/04/29(月) 00:12:07.64 ID:YQFVpCIw
>>303 それはその時の自分の判断じゃね
std::string line;
std::ifstream fs(ファイル名);
while(!fs.eof())
{
std::getline(fs, line);
// 内容
}
みたいに書くこともあれば、
fread(&POD型構造体, sizeof(構造体) 以下略)
した方が手早いから fopen する事もあるし。その時次第。
手段が先に絶対としてある訳じゃなくて、目的が先にあって手段がその後なのでそんな感じ
>>298 FilerRead_gets()等がTCHARになっていて非常に使いづらい
MBCSビルドだとCP932のファイルしか読めない、
UNICODEビルドだとUTF-16のファイルしか読めなくて窓から投げ捨てるレベル
Filerってなんだ・・・
そうそう。
>>306 も良い例で、それもまさに 「目的に合致しないから別の手段を使う」 って言うごく普通の判断なので
逆に言えば、DxLibしか知らなくて多様なコードを書いた経験が無い、知識が足りないだと
ID:T2Fh/zM1 みたいな考え方の順序で、よくわからない疑問持つようになってしまうので、
DxLib は便利なライブラリかもしれないが、あくまで利用する手の内の一つでしか無いのだから、
自分で考えて意味のある手段を選択出来るようにならないとダメだよな
使い分けるって言っても
どれもファイルを読み込むってだけを
どう使い分けるんだ?
ライブラリ依存の記述を出来るだけ減らしたいとかは、別に珍しくないっしょ
ファイル入出力は自分で書いたことがあったらそれをそのままコピペした方が
細部の挙動が分かってて面倒がないってのもあるな
逆にライブラリで使うビットマップ読み込みなんかはライブラリ付属のを使わないと面倒だが
シェーダ書けば自由
unityの情報が充実して、早くこんなのを使う必要がなくなればいい
UnityをNGWORDに登録した
シェーダ自作して使うライブラリはDXlib・・・・なかなか傾奇者よのう!
ポストエフェクトだけが目的なら
DXLib + シェーダ っていう選択は結構利にかなっていると思う
改めて「シェーダ自作」とか言うほど大変だと思ってるのか
意味も考え方も実際のコードもわからない、って人だと大変だろうけど
いやHLSL+DXlibは割と変わってるよ
ちょっと質問させてください。
一つの音声ファイルを効果音として使用する時、ステレオスピーカーの左右にPANさせる事ってできますかね?
例えばFPSで、敵のいる方向から音がする、みたいな状況を再現したい時に
方向によって別々の音声ファイルを用意する、以外の方法はないですかね?
質問する前にリファレンス見ようよ・・・
パンがどうかじゃなくて、同じサウンドを同時に再生できるかってことなんじゃないか
一つのハンドルにつきパンも含めて位置情報などが個別にあるから
同じ効果音でも複数ハンドル用意しないと同時再生は無理なんじゃないかと思う
>>324 ああ、そっちか。
自分が前にやったときは、同時再生(鳴り終わる前に同じ効果音が再生)対策として、
4つほどハンドル作って順番に再生させたり、状況に応じて少しだけ音色変えた別ファイルを再生するようにしてた。
ま、何かの理由で実際には使わなかったんだけど。
Unity良いと思うけどDXライブラリとは畑違いだろう
ラッパーライブラリだぞ
ラッパーとフレームワークじゃ比べることもないわな
しかしUnity君はもしかしてUnityならコードを全く触らなくて済むと思ってるんだろうか
俺はDirectX君じゃないけど、3Dの道に入ろうとする人にはDirectXを勧めるよ
DirectXは難しいとか苦しいとか辛いとか言われてるけどあんなのは風評だ。DirectXはすごく楽しいんだぜ!
勧めるなら具体的に説明する事をお勧めするw
漠然としすぎてネタにしか思えん。
DirectXは9までは順調に初期化の簡略化や
やれる事を増やして簡単にあつかえるように変えていったが
10でやれる事増えたが、簡略化の部分で逆行・・・MSは何がしたいのか訳分からん・・・
扱いやすくなるのはDirectX19ぐらいか・・・
「何がしたいのかわからん」ってすぐ言うのはイクナイ
DirectX10以降のアレは本格的にシェーダを扱えるように
各方面を整理した結果だと思っている
DirectX9→11のクラス数やら構造体数やらの推移を見たことがあるが
9に比べて11は約半分までシンプルになってた
(レンダリングパラメータに至っては7割減らしい)
個人的な考えを言うと
DirectX10からはDXGIっていう機能ができて、デバイスロスト関連処理を
全部肩代わりしてくれるのが非常にありがたい
生のDirectXを叩くなら断然10以降を薦めるね
特に固定機能のブラックボックス具合に嫌気がさした人にぜひ薦めたい
DXライブラリがDirectX10以降ベースになる日は来るのだろうか・・・?
リリースしたのをアマレココで録画しようとしたら録画中、
fpsが30近くまで落ちるんだけど俺の環境だけかな
一応簡単にスペックはi5-2500K ラデ7750 メモリ12GB win7_64bit
CPUもGPUも負荷は20%以下、HDDのアクセスもまばら、
SSDから読んでHDDに書き込んでも変わらず、
録画の際にプレビューのオンオフや圧縮形式の変更で負荷を変えても目に見えた効果は無し
自作のゲームはもちろん、他人様が公開しているゲームや、公式に置いているサンプルプログラムでも同様、
録画した動画がコマ落ちするのではなく、ゲームの動作自体が処理落ちする
ただ、元々が30fps制限のゲームは30fpsのまま安定するっぽい
スレチ感あるけどここ以外じゃもっと間違ってると思うんでアマレココ使える人、再現性あるか教えてくれないか
アマレココならライト版を使うとか、AMV以外の形式にしてみるとか
その辺りから試してみてはどうか。
自分の場合はかなり致命的な状態になったが、他形式にしたら問題なくなった。
失敬、AMV以外の形式はもう試してるのか。
垂直同期は最初から外してた
AMVの圧縮の程度しか試してなくて他のコーデックは試してなかった
時間なかったから自分のプログラムで試しただけだけど
確かにものによっては負荷が大きく変わったみたい
Lagarith Lossless や未圧縮は相変わらず30〜40fpsだったが、57〜58fpsで安定するものもあった
が、表示は58fpsとか出てて動作も重くないんだが明らかにゲーム側のコマ落ちが発生してた。意味が分からん。
fps表示も60近いしフレームスキップなんか実装してないから58回程度描画してるんだろうが、ここまでカクカクだと納得いかない
帰ったらライト版試してみるけど、みんな何で録画とかしてんのかな
ロゴが入らなくて出来れば可逆圧縮や非圧縮に対応してるキャプチャソフト他に知らない?
俺も色々試した経験がある。
アマレレコのライト版も使ったし、Dxtoryも使った。
結局PCの性能が低いからどれもろくな画質にできなかったけど最終的にはBandicamにした。
フリーだと制限あるしロゴも入るけど、画質もそれなりで、操作が簡単で使いやすかった。
(で、気に入ったので有償版買った)
そもそもゲーム動かしながらソフトウェアキャプチャなんて無茶なんだって
ハード買った方がいい。
341 :
名前は開発中のものです。:2013/05/10(金) 01:28:07.01 ID:WGtS40wT
VisualStudio2010つかってるんだけどインテリセンスを自動で表示させたいんだができないの?
>>338 画面サイズによるけど、無圧縮なら同じサイズのbmp掛ける60fpsだから
例えばFullHDなら、5.9MB*60=354MB/s=毎秒354MBの転送量が必要。
HDなら、2.8MB*60fps=168MB/s。
可逆圧縮で2/3になったとして、FullHDで0.66倍=233MB/s、
HDで110MB/s。30fpsなら転送量はその半分。
ドライブの割り込みが増えれば更に落ちるので、HDDに書き出すなら
可逆圧縮でHDくらいでないと性能的にキツイんでないの?
でないとOS側にスワップいくと思うけど。
というか計算くらいしようよ。
そもそも動画撮影のコマ落ちってただ単に処理速度不足なだけで、素人でも勘で気付く範囲
一体どんな画面サイズで撮影してるんだ?
600*480ぐらいなら60fpsで撮影できそうだが、1000*とかだと糞重いだろうな
既存ゲームならともかく、自作のゲームなら、録画時は、それ専用のモードを作っておくという方法もあるな。
音声関係が少し面倒だが。
>>335 アマレコライト使ったら普通にキャプチャ出来たよありがとう
アマレココってdirectX系のゲームはキャプチャできないからライトでやってくれって公式が言ってたんだな
アマレココ気に入ってたからよかったよ
なんかいろいろ言われてるけど最初に、録画した動画がコマ落ちするのではなく、ゲームの動作自体が処理落ちするってのと
CPUもGPUも負荷は20%以下、SSDやHDDのアクセスもまばらってことは書いてたんだけどね
処理は全部余裕なのにまともにゲーム側が動かないから訳が分からなかったんだ
しかも公式に配布してるクソ軽いサンプルプログラムでも同じ動作状況、圧縮率やサイズ変えても無駄だし
ちなみにアマレコライトなら60fps 1280*720でも負荷も何も問題なく動作するみたいでした
ググってこれが引っかかるようになればいいな
あ、ちなみにAMVの可逆1/6設定でした
連投スマン
読むわけねーだろ過去ログなんて。
数個上も読まねーやつもいるのにw
>>347 数個上も読むの面倒なので、誰宛のレスなのか判らない。
結局、原因不明で完結するような田舎スレだしな
マイクロソフトが自信たっぷりに推してるテッセレーションってどんどん使われるようになってるんか?
もうDirectX11からは逃げられないのか?覚悟を決めて11の門を叩く時が来たんか!?
>>349 >>345が
>アマレココってdirectX系のゲームはキャプチャできないからライトでやってくれって公式が言ってたんだな
っつってんだから、アマレココの作者は原因に心当たりがあるんだろう
原因知りたきゃそっちに聞けばいいと思うよ
motomoto,ゲームや動画くらいにしか使われてないGPUを有効利用しようぜ!ってコンセプトだっけ?
ゲームにしか使われないDXlibを他のことに使ってる人いる?
俺は簡単なビットマップ出力の表&グラフ作成アプリケーション作ってみたら高校生の甥に好評だったぜ
他の事もなにも、俺はDXライブラリ使わないと画像表示どころかウィンドウも出せない
ヘボプログラマなんで、エディターだろうとツールだろうと全部DXライブラリ使ってやってるよ。
>>354 今は終了したネトゲで生産向け原価計算用ソフト作った
あと現在進行形でパズドラ用pcツール作成中
物理シミュレートに
ただこれだけだと使い勝手悪いからC#のGUIで数値設定してから引数渡して実行してる
キャプチャ機能あるから途中経過を自動で出力できるのが助かる
連番でだしてツールで動画に編集したらプレゼンにも使えるしな
>>352 自分で使うだけなら問題ないけどそれCUDAだからNVIDIA以外のカードで動かんよ
あとGPUは用途も限られてるから、一体何に使うの?って聞きたくなる感じなんだが
まあ軽く相談なんだけども、よくマップ作る時なんかに
{1,1,1,1}
{1,0,0,1}
{2,0,0,2}
{1,1,1,1}
って情報を二次元配列にぶっこむじゃん?
その時、ご丁寧に当たり判定用とマップチップ用との情報をわけて用意してる人ばかり
見かけるのだけど、あれってひとつでいけないものかな?
マップチップの番号はそれなりに種類があるけど、
当たり判定の種類なんて少ないでしょ?変な話、当たる物体か、当たらない物体かで
当たり判定用の情報なんて、0と1だけでいけるだろうし。
ならば、上記の処理の時にね
(二次元配列に格納するオブジェクトをインスタンス化して、ほりこむ処理ね)
格納する前にそのオブジェクトの初期化を実行する、
そのチップのbノよって(ifかswitchかなんかで)初期化の引数にて当たり判定の種類を送り、
オブジェクトの方で設定してやってから、二次元配列に格納してやれば、
一回でいけるんじゃないの?
つまり、そのオブジェクトには、座標情報は当然として
当たり判定の種類と、表示するマップチップの情報とが入ってると。
んでそれらを判断して、他の物体との当たり判定の処理や、Drawする画像の指定をしてやるの。
これって、効率悪そう?
誰か似たようにやってる人いない?
説明下手ですまんけど、言ってることわかる?
>>359 それは誰でも最初に考えつく平凡な方法だし、それで足りるなら別にそれでも問題ない
ただ、複雑なギミックを仕込むなら別れてたほうが扱いやすいことも多いだろうね
ゲームプレイ中にどうやって保持しているかどうかはともかく、個人製作レベルなら、
マップ制作の段階では、1つのマップデータで当たり判定やら敵/アイテムの配置やらも兼ねてることって結構ない?
>>360 >複雑なギミック
その複雑って、どこまでの複雑のこと?
木や柵や建物の後ろにキャラが回り込む場合を考えると、
当たり判定用のマップデータを用意したほうが都合がいい
>>362 横だけど、1つのマップチップに対して複数の解釈が出来るかどうか? その割合が多いかどうか?
……ってのは1つの基準になるんじゃないかと思う。
この「複数の解釈」ってのは、例えばマリオがあるブロックを叩いたときに、
スーパーキノコが出るか、スターが出るか、コインが出るか、コインなら10コインかどうか……みたいな情報ね。
これに叩く前が通常のブロックか、ハテナブロックか、隠しブロックかって情報も入れると、
用意しなければならないマップチップは膨大になっちゃう。
簡単な2Dゲームなんかだと、1つのマップチップが複数の当たり判定を持つ状況はそんなに多くないだろうし、
それくらいなら描画情報と当たり判定をセットにしてしまっても良いんじゃない?
当たり判定が動的に変わるとか、あるいは>363の言うように裏側をきちんと作りたいなら、分けたほうがいいかもね。
どう持つかとか、実装の細かいことは好きに作ればいいじゃないの
それよりゲーム面白くする方に頭と時間使おうぜ
まあ使ってみれば拡張性が低くてあまり良い方法じゃなかったと後悔する可能性はけっこうありそう
通行可能/通行不能くらいの判定しか必要ないならマップチップの番号で衝突判定も管理で足りるし
実際、ミニゲームではそういう実装は珍しくないだろうけどね
>>363 主人公の手前に表示させる?
ゲーム内でレイヤーが必要なものはデータも二枚にわけた方がいいってことか。
その程度の指定なら格納前の初期化と同時にオブジェクトに入れれないか?
見た目同じだけど隠し通路とかはできなくなるね
>>367 その例なら、ファイナルファンタジー旧作の隠し通路なんかを想像してみてはどうだろう。
見えるマップの下に隠し通路がある作りだと仮定すると、
1つのマップチップに対して、裏側が通れるかどうかで2パターン作らなきゃならないよね、って感じじゃない?
>>369 ああ、なるほど、そういうことなら二つあった方がいいね。
まあ実はなんだかんだいって敵やアイテムとかの配置の情報をほりこむ二次元配列は
マップチップとは別に用意しなきゃならないんで、
そのケースが生じた場合は背景の手前のオブジェクトとしてそっちに突っ込むか。
いや、どこかで、二次元配列は、イベント(アイテムや敵やモブ配置)用
当たり判定用、画像指定用と三つ用意しようってところを見てさ、
二つに出来るんじゃないの?と、そう思ったんで相談させてもらいました。
そんなのゲームの複雑さによって変わる話だから
普通は必要に応じて臨機応変に増やしたり減らしたりするもん
規模にもよるけど2次元配列なんて今日日、効率云々気にするほどのサイズでもないし。
漏れはブロックデータクラスのポインタを仕込む事が多いけど。
俺は何を参考にするとかせずに、当たり判定用とグラフィック用の二枚を分けるようにしたな。
隠し通路みたいなのを作るにも敵キャラの配置にも便利だけど
やっぱなんといっても
「最初にマップ構造だけを作っておいて、あとからグラフィックを色々手を加えながら描き足せる」
のが便利だったね。
「あ〜この部分地味だからもうちょっと何か描き足そう」って時に
単純に新しいマップチップ描いて、上書きするだけで済むからね。
あのさ、さっそく今、やってみてるんだけども、詰まった。
コンテナがブロック(class)型のvectorで
マップという二次元配列(宣言はvector<vector<ブロック> >マップ;だね)を作って、
インスタンス化したブロックclassを次々とぶち込んでいくソース書いたんだけど
そのぶちこむ命令が
マップ[i][j] = ブロック; なわけだけど、オペランドに一致する演算子'='は無いって
エラーが出るんだよ。
vectorのコンテナはぶちこむデータの型と同じブロック型だし、、なにが間違ってる?
ちなみにvector二次元配列のコンテナをintにして、ぶちこむ値も数値にしてみると
マップ[i][j] = 数値; で、二重ループが終わったら全部うまく格納されてる。
考えられるのはなんだろう?
vectorの二次元配列の弊害なのかな?んなわけ無いとおもうんだけど、、
助けてほしい。
あー、わかった。
ポインタでインスタンス化したんだった。
コンテナもポインタにしなきゃならんよね
日記か?
>>359 話題振ってくれるのは嬉しいけど、「〜〜な人ばかりだけど俺は違うと思う」なんて押し付けられても困るよw
他の人も言ってるけど、メモリ上で大きい2次元配列を何個も保持してるわけじゃないよん。
あくまで外部ファイルとしてそういう形式で作成・保存するってだけの話。
>>375 一応念のためだけど、構造体をdeepcopyでなくポインタを配列に格納するなら、
ちゃんと廃棄を考慮しろよ
…俺だったらスマポでしまうか、またはそのvectorをメンバで持つクラスのデストラクタに廃棄責任課すかのどっちかにするけど
一次元で格納してvar[x+y*width]とアクセスする方が一般的な気がする
>>359 何のゲームを作るのかにもよると思うけど、
RPGであれば無理に二次元配列を使う必要もないような気がしますね
配列なんて使わずに一枚絵の自由な背景画を作成して
その画像を表示させる
主人公の操作はx,yの座標で管理して
その座標(建物の壁など)までキャラクターを進めたら
それ以上、その方向の座標には進めないようにする
マップはマップ上に存在する全てのマスの数だけマップチップの情報が必要だから
二次元配列のようなもので全通りのマスの情報を保持する必要があるってだけ。
当たり判定はそんな全通り網羅する必要はなく、判定の数だけ座標データ保持すれば良いだけよ?
当たり判定やイベントを二次元配列で云々の話は、マップエディタで作業する際の概念であって
ゲームプログラム上ではそれを自分の都合の良いように解釈すれば良いだけよ。
要するに、普通ジョイパッドでキャラクターを動かすなら
PadInput = GetJoypadInputState(DX_INPUT_KEY_PAD1);
if(PadInput & PAD_INPUT_UP){
---処理内容---
}
このようにGetJoypadInputState関数でDX_INPUT_KEY_PAD1を取得し
and演算子でPAD_INPUT_UPなどを使って上方向に動かすことになると思いますが、
ここに条件式を入れて、chara_y変数が、1〜10の場合なら上方向に動かせるが
chara_y変数が10になっていたら、それ以上、Y軸の-座標方向には移動できないが
Y座標の+方向には移動できるという条件式を書く
3Dにしたらそんな細かいこと気にせずオブジェクトの位置と回転角記憶するだけでいいのに
あと、RPGであれば十字キーで1ドットずつ進めるようにするのではなく、
32pxのキャラクターを使うのであれば、
方向キーを1つ押すと、32ドットその方向に移動できるようにして
それを1タイル単位として扱い、
10タイルまでキャラを移動させて
11タイル目が壁なら、11タイル目には移動出来ないようにすれば
もっとコードを短縮できると思います
昔のプレイステーション版のFF7の
町やダンジョン内の一枚絵のマップを
想像して頂ければわかりやすいかと思います
二次元配列を使ってマップを作成すると
RPGツクールのような箱素材(タイル)を組み合わせたような
マップになってしまうので
俺は一枚絵のマップを採用していますね
そのやりかたは、複雑なマップだと滅茶苦茶めんどくさいのでは・・・
PS時代のFFやバイオは、背景は一枚絵でも、判定用に簡易地形データ使ってると思うけどな。
ニ次元配列の判定用データはいろいろ応用が利くよ。
一枚絵に重ねればタイル調じゃないマップを作れたり、
1=壁、2=ダメージ地帯、3=回復地帯のようにしたり、
敵の生息エリア(生成・移動可能エリア)を設定できたり、
ベルトコンベアのような移動床を作ったりできる。
当たり前だけどFF7もバイオも地形データもってるよ
y軸変化ありならハイトマップつかってたりね
座標のみで判定するのはマップ外に移動するのを防止するぐらいかな?
>>380がどんなものを想定してるのかはしらんが…
>>387 二次元配列は使わないが擬似的な配列を使うようなものかな
十字キーの上を押すと、32ドット上に移動して、変数に1をカウントする
進むたびに変数に1カウントしたり減らしたりして、
擬似的に配列みたいなものを作り上げるようなものかな
上ボタンを押す、32ドット上に移動して変数に1プラス
実際は、そのカウントした変数で制御する
みんな2Dへの情熱があるね
2Dはまだ進歩する可能性を持ってるんじゃないかと思ってしまう
3Dゲーでもジャンプを考慮しないのなら接地データは2Dで持ったりすると思うよ
>>388 1次の動的配列で容量削るのなら解るけど、それなんか意味ある…?
障害物が一切ない矩形のマップしか出来そうにないけど、俺の頭が固いのかなぁ
ほんと真摯にマジレスさせてもらうと
判定は二次元配列中の当該座標(配列[i[j])に保持するんじゃなくて、
座標持ったインスタンスとしてリストで保持した方がいいと思う。
マップチップは全座標分必要だから前者で良いけど。
私はまだそういうマップのゲームを作ったことがないけど、もし作るとしたらこんな感じだと思ってる。
クラスか構造体でマップ用のインスタンスを作る。
そのインスタンスは、
マップチップの画像
敵の出現率
出現する敵のテーブル
どちらの方向への移動を認めるか
どちらの方向からの移動を認めるか
同一座標に表示するオブジェクト
その他諸々
のデータを持っていて、これを二次元配列で用意する。マス目型RPGを想定してるけども。
この程度のデータを1000*1000持ったところで、今のメモリはびくともしないと思ってるし、実際にはそんなに大きなマップ作らないだろう。
話を読んでると、データ容量の削減も考えてる感じだけど、そういうのも大事なの? 私は無頓着でなぁ・・・。
>>389 3Dで進歩してるのは描画だけだから
ゲーム性で進歩するには2Dが必須
2Dの欠点は少人数でしか作れない事
また意味不明な論理展開を・・・
3Dと2Dとか分けて考えてるのがもう既に理解不能な世界
なんかもう1行目から3行目まで指摘できそう
カプコンの小野がスト4企画した時に2Dゲーは古いって言われて反対されたらしいね
一応スト4出たけど外注だったし大手メーカーでもそういう認識なのか
>>397 大手メーカーほど2D嫌ってる感じだな
しかし未だに完全ドット絵のアルカナハートっつー格ゲーがあってな
まだまだ現役だと思う
プレイヤーが意識する操作軸が2Dかまたは3Dかって話しと、
描画処理を2Dにするか3Dで行うかって話を混同させると話が脱線するよな
あとは低レベルでの処理の話もかな?
これはまあ、昨今は大体3Dだろうけど。
要点が空間把握→描画ガー→脱線
要点が描画処理→操作軸ガー→脱線
要点が操作軸→空間把握ガー→脱線
tes
あっ規制解けてる
今シェーダ書いてんだけどさ
シェーダの処理って全部GPUだよね
DrawPolygonIndexed3DToShaderなんかをコメントアウトするかどうかで
60fpsで描画できる数30%ぐらい違うんだよね
CPUはわりと処理かつかつだけどGPUは全然余裕ある
これって結構呼び出しだけでCPUに負荷かかんの?
前から気になってるけどDXライブラリ標準のクリック検出関数てペンタブのクリックに対して反応が変じゃない?
すさまじく感度が悪い。
なんでDXライブラリで作るんですか?
Unityで作ればいいのに無駄だと思うけど
2Dは時代遅れだしUnity使えばいいのに
こんな基地害に張り付かれているんだから
Unityも大変よな
キチガイって現実的にDXライブラリなんてオワコンですよね?
Unityのほうが3Dで優れてますよ?
別板の、PerlだかPHPだかのスレでもUnityと比較してるエヴァンジェリスト(笑)が居たから、
本当に大変だなあと思う
Unity使えないからDXライブラリ使ってるんですよね
いまどきDXライブラリ使ってるとかどんだけ思考停止してるんですか・・・
413 :
名前は開発中のものです。:2013/05/24(金) 13:16:26.08 ID:u2VY/BUA
> 97 名前: ゲームエンジン専門学校 [sage] 投稿日: 2013/05/24(金) 11:04:28.65 ID:zmGQ8KZM
> プログラミングしないでゲーム作れますか?
> 98 名前: ゲーム専門学校 [sage] 投稿日: 2013/05/24(金) 11:06:17.41 ID:zmGQ8KZM
> Unityの本をたくさん持ってますがサンプルゲームを改造したのしか作れません
> どうすればいいんでしょうか?
Unityの本でも読んでろ低脳
要するにプログラミングでゲームを作れる人が羨ましいんだな
僕はゲーム専門学校にいってますが
DXライブラリなんて使われてない
Unityメイン
先生もDXライブラリは時代遅れで使われてないといってたけどね
どっちにしろ個人が作ったしょぼいライブラリなので廃れるのが目に見えてる
DXライブラリは入門程度のしろもの
Unity使えないやつはこれからのゲーム業界ではいきいけない
最先端の技術をとりいれないやつは淘汰されるだけ
>ゲ−ム専門学校
この時点で論外だな
まともな人間なら情報系に行くもの
実際、市販ゲームでDXライブラリが使われた例ってどれくらいあるんだろ。
すまんな、俺の古いPCではUnityが動かない。
Unity君はただの煽りでしょ。もしも本気で言ってるなら会話するも必要ない。
道端でぶつぶつ独り言言ってる危ない人と同じ。話しても多分理解できない。
Dxlibスレにきて書いてる時点でお察し
422 :
名前は開発中のものです。:2013/05/24(金) 14:21:28.22 ID:S+K4LCEo
プログラミング歴4年です。
初めてテトリス作るんだけど、玉が落ちてくる時間ってどうやって
設定してるのですか?NOP的なものがあるのですか?
>>418 だねー
先生も言ってたけどDXライブラリは使われてないし圧倒的にUnityのほうがシェアが上だよねー
>>417 DXライブラリの話をしてるのに学校の話?
話脱線してるけど情報系の大学でをいくら学ぼうがUnityの技術を磨いてるゲーム専門学校の人には勝てないってこと
なんかUnityスレでは有名な奴らしいなこいつw
>話脱線してるけど情報系の大学でをいくら学ぼうがUnityの技術を磨いてるゲーム専門学校の人には勝てないってこと
最終的にゲーム会社に就職したとしたら、前者が上司で後者が下っ端になると思うんだが。
ていうか、ゲー専の子はテンプレ化したゲームしか送ってこないよね・・・
>>426 へー。そういうもんなんだ。例えばどんな感じ?
本職はゲーム系じゃないから、そういう話は全然聞いたこと無いや。
>>426 そういやゲー専校の奴に絵を描かせたら酷く下手だったのを思い出した
こいつら何のために専門学校通ってるんだろうと思って絶望的な感情にさせてくれたww
就職してもプログラマが限界だろうな
何でこんなUnity叩いてるキチガイがいるのか
DXライブラリしか使えない自分に苛立ってるの?
430 :
名前は開発中のものです。:2013/05/24(金) 14:48:26.28 ID:S+K4LCEo
UnityもDXライブラリも一緒だろ
プログラミング慣れたら両方できるようになるし
>>428 DXライブラリ使ってるようなあなたよりゲーム専門学校のほうがちゃんとしたスキル持ち備えてますよ
しかもあなたが見下すよりプログラミングできますからね
ゲームにしてはいくら東大や京大でコンピュータサイエンス学んで卒業してもゲーム専門学校卒業生のほうが即戦力でUnityで作れるしゲーム会社的には歓迎だからね
先にUnity使えるほうが有利なのは事実だし
>>430 一緒じゃないだろw
レベルが違う、前者は教育レベルでUnityは実践的w
まさかとは思いますが、この「Unity叩いてるキチガイ」とは、あなたの想像上の存在にすぎないのではないでしょうか。
もしそうだとすれば、あなた自身が統合失調症であることにほぼ間違いないと思います。
あるいは、「Unity叩いてるキチガイ」は実在して、
しかしここに書かれているような異常な行動は全く取っておらず、すべてはあなたの妄想という可能性も読み取れます。
この場合も、あなた自身が統合失調症であることにほぼ間違いないということになります。
>>431 ゲームに夢見過ぎ
いくらセンスがあっても即戦力にはなれない
雑用と主力を混合してないかw
436 :
名前は開発中のものです。:2013/05/24(金) 14:53:13.82 ID:S+K4LCEo
専門学校出てる奴は強いかもしれないけど
DXライブラリ使えるなら十分条件的にUnityも作れるよ
俺はプログラミング歴4年でゲーム作った経験皆無だけどなwww
だって周りの人がそうだもん
437 :
名前は開発中のものです。:2013/05/24(金) 14:56:47.39 ID:S+K4LCEo
>>428 ちょっとまって
それは違う。プログラマーってのは色んなものになる可能性を秘めた
仕事でしょ。それだけでも立派だし。
俺は国立だけど確かに情報系の学科にいてもゲームやグラフィックなんて
全然やらなかったな。もっと学問的な事。
ゲームの技術を専門的に学校で学ばないやつはDXライブラリで作ってればいいだけのこと
Unityが主流なのは変わらない
>>431 アセンブラとか情報工学とか無駄なことやってるやつよりUnityの学び方とかを学んでるゲーム専門学校のほうが有利
即戦力になれない理由は?
441 :
名前は開発中のものです。:2013/05/24(金) 15:02:12.38 ID:S+K4LCEo
ID:ihSkk2G2
の言ってることは正しい。
ゲー専は確かに有利かもしれない。
ただゲームクリエイターになるには単純にプログラミングの
スキルだけじゃないでしょ?
企画力
構想力
アイデア
効率性
など
UnityにしろDXライブラリにしろ、ゲーム作りやすくするためのツールにすぎない。
数年経てば時代遅れになって使われなくなる。
大事なのはどのツールを使うかじゃなくて、どんな環境に変わっても対応できるようになる事。
>>437 可能性を秘めてるのに何もしないってところが問題なんだわ
絵が描けるか?
小説書けるか?
音楽奏でられるか?
見てる世界が狭いまま育つ→周囲の人間が何を作ろうとしているのかわからない→製作現場でコミュ障化
444 :
名前は開発中のものです。:2013/05/24(金) 15:06:50.64 ID:S+K4LCEo
>>442 その通り!
で俺の質問に答えてくれよw
テトリスの玉が落ちるスピードってどうやって決めてるの?
ゲーム専門学校が有利
DXライブラリとかいってる大学生は役に立たないってこと
ゲーム業界にはいらない存在
趣味でゲームやらツール作るくらいならいいよね (´・ω・`)
>>444 玉ってのはブロックだよな?
それとも俺が知らないだけで別のものだろうか。
で、落ちる時間って具体的に何を指してる?
NOP云々って言ってること、444でスピードと言い換えてることから推測すると、
ブロックが1マス落ちるまでの時間(フレーム数なり秒数なり)の実装方法か?
>>434 即戦力にならないのも事実。
所詮学歴的にもゲーム専門学校。
育てる価値すらないだろう。
>ゲーム専門学校が有利
漫画家・西友専門学校同等の情弱ビジネス洗脳にハマった愚か者としか言葉がでない。
>>428 >そういやゲー専校の奴に絵を描かせたら酷く下手だったのを思い出した
>こいつら何のために専門学校通ってるんだろうと思って絶望的な感情にさせてくれたww
即戦力にすらならない。
まじで道端で一人ぶつくさ言ってるキチガイじゃねーか
451 :
名前は開発中のものです。:2013/05/24(金) 15:53:11.49 ID:S+K4LCEo
>>447 はい
そうです
どうやって実装するんですか?
時間制御
それとも
フレーム制御ですか?
フレームはどうやって制御すればいいかわからない
>>427 言われて作りましたみたいな感じ。
あと数学的な基礎が成ってない。そういう意味では普通に大卒のほうが使える
>>426 やれるやれる詐欺に引っかかった無能同然
>>452 なんせゲーム専門学校はFラン以下の無能だからな
HSPからプログラム始めた自分からすると
HSPでは遅い⇒C++を覚えよう⇒DirectXを扱えるようにしないと
⇒なにかないかググる⇒DXライブラが楽そう
って、ことでDxライブラ使い始めた。
あと、ゲームを作っていく上で素材を用意するのが大変だったので
3Dではなく2Dでつくってる。
>>451 テトリスの標準仕様(詳しくは知らん)に沿って作りたいんでもなければ、
適当に前回の移動からのフレーム数を数えておいて、一定フレーム数経過で1マス落とせばいいんじゃね?と思ったり
456 :
名前は開発中のものです。:2013/05/24(金) 17:37:30.72 ID:S+K4LCEo
>>455 はあ?
だからそのフレームってどうやって数えるの?
もっと率直に
「コピペで動くソース貼ってください!!」
って言えばいいのに
458 :
名前は開発中のものです。:2013/05/24(金) 17:47:48.22 ID:S+K4LCEo
いやフレームって画像が切り替わることでしょ?
それってどうやって数えるの?
秒なら<time.h>があるからわかるけど。
>>458 全く以て何に困ってるのかが想像出来ないレベルなんだが、
この場合のフレーム数って、メインループの回数のことだぞ?
自分で1画面完成させたら+1なのに何悩んでんの?
ろくなゲームすら作れない社会のクズゲーム専門学校はミニゲーム(笑)
低学歴底辺負け組みゲー専が好んで使うゲームエンジンはUnity
ぎもちいいいwwwwww
低学歴底辺負け組みゲー専が好んで使うゲームエンジンはUnity
※プログラミング歴4年
初心者本1冊読むのに4年かかったんだろ
低学歴底辺負け組みゲー専が好んで使うゲームエンジンはUnity
低学歴は4gamerのUnity布教をうけ使う
情弱
低学歴負け犬ゲーム専門学校wwwwwww
ぶっはwwwwwwwwwwwwwwwwwwww
465 :
名前は開発中のものです。:2013/05/24(金) 18:34:31.40 ID:S+K4LCEo
>>459 ちょwww
ScreenDrawだかScreenflip関数の呼び出しの事じゃないの?
ループ回数だと処理の多さにばらつきがあるでしょうが。
ScreenFrip前後でカウントアップ、一定カウントで1ライン落下にすればいいんでは?
もしくはGetNowCount(Dxlibの命令)っていうのがあるから
一定_秒経過で下に落ちるようにすればいいと思う
君たちクソがいくらゲームを作ろうが
面白くもないし、ビジネス的にも残念
カネにもならない、つまらない
クソはせいぜい一生、キャラクターを動かしたりマップ表示させたりしてシミュレートして喜んでればいいのだよ(笑)
↓低学歴底辺負け組みゲー専の悔しい弁解お待ちしております
ビルゲイツ「なんや」
>>465 なんか根本的にわかってないようだが、どこから説明すればいいのかわからん。
ゲームは基本的に
┌→「入力処理」→「メイン処理」→「描画処理」→┐
└←───←───←───←───←───┘
という流れで動かすのはわかるか?
このループ一回を1フレームと呼ぶのだが。
470 :
名前は開発中のものです。:2013/05/24(金) 22:55:18.34 ID:S+K4LCEo
>>469 分かってるよ
メイン処理って何ですか?
471 :
名前は開発中のものです。:2013/05/24(金) 22:56:35.42 ID:S+K4LCEo
>>469 分かってるよ
メイン処理って何ですか?
分かってねえじゃんww
何が解らんのかさっぱりだわ、これでプログラム暦4年とかww
ID:S+K4LCEo ←なにこの知ったかの低脳
「わざと間違って小生意気なこと喚けば、勝手に相手が必要なことを喋り出す」
ってバカが鵜呑みにして実践してるアレだよ
炎上勉強法が流行ってるな
4年と4日を間違えてるんだな
まずそこを直そうか
なんかくっせぇのが湧くと思ったら
VIPの奴まで見てんのか
他人を小馬鹿にするためにだけにレスしてて悲しくならんのか
無視決めるか、馬鹿丁寧に教えるかのどっちかにしとけ
情報系四大卒なら一応プログラミング歴4年ということになるけど
100人にテトリス作らせたら10人も作れないのが現実だからな
まあ質問してる人は例の小学校6年生の人だろうけども…
ID:S+K4LCEoは普通のループ処理に全て書いてる悪寒
俺も最初の頃、そんなコード書いてアニメーションせず瞬間移動して焦ったなw
本買うかなんかしなされ。
基礎的知識がないと一生懸命書いた質問もネタレスにしかならんよwww
溢れるほどゲームプログラミングの本がある良い時代だ
ここの人は構ってくれる優しい人ばっかりだね
最近の大手メーカーは数学科とか物理学科出た人をほしがってるみたいだね
変なのがわいてるし流れに便乗してお前も暴れろよdirectx11信者君!
大好きなテッセレータを熱く語れ
>>478 俺は大学入ってからプログラミングしたよ
だから4年
テトリスはさすがに作れると思ってる。C言語は毎日やってるし。
落ちてくるブロックはそれぞれ配列で作って、rand関数でランダムに
落とすんでしょ?
>>479 ループ処理に全部書くんじゃないの?
>>469もそう言ってるし。
プログラミング歴2年だけどリファレンスで関数を調べて後は一切何も見ずに全部自分で考えてテトリス作ったぞ俺は
俺の倍勉強してるんだから自分で調べて解決くらいできるだろ……
>>482 1から10のうち、3くらいから後ろが全て間違ってる感じ。
日本語が読み書きできても、それだけでは小説や論文は書けないように、
C言語だけマスターしてもゲームの作り方を知らないとゲームは完成しない。
文法とかは特に問題ないだろうから、そのゲーム作り独自のノウハウを学ぶと良いと思うよ。
>ループ処理に全部書くんじゃないの?469もそう言ってるし。
少なくとも>469と>479と言ってる内容は全く違う。
ただ、ゲームの作り方に詳しくなければ、同じように見えてしまうのは仕方ないかも。
485 :
名前は開発中のものです。:2013/05/25(土) 11:59:21.89 ID:KCiwbGxr
>>484 テトリスくらいは簡単でしょ。
落ちてくるブロックの配列とフィールドの10*20の配列を用意
してループ内で揃ってるかどうか判定するだけでしょ?
アセンブラもわからない無能がゲーム開発してるから
Dxlibでマルチスレッド使ってる人いる?
使ってる人がいたら注意点とかいろいろ聞きたい
テトリスはプログラミング覚えたての段階で作れないと先が危い
なんせ数学どころか算数ができないわけだからな・・・
テトリス作ったこと無くてごめんなさい
今はパズドラの消去ルーチンを完成させたい(´・_・`)
スレチすまない
メインスレッドでしかDxlib関数呼ばないのが秘訣
Direct3D9自体がスレッドセーフじゃない
Direct3D10は完全スレッドセーフ
Direct3D11はパフォーマンスのために一部スレッドセーフじゃない設定を出来る同期機能が追加された
D3D11でも描画コマンドをキューに貯めるだけなので
結局描画はコンテキスト生成したスレッドでやらなきゃ不味いけどな
ワーカースレッドで動的なテクスチャの更新とかComputeShaderの結果を得るとかしたくても全然使えない
DXライブラリのスレでDirectXの話しをされてもな
たまに勘違いしてる人がいるけどその口かい?
DxLibがDirectX9上に構築されている以上
ベースになっている技術について知識を持つことは
決して無駄じゃないぞ
もちろんその話題が長々と続くようなら別のスレでやれという話になるが
無駄とは言ってないが?
>>488 の質問に対する答えが変だと言ってるんだが。
ああ、そういう話か
そういう意味では確かに食い違っている
(ただ単に、誰も質問に回答していないだけだと思うが…)
俺が複数スレッド使って画像ファイルを読み込もうとした時はアクセス違反が出まくった。
今は確か複数スレッドでのファイル読み込みはOKになったはず
(過去にこのスレで見た)
描画についてはよく知らんのでほかの人に任せる
まぁ
>>492を守っていればまず間違いないだろうが
確かに話は食い違うけど、DXライブラリ側が勝手に使うマルチスレッド以外で、
自分でマルチスレッドを使おうって話なら、そもそもでDXライブラリの話題じゃない気はするね。
わざわざ自前のスレッド使うくらいの恩恵を得ようと思ったら、
WinAPIとDirectXを理解しながらDXLIBのソースをハックして
ウィンドウプロシージャ乗っ取るくらいしないと意味ないと思うし・・・
3Dのモデルのモーションを再生したり止めたりするとき
例えば走るモーションとかだったら止まってる状態から動こうとしたら滑らかに走りだして
止まろうとしたら走ってるモーションから足が揃うように止まるっていうのはどうやったらいいでしょうか
走るキーが押されたら走るモーションを再生して放すとモーションを止めるようにしたらモーションが変わる瞬間に足が不自然に瞬間移動してしいます
>>500 それは言葉で書くと簡単な話だが真面目に実装すると大変と言うか、
基本的にボーンデフォーム処理とキーフレーム間の補完計算処理の経験ある事が前提とした上で、
要は2つの考え方をそれぞれ実装する。
一つはとある時間における2つのポーズのブレンド計算。端的に言うと、
先のモーションの途中結果行列と、混ぜたいモーションの途中結果行列の乗算とか。
もう一つは単純な逐次処理で、要はいまこのモーションは、ブレンド開始していいフレーム位置にあるかの判定。
そんなかんじ
ちなみに上の処理は、俺は以前にOpenGLベースでキャラクタアニメーションライブラリ書いたときに製造した。
DirectX版としても書いたけど、ただそれだけ。
DxLibは俺は2Dゲー作る時の省力化でたまに利用するだけなので、DxLibでどこまでフォローしてもらえるか知らないから、
その辺は別の識者に委ねる。
でも考え方は上の通り。あとはどう実装するかだけ。
3Dアクションサンプルだか公式のサンプルにモーションブレンドやってたやつあったような
506 :
名前は開発中のものです。:2013/05/27(月) 10:52:00.19 ID:Swj8S9Tf
すみません、vectorに
LoadDivGraph()を使って画像を格納することは出来ないんでしょうか?
要は、
vector<int> graphs;
↓
LoadDivGraph("graph.bmp",3,3,1,16,16,graphs);って感じで。
vectorで出来たハンドルでは第七引数がエラーになってるんです。
上記のケースでは配列にしろや、って突っ込まれそうですが
今は制作途中で少ないだけで、今後どんどん画像は大きくなるはずで
理想は可変する画像分割数に対して、LoadDivGraphの分割数を変えてやるだけで
うまく格納されるってしたいんですよ。
なのでvectorが良いはずで。。。
無理ですか?
格納する部分を自分で作ればいいだけのような
エラーメッセージ読んでなんで引数がエラーになるのか考えれば無理じゃないが
vectorの要素確保せずに突っ込んでまた泣くだろう
分割数が可変って事だけならint*で確保した配列に画像放り込んで
各要素をvector<int>にpushすればいいのでは?
divで分割したあとにそれぞれをvectorに入れるって事ね
510 :
名前は開発中のものです。:2013/05/27(月) 11:21:25.03 ID:Swj8S9Tf
レスありがとうです。
>>508 〜int*への適切な変換関数が存在しない、っと出ます。
>>509 ああ、なるほど。直接ぶちこむとエラーになるが
間に、divで分割した画像を入れる変数をかませばいいってことですか?
しかし、それって結局は配列の要素数を作った変数じゃないとダメだから
その後にvectorに入れても、あまり意味がなくなりませんか?
ああ、分割した画像を入れた配列をvectorに入れるってこと?
ならvector<int*>でできんかな?
と言ってもどっちにしろ一旦int*の配列を作ってから入れることになると思うけど
512 :
名前は開発中のものです。:2013/05/27(月) 11:37:38.19 ID:Swj8S9Tf
>>511 いえ、説明下手ですみません、
LoadDivGraphって分割して引数の配列に格納してくれるじゃないですか?
その格納先をvectorにしたいだけです。
長方形の画像を中央から広がるように表示したいんですけど、何か上手い手はありませんでしょうか?
と思ったけど、DrawRectGraphで表示する画像の範囲を変えてやれば良さそうですね
divの引数はint*という事を考えればいいかもめ
直接vectorを指定する方法もあるだろうけど、それがイメージしている動作かどうかは保障できない
515 :
名前は開発中のものです。:2013/05/27(月) 12:44:19.36 ID:Swj8S9Tf
>>514 知恵が少ないせいでピンときません。
もう少しだけ、ヒントをお願いします。
vectorのコンテナをポインタにしても解決できませんでした。
>>512 普通に考えると、先に要素数分resizeしたvectorの先頭要素のポインタ(要はat(0)のポインタ)を引き渡す感じじゃね
事前に要素数わからなかったら無理だけど
>>515 vectorそのもののポインタ渡してもダメと言うか意味無いので勘違いしないように
518 :
名前は開発中のものです。:2013/05/27(月) 13:00:13.58 ID:Swj8S9Tf
>>516 >事前に要素数わからなかったら無理だけど
ですよね?
どうやってもいりますよね。要素数
(まあそんなこと言ったら、loadvibの引数にてすでに分割後の総数を入力しないとダメなんですけど。
個別の画像をpushしていくならなにも困ることないのですが
すべてを集約した一枚のドデカい画像をloadvibで分割して格納しようってので
vectorを考えましたが、loadvibの仕様じゃ無理みたいですね。。
要素数を意識しないとダメなら、
要素数を決めて配列でやるのも、うまくvectorでやるのも
ほとんど変わりが無くなりますし。。。
わかりました、素直に配列を作り、loadvibの引数に入れたいと思います。
>今は制作途中で少ないだけで、今後どんどん画像は大きくなるはずで
>理想は可変する画像分割数に対して、LoadDivGraphの分割数を変えてやるだけで
>うまく格納されるってしたいんですよ。
LoadDivGraphに必要な引数をテキストファイルとかにしといて読み込んで
そっから分割行うようにするだろうから
>>516のやり方でvector使えばいんじゃね
520 :
名前は開発中のものです。:2013/05/27(月) 19:36:46.37 ID:0qYUcjSc
DirectShow ってここですかね?
DirectShowLib-2005(C#)ですが、
GraphBuilder を ReleaseComObject するときに
デッドロックするんですけど、原因として考えられる物ってなんでしょうか…。
521 :
520:2013/05/27(月) 19:44:26.83 ID:0qYUcjSc
すいません。追加で、
mediaControl の Stop() をし、videoWindow にはしかるべき設定をし、
他のフィルタなどを破棄して、一番最後に Release しています。
突然止まるようになっちゃって…よわっています。
>>520 完全にスレ違い
まだプログラム板のDirectXスレの方が近いが
流し読みした感じあっちでもスレ違いなようだ
スレ自体無いので諦めるか公式のフォーラム池
523 :
名前は開発中のものです。:2013/05/27(月) 19:51:26.55 ID:0qYUcjSc
もうしわけない。
DXライブラリはDirectXライブラリのことじゃないからね
しかもDirectShowはDirectXからPlathomeSDKに移行したからなあ
そして時代もDirectX9から11に移行したしな
水曜DirectShow
>>524 現状の>1でも別物だと分かるようには書かれているが、
はっきりと別物です!と入れたほうがいいかもな
528 :
名前は開発中のものです。:2013/05/30(木) 11:45:15.51 ID:dEbITfad
ゲーム専門や文系の僕はUnity使うのが適してるのでしょうか?
教えてくださいパルパル
このスレで聞くってことはちょっとは触ってみた?
スレッドタイトルの検索すらできないようだとゲーム製作どころか、コンピュータで何かするのにも適してないな。
DXライブラを使用した時のビルドって10秒以内に終わるんですけど、何故こんなに速いのですか?
自分の短いC++ソースでも、ビルドに1分近く掛かるのですが、プリコンパイルしても大して速くならないし。
複数のファイルに分けたら?
>>531 自分で書いた処理を static ライブラリや dll にまとめた事はあるか?
そして今度はそれを使う側のコード書いて、自分で利用したことは?
つまりそれだけの話だ
>>533 おー、貴重なヒントをありがとう
さっそく調べてみます
DXライブラリには
WinAPIでいうところのRECT構造体の様なものは用意されてますか?
自分で作れば話は早いと思いますが、
用意されてあるならあるで使いたいんですけど。
リファレンスは確認したんですがピンとくるものがありませんでした。
リファレンスは関数ベースで書いてあるからなぁ
どんな構造体があるかを調べるなら、DxLib.hを直接覗いた方がいいよ
ってか多分DxLib.hをインクルードすればWinAPIのRECTを使えるようになると思う
DirectXの勉強始めてから感動する事が多くて、もう戻って来れないわ
しかしDXライブラリには本当にお世話になった
これからも良い勉強素材でありますように
正直DXライブラリでなにが出来ないのか気になる
ゲーム製作じゃほんとにこれだけでいいもんな
DXライブラリのおかげでなんとかゲームが作れてる俺としては
・DXライブラリへの依存度が高すぎて「私はゲームが作れます」と胸を張っていえない。
・将来DrextXが廃止されたりしてDXライブラリが使えなくなった時に、ゲームを作れなくなる。
の二つがとても怖い。
特にスプライト表示はな。
3Dで凝った事しようとすると力不足なのかね?
>>539 DXライブラリでできる事って極端な話、画像表示と音声再生くらいだろ?
それってゲーム製作の極々一部だよね。
ユーザーさんや駆け出しにはそれが8割以上占めてるんじゃないかって
勘違いしてそうな人見かけるけど。
>>540 あとメインループ、メッセージポンプの隠蔽とかか。
基本的な動作の一番シンプルな所も隠してるから、実は単純な事なのに正体が見えなくて、
そのせいもあって、べったり依存してると応用効きにくくはなるかもな。
勿論その傾向ってDxLibに限らず隠蔽率の高いラッパやフレームワーク全般に言えるけど
ぶっちゃけ、DXライブラリ知るまではWindow表示させるだけで挫折してた。
超シンプルなDirectXライブラリを作るところまでは行ったけど、
結局何故かDXライブラリに戻ってきた
RPG開発 for Windows8 / 64bit
ttp://jetrpg.publog.jp/ DXライブラリとC++によるRPG開発の解説サイトを運営しています
DXライブラリに興味がある人は、ご覧になってください
上記サイトではゲーム開発に必要な色んなテクニックを公開していく予定です
ただ、サイト利用者との会話は重要視していないので
コメントは出来ないようにしています
無言でご覧になって、無言で参考にして、
無言で立ち去って行くだけのサイトを目指しています
一応、Windows8 64bit をベースに解説していますが、
Windows8 32bit や、Windows7 32bit / 64bit
その他のWindowsでも可能だとは思います
要はC++とDXライブラリを使ったゲーム開発の解説サイトですので
宣伝氏ね
某サイトみたいに「他人の振りしてこっそり宣伝(ステマ)」するより
こういう堂々と宣伝していく方が好感持てるけどね。
548 :
名前は開発中のものです。:2013/06/07(金) 14:36:01.21 ID:bYdlNlYK
ゲーム制作において、今の時代
frame制御より時間制御の方がいいと聞きました。
frame制御だと、パソコンのスペックや状況によって影響され
ある人のパソコンでは作り手のイメージのままの速度で動くが
ある人のパソコンでは非常に早くなってしまったりするとか。
ボロパソコンゆえに遅いのはこの際度外視したいのですが、
いまどきの高性能のパソコンではゲームspeedが
早すぎるってなるのだけは避けたいです。
実際にどうなんでしょう?
フレーム制御で制作したゲームって今のパソコンで遊んだ場合
そこまで違いが出てしまいますか?
自分はそこまで差が無いのなら
このままframe制御でやりたいんですけど。
>>548 パソコンじゃなくて、ディスプレイの問題だね。
DXライブラリでフレーム制限しなくても、
秒間フレームが固定されるのは垂直同期がオンになっているから。
垂直同期は、ディスプレイの垂直同期周波数に合わせて描画するって意味だと思えばいい。
ほとんどのディスプレイは60Hzなんだけど、75Hzは昔から珍しくないし、
近年のコアゲーマーの間では120Hzや144Hzのモニタが主流になっていたりするのが困るところ。
そういう理由もあって最近の商業ゲームでフレーム制御はまず見ないけど、すでに作っちゃってるなら
解決策としてオプションで垂直同期ON/OFFの機能を付けて、OFFの時は60FPSに固定させれば解決する。
FPSを固定する方法はググればでるはずだけど、簡単に言えば毎フレーム時間計って16ミリ秒になるまで待機するだけ。
VSync待ちのみに依存とかしない限り、frame制御で想定より早くなるとかありえないと思うけど・・・あるのか?
>>547 ∧_∧
ガラガラ( ^^ ) <これからも僕を応援して下さいね(^^
=〔~∪ ̄ ̄〕
= □――◇ Kazuki
>>542 RegisterしてOSにウィンドウリソース準備してもらってCreateWindowするだけやないかい
あとはメッセージ処理用のコールバック関数(ウィンドウプロシージャ)に書くだけ
挫折するとしたら考え方わかってない状態じゃないかね。
別にいいけどさ
>>544 なんだこのマジキチサイト
やることなすこと全部間違ってるんだがw
初心者にとって害悪でしかないから消しておけよ脳タリン
>>553 間違っていたらエラーになると思うのだが…
エラーにならない≠間違いではない
エラーにならないなんて当たり前の前提
>>554 OKそうして頂戴
俺はもう人間との会話には完全に興味がなくなったので
残りの余生はコンパイラとだけ会話して生きていくよ
上記のブログにしてもプログラムや記事をネタに
サイト使用者と会話をするようなことにも一切興味はないので
コメントは出来ないようにしている
もちろん、ここでプログラミングの会話をすることにも興味はない
人間と日本語で会話することには、もう興味がなくなった
以上の言葉だけを残して、このスレから去ることにするよ
スレ汚し失礼した
グローバル変数を当たり前のように使ってるし、
WindowsAPIの上でDirectXが動いてるように見えるよw
そもそも講座なんて何か一つでもつくりあげた人間が書かないと糞の役にも立たないんじゃ
>>556 もう俺に話しかけないで頂戴
俺以外の人間に話しかけて会話を楽しんでください
俺が伝えたいことはブログで一方通行で
発信していくことにします
あのサイトは、まだプログラムに触れたことのない人が
2chで質問してバカにされて悔しい思いをしたような人が、
書いている通りにプログラミングすれば実行されて
その人の願い(プログラミング言語でゲーム開発)が叶えれればいい
ぐらいにしか考えていない
何を持って間違っていると言っているのか
さっぱり理解できませんが、
その人のやりたいと思っていることが
解説の通りにプログラムを組むことで叶えればそれでいいよ
だからと言って、人から礼を言われることも期待していないので
コメントは出来ないようにしている
ひっでえソースww
動いてることが奇跡なレベルだな
ダメなプログラムの例ぐらいにはなるんじゃないか?
7年前と変わってないなw
実際に開発したことないんだろうね
上手く言えんけどワナビーっぽさしか感じられん
565 :
488:2013/06/08(土) 01:25:16.87 ID:/nF+uHiP
前にこのスレで質問した人間なんだけれども所謂nowloadingってどうやるんだ?
ローディングにはdxlib関数が必要なわけででもローディング中でも描画は必要なわけで
しかしメインループ以外ではdxlib呼ばないほうがいいと言われ
nowloadingする前にロードすればいいよ
今のDXLibは別スレッドで画像とかロードできるようになってるよ
SetUseASyncLoadFlag()辺りの説明を読め
>>565 本家に非同期読み込み関数の説明あるからそれ読んどけ。
最初の1フレーム目でNowLoadingの画像読み込んで、
NowLoadingを表示している間に他を読み込むってのはダメなのか
ゲームによるが、プリミティブな画像の組み合わせで表現するのも面白いかも
そもそも「メインループ以外でdxlib呼ばない方がいい」ってのはどういう事?
DxInitを行ったスレッド以外でDxLibの関数呼ばないほうがいいってこと
>>571 マルチスレッドなプログラミングしているヤツ以外は関係ない。
574 :
名前は開発中のものです。:2013/06/08(土) 12:14:22.42 ID:LAuZG6bh
>>560 じゃあなんでたびたび2chに出没するんだよ
この構ってちゃんww
あと、そのブログもどうせひと月もたないんだよね?
いい加減に働けよ
35にもなってなにやってるんだよ
direct11に固定機能パイプラインが無い・・・・・
10から無いよ
固定パイプライン無い方がすっきり
10は短命すぎて触ってねーww
ハルシェーダもドメインシェーダも使わないからDirectX10で十分だわ。
ってか定期的にDirectX10/11の話題が振られるのは何故だ。
DirectXを語れるようなスレが無いからだな
DxLibもXPサポート切れるし
ターゲットはD3D_FEATURE_LEVEL_9_3でいいから11にしたりしないかな
それなりにメリットはあるんだけど
>>581 ライブラリぐらい自分で作れよ
DxLibに自分で追加するだけで済むだろう
583 :
名前は開発中のものです。:2013/06/10(月) 10:47:05.92 ID:nUfRfHbk
>>544 丁寧で好感持てた。
プログラムはそれこそ千差万別。
エラーにならない限り、
その時の自分の持てるレベルで説明するのでいいと思う。
特に、見た限り、そのとても丁寧な解説は
一からの初心者を視野に入れたサイトと見た(これも好感持てた)ので
そのプログラムは合理性や高度さよりも、
わかりやすい、基本的な考え方などが重視されていいと思う。
頑張って、初心者がRPGを完成まで導けるような
充実したサイトにしてもらいたい。
コミュ障、僻みに妬み野郎、口先番長などが巣食う2chで宣伝した以上、
たまには罵詈雑言を浴びることも覚悟の上だよね?
だからバカは無視して、
>無言でご覧になって、無言で参考にして、
>無言で立ち去って行くだけのサイトを目指しています
の精神で継続してもらいたい。
がんばれ。今後は無言で応援している。
>>581 DxLibがXPのサポートを切る、って読み違えてしまった。
まあ切ってくれて構わない、いやむしろ切ってくださいお願いしますって感じではあるんだけども
>>583 自画自賛の自演ワロタ
基本から間違ってる上に
複雑なタイトルワーク作るのに無駄プログラム打つバカがいるかってのアホ。
そもそもゲーム講座なのにゲーム部分のプログラムが一つも無いゴミサイト。
さっさと削除しとけ。ネットに間違いだらけのゴミ巻き散らかすなっての。
なんというか惜しいサイトだな。
上手く言えないけど、講座/解説と銘打っちゃってるからかなあ?
自分の製作日記、あるいは技術メモというスタンスなら受け入れられたかもしれん
587 :
名前は開発中のものです。:2013/06/10(月) 12:06:30.30 ID:nUfRfHbk
>>585 自演扱いは聴き捨てならんな。お前の方が迷惑なの気付け。
正義感でも振りかざしてるつもりで、自分に酔ってんのか?w
仮に1000歩譲ってそのサイトの作者より、
お前のほうがオツムのデキが良かっても、
初心者に対し、なにもする気がないお前なんぞより
自分なりに、自分の持てる能力で初心者になにかしら伝えるサイトを
作ろうとしてる
>>544の方が何倍も偉いわ。
どうせお前みたいな心貧しき人間は、普段から
「どうせ別のことに使われるのに募金してる奴はバカだなw)」だの
「目標もって頑張ってても才能が無い奴らは無駄無駄w(自分が諦めたから)」
とか思って生きてんだろ、どーせww
お前のがゴミなんだよ、気付けや。
文句があるなら、そいつより立派で正しいってサイト作ってから言えよ、屑
588 :
名前は開発中のものです。:2013/06/10(月) 12:09:32.69 ID:nUfRfHbk
>>585 お前みたいな人間が世界で一番見苦しくて恥ずかしくて情けない人種だと気付け、ゴミ屑野郎
お前みたいな人間を産んで育てた親も親だろうが、
親のためにさっさと死んどけよ、ゴミ。それがお前に出来る親孝行だぞww
一度の長文でも腹の虫収まらなくて
改めて同じレスに二度目の安価打つって
よっぽど感情高ぶったんだな
また持論の
「単芝を生やすやつは○○」
を裏付ける事例が増えてしまった
わろす
それも完成させることが前提の話ね。
少し前までは別なブログで同じことやってたようで
最後まで完成させることなく一ヶ月周期でブログを作っては消してるみたいだぞ
593 :
名前は開発中のものです。:2013/06/10(月) 12:29:56.26 ID:nUfRfHbk
まあなにをやっても続かない奴は俺も呆れるが、
>>585みたいに努力してる者やこれから努力しようとしてる者を
バカにする屑は許せんな。屑中の屑だからな。
そういう屑共のおかげで現代の日本はダメになってんだよ、とまで
言わせてもらうわ。
kazuki必死だなw
初心相手に自分はスゲーと認めて貰いたい
そんな下を向いたサイトなんぞ役に立つかよw
俺は善意でこれを書いているが
分からんだろうなw
基本的にゲーム製作目的の講座系サイトって、大半が色々と見えてきた初心者が書きたがるよな。
もちろんそうじゃない人も稀にいるが、その場合はもっと淡々としてるか考え方含めて話してたりするので、見てわかるよな。
元々ゲームロジックに関する部分って定型の教科書なんて無いし書きようがないので、
もしも話すことがあるとしたら、それはゲームのビジネスロジック以外の部分について話す事になると思うが、そうなると結局、
「参考にした文献の書き直し」してるだけになっちゃうから、本当に初心者以外の人間だと
「気付きや発見のTips、技術メモ」をブログにまとめる程度になるよな、って感じ。
ちなみに俺もメモ公開してるが、特に宣伝はしてない。
>>586も言っているがこれ解説だとかうたっちゃってるからなぁ
どうみてもプログラム触りたての初心者がドヤ顔で盗んでください^^とか書いてるんだ
色んな事を理解していない上に間違っているようだし敵意を向けられても仕方ないわな
これが小中のガキならまだわからんでもないが、中年のおっさんだし
自演で自画自賛とか…
某サイトが自演臭満々で名前挙げられても、ほぼスルーなのに
別サイトが紹介されると不自然なくらい叩かれる不思議。
上級者がちゃんとした解説・講座サイトを無料で作ってくれればいいのに
現実は初心者サイトの批判するやつしかいない。。。
DXライブラリ置き場があるじゃない
基本掴めばあとは自分で試行錯誤していくもんじゃないの?
601 :
名前は開発中のものです。:2013/06/10(月) 15:17:50.62 ID:nUfRfHbk
>>598 まあ、中途半端な人間ががんばってるの見たら
住人の中の心貧しき人間は僻みと妬みで叩きたいんだろうよw
いやなら見なきゃいいだけなのになw
602 :
名前は開発中のものです。:2013/06/10(月) 15:20:59.17 ID:nUfRfHbk
>>599 そうだよなw自分には必要ないからって叩く。
それこそ、自己中だろっての、アホ丸出しだよな。
>>600 >基本掴めばあとは自分で試行錯誤していくもんじゃないの?
お前の価値観を押し付けんな。
そうじゃ無い奴らだっているんだよ、ボケ
だったら講座という名目でサイト作ってる奴
全員にてめえが「こんなの要らない、削除しろボケ」と言いまわれよ
クソボケが。
どんなサイトでも、ひとりでも喜ぶ奴がいたら
それで需要があるんだよ。
お前が要らないからって否定するな、ゴミ野郎
603 :
名前は開発中のものです。:2013/06/10(月) 15:25:51.62 ID:nUfRfHbk
似たような感じの基地外レベルで噛みついてるバカが
ID:lrzVHnU4、ID:W6r+Z/q6
の単発かよwwww
自演してまで叩きたいんだ?
そんなにあのサイトが気に入らないんだ?w
基地外レベルの嫉妬w
そんな小さい器でな、現実で犯罪犯すなよ?屑w
なにこの必死で自演してる頭のおかしい奴・・・
価値観の押し付けはお互い様に見える現実
しかし、HP紹介してる奴=HPの持ち主なのか?
だったとしたら、愚かすぎるわ
何度も、ここで紹介して叩かれているのに、まだ出すのかよwww
ここには確かに初心者もいるが上級者もいる。
もしかしたら、DXライブラリの開発者もいるかもしれない
そんな所に未完成のゲームの開発日誌乗せても釈迦に説法だろwww
ひょっとして、HP製作者の知り合いが嵐目的のためにやってんじゃないの?
サイト宣伝のために自演して、指摘されたら暴れてスレを荒らすような人間はクズです
608 :
名前は開発中のものです。:2013/06/10(月) 16:48:10.41 ID:nUfRfHbk
>>605 は?こっちのどこが押し付け?
俺は必要な奴がひとりでもいれば、それでいいじゃんって言ってる。
サイトの製作者だって、必要な人が見ればいいってスタンスじゃん。
消せだの、必要ないだの、ほざいてるのは
ただひとりだけだと思うんだが?
お前バカか?
>>606 自演じゃねえつってんじゃん。
サイト製作者をほめたら、バカが自演呼ばわりしたから
個人的に攻撃してるだけ。
ここでは有名なのかしらんが、あのサイト制作者のことは全く知らない。
普通に好感持てたから応援してるってコメントしただけ。
で、俺は個人的に頑張ってる奴を悪く言う屑野郎が嫌いな性質でね、
サイト関係無しに、その屑野郎に付き合ってるだけ。
わ か っ た か ?
>>232で宣伝して叩かれる(ブログは削除済)
>>262で再び自演宣伝(携帯使って自演レス)
>>544で再び宣伝
>>583で再び自演褒め
頭に血が登ると連投が止まらない。
真性のマジキチでしたとさw
いつもの炎上商法だなw
∧_∧
ガラガラ( ^^ ) <これからも僕を応援して下さいね(^^
=〔~∪ ̄ ̄〕
= □――◇ Kazuki
>>606 上級者は未完成の開発日誌見ても生暖かい目で見守るだけでいちいち噛み付かないよ。
レスの内容にボケかゴミかバカしかないんだけど…
小学校高学年でももう少しマシな文章書けるぞ
あかんあかんこの流れはなんや
これならdirect11の話をしてる方がましやんけ
>>608 自演じゃなければ、それはそれで管理者に迷惑かかるぞw
TwitterでDM送るとかにしなされ。
>>608 お前さんがその長文でバカだのなんだの汚い言葉も並べて、自分がいかに悪くないかを押し付けてきてんじゃん
それすらわからないほど興奮してんのか?
スレをレイプすんのもうやめて
つか、お前ら全員うざいから
黙れよ
なんかレスがいっぱい付いているなと思って見てみたら・・・。
619 :
名前は開発中のものです。:2013/06/11(火) 11:26:40.10 ID:El7/2pPV
練習でファミコン版のドラクエもどきを作っているんですが
動く町人たちとプレイヤーの当たり判定で悩んでいます。
最初は町人にめり込んだら元の位置に戻す方法でやっていたんですが
移動先のマスに誰もいないか判定してやる方法に変えたいんです。
ネットを見てるとマップの当たり判定同様に
移動先をif(hairetu[][]==1){進む}といった感じで
2次元配列を覗きながら判定してるケースが多いです。
でも、これって毎時、移動している町人の座標から
2次元配列内に町人の現在値として格納してやるってことですか?
だとすると、マップの当たり判定を格納した2次元配列とは別に、
動くオブジェクトの現在値を格納する2次元配列を用意するということでしょうか?
また、町人の居場所に合わせてリアルタイムに2次元配列の中も変更させて行くはずですが
例えば町人が移動して次の要素に存在を表す1を格納したとして
その町人が移動する前の居場所を表していた要素内の1はどう0(誰もいない)にしてやればいいのでしょう?
町人みんなに座標情報を持たせる
621 :
名前は開発中のものです。:2013/06/11(火) 12:01:50.87 ID:El7/2pPV
座標情報は持たせています。
が、その座標をどう利用すれば
プレイヤーの移動先にその町人がいるか
判断出来ますか?
プレイヤーの座標と町人の座標とを引数とした
判定関数を作ってやる感じですかね?
セルベースなら単純にその座標を参照するだけだと思うけど
前の居場所を表していた要素〜ってのは直前の座標を記憶しておいて
移動できたら直前の座標に0をとかじゃだめなん?
移動ができることを確認した時点で移動先にフラグをたて、移動描画に移る
>動くオブジェクトの現在値を格納する2次元配列を用意するということでしょうか?
そうしておいた方が何かと楽だろうね。
>その町人が移動する前の居場所を表していた要素内の1はどう0(誰もいない)にしてやればいいのでしょう?
難しい事はない。移動処理ルーチンで
(1)現在地に0を代入
(2)村人移動処理
(3)現在地に1を代入
で終わり。あと、1ではなく村人ID値を入れておいたほうがいいと思う。
村人に話しかけたら話す内容違うでしょ?
そのID値によってどのメッセージを表示するか判定するの。
おまえら優しいな。悪いながれを断ち切ろうとしてくれてwww
設計的には、キャラクラスとマップクラスを作って、マップクラスに2キャラと移動方向を引数とした判定メソッドをつくる
アルゴリズム的には、移動した2キャラのxy座標が一致するか判定するだけ
普通キャラクラスの中に町人たちの配列を入れる?
それとも同じクラスの実体を町人の数だけ作る?
>>624 横槍だけど、以前似た方法やってたまたま主人公と村人が交互に入れ替わる動きしてしまったことがあるな。
主→←人で重なった後入れ替わった。
座標の更新のタイミングが悪いと思うから、描画が終わるまで値の更新しないようしたらいいのかな?
普通にアクションゲームの仕組みで作ればいいだけなのでは・・・
座標をマップチップ(キャラ)のサイズで割れば升目に合った当たり判定になるぞ
本家ドラクエもこんな感じの仕組みだと思うぞ
>>626 キャラクラスは1キャラを表す。よって後者
自分が前つくった時は、移動前と移動後のセルを記憶して
キャラ移動中は両方のセルを進入不可にしておくってやっていた
DQ1みたいに1セルづつしか動かない場合じゃないと使えない方法かもだけど
あ、1セルってマップチップ1マス分のことね
もしかしたら自分専用語かもしれないので一応フォロー
632 :
名前は開発中のものです。:2013/06/11(火) 16:55:05.16 ID:El7/2pPV
そうなんです、一応16×16のセル移動させているのですが
なにかのタイミングだかにすり抜けたりします。
それに、移動先を示す場合、
例えば上に進む場合は現在値Y-16、
右に進む場合は現在値X+32といった感じで
示せばいいのでしょうか?
だとすると違和感が。。なぜなら、向こうも変な話、同時に移動しているオブジェクトなので、
移動先の座標をXY座標のピンポイントで調べるのは間違いないが起きる気がします。
違いますか?
描画用の座標とワールド座標は別の変数として扱ってる?
そうしておけばワールド座標に±1すればセル単位で移動させられるし
すでにそのワールド座標が埋まっているなら移動できないようにもできる
何より確認がしやすい
634 :
名前は開発中のものです。:2013/06/11(火) 18:17:19.79 ID:El7/2pPV
ワールド座標?
ってなんですか
とりあえず基本は1キャラずつ動かしていけば貫通は起きないはず。
RPGならそれでいいんじゃないかな、単純なアクションでも基本同じ。
擬似的に物理演算するアクションなら、速度成分イジった後の
移動・当たり判定は全オブジェクト同じタイミングでするんだろうけど
自分も同じようなことをしていて色々悩んでいたんだけど、
ワールド座標はマップ全体のこと
例えば、256*256の大きさのマップならそれら全体で
PCの処理⇒NPCの処理を行って
最終的に描画範囲を切り抜いて表示するようにしたらいいよ
あと、壁とかNPCにめり込む場合
衝突判定だけでミスがあるのではなく、
キー判定でミスがある場合があるよ
例えば、↑だけではめり込まないけど、↑→にしたらめり込むとか
その場合はキー入力の排他処理をかませたらよい
まぁ、自分の経験談だけどねw
がんばって〜
>>634 ピクセルなんかの物理単位を描画用座標だとすると、
自分が管理するマップの論理位置を示す座標を論理座標なんて言うが、
この場合のワールド座標って、多分論理座標の事言うと思う
ワールド座標はゲーム内部での位置座標のことで
DQ1みたいなマップタイル形式の場合で言うなら
map[MAP_WIDTH][MAP_HEIGHT]という2次配列のマップがあったとして
キャラの位置がmap[charaX][charaY]にいる場合には
charaX,charaYがワールド座標になるのかな
これってチップ単位(16dot)で刻む必要ないよねって話なんだが
説明が難しいな…わかりづらかったらすまぬ
>>633 なるほど、ワールド座標か・・・
それはいいことを聞いた
そういうことだったのか
だからRPGは
>>634 まず、マス目の引かれた大きな地図(ジオラマ)の上を住人が歩いている、と仮定しよう。
そこにビデオカメラを持ってきて、その地図の一部を切り取るように映している……という様子を頭に思い浮かべてみてほしい。
この時、地図上の座標と、カメラ(画面)上の座標は別物だよな?
画面の中央が地図上の真ん中とは限らないし、カメラのズームによって縮尺も変わるわけだ。
地図上(全体)の座標を「ワールド座標」、画面上の座標を「スクリーン座標」と呼んだりする。
住人の位置などは、原則としてワールド座標で管理しておいて、
画面表示の時にワールド座標をスクリーン座標に変換(カメラで切り取る)ようにすると、
混乱が少なくなるし、後から色々と応用も効くと良いことずくめ。
つまり>633の言っているのは、住人の移動はワールド座標で±1するだけにして、
表示の際に1マスを16ドット分に拡大して表示すれば良いということ、だと思う。
>>629 なるほど
クラスの配列を作ればいいんですかね
計算で導けるものはどんどん計算して出せばいい
ワールド座標から位置座標(又は描画座標)を計算できるし、
位置座標からワールド座標も計算する事も出来る
これほど自由な手は無い
>>619 私がやるとしたら、マップの1マス分に必要な情報を持った構造体かクラスを二次元配列で用意すると思う。
そいつは
移動可能な地形かどうか
今その地形に何が存在しているか
などの必要な情報を持たせておく。
あとはキャラクターを移動させるときに、それらの変数をチェックして移動可能判定をすればいいんじゃないかと。
あるいは、今その地形に存在しているものがあるかどうかをチェックする関数を持たせてもいい。
この場合は、存在する全町民の座標が自分自身と一致するかどうかをチェックする感じかなぁ。
644 :
名前は開発中のものです。:2013/06/12(水) 10:02:21.57 ID:yXAbaPnF
皆さん、ありがとうございます。
とても勉強になりました。
ひとつだけ質問いいですか?
今回の2次元配列はあくまで、ワールド座標上での各キャラの居場所を保持してる2次元配列で
その利用法はキャラ達の移動先がどうなっていてそれにより進める進めないなどの判定を下す、
ということでした。
これは大変理解出来ました。
では、ここで一部のキャラに大しては重なることが出来、
またそのキャラと重なるとプレイヤーキャラがどうにかなるといったことを考えた場合は
接触判定の処理が必要になると思います。
この接触判定は今回の2次元配列とはまったく別で考えたのでいいですか?
イメージでは、オブジェクト同士が接触したかどうか調べるメソッドを作り、まわす。
そんな感じですよね?
それとも移動先を確認して処理を施すメソッドの中で
それを組み込むこと出来ますか?
向こうも移動してますし、面倒なものになりますよね?
移動先がその特定のキャラならプレイヤーはそのまま重なることができる様に設定してやり、
接触判定は別で作ってた方がいいですよね?
ワールド座標は1マスずつしか変化しないのだから、相手は歩いているというよりも、32座標ずつ瞬間移動しているわけで
アクションゲームのように1ピクセル単位で考える必要性は無いよ
>>644 これまでの経緯を踏まえた上でキャラが重なることを前提とするなら
重なると決めたキャラとかのクラスとか構造体にワールドマップ座標を持たせて、接触判定は別にするべきかな。
そうすると接触判定は2次元マップ配列を使う意味が消えて、
毎回全キャラとの総当たりになってしまうので処理としてはしんどい。
プレイヤーだけ、とかそういう特殊な処理をするキャラが少ないならそれでもいいかも。
重なることがわかっているキャラが多いなら、マップを3次元にして重なるのを表現してもいい。
そうすると接触判定はある2次元座標(たとえば x, y)について重なっている方向(たとえば z)にループしてやればいい。
俺なら、キャラクター構造体(クラス)に、そのキャラが「移動中かどうか」というフラグを付けるかな。
例えば、1マスは32ドットで、1回の移動に16フレームかかるとする。
まず移動状態(キー入力など)になったら、キャラの居るワールド座標を更新。それと同時にこの「移動フラグ」を真にする。
それとは別途に、アニメーション用のカウンタ(あるいは1マス移動にかかるウェイト)を用意しておいて、これに16を代入する。
移動フラグが真なら、このカウンタの値が1につき2ドット分 "表示座標を" ずらす。
カウンタは毎フレーム1ずつ減算して、0になった時点で、移動フラグを偽にする。
こうすることで、内部的には一瞬で隣のマスに移動しているんだけど、
見た目は16フレームかけてゆっくり移動しているようになるはず。
注意点としては、移動フラグが真の間は追加入力を受け付けないようにすること、
表示座標をずらす方向は、キャラクターの向きの逆方向にすること、
当たり判定の類は>630を参考にすること、などがある。
弾幕STG作るときに弾にどのような変数持たせたらだいたいの弾幕は似せられますか?
>>648 前提が曖昧過ぎて答えられないので先にこの質問に答えて
・プログラミング経験はどのくらいか
・絵の動くゲームの処理を具体的にイメージした事はあるか
ちなみになんでこんな確認を返したかと言うと、
単純に考えた時、弾を表す構造体に最低限必要そうに思えるのは座標だけで、
それ以外はどんなロジックでハンドルするかによるから
例えば場合によっては移動方向ベクトルを持つかもしれないし、
場合によっては逆に座標すら持たず、進捗値だけ持たすかもしれない
別の場合にはその弾の動作を管理するクラスインスタンスへのポインタを持つかもしれない
自分の実装次第で答えがいくらでもあるからってこと
昔、BulletMLってあったじゃん。(今もあるのかな?)
あれのパラメータとか参考にできないかな。
>>649 3Dモデル使ったゲームとか作ったことあります
bulletMLを参考にするなら
xy座標 + 向き(角度) + 速度
あたりか
でも肝心なのは状態数より「弾をどう動かすか」の方だと思うぞ
>>587 心配しなくても
そいつがあのサイトを間違いだらけと発言した時点で
こいつが初心者レベル以下であることは
ここの住人たちにはばれてるよ
そのことに気付いていないのは
それを発言したご本人とプログラムに触れて間もない初心者な人だけ
だから誰もそいつの相手はしてない
相手するほどの価値もないという
なので一切相手にしないように
>>647 >俺なら、キャラクター構造体(クラス)に、そのキャラが「移動中かどうか」というフラグを付けるかな。
それではまだ不完全
「どっちの方向に移動中」と「どっちを向いてる」
のフラグを付けた方がいい
1=下方向を向いている
2=右方向を向いている
3=左方向を向いている
4=上方向を向いている
5=下へ移動中
6=右へ移動中
7=左へ移動中
8=上へ移動中
こうすればドラクエのような隊列移動が可能
>>652 それは自分でちゃんと意味わかりながら、自分でロジック考えて書いたか?
であるなら、今上に出てるヒントから察して何がわからないのか具体的に質問してくれ
「まったく経験無いんです」ならみんな前提知識から話すかもしれないが、
そうでないなら具体的に頼む
>>654 忘れた頃に本人乙
生活保護費で食う焼肉は美味かったか?
無職のニートで身体を動かさないでいるから僅かばかりの己の引っ越し程度で
肉体が筋肉痛で悲鳴をあげる羽目になるんだぞ
これに懲りたらくだらんブログ作りなんかやめて
心を入れ換えて少しは働いて税金を納めような
ドラクエ10のような隊列じゃない仲間パーティの移動は少し難しい
(↑こっち方向へ移動するとする)
1
2 3
4
例えば、こういう位置関係に隊列を組んで
先頭の主人公を上方向に移動させた場合、
全員を上方向に移動させればいいのだが、
2と3の目の前が壁だった場合、
2は右に避けたり、3は左に避けないといけない
こういったプログラムを組む場合に
どっち方向に進んでいるのか?というフラグが必要
それがなければ、2と3は、どっちに避ければいいのかの判断が出来ない
まあ実際動いてるのは背景の方で
主人公たちは画面中央で足ふみしているだけなのですがね
>>647 5=下へ移動中
6=右へ移動中
7=左へ移動中
8=上へ移動中
この5〜8のフラグ中にワールド座標をその方向に更新すればいいでしょう
もちろん、移動が完了したら1〜4のフラグに戻す必要がある
>>655 移動中の座標から計算できるので不要
ちなみに隊列の実現はそんなふうにしない
>>648 弾幕に必要な変数は、画像、x座標、y座標、辺り判定の4つ
特殊演出で弾幕を途中で消したり表示せたり、
自機からの弾で撃ち落とせるようにしたいなら
表示とダメージ用の変数も追加して変数は7つで十分でしょう
こんな簡単な質問に即答できずに
質問に質問で返すような
>>649など相手にしなくてよい
ID・タイプ:id, type
位置:posx,posy
速度:vecx,vecy
加速度:accx,accy
発射位置:orix,oriy
スケール:scalex, scaley
スケール速度:dscalex, dscaley
回転:rota
回転速度:drota
画像:imghandle
カウント:cnt
汎用フラグ:flag
判定用半径:hitradius
親:*parent
親弾:*parentbullet
とりあえず簡単なもの作るならこんな所か
664 :
662:2013/06/12(水) 21:03:14.05 ID:SLtOhCog
間違えた
変数は6つだw
説明する前に相手のレベルを知りたいと思う事は普通にあるだろ。
小学生に中学生向けの解説してもしょうがないし
中学生に小学生向けの解説してもしょうがない。
いまどき弾幕つったら加減速や誘導くらいは想定するもんじゃねーの
7つで充分とかインベーダーじゃないんだから
>>662 悪いが足らない
なぜか考えたらすぐわかる
はぁ・・・
ああ、矢印のような弾幕の場合は
回転も必要だな
弾幕と聞いて、思わず円形の弾幕だけを連想してしまった
失礼w
まあ弾幕に使用する変数は自分がやりたい演出によって
いくらでも増えるので、一概に「これだけだ」とは言い切れない
円形の弾幕をただ単に飛ばすだけなら
回転なんて必要ないし、3Dで作るならz座標も必要になってくる
670 :
名前は開発中のものです。:2013/06/12(水) 21:11:57.55 ID:itLeWjGs
二次元配列に、現在値を記録するっていうのを
実装しようとしているのですが
マス目にわけた二次元配列でどうすれば行列を割り出せますか?
例えば、存在している=1、存在していない=0とします。
今自分がいる場所を割り当てた行列に1を刻みたいわけですが
(hairetu[][]=1;をさせたい)、
[][]の中はどういう風に書けばいいでしょうか
hairetu[posY/16][posX/16]=1;でいけますか?
数えてみたらパラメータの数が60を超えていたけど特に問題ない
親子ツリーやるなら親との相対距離x,y、もしくは相対距離と角度r,θの
パラメータ持たせると便利です、触手ウネウネできるよ
>>656 弾を撃つ関数で属性決めながら撃って
コントロールする関数で属性に応じて弾の進行方向とかを弄ればいい感じですか?
個人的には弾データ構造体の中に自分更新用のクラスか関数へのポインタ載せちゃう
>>667 そうか、それは失礼した
弾幕STGは専門外だから
あまり深く考えたことがないんだよ(超無責任w)
じっくり考えれば、もう少し増えるかも知れないな
だが、質問の内容を見れば、これぐらいの回答で十分だと思う
もっと正確な答えが必要なら
>>649のように細かく聞き返せばいいが
>・プログラミング経験はどのくらいか
>・絵の動くゲームの処理を具体的にイメージした事はあるか
この2つの質問は関係ないだろう
こんな情報を聞き出したところで何がどういう判断の答えに繋がるのだ
ただ単に質問者をバカにしているようにしか見えない
どうせ質問をするなら2Dなのか3Dなのか
どんな感じの弾幕演出(東方シリーズのどの作品のどのステージの弾幕なのか)
を考えているのかを聞き出すぐらいでいいだろう
>>670 ACTの探索済みマップかな?
いけるだろ
>>673 ええ、頑張ってください
また何かわからないことがありましたら
遠慮なく質問してきてください
そのために存在しているスレですし…。
あと、次に質問する時は、
もう少し細かい情報が欲しいところです
どんな弾幕STGをDXライブラリで作ろうとしていて、
何が出来なくて困ってるのかなど
応援してます
プレイヤー位置はマップのセル単位を直に持って
描画するときにposX*16,posX*16とやったほうが
わかりやすいと思うんだが、どうだろか
>>678 無理すんな=完成させるな
に聞こえるのだが…。
ここは無理してでも頑張って悩んで悩みぬいて
ブレイクスルーを起こして完成させるべき
本人が望んでいるのは、無理しないで諦めることではなく
「弾幕STGを完成させたい」ではないのかい?
>>675 そもそも
>>648みたいな質問が出てくるってことは、
プログラムに対してまったくの無知ってこと
プログラムがある程度分かる人なら考えることなんて何もない
似せるってことは元があるものを見たままをコードに落とすだけの単純作業
だから
>>649はあえてそういう質問をしたんだろ
そもそもここはゲーム制作に関するくだらない質問をするためのスレじゃない
DXライブラリに関係ない質問、プログラミング入門に関する質問をされても困る
いくらか前に初歩的な算数に関する質問してるやつまでいたが…
>>680 うーん。どうだろうね
そこはもっとじっくり悩みたいところだが、
俺だったら移動用の関数でも作って
キャラを移動させる時は、その関数を引っ張ってきて流用する
例えば、32x32サイズ主人公用であれば
上方向キーが押されたら、
移動フラグに8(上へ移動中)を代入して
32フレーム間、ワールド座標のy座標に+1し続けて
さらに町人全員にワールド座標を関連づけておく
つまり、背景も下に移動するが町人も全員、y座標を+1して同時に下に移動
そして32フレーム後に移動フラグに4(上方向を向いている)をぶち込む
>>683 ワールドの座標だっつってんのに
なんで主人公が動いただけでNPCまで移動に巻き込まれないといかんのだ
あと向きと移動状態は別のロジックなんだから別で管理しなさい
俺ならセル上の座標もワールド座標も両方持つけどなぁ
>>683 移動するだけで全NPCの座標変えるってどういう状況…?
>>682 いえ、だとしても
質問者様には応援をしてあげてください
嫌なら無理に返事を返す必要もありません
一番ダメなパターンは質問者が気に入らないからと言って
>>649のような意地悪な返事を返すことです
質問には回答で返事を返す。それが鉄則でしょう。
質問者の質問内容が理由で答えを返せないなら
黙っておけばいいだけの話です
せっかく、DXライブラリプログラミングに興味を持って頂いて
遠路はるばる当スレにお越しいただいたのですから
俺はそんな若い芽を摘んでしまうのではなく
そんな彼の興味を伸ばしてあげたいor応援してあげたい
場合によっては一緒に悩んで答えを導きだしてあげたい
それは自分自身の成長にもつながるからです
たぶん、専門外なのでは
いや、単純にposX,posYの値が0になったらこわいなーって思っただけなんだ
なんかすまん…
ID:SLtOhCog=JET++=
>>544 こいつプログラムまともに組んだことのないマジキチだからNGにしとけ
相手にするとこいつの駄文レスでスレが流れる。
>>689 どっちも0になっても、hairetu[0][0]=1 は特に問題ない気が。
でも自分も
>>680の方がわかりやすいと思う
>>685 え?マジですか?
本気でそれ言ってるのですか?冗談ですよね?
背景の座標だけ動かしてNPCの座標を動かさないと
NPCの座標だけ置いてけぼりを食らうだろう
例えばNPCがドアの前に立ってるとする
背景がy座標に+100移動したとする
NPCのy座標も同時に+100移動させないと、
NPCだけ壁をすり抜けて、元の位置の座標のままになるだろ
だから、NPCには本来の座標の他に、ワールド座標も関連付けておかないといけない
(x+ix+wx , y+iy+wy )
引数で書いたらこんな感じだ
ixとiyは移動する時に値を入れる変数
wxとwyは、ワールド座標のx座標とy座標
wxとwyは、全てのNPCの座標と、背景の座標にも入っている
ああ、またkazukiが荒らしてるのか
こいつ人間との会話に興味がなくなったとか中二病発症したんじゃなかったのかw
つまり、ジョイパッドからの上下左右ボタンで
主人公を動かし、背景が移動させる場合は、
wx変数とwy変数に値を入れることになる
そのことにより、主人公の座標は画面中央のままだが、
背景とNPCだけが背景と共に画面の中に入ってくることになる
例えば主人公を上へ移動させる時は、
主人公の座標は画面中央のままで
背景とNPCの座標のy座標だけプラスさせて
やがて画面の上側から背景の下スクロールと共に
NPCも画面の上側から下へ移動してくる
こんなの常識だろう
>>685 お前はもうプログラマーを名乗るのを止めたほうがいい
お前のプログラミングスキルは、初心者以下だ
いや、下手すると入門者以下かもしれん
正直、この発言にはビックリしたよ
DrawGraphをフックしてカメラの座標を加算するのがただしい
個々のオブジェクトはdraw回ってきた時点でカメラ範囲でカリング
>>680 アニメーションをかんがえるとあまりよくない
まあ自前で両方もっておくのはかしこい
>>694 えーと、ワールド座標に話だよな?
たとえば、野球中継でバッターが打ったボールをカメラが追いかけると、
ボールはカメラに映ったままだが背景は流れるよな。
背景に映る観客も背景と同様に流れるが、別に観客が動いているわけではない。
動いてるのはあくまで「カメラ」だ。
∧_∧
ガラガラ( ^^ ) <これからも僕を応援して下さいね(^^
=〔~∪ ̄ ̄〕
= □――◇ Kazuki
>>697 それを聞いてお前のスキルが理解できた
お前は2Dゲームにおける座標を理解していない
2Dゲームは、画面内に映ってる領域が整数座標
600x480解像度の場合は、
画面の一番左上は、x座標は0、y座標は0
そこから上はy座標はマイナス、そこから左はx座標はマイナス
そして、画面の一番右下の地点が
x座標は600、y座標は480だ
これが座標の基本。
RPGのように主人公の移動によって画面がスクロールしたり
それと共にNPCが画面内に入ってくるのは、
この(x=0,y=0〜x=600,y=480)の中に入れることなんだよ
そしてワールド座標とは、この(x=0,y=0〜x=600,y=480)の中に
画像を入れることを意味する。
俺は優しいから解説までしてあげたが、もういい。
これ以上は相手にできんわ
>>687 いつからお前がこのスレの主になったんだよ
自分専用のスレでも立ててこい
後コテハン付けろ、みんなNG入れやすいから
カメラの概念知らないようなやつが
無責任な回答投げたら質問者様(笑)に失礼
>>701 いや、むしろお前がコテ付けてくれ
前も関係ない人を自演扱いして
本当に無関係な人を怒らせて場を荒らしたよな。お前は。
後で見たがお前の対応は最悪だったね
あれだったら相手が怒るのも無理ない
無根拠で自演扱いして罵って
自演じゃないと否定されても、一言も謝らないで言い訳ばかりしてるしよ
ああいう場合は、事実はどうであれ勝手に自演だと決めつけて
相手から自演じゃないと言われているんだから、
第一声は「失礼しました」だろ。
その一言を述べてから、本当に自演じゃないかどうかの検証にあたるべき
今からでも遅くないから
お前が勝手に自演だと決めつけて怒らせた
>>587に謝っておきなさい
人として人間として
失礼なことをしたら謝るのは常識です
本当に荒らしだなぁ
こいつはスルーすればいいかというとそうでもないんだよね
自分語り加えて延々長レスし始める
スクリーン座標とワールド座標の違いも理解できない自称上級者(爆笑)
何が間違っているか丁寧に説明してもご覧の通り理解できないからレスするだけ無駄だしなー
706 :
名前は開発中のものです。:2013/06/12(水) 23:19:50.28 ID:AibwtTsS
プログラマってなんでsoftya系多いの?
管理人さん見習えよ
ワールド座標って普通上限も下限も無くないか
ローカル座標(スクリーン座標?モデル座標?)と間違えてね?
キャラの持ってるパラメータに値を代入するって意味の「動かす」とかの言葉も
勘違いされて描画時の座標のこととごっちゃにされてるみたいだし
もう最初から噛み合ってないよね
朝鮮人と話が噛み合うわけないだろ
まあまともにゲーム作ってれば640*480を600*480にまちがえることもないね
こいつのブログ本当にすごいよw
「C++の特性を生かしたプログラミング」って記事で永遠C言語の解説をして
「C++ではグローバル変数を大量に使います」とか書いてたので突っ込んでやったら
DXライブラリのヘッダーファイルで大量の関数のプロトタイプが定義されてるのを見て
「ほら、大量にグローバル変数が大量に使われています。カッコいいとかカッコ悪いとか、
そういう判断で、無理にC++の命令(Classとか)だけを使うのはあまりにも幼稚な考え方です。」
とか言ってるレベルだからなw
しかも1行のプロトタイプを関数本体を勘違いして
LoadGraph(const TCHAR *FileName, int NotUse3DFlag = FALSE ) ;
これが LoadGraph 関数の全てのコードだと思ってやがるからなw
そしてオチがこれ↓
>後ろの「int NotUse3DFlag = FALSE 」という引数は、
>int型の関数としてNotUse3DFlagで、
>画像ファイルからグラフィックハンドルを作成しています。
すごい自信だ…
>>705 じゃあお前をスルーするわw
コテつけろや。はよ
というか、スレをあんまり加熱させるのは良くないから
また引っ込むことにするよ
それに、こういうところ(2ch)で発言するのは
あんまり好きくないからね
あと上の人は本当に自演じゃないからな
>>587の名誉のためにも、それだけは述べておく
俺が本物のJET++だ
あと、俺は自演は死んでもやらん
では、勝手にお開きとさせていただこう
俺抜きで、また楽しんでくれ
↓↓何事もなかったかのようにスレ開始↓↓
>>714 いやあんたがコテつたほうがいいと思うよ
継続的にいるっぽいからそういう人をパッと固有名で呼べる方が円滑
自演しないならしないでコテつけるか、せめて名前書いてくれ
ちょっと噛みつかれて指摘されても、理解しようとしない人に指摘するのは時間とレスの無駄や
もしかして SLtOhCog は、ファミコン黎明期から(直接じゃなくても)開発に携わってたって自称してた人じゃないの?
718 :
名前は開発中のものです。:2013/06/13(木) 00:11:16.64 ID:RfR2r6bs
延々を永遠って言っちゃう人って…
>640>697あたりが全体の一部をカメラで切り取るイメージなら、
>700は、例えば舞台の上で、登場人物や背景、草木のオブジェクトなどが動いているイメージだな。
もちろんどちらも正しいし、どちらが分かりやすいかは人によるのかも。
ソースコードに直すと、大して変わらないことも多いしw
>>715 いや、むしろ逆
俺はたまにしか、このスレには顔を出さない
存在そのものを忘れていたぐらい
あと一度離れると当分戻ってこない
そんなに興味ないんですよ2chそのものが
上で悪態ついている人がこのスレに常に常駐して
初心者をカモにしてバカにしたりして楽しんでいる
ワールド座標について、どこよりも分かり易い解説をして上げてるのに
それを分かろうともせず言い訳ばかり
まあ、ワールド座標については、そのうち解説サイトの方で
もっと詳しく解説するからお楽しみに。
動いているところを見せてあげるよ
一応、宣伝しておく
RPG開発 for Windows8 / 64bit
〜C++ with DXライブラリ ゲームプログラミング〜
http://jetrpg.publog.jp/ じゃあ、もうこれぐらいにしてくれ
もう俺には話しかけないでくれ
このキチガイアク禁にできないのかな。
真に受ける人がいるかもしれないから一応言っておくけど
このブログの解説は基本的なところから結構間違いだらけ
参考にする人がいるなら止めないけど気をつけてねん
724 :
名前は開発中のものです。:2013/06/13(木) 00:29:06.58 ID:11zUjLD+
>>722 因みにこの男は、DXLibはレベル低いDirectX使いこなすって大口叩いていたんだよな
2010年の3Dゲーム開発プロジェクトの時だけど
>>723 >間違いだらけ
だから、そういうことを口にするなら
その根拠を示さないと誰もお前の発言など聞かないのよ
「だらけ」という言葉を持ち出すからには、2つや3つではない
数えきれない間違いがあるという意味になる
で、本当なのかどうかを確かめに行くと
間違いなど1つもないことが判明した時に、
それを間違いと言ってるお前のスキルが低レベルということになる
「こいつ間違いだらけって言ってるけど、何言ってるの?」と、
入門者や初心者は騙せても、それ以上のプログラマーは騙せないよ
だから、お前は相手されないんだよ。誰からも
そして、お前はそのこと(誰にも相手にされていない)を未だに気付いていない
726 :
名前は開発中のものです。:2013/06/13(木) 00:36:53.90 ID:jll58XOC
kazukiおつ
やっぱりこの分だとコテ付けてもらったほうがいいよね
じゃあとりあえず711あたりのやつで
頑なにワールド座標とか既存の用語使わずに独自のJET座標系ですとでも言えば何も言うことないのに
しかも現在までに解説している内容というのは、
初歩の初歩レベル
DXライブラリの簡単な関数を使って
初心者でも理解出来る簡単なC++のC言語の方の命令だけを組んでいる
そんな初歩のプログラムを見て「間違い」との判断を下すお前は、
つまり、初心者以下ということになるわけだ
実際、現在までに使用しているC言語の命令は、
if文とwhileリープ命令ぐらい
あとは、=などの代入命令とか、&& とか == などの比較演算子などの
初歩のC言語命令だけであり、
その命令に、グローバル変数とローカル変数を使って
DXライブラリ関数を扱っているだけ
こんなの間違いようがない
それを「間違い」と言ってしまう理由は、
こいつの理解が追い付いていないか、
見たこともない珍しいソース(ifやwhileを使ったプログラム)に驚いているだけ
ハッキリ言う。ifやwhileを使ったプログラムを見たこともないこいつは
初心者以下であることは間違いない
>>720が叩かれてる理由が分からんのだけど客観的に教えて
他のなんちゃってサイトと違って原因から何故そうなるのかまで解説してて参考になるから困る
>>725 ブログさらっと読んできたけど
この人明らかに解った上で悪意を持って初心者騙すために嘘書いてるだろ
モスバーガーのきれいな食べ方のスレみたいなやつだよ
失礼。
whileリープではなく、whileループだな
ただのタイプミスです
要するに俺から言わせると
こんな初歩レベルのソースを「間違いだ」と断言するこいつのスキルは
相当低いと思う
C言語のプログラムを見たこともないぐらいのレベルではないかと思う
嘘だと思うなら、俺の解説サイトに来て
ソースコードを見て頂戴
初心者でも全然理解できる内容です。
DXライブラリ関数を使っているので、その先は分からないかも知れないが
C言語の命令の使用しているところは、
そんなに難しいソースではないことがわかるだろう
別に俺がコテつけて欲しいってのは
あんたが間違いばら撒いてるか正しいのかとは別問題なんだけどなぁw
737 :
名前は開発中のものです。:2013/06/13(木) 00:53:09.02 ID:11zUjLD+
kazukiって奴、3DRPG挫折した後、素晴らしい経歴を辿っていったよな
・2010年冬に上京してホームレスになって、野垂れ死に寸前になって緊急避難施設に入って食べ物にありつく
・の後生活保護貰いながら、日雇いのバイトするが2,3回で辞める、
・2011年夏にはナマポ生活満喫しながらツクールでの製作に励む、しかも夏休みとるとか言い出す始末
・2012年には漫画家目指すと言いつつニコ生放送し始めるが、ナマポ非難に圧倒されて就活する決意をして職業訓練に行くが一ヶ月でギブアップ
・その後は就活あきらめてエミュと違法ロムでゲーム三昧、しかもそれをニコ生で垂れ流し
・それからは、またツクールにはまったり、OS開発すると言い出したりで、今のC++ゲーム開発に至る
こんな経歴並みの人間には出来ないよな
kazukiって誰よ?
>>733 >嘘書いてるだろ
もう、その発言がお前のレベルを全て物語っている
じゃあ、あのソースコードはお前にとっては嘘だと思ったのですな?
つまり、自分でビルドするまでコンパイルされるかどうかも
見抜けない程度のレベルというわけですな?
ちなみに俺なら
ビルドをして自分で確かめなくても
ソースコードを見るだけで正常に実行されるどうかも分かるよ
つまり嘘を書いてるかどうかの判断も出来る
あの程度のコードならな
>>739 「ブログのコードは動かない」とは誰も言ってないんだがな
「間違い」というのは開発方法とか解説の話だ
あの程度のアニメーションにグローバル変数を多用して
ifで分岐しまくってハードコーディングするとか今時誰がやってるんだよ?
>ifで分岐しまくってハードコーディングするとか今時誰がやってるんだよ?
……あ、ごめん……
>>723 じゃあ具体的に聞こう
光輝きながら画像を表示させる
ttp://jetrpg.publog.jp/archives/29118152.html この記事を見ると
現在までの最新のコードである
「Header.h」「Global.cpp」「kidou.cpp」「Opning.cpp」
の3つのcppファイルと1つのhファイルの内容を見ることが出来る
では、具体的に聞こう
これらのソースのどこが珍しい
どこが理解できない、どこが間違っていると判断した
たくさんのプログラマーが見守る中で
是非とも君の見解を述べて頂きたい
その上でお前が口にした「間違い」という言葉の信ぴょう性を
ここに集まるプロのプログラマーたちに判断してもらおうではないですか
俺も昔はif文いっぱい使ってて見づらかったわ〜
継承の使い方を知ってからはスッキリ
745 :
名前は開発中のものです。:2013/06/13(木) 01:14:12.21 ID:11zUjLD+
>>738 2010に千堂☆和樹と名乗り、3D同人ゲーム開発を目指した男
実力無いくせに盗作行為やハッタリでニコ動リスナーを誤魔化し、協力者を集めゲーム会社設立をもくろんだ
ハラグーロ(げんしけん)みたいに他人の褌で相撲取ろうとする似非同人作家の典型
現在ナマポ生活の有り余る自由時間と創作時間を満喫中
>>741 >「間違い」というのは開発方法とか解説の話だ
>あの程度のアニメーションにグローバル変数を多用して
>ifで分岐しまくってハードコーディングするとか今時誰がやってるんだよ?
もっと具体的にお願いします
つまり、if文ということはOping.cppのことを指しているというわけですな?
では、君ならどう組み替える
あと「今時誰が…」は間違いとは言わない
>>740 このkazukiって奴とこのスレとどんな関係があるの?
自称上級者ID:SLtOhCog ID:VzJlkyjWがアップロードしてたゲームのOP動画晒しておくね
http://youtu.be/zTKY0jCN3zY 曲はフリー素材を「自分で作曲した」と嘘言って作曲者からクレームつけられたが無視。
3Dモデルはメタセコイアに最初から入ってるサンプルモデル
シューティングゲーム作ると豪語して、途中で投げ出してサイトごと削除してトンズラ
笑えるよ
>>741 >開発方法とか解説の話だ
では、それを述べてもらおう
「間違い」の検証なので誤解のないように
750 :
名前は開発中のものです。:2013/06/13(木) 01:19:45.45 ID:11zUjLD+
>>747 鈍いねえ
要は、長文連投しまくりのJET++なる人物(ID SLtOhCog,VzJlkyjW)とkazukiは同一人物ってこと
もうバレバレよ
やれやれ… 指摘しても曲解されてほら俺の方が正しかったとか言って終わりだろうが
しゃーねーなー
まずグローバル変数使いすぎ
グローバル変数使ったらアニメーションが終わってもメモリに残り続けるだろ?
ここはグローバル無しで実装するべきだ
それから変数名に a とか tt とか使いすぎ
命名規則でも、広範囲にわたって a とか tt とか使うコードは禁止されてるはず
あと、インデントがおかしい
while の中は一段下げだろ?
なんでこんな素人の添削をやらんといかんのだ…
>>736 >単純に説明があっちこっち間違ってるし、コードを見てもあっちこっちひどい
>普通なら30行で書けるところを200行ぐらい使って無駄な方法で組んでたり
言葉を述べるなら主語を述べろ
つまり、これは俺の解説サイトのことを指してるんだろう?
だったら、主語を付け加えてくれ、分かり難い
で、「あっちこっち間違ってるし」とはどこを指す
「コードを見てもあっちこっちひどい」これは
具体的にコードを指してるわけだが、
そのコードが「あっちこっちひどい」なのか
ハッキリ述べていただこうか
あと60とか240とかっていう数字は制御に関係ないコードだろ?
制御とムービーのコードが同じところに混在してて読みにくい
そういうの細かいことをKidouなんていうメインコードには普通は入れん
できればプログラムがわからないムービー担当がいじれるように
アニメーションのところだけ外部ファイルにすることが多いけどな
Opningとかrogoとか何とかしようぜ
辞書引くくらいできなかったのか
お前のサイトのコードがあっちこっちひどい、であってるよ
>>744 具体的にどんな感じでやってる?
自分は単純なアニメーション(ループアニメ等)なら配列、それより少し複雑になったらifで条件分岐でやってる。
もっと複雑になったら、そこだけクラスに切り分けることも考えなくはないけど、個人レベルだからかそこまでやったことはないなあ。
大昔に一度、外部ファイル読み込みに対応したアニメーションクラスを造ろうとしたことはあるけど、
あれ結局どうなったんだっけなあ……
757 :
名前は開発中のものです。:2013/06/13(木) 01:28:47.36 ID:11zUjLD+
あと、どうしてもプログラムでアニメーションしたいとしても
ifで大量に分岐してiとaniをいじるのは無駄だらけだ
一対一対応する (i, ani) テーブルを作ってまとめてしまえよ
そうしたら制御部でif分岐しまくらなくても1行で書けるだろ?
>>751 >グローバル変数使ったらアニメーションが終わってもメモリに残り続けるだろ?
DXライブラリには、DeleteGraph関数があります。
ちなみにこれはメモリに入れた画像をデリートする関数
すでに解説済みです
あと「すべき」は間違いとは言わない
>命名規則でも、広範囲にわたって a とか tt とか使うコードは禁止されてるはず
「禁止されてるはず」という曖昧な表現の定義をお願いします
ここは「禁止されています」と断言してください
断言しないと間違いとは言えません
>あと、インデントがおかしい
C言語およびC++では、インデントはプログラムには影響されません
インデントはプログラマーの好みでソースを見やすくするためのものですので
「間違い」とはいいません
C++の特性を生かした開発を提案->特性でもなんでもない
NowLoading演出案->単なる演出と言い切ってるバカ。普通はスレッドを使う
初期化関数を作成->よいこはこういうグローバル変数に頼らないように
40,50,60の間の法則->わかりにくい状態遷移をしてはいけないという見本。ていうかクラス使え
光輝きながら画像を表示させる->上に同じ
C++の型とは->間違いがある
returnとは->そう思うんならそうだろう。お名前の中ではな
DXライブラリの画像の秘密->同上
第一こいつの解説は昔から全部オープニングやらロゴやらそんなんばっかり。
肝心のゲームの核心部分がない。初心者にとって知りたいのはそこじゃないはず。
大量にキャラを動かしたいとか、アイテム管理はどうすんの?あたり判定は?
などなど、そういう部分のはず。
まぁだいたいこいつが理解してない並列処理に行く前に店じまいコースだけどw
ほ〜ら、予想通り屁理屈来た
>では、具体的に聞こう
>これらのソースのどこが珍しい
と聞かれたから普通はしない珍しいところを答えたのに
「プログラムには影響されません」って答えるのは論理のすり替えだぞ
>>758 >ifで大量に分岐してiとaniをいじるのは無駄だらけだ
では、君ならどういうコードを書く?
ちょっと、そのコードを書いてみてくれ
>一対一対応する (i, ani) テーブルを作ってまとめてしまえよ
>そうしたら制御部でif分岐しまくらなくても1行で書けるだろ?
それはあなたの要望であって「間違い」には当たらない
まぁ一人で書き散らす分には十分かもな
764 :
名前は開発中のものです。:2013/06/13(木) 01:34:52.37 ID:11zUjLD+
757の続き
更に詳細を言うとkazuki君は
int a = 1;
a + 1;
で aの値が2に加算されていないprintfで出力してもaの値が1のままだったようで
理由がわからなくて教えて君状態だった
defineもアホな思い込みしてたしなw
幾ら教えても理解せず、あんときは流石にワラタ
>>756 if文の文字だけ見てそういうレスしたけどアニメーションだったら俺もif文でやるかもしれない…
>>760 >C++の特性を生かした開発を提案->特性でもなんでもない
C++の特性を生かした開発を提案したいと言ってるだけであり、
記事の内容自体はC++は関係ない
>初期化関数を作成->よいこはこういうグローバル変数に頼らないように
これは解説のための演出の一つである
グローバル変数を使っているのは
まずはC言語のプログラムに触れるためである。
そして、いかにC言語が不便なのかを理解してもらってから
タイトル画面以降からは、C++に切り替えて解説していく予定
「こういうのを使わなくてもC++では、こういうのがあります」というような
>40,50,60の間の法則->わかりにくい状態遷移をしてはいけないという見本。ていうかクラス使え
40フレーム、50フレーム、60フレームの間は、ゲーム演出の間の取り方の解説であり
これ自体は「間違い」ではない。
人によっては55フレームの間がバッチリだ!と言う人もいるだろう
それを間違いと断言するのはあまりにも乱暴
あと、間とクラスは関係ない
解説サイトが間違いかどうか疑問持った人がいたから
あえてちょっとだけやり取り見てもらったけどちょっとスレチが激しいな
相手するのはそろそろやめといた方がいい?
769 :
697:2013/06/13(木) 01:46:16.38 ID:2LOEAVnI
>>700 えーとな、ワールド座標の話な。
RPGのような2Dマップで、一番左上が(0,0)として、まぁ右下はどうでもいいから無限大だとするよな?
主人公のワールド座標が (x1,y1) で、カメラのワールド座標が(cx,cy)とする。
この時主人公の表示座標は( x1-cx , y1-cy ) であらわす事ができるのは理解できる?
例えば主人公が( 1000 , 1500 ) の位置で、カメラが( 100 , 100 ) だと表示は( 900 , 1400 ) だから画面外になってしまうが
カメラが ( 900 , 1400 ) の位置に移動すれば ( 100 , 100 )になって画面に主人公が出てくる。
NPCも同様の表示方式でやっておけば、主人公の移動にあわせてカメラも移動させるだけで
NPCを個別で移動させる必要はないわけ。
なんだ結局、ブログ宣伝に来てた本人の自演でビンゴだったのか
ちょっと気味悪いな
>>760 >光輝きながら画像を表示させる->上に同じ
「クラス使え」の意味であるなら
クラスを使わないからと言って間違いとは言わない
>C++の型とは->間違いがある
具体的によろしく
>returnとは->そう思うんならそうだろう。お名前の中ではな
具体的にお願いします
>DXライブラリの画像の秘密->同上
意味がわかりませ
>>760 >第一こいつの解説は昔から全部オープニングやらロゴやらそんなんばっかり。
>肝心のゲームの核心部分がない。初心者にとって知りたいのはそこじゃないはず。
記事のタイトルだけに注目してくれ、
そういうことが出来るようになっている
例
・画像の縮小表示アニメーション
・画像にアンチエイリアスを施す
・トランジションとアンチエイリアスと縮小アニメを同時に
・光輝きながら画像を表示させる
これはゲーム本編でも使う技術であり
知らない間に画像を扱うプログラムは、ほぼできるようになっている
よし、俺はとりあえず解説サイト間違いだらけに疑問を持った人へはレスするが
永遠に屁理屈並べられてスレが荒れるだけだからJET++へのレスをやめる
まだサイト間違いだらけというのに疑問を持ってる人がいたら何でも質問どうぞ
C言語かどうかとグローバル変数使うかどうかは関係なくね
じゃあ演出ならプログラム関係ないじゃんw
プログラムの解説サイトと思ってたけど違うんだーへー
状態遷移とクラスは関係あるんだなこれがw
おまえにゃ理解できんだろうがw
>>760 >大量にキャラを動かしたいとか、アイテム管理はどうすんの?あたり判定は?
>などなど、そういう部分のはず。
そこだけ作ってもゲームは完成しない
お前が開発するゲームには、タイトル画面も起動画面もナシか
どういうゲームだ
まずは、起動画面から開発しタイトル画面も開発し
それから本編だろう
あと、それらの開発は、本編を作る段階で開発していくことになる
そういうのは「間違い」とはいわない
28825670.html
>C++プログラムでは、この「WinMain」を必ず書くことになります
→Windowsプログラミングの場合でもエントリポイントがmainであってもいい
WINAPIのところはアプリケーションがWindowsAPIを使うかどうかには関係ない
>ifの引数に「DxLib_Init()」を
→引数と呼ぶのは誤り
28905365.html
>このコードの意味は、まず、int型の容量をメモリに確保することを宣言しています
WinMain関数の定義部であって宣言と呼ばない
他にもたくさん細かな用語間違いがありますので初心者の方が参考にするのは結構マズいかと。
>>774 そうだね、普通はそもそもC言語でもグローバル変数はできるだけ使わない
C言語の講座でもグローバル変数を多用する例を初心者の題材にしてる時点で問題
Kazukiの同人3DRPG制作【第三話】
てっゆうスレがこの人のプロジェクトスレッドなんだろ
なんでそっちでやんないの
細かいところ突っ込んでも本人が理解してないから
屁理屈かえってくるだけだよw
781 :
名前は開発中のものです。:2013/06/13(木) 01:56:19.09 ID:11zUjLD+
>>773 >永遠に屁理屈並べられてスレが荒れるだけだからJET++へのレスをやめる
だからそうしたほうがいいよって、先程から申してる
JET++はプログラミング全然わからない似非作家だから
因みに漫画家目指してたのに絵のスキルも無い
屁理屈だけじゃなくて嘘吐きも激しいから、自分の経歴とか経験とか
実態はナマポで怠け放題で無能な人間です
ゲームを作る時はタイトル画面から作りません。
シーンとしてはろご、タイトル等用意はしておくが、基本的にスルーです。
ゲーム本編に使用する機能を各担当者が作成(クラス等で)し結合していきます!
タイトルなんて正直後半に作ります
>>768 ネットで有名なキチガイ
したらばのツクール板では散々荒して出入り禁止
35才、無職、生活保護不正受給者
人との会話が全く無いから、批判でもレス付ければ本人が喜んで長文レスが続く
>>773 (i, ani)テーブルって作るの面倒じゃないです?
300秒ぐらいあるし
>>781 まぁまぁ、ある程度は触って破綻してるところを見せておかないと
ブログを信用しちゃう人が出ちゃうからさ
これのどこがおかしい?なんて聞かれてこっちが答えなかったら
まるでこっちが間違ってるみたいになっちゃうだろ?
>>771 指摘したら見返りに俺になにしてくれる?w
>>784 きちんと作れば元の行数よりは増えないよ
この場合は、(0, 1) 〜 (395, 1) っていう395個のテーブルを作るんじゃなくて
(0, 0), (60, 0), (61, +1) … みたいなテーブルになる
そうすれば元コードよりは増えないし、データ部と制御部を完全に分けれるから
コードも見やすくなる、メリットあってデメリットなしだね
物凄い細かい話だからほとんど関係ないけど、
CPU には先読みっていう機能があって処理効率を上げてるんだけど
ifが出てくると場合分けでどっちに行くかわからないから先読みに失敗して
性能が下がるなんてこともあるにはある、だから普段から
if分岐しないように作っておく習慣を作った方がいいね
788 :
名前は開発中のものです。:2013/06/13(木) 02:07:38.66 ID:11zUjLD+
>>785 そうやって、優れた才能あるかのように演出して嘘の実力をアピールするのが奴の手口なんだよ
そうして初対面や初見の人を騙して、ブログ内容や自分の実力を信じ込ませるのがJET++(kazuki)の恐ろしい所
3Dゲームの時は、本気で信じて期待したりアドバイスしたりニコ動コミュに入って協力しようという人もいた
延々とこういうこと続けていてマジでどうにもならないんだよね
>>761 論議に値しない
「間違いだらけ」の検証かそれは
>>764 そんな奴が今ではお前の遥か上にいる
もうとっくにお前のレベルをあっさり超えられている
ウサギとカメの競争を知らない?
>>777 >他にもたくさん細かな用語間違いがありますので初心者の方が参考にするのは結構マズいかと。
何がどうまずいのですか?
学校のテストで満点が取れないからですか?
ハッキリ言います。ゲーム開発がメインです
当サイトではゲームを完成させることが出来ないことが問題なのであり
細かな用語の解釈がどうなのかなど
そんなことはゲーム開発には影響されません
int型を「intちゃん」と呼んだとして
「型」を「ちゃん」と呼ぶと間違いになりますが、
だから何?と
>>782 >ゲームを作る時はタイトル画面から作りません。
あなたはそうかも知れませんが、
俺はタイトル画面から作っているのです
それは「間違い」とは言いません
どこから作っていくのかは、プログラマーの自由です
ただ、タイトル画面以降は、ストーリーに沿って作っていくとは限りません。
冒頭のイベントだけ作って(戦闘システムを完成させたいので)
そこから以降は、バラバラに作っていく予定
腹減った
お前ら今日はとっとと寝ろ
寝て頭冷やせ
車のハンドルを右に切ると、空気抵抗がうまれて、右に曲がります。これは間違いとはいいませんよねwwwww
寝ろ
>これはゲーム本編でも使う技術であり
>知らない間に画像を扱うプログラムは、ほぼできるようになっている
ゲームを作りたい初学者がまず知りたいのは、きらびやかなエフェクトとかが使われた
かっこいいタイトル画面とかローディング画面の表示の仕方ですか?
文章で例えると文法とかうまい言い回しとかの小手先を教えてばかりで
内容構成の仕方をほったらかしにしてる状態ですよ。
>>787 ない部分は呼び出せなければ0みたいな扱いなのはわかるけど…
(62,+1)(63,+1)・・・みたいな?なんだか長くなりそう・・・
キリがないので、ここで締めくくらせて頂きます。
ここで言う「間違いだらけ」というのは、
「こうした方がいい」というものであり、
そういうのは間違いとは言わない
C++でグローバル変数を使ったから間違いと言い切るのは
あまりにも乱暴な考え方であり、
使うこと自体は間違いとは言わない
クラスを使っていないからと言って
それは「使っていないだけ」であり
使う使わないはプログラマの自由であり
使わないことを間違いとは言わない
結論:間違いだらけとは、ただの虚言である
多数の用語間違いはプログラミング初心者の学習に影響が出ますね
という意味でマズいかと。752の通り指摘したまで
間違いだらけのところだけ都合よく回避して、
言いたいこと言ってさよなら!予想通り
>>797 違う違う、76まで1ずつ増えるんだよね
だったらテーブルでは (60, +1) の次は (76, 0) として
76 に到達するまで (60, +1) を使うんだよ
まあ、コーディングでまともな能力があればやらない書き方をしてれば
まともな能力がないのだと見なされると言うだけの話だよ
要は人に教えるのはおこがましいんじゃねえかって言われてるんだ
801 :
名前は開発中のものです。:2013/06/13(木) 02:24:44.71 ID:11zUjLD+
>>794 まあまあ、そう言わずにもう少し楽しもうよ
ついにJET++が発狂して虚言自己アピールし始めたところだ
ところで、ここに書いてるプログラマーって時間によゆうある?もしくは学生さんとか
うちはアルバイト生活で昼から稼動だし
誰かさんは永遠の有給休暇でプログラムし放題だけどね
(ここがDXライブラリのスレだと理解しているのだろうか)
>>799 あーなければ0じゃなくてなかったら処理を変えないと
その場合テーブルの設計ってどういう風にするのだろう。関数ポインタを使う?
スクリプトか何かとして外に追い出したほうがいいんじゃね
概念的にはポインタ的なので作れるね
実際にはそれに近い変数を定義してもよくて、それを個人的にはイメージしてた
つまり、int phase みたいなのを定義して、table[phase][1] で +1 とかの数字を参照
60 とか 76 とかに到達したら phase++ で一個ずつテーブルを進める感じ
>>804 実際にはそうだよねw
プログラム中でアニメーションをハードコーディングなんて普通しないし
そんなことしたらムービー担当がいた場合一切後で調整できなくなるからね
もっとも、講座にあるような固定アニメーションをプログラムに組み込む場合は
動画編集ソフトで作って、プログラムで読み込む場合がほとんどだろう
>>801 ここをDXライブラリスレだということを忘れるな
本来、このような議論そのものが
当スレには無用のレス
俺も出来れば、DXライブラリに関する話題だけを読みたい
C言語やC++だけの話題は、どこか別の場所でやってほしい
もう終わろうか。こんな無駄な会話など。
続ける意味がない
>>805 なるほどどうも
DXライブラリ関係ない話だったね。すまそ
>>806 俺も簡単なデータはcsvでもってるなぁ
分業するとき単なる座標指定すら、面倒なことになるし
>>807 おまえは宣伝すんな。違反だ
JET++ ?@JET_JAPAN 3時間
ふう・・・。久しぶりに2chでくだらないひと時を過ごしてしまった。
2013年6月12日 - 23:56
そう言ってから三時間ほどくだらない時間をすごし続けるナマポくん
812 :
名前は開発中のものです。:2013/06/13(木) 02:59:35.79 ID:11zUjLD+
>>807 散々騒いでおいて何言ってるの?
DXライブラリか、他のプログラマースレを違って初心者や素人が多いからな
どうせ嘘八百並べて、初心者騙して、自分のブログサイトに誘致したかったんでしょう、
もしくは出来る振りしながらわからないこと教えて貰いたかったとか
自力じゃゲーム完成すること出来ないから、他人を利用したいんだよなこの詐欺師君は
コードをクソ呼ばわりするのはいいが人間をクソ呼ばわりするのはやめとけ
おまいう
ここまで暴れた自演君は普通にクソだと思うがw
僕は第三者ですけど、あのサイト制作は悪くないと思います。
参考にさせてもらいたいですね。
ムキになって煽ってる人の方が不思議ですね。
とてもサイトの管理人さんに詳しいみたいだし
執拗につきまとっている方なんでしょうかね。
個人的にデザインとかは好感持てるんだけどねぇ
一応(ゲームではないが)プロのプログラマーの俺から見て
本当に書いてることは間違い多いよ
間違いに対してもうちょっと聞く耳持って改良すれば
かなりいいサイトになると思うんだけどなぁ
まぁ、管理者を擁護して間違った知識を身に着けるのも自業自得ですし
こっちは間違いを証明する証拠もきちんと書いたわけで
その上でそれでも管理人が正しいと思うのなら信じればいいんじゃないでしょうか
お好きにどうぞ
・・・
>>736 ありがと
コード無視して解説しか読んでなかったけどコードが問題なんだな
もし参考にするとしても、ある程度勉強したけど〜〜のやり方(組み方)が分からない!ってやつ向けだな
コード書かずに解説だけ書いてれば良いサイトだと思ったのに…
もう、お前ら別なところでやれw
ここは言い争うところじゃないw
ところで、話は変わるけど、洋ゲーとかでMODとかよくあるけど
見た目・アイテム等の追加などはデータの追加や改変ってことはわかるけど
コアのシステムなどの変更なども行うMODとかあるけど
元のプログラム本体ってどういう作りにしてるんだろ?
詳しい人教えてください
それもそうだな…w
色調変更ってどう実装してる?
フェードインアウトは画面サイズの黒画像を透明度弄ればいいというのは分かるが
まさか黒画像を赤にしたり青にしたりするの?
直接画面にSetDrawBrightかけるやり方はどうもダメだったよ
なんか物凄い勢いでスレ伸びてると思ったら
>>822 DrawBoxとαブレンドを使えば単色画像を用意する必要はないです
最近おもしろいのが湧いててちょっと楽しかったけど、飽きてきた
kazuki = jet++は自分は上級者で他の人間は全て素人、自分が絶対的な正義であるって
信じ込んでいるからレスしても無駄だってば、理解しようとしなかったでしょ?
>>821 市販ゲームというかエンジンにはスクリプトにC#とかC++採用してる奴もあるんだよね
どうやって連携してるのやら、そういう奴のコア部分ってどうなっているのかほんと気になるわー
こういう話題はC++ゲーム製作スレの方が適してるかもしれないけど
まぁ奴のサイトの間違っている部分を全て添削したサイト作ったら
ダメな例と良い例の比較で結構まともな解説サイトができるかもしれんが…w
>>818 >個人的にデザインとかは好感持てるんだけどねぇ
心にもない発言をしておき
油断させようとする作戦
では具体的にどこのどの部分が
好感を持てたのか具体的によろしく
>一応(ゲームではないが)プロのプログラマーの俺から見て
俺は○○だが
俺は△△だが
最初にこういう切り口で語る癖は直したほうがいい
お前は今まで何回色んなものになってきたんだ
>本当に書いてることは間違い多いよ
でも、どこが間違っているのかは言わないというわけだな
じゃあ俺もお前のマネをしよう
お前の顔は間違ってる鼻も口も
>お好きにどうぞ
捨て台詞を吐く癖も直した方がいい
正体バレバレです
>>826 ところでPS3のゲームプログラマーをしているという
架空のお友達は、その後どうした?
ハードワイヤードも知らないとか言ってた
ありえないPS3の架空プログラマーことな
あと、俺のブログで「なお」という名前名乗って発言したのはいいが、
発言する度にIPアドレスが変わっていたが
あれはどういう意味だ
ちなみに2chでそれをやるとIDが変わって一人二役ということが簡単に出来る
更に携帯電話から書き込みをすれば、
IDを維持しながら自演も出来る
こいつは名無しが特定の人物に見えているようだ、病気か?
ワールド座標とスクリーン座標の間違いだらけの解説楽しみにしてますよwwwww
>>817 ありがとうございます
>執拗につきまとっている方なんでしょうかね。
まさにその通り
グダグダと何やら御託を並べていますが
要するにコイツの目的は
ただ嫌がらせがしたいだけでしょう
標的は別に俺でなくてもいい
とにかく人に嫌がらせが出来ればいいらしい
俺、たまたまコイツが別のところで別の人を叩いてところを
いくつか見かけたが本当に酷いものだったよ
>>583に対する
>>544の返事がいい例
ちなみに
>>583は本当に俺の自演ではない
本当に無関係な他人の発言です
ちょっと応援メッセージ送っただけで
何が憎いのか知らんが
俺が応援されるのが許せないらしく
>>585とのこと
で
>>587で「自演扱いは聴き捨てならんな。お前の方が迷惑なの気付け。」
と反論
他人に間違われて自分が叩かれたら
誰だってこういう反応になる
>>594←だが、こいつはこんな返事を返す
で、本人はそれが「俺は善意でこれを書いているが」とのこと
「分からんだろうなw」
はい、全く理解できません
どこが善意ですか、最悪です完全な悪意だろ
スレチ
お前ら消えろや
834 :
名前は開発中のものです。:2013/06/13(木) 10:47:08.44 ID:11zUjLD+
JET++は昨晩3:00までいて、今日も朝早くから頑張ってるな
流石は生活保護だ、裕福でいいねえ遊び放題の生活って
>>818 間違いだらけで当然だよ、全くスキル無しのペテン師だから
正しい部分は他人の文章写した所のみ
で、
>>596では、この人は俺を応援してますとコメントしただけで
それ以上もそれ以下の意味もないのに、
自演ではないと否定までしているのに、
キチガイ認定されてしまう
//
>>587 // はい、粘着キチガイjet++の自演確定。
// 何必死に他人のフリしてんだよキチガイ
//
>>262>>263 //
>>544>>545 // でもやらかしてる連投癖でバレバレ
// つか、以前宣伝してたサイトと違うんだけど
// リセットしたの?キチガイ
こんなことしたら誰だって怒るわ
この人のどこがキチガイなんですか?
そしてコイツは何やら持論で推理ゴッコみたいなことをしているが
残念ながら完全に外れている
こんな見当はずれな頭を持った奴が
何勝手に人のサイトにケチつけてんだって話
「間違いだらけ」と言ったからそれを検証してみたが
その結果、妄言という結論に達しました
>何必死に他人のフリしてんだよキチガイ
この発言は特に酷いわ…
酷過ぎるわ
本人じゃないから自演じゃないと言ってだけなのに
>何必死に他人のフリしてんだよキチガイ
だぜ?普通ここまで言うかよ
捨てセリフに「キチガイ」だってよ
自分が言われたと思って考えてみてくれ
コイツに人間の心はあるのか
>>833 お前が自演扱いした人間が本当に赤の他人だったとして
自分のこの発言を読み直してくれ
酷いのか酷くないのかどっちだ?
で、未だに謝らないのはどうしてだ?
お前は謝ったことがない人間なのか?
それがお前の親の教育か?
ひどいほど粘着してんな。
精神的な病気でもかかっているんかねぇ。
あーもーうるさいなぁ
どっちも初心者のために言い合ってるんだろ?
なら、場違いな議論をここでするな
839 :
名前は開発中のものです。:2013/06/13(木) 11:04:39.28 ID:11zUjLD+
>>837 東京に来て2年以上無職の生活保護で時間有り余ってるのに
未だ作品を完成させられずに僻み根性が炸裂してるんだよ
五体満足なのにニコ生ではうつ病だと必死に主張
間違った
>>583に対する返事が
>>585 >>585に対する反論が
>>587 >>588では、こんなことを言ってる
>お前みたいな人間が世界で一番見苦しくて恥ずかしくて情けない人種だと気付け、ゴミ屑野郎
>お前みたいな人間を産んで育てた親も親だろうが、
>親のためにさっさと死んどけよ、ゴミ。それがお前に出来る親孝行だぞww
「ゴミ屑野郎」は言い過ぎ…
コレがまとな頭を持った人間の発言なのか?
自分を生んだ親まで否定して、
親のために死ね?(意味が分からんのだが)だってよ
酷過ぎて思わず笑ってしまったわw
こんなこと言ったら誰だってブチ切れる
しかも、本当に赤の他人なのに、本人も否定してるのに…
この人はただ、俺のサイトを応援してますと言っただけで
ここまで罵られてしまった
こんな奴の発言などまともに聞く必要ナシ!
人間のクズだわ…。いや、ホント。
>>839 >五体満足なのにニコ生ではうつ病だと必死に主張
これも
>>583にしたことと同じぐらい酷い発言だ
俺がうつ病を発症したのは本当の話
精神科医に通院して薬による治療をしたのも事実
事実を語っただけなのに「必死に主張」と罵る
お前はうつ病で苦しんだ人間の気持ちは分かるのか
どれほど辛い目に合ってるのか少しは考えたことはあるか
本当にうつ病で苦しんだ人に対して
>五体満足なのにニコ生ではうつ病だと必死に主張
この発言は、どれほど酷い意味を持つ言葉であることが分かるのか
>>583にしたことと同じじゃないかよ
>>583は自演じゃないと言っただけで、キチガイ認定
俺がうつ病で苦しんだのことも事実なのに「必死に主張」と締めくくる
>>839 それを何年間もやってるんだよな。
彼は人に認められたくてサイト開いたり掲示板で挑発的な発言をしたりやったりしてるんかね。
アスペルガー症候群とかその類の病気とか。
自己愛性人格障害じゃなかった?こういう奴って結構いる
名無しを誰か特定の人物に決め付けてるようだし統合失調もやってるかもめ
IT業界では特にそうなのかもしれないが、鬱病が云々と他人を非難するのだけは
洒落にならないからやめとけ。割とまじで。
とにかく、お前以外のこのスレのまともな人間には、
お前がどこまで超最低な人間なのかが
今回のことで十分伝わったことだろう
以上のことをハッキリさせた上で
このスレの住人たちには、
この最低人間がここに何年も常駐して
ここにやってきた多くのプログラム初心者たちをカモにして
助言?(小馬鹿にして喜んでいるだけだが)を
「これまでやってきていた」という事実を知ってほしい
そして、それはこれからも同じことが繰り返えされるだろう
それだけを言い残して俺はここを去る
846 :
名前は開発中のものです。:2013/06/13(木) 11:41:12.04 ID:11zUjLD+
>>841 本当はうつ病じゃなくて怠け病と甘え病
何年も無職で好き放題な時間があってストレスとは無縁のなずなのにうつ病になる理由はない
無能で作品が完成しないから八つ当たりしたり、他人の協力とか物乞いしてるだけでしょ
落ち着け
いいから一旦落ち着け
こんな奴がこのスレに常駐する限り
まともなDXライブラリ論が展開できるとはとても思えん
自分の意見と反対するような人間が現れたら
キチガイ認定したりするのだろうな
場合によっては、また無関係な人間を
俺の自演に仕立て上げられてしまい
次なる被害者が生まれるのだろうな
なので次スレは必要かどうかも
真剣に議論するべきだと思う
去ると言いながら、もどってくんなw
女の腐ったようなやつだな
お前、内容が正しいかどうかという技術的な議論なんかすでにどうでもよくて
自分が言い負かされるかどうか、にしか興味なくなってるだろ
スレチ
ちょっとDX関係ない技術的なレス拾ってみるか
>>821 あまりMODは詳しくないけど、Minecraftの場合はJavaで出来てるから
逆コンパイルでソースコードにまで戻るんよね
それを読んでそれに手を加えて差分を取るみたいな感じだった
ワンクリックで元に戻すのを全部やってくれるキットが出てるから、それを使うみたい
あとSkyrimとかもだっけ、公式でMOD作成キットが出てる場合はそれが使えるし
後はチートに近いけど、バイナリ解析的なのをすれば作れるには作れると思う
あ、MODの作り方じゃなくてMOD対応した本体の作り方の話だったかw
MODがどうとか言う話だったら、
俺はMMORPGとかでパッチと称する新ファイルを追加していくだけで
仕様ががらりと変わっていくのが不思議でしょうがない。
いいかげんにしろ
荒らしとして運営に通報するぞ
で、次スレは必要。
>>826 C++またはC#上でC++・C#がスクリプトとして動くエンジンをつくってるのかな?
基本的なグラフィックの描画部分とか各種データの読み書きとか
そういう部分を本体プログラムにして、あとの部分はスクリプトで走らせるとか
そんなんかな?
>>852 おっと、すまない飯食べながら書き込んでいる間にレスしてくれてありがと
逆コンパイルしてメモリー上の元プログラムを書き換えているって感じで
いいのかな?
なんかすごいことしてるんだな〜
>>855 luaとか連携めんどくせー、C++とかそのまま使えればとか思ってたけど
ゲームエンジンだったらコンパイラそのものつんでる可能性があると書いたあとで気づいた
おとなしくluaかテキストベースで頑張る
>>856 いや、メモリ上じゃなくて本当に逆コンパイルしてるんだよ
作者:元コード→ソースコード→改変→差分を集めてMODファイル作成→配布
使用者:MODファイルを受け取る→ゲームにあてて作者のコードと同じプログラムに変更→実行
>>858 丁寧にありがとう〜俺には無理そうだw
>>857 前にスクリプト走らせるのに自作するかpythonかluaか迷っていたけど
素直にluaにするか・・・
まだまだ、先の話だけど
あとゲームに限らず良くある良くするのは、
基本的に処理のインタフェース決めた後、その実際の処理は外部DLL(Windowsの場合)にまとめておいて、
それらを置き換えるって形でのアップデートパッチって流れが普通。
C++やCなんかでのネイティブの場合。
>MOD
スクリプトやリソースがアーカイブになってて、
その中身にアクセスできれば交換可能なゲームもあるよね。
確かに管理人の言う通り、煽ってる人らが悪の権化
エラーを吐くわけじゃ無いんだし、jet++をそこまで否定する必要性あるの?
ネットにある講座の技術、知識の量にケチつけてたらキリがないはず
いちいち目くじら立てて叩き伏せることかな?
結局彼がなにしようが気に入らないんでしょう、つまるところ
MODっていっても色々あるからなぁ。
データ・画像の置き換えで済むやつなら難しくはない。
MAPジェネレータ的なものなら外部DLL化して
仕様やヘッダファイル公開すればなんとかなりそう。
コアを弄るような奴だとかなり難しいだろうなぁw
civ4はpythonでごにょごにょやってるようだが。
あれ、c++のソースまで公開してるし。
どんなMODを想定するかによるし、個別に対応してくしかなさそうだなぁ。
或いは完全にオープンソースにして全裸待機。
>>862 事実だからこれだけは言うが、俺はJET++っていう個人を攻撃してるわけではなく
記事の質はネット「講座」の中でも極端にレベルが低く、間違いが多いのは確かだよ
細かいところが間違ってるとかじゃなく、色々根本的におかしいんだよ
俺からはまともにコードを組んだことが無い人間が解説を書いているようにさえ見える
マナー違反の宣伝とかスレチ連投である程度叩かれるのは仕方ないにしても
少なくとも俺は何をしようが気に入らないなんてことないけどな
強いて言えば、間違った知識を身に付ける人間を増やしたくないぐらいは思ってるけど
この話題そろそろ蒸し返すのやめた方がいいね
C#だったら、むしろ中間コードと仮想マシン使ってるから
C++よりはるかに組み込み安い気がするなぁ
その分 .NET Framework が必要なので重くなるけどね
>>862 本人以外が見ればどう見ても自演宣伝しようとしたアホの自業自得なんだがw
>>824 へぇそんな使い方が…
図形描画とか使うことないだろうなって思ってたから意外
何故SetDrawBrightじゃダメだったのかを聞かせておくれよ
元の色が黒いと使えないこととか、あるいは
青ならデフォルトからRGを下げるわけだから、全体として暗くなってしまうデメリットが、目的に合わなかったのかしら?
2次元でいいんだけど、傾いた矩形同士の当たり判定ってどうしてる?
諦めてキャラクタは円、攻撃判定を矩形にしようか悩んでるわ
正確な当たり判定は複雑で重い割にあんまりゲームの面白さとかに貢献しないんだよね
という考えのもとに俺は基本的に軸固定の矩形とか球とかばっかり使ってるな・・・
最近は物理エンジンに丸投げで楽してる……
俺も
>>873と同じ考えでやってるし、
今までプレイしてくれた人から「当たり判定が理不尽だ!」なんてクレームもついてないな。
ただやり方を知っていてやらないのと、知らないからやらないのとでは大違いだと思う。
もちろん俺は後者w
実に良心的だがグラディウス3の超詐欺判定に痺れた俺にはそんな気配りなど無用!
傾きの有無で処理変わったりするかな
そもそも傾きって何だ
空の軌跡やってるんだけど、これキャラグラは2Dだよね?
やけに立体的だが…影のおかげか?
e?
プリレンダだから見た目は3Dっぽく見える
何気なくまたJET++のブログ見に行ったら、
「C++は大量にグローバル変数を使う」っていう一文とか
俺らに突っ込まれたところをさり気なく修正して
元から間違いがなかったことになってる
散々ブログには間違いないって主張してた癖に、こいつ汚いわー
どうしても言いたくて、スレチ蒸し返しすまそ
ネヲチに池
ほい、すまそ
馬鹿は死ななきゃ治らない
バーロー
>>885 間違っています。
以上。
↓次の方どうぞ
JET++のことだから時間が経ってほとぼりが冷めたら、また何食わぬ顔で連投してくるだろうけどな
奴の性格はそんなもん
荒らしやスレチは嫌だろうけど、覚悟して構えておいたほうがいいぞ
みなさんよく覚えておきましょう
これが
「荒らしに反応する奴も荒らし」
という意味です
「縮退炉に勝てるのは縮退炉だけ」、つまり、荒らしに勝てるのは荒らしだけだ!
なあなあ大した話題じゃないけどさ
毎秒60フレーム、毎フレーム4次元ベクトル×8つ×10万回
これぐらいの代入って処理落ち意識しないといけないレベルだと思う?
>>893 ビミョーなラインだな
PCが低スペなら問題あると思う
実際にプロファイルしてみないと分からんが
つかプロファイルしろ
そして報告してくれ
できればシェーダーで実装するか、boostやOpenMPで並列処理すべき
何故 boost を boostって大雑把な括りで名前出したのか
boost::thread の事言いたいんだろうけども
一応2500Kだけど
3Dでパーティクル作ってるんだけどシェーダで描画する際に
DrawPolygonIndexed3DToShaderに使うstruct VERTEX3Dにiが0〜1万まで値を渡し、描画、ってのを10回繰り返す
こんな処理があるんだけど、ディフューズとスペキュラにGetColorU8(Particle[i].r , 略.g, b, a)で代入する って処理をコメントアウトする前と後とで
fpsが10以上変わるんだよね
.posとかのための演算はそこまで重くなかったっぽいんだけど
あとGetColorU8使わずに.x.y.z.wと各成分に直接代入しても大差なかった
これについてはコーディングの問題じゃなくて純粋に代入速度っぽくて不安になったんで意見を聞かせてほしい
前に教授がフォートラン77の物理演算プログラムでノートパソコンをハングアップさせたことがあってな
それがちょうど
>>893くらいの計算量だった
8つって言うのはどういう意味? 行列ってこと?
AviUtlのフィルタとか画像処理ではもっと計算量多いんだから
プログラムかノートパソコンへぼ過ぎだろ
>896
DrawPolygonIndexed3DToShader自体によるGPUのバッファの転送速度が遅いだけなんじゃないか
あの関数あんまり早くない印象がある
1パーティクルにつき2ポリゴン4頂点だから4頂点×ディフューズとスペキュラこれで8つ
どう考えてももっと大量の情報扱ってるプログラム多いしMMEでも50万パーティクルぐらいまで60fps維持できたから
何か問題あるんだろうけどちょっとわからない
これの値は毎フレーム変わるから計算で出すしかないし
MMEはインスタンスドバッファとか使ってんじゃね?
インスタンスドバッファは大量のメッシュの描画にかなり威力を発揮するから調べてみたらいいぞ
とは言うもののDXライブラリで使えるか知らんが
使えないなら作者に土下座してでも頼みたい機能なんだがな
>>900 VERTEX3Dに一度データ入れた後DrawPolygonIndexed3DToShaderを10回呼んだらどれくらい速くなる?
要はVERTEX3Dにデータを代入する負荷無しでどれくらいの負荷かということだけど
DrawPolygonIndexed3DToShaderを10回呼ぶだけで重いんならライブラリ側で何かしないとどうしようもない
>>902 今出先だから確実なことは言えないけど
昔、DrawPolygonIndexed3DToShader一回の呼び出しで1パーティクルの描画
なんて恥ずかしい実装をしてたことがあって、その時でも6000パーティクルぐらいは60fps維持できたから
たかだか10回程度の呼び出しならほとんど関数自体の負荷はないと思う
あ、上で書き忘れてるけど10万パーティクルなら全部代入して30fps程度、カラーをコメントアウトして40〜45fps程度だった
>>901 軽くググったけどそれっぽいのが見当たらない……
ああ、訂正。
DrawPolygonIndexed3DToShaderで毎パーティクル呼び出しのときは2000〜3000パーティクルが限界だったわ
DrawPolygonIndexed3Dのときに6000パーティクルぐらいだった
今は運動とか展開の計算含めて大体3万〜4万ぐらい描画できるようにはなったんだけどね
最適化したとしてどこまで増やせるかと思って運動とか切ってfps低下の原因を探してたら代入が他より圧倒的に重かったみたいで
「instanced directx9」でぐぐったら結構見つかる
でも「パーティクル dxライブラリ」で3D関連のはないなー
もしかしたらDXライブラリで3Dパーティクル使う前例がないんじゃね?
こりゃ自分が人柱になるか山田さんに土下座だな
>>904 代入を一切しなかったらどう?つまり代入は最初の一回だけにして、あとはDrawPolygonIndexed3DToShaderを呼ぶだけ
当然それだとまともな描画はされないけどあくまで負荷テストとして
あとDrawPolygonIndexed3DToShaderもCPUメモリからGPUメモリへの転送が入るから負荷0ではないよ
そもそも3Dエフェクトの作り方全く分からん
作ったのを用意するのかそれともプログラムで組み合わせるのか…
どっちでもいいと思うけど、一度Bishamonやeffecsearでぐぐってみるといいかも
XNAってまた別のライブラリのことだったのか
なんかデータに属性でも設定できるのかしらんが特有の書き方がわからんな
えーとこれは従来の頂点バッファ6つの値を毎回計算して2つのポリゴンを描画するんじゃなくて
基準になる頂点バッファ6つの値を一度だけ渡したら後は各インスタンスごとに変換行列で差を与えるってこと?
これの変換行列ってどこから求めるんだ?SetDataを呼び出してとか言われてもな
これはGPUが圧倒的に行列演算速いからGPU依存にして速度を稼いでんのかな
余計に重たくなりそうに見えるけど
あと誤解のないように言っとくけど
いつかは3Dモデルのパーティクルにも手を出したくなるかもしれんが
今のところ2ポリゴンの四角いビルボード使ったパーティクルしか扱ってないんだけどそれでもこれって効果あるのかな
>>907 ん、これは何回も呼び出して60fps切るときの回数をテストすればいいのかな
2000回は呼び出しても60fpsを切らないってだけじゃダメ?
家の回線は規制されてるから返事は明日になるけど
値を変更しないで連続呼び出しはデータも命令もキャッシュに収まっちゃうから負荷にならないかも
一旦書き換えてキャッシュから追い出すようにすると変化したり
>>911 ならなおさら
>>903の毎フレーム、1パーティクルごとに描画命令で2000回っていうデータが役に立つんじゃない?
>>908 以下の応用
・普通にポリゴンモデル表示
・あるいはカメラに平行な板ポリのみ
・自分の望む描画内容を計算、シェーダ(など)で適用
・それらの時間による変化・テクスチャアニメーションや、頂点アニメーション
・ポイントスプライト/パーティクル
つまり何か特別な専用の命令や関数があるわけでなく、普通の三次元処理の応用
ゲーム作りがなぜできないのかわかった
自分で絵が描けないからだった
>>910 >2000回は呼び出しても60fpsを切らないってだけじゃダメ?
て、ことは10万パーティクル60fpsできないのはCPUの頂点データ代入負荷が原因ってこと?
だとしたらDXライブラリの改良では解決しないだろうな
>>913 へぇー楽出来ないのか辛いな
ちょろっと描いた3Dモデル重ねて発光させるだけでもビームっぽくなるらしいけど…
DXライブラリにモデル発光関数なんてあったっけ
モデル発光させたいなら公式のブルームエフェクトあたり参考にすれば
>>915 そう だからライブラリの不備ではないはず
現状じゃあDrawBillboard3Dの方が速い印象だからまだDrawPolygonIndexed3DToShaderを使いこなせてないんだと思う
次レスみたいな感じでコーディングしてるんだけどMAX_PARTICLE_NUMBERが10万とか行ったらParticle[ i ].Valid == 1の走査10万回だけ(?)で(アイドル時でも毎フレーム行う)1コアの使用率が8割ぐらいまで上がってる
パーティクルの運動とか描画切っても有効なパーティクル数が増えたら描画の有無以上にfpsに影響する
こんな単純なところでたかだか10万の走査にアイドル時で1コア8割も使ってたら話にならない
なんかコーディングでおかしいところないかな
#define MAX_PARTICLE_NUMBER 40000
#define PARTICLE_ONCE_DRAWING_NUMBER 10000
void Common_Particle_Draw_Process( void )
{
SetUseZBuffer3D( TRUE ) ; // Zバッファを有効にする
SetUseTextureToShader( 0, ptg.test ) ; // 使用するテクスチャを0番にセット
SetDrawBlendMode(DX_BLENDMODE_ADD_X4 , 255 ); //合成方式
SetUseVertexShader( Shader.Vsfor_Particle1 ) ; // 使用する頂点シェーダーのセット
SetUsePixelShader( Shader.Psfor_Particle1 ) ; // 使用するピクセルシェーダーをセット
inti,j;
for( j = 0 ; j < MAX_PARTICLE_NUMBER ; j +=PARTICLE_ONCE_DRAWING_NUMBER )
{
//VertexとIndexの初期化
ZeroMemory( Vertex, sizeof(Vertex) );
ZeroMemory( Index, sizeof(Index) );
for( i = 0 ; i < PARTICLE_ONCE_DRAWING_NUMBER ; i ++ )
{
//描画のためにステータスを計算
Particle_Draw_Process( i+j , i );
}
// 2ポリゴンのシェーダ使った描画
DrawPolygonIndexed3DToShader( Vertex, 4*PARTICLE_ONCE_DRAWING_NUMBER, Index, 2*PARTICLE_ONCE_DRAWING_NUMBER ) ;
}
}
void Particle_Draw_Process( int i , int j ) //文字入れ替わって分かりにくいけどi=上でのi+j,j=上でのi
{
// パーティクルデータが有効なもののみ描画準備を行う
if( Particle[ i ].Valid == 1 )
{
Vertex[ 4*j+0 ].pos = 略
Vertex[ 4*j+0 ].〜 = 〜
各セマンティクスが続く
Vertex[ 4*i+1 ].pos = 〜
(ry
Index[ 6*j+0 ] = 4*j+0 ;
インデックスに[4*j+0〜4]を割り当てる
}
}
格闘ゲームつくるときキャラクターの座標はどの部分にするの?
1箇所じゃなくて
Left Top Right Bottom
か
Left Top Width Hight
みたいにするの?
俺の場合、格ゲーじゃなくてアクションだけど、
足元(床の判定をする重心部分)基準で、攻撃判定とか食らい判定を複数持つようにしてる
足元の絶対座標と他の相対座標みたいな感じですか
ありがとうございます
そういえばMMEのパーティクルって完全なGPGPUだったような
CPUで計算や代入はしてないから、そりゃあ高速なわけだ
MMEと同じようにすればDXライブラリでも50万パーティクルいけるんじゃない?
俺もいろいろ作ってきたが、やっぱ足元がいいと思う。
でないとキャラの身長によって、接地する位置(足元)が変わるから
接地判定のたびに、いちいち計算しなくてはいけなくなる。
927 :
名前は開発中のものです。:2013/06/19(水) 16:10:59.10 ID:TAYU7NnF
頂点テクスチャ使えるんかな
使えればパーティクル表現の幅が広がるんだけど
無い頭じゃcannot map expression to vertex shader instruction setに阻まれる…
すまん癖でageてもた
tex2Dlod(Texture, float4(VSInput.Tex,0,1));でいけた
だがどうやって値を格納してインスタンシングするか思いつかん
>>925 やっぱGPGPUになってくるか
MMEでいくら負荷かけてもCPUほとんど負荷かからないしな
GPGPUって言ったらCUDAぐらいしか知らんってか開発環境引き継げそうなのなさそうだけど
ラデでもあったりするの?
MMEなんてゲフォかラデかも選ばないしどんなの使ってるんだろうか
いやいや、MME用のファイルみれば分かるよ、というか分かった
Zにインデックスを代入した頂点で形成されたポリゴンが30000個あるxファイルを用意して
それらのポリゴンの頂点を何処に配置するかはZに代入したインデックスと経過時間を代入した定数を利用して頂点シェーダで決めてた
929はMMEで50万パーティクル出したんでしょ?
それに使ったfxファイルやら何やらを見ればやり方は分かるよ
>>929 GPGPUつっても単なるジェーダーだからな
DirectXSDKとかMMEのfxファイルを見てDXライブラリに適用できないか試行錯誤するしかないな
しったか多いな。GPGPUの本来の意味くらい勉強しておけよw
>>932 俺もよく知らないから詳しく教えて下さい
934 :
名前は開発中のものです。:2013/06/22(土) 01:56:21.28 ID:yr7OmFcb
不正なソフト検出、934のリンク開いちゃ駄目だぞ
youtubeなのにそんな事あるのか。
たしかに934の書き込みは「どうとでもとれる内容」で「age」てると言う点でヤバイ感じがびんびんするが。
構うなマルチだ
ああ、ヤバいぜww
のぞいてしまったら、後戻りはできないさww
939 :
929:2013/06/22(土) 13:33:28.64 ID:c+7nT2Dg
確かにほとんどシェーダで処理してるみたいだったけど値をどうやって管理してるか未熟なのもあってわからんわ
値をシェーダに渡せてもシェーダでの計算結果を返すのにはHLSLの出力のセマンティクスしか現状無理だよね?それもDXライブラリだと自動的に描画処理に回されるしかないし
運動まで記述してしかもfx内で完結してて同じエフェクトを大量に並列処理しても代入のし直しとかを回避できてるのがちょっと分からない
俺だと運動をCPUでやって座標等のパラメータを決定して、GPU使った描画処理で、決定したパラメータを基に6頂点を決定(回転、スケーリングなど)してるから
GPUに任せられるのは後半だけ、かつ値渡しの代入が待っててそれがボトルネックになってる
あとほとんど別件だけど配列に別の要素へのポインタを持たせてリストを作ってるとき、
端から端まで走査するときに要素[i]をforでiを0からMAXまで回すのとポインタを順にすべて辿っていくのでどれぐらいの速度差があるかな
ポインタの方が遅くとも「forでiを0からMAXまで回す」をnセット(nは1〜5程度)するのと比べるとポインタの方がいいだろうか
とりあえず50万だしたときのMMEのfxを見たい、そこに答えがあるはずだから
ポインタの話は具体的なコードを示してくれないと細かいところが分からない
>確かにほとんどシェーダで処理してるみたいだったけど値をどうやって管理してるか未熟なのもあってわからんわ
調べたMME用fxでは値は管理してなかった
初期値+経過時間だけで各パーティクルの座標、回転値、スケールを決定してた
初期値は頂点データに、経過時間は定数に入れる
2要素だけで決定されるから時間経過に伴う座標や回転値の推移を保持しておく必要がない
だからGPUで計算した結果をCPU側に戻す必要がないってわけ
942 :
名前は開発中のものです。:2013/06/23(日) 16:44:02.17 ID:c1txBwZ+
構造体を配列に入れていくのと
クラスを配列に入れていくのとでは
それぞれどういうメリット、デメリットがあるか教えてくれませんか?
要は、インスタンス化させなきゃならない情報と
そうする必要の無い情報の違い?かな、、
全部クラス使っとけ
くらすぞボケ
と言っても答えになってなかったから補足。
カプセル化するかしないか。外側で構造体の面倒を見るのかそうでないか。
設計思想による。
厳密には確保のされ方が若干違うが、クラスも構造体も同じもの。public:とか書かないだけ。
>>944 ああ? じゃっかぁしゃい! こうぞう(小僧)が!
わざわざ連投してまで乗る流れではないと思うんです
>>942 C++だとstructもclassもメンバがprivateかpublicか程度で
ほとんど同じものだぞ、という指摘は多分的外れだろうから
勝手に「インスタンスの配列」と「ポインタの配列」の違いのことを
言っていると解釈して答えるけど
・ポインタだとポリモーフィズムが効く
・ポインタだとNULLを代入しておけば「データがない」ことを明示できる
・ポインタだと、必要になるまでインスタンスは作成されない
・インスタンスだとほんの少しメモリ効率がいい(ポインタ変数の分)
・インスタンスだとほんの少し処理速度が上がる(間接参照が減る)
・インスタンスだと配列を宣言した時点でメモリが確保される
948 :
名前は開発中のものです。:2013/06/23(日) 23:54:02.18 ID:loBJMC5T
深夜に質問すいません。
現在DXライブラリでゲームを作っているのですが、
visual C++ 2010 Express でReleaseビルドをしたときのみ発生するバグがあります。
Debugビルドをしているときは正常にゲームが起動し、動作するのですが。
こういった場合の解決策って何かありますか?
未初期化の変数を見ているとか範囲外アクセスしているとか
>>949 回答ありがとうございます。
さっそくその点は検証してみます。
クラス使い始めたら構造体忘れるくらいだな
まぁ同じようなもんだしね
でもPOD型として使いたい時って、意味を明示するのに構造体として定義したいから忘れる事は無いよな
やっぱそういうのって、ロマンティックだかセマンティックだか的に重要だよね
954 :
名前は開発中のものです。:2013/06/24(月) 14:14:32.48 ID:w4EsdBi7
3Dでカメラのズームってどうやるんだろ?
カメラを近づける→間にある壁とか通り越しちゃう
全モデル拡大→カメラが壁に埋まりそう
DrawExtendGraph→画面粗くなる
FPS作りたかったのに基本的な部分でもう詰んだ
カメラの視野角を狭くする
>>954 間にある壁とか通り越さないように近づけるだけじゃね
>>954 >DrawExtendGraph→画面粗くなる
これを回避する関数がDXライブラリにはある
>>954 2Dでも3Dでもムービーでも拡大表示すると荒くなってしまう
つまり、「DrawExtendGraph→画面粗くなる」を使う方法なのだが
これを使っても画面が粗くならないようにすればいい
ヒントは、どんなゲームでもズームをすると
画面全体が少し「ぼやけた感じ」になる
これがヒント
961 :
名前は開発中のものです。:2013/06/24(月) 21:54:49.67 ID:w4EsdBi7
>>956>>957>>958 なんとFOV変えるだけで拡大になるんですね
原理とか全然知りませんでした。ありがとうございました
>>956 目の前にフェンスがある場合とかだとカメラ近づけるわけにはいきませんよね
>>959 FPSだとズームしてぼけては困りますので
ズームでぼけるFPSを私が知らないだけかもですが。被写界深度除いて
そっか、カメラを近づけるって事は見える角度が変わるって事だからズームと同じじゃないんだな。
横からだけど勉強になりました。
視野角広げながら近づく、とかちょっと前のドラマで流行ってた演出もあるよね
cameraに距離変数作って数字弄るだけでカメラ距離は簡単に動かせる
数学やで
965 :
名前は開発中のものです。:2013/06/27(木) 00:19:12.56 ID:4uTUBgp+
クォータニオンの掛け算を使った回転を実装しようと思っています。
しかし、書いてくのはいいのですが、なんかこう、
36行目~41行目をもうちょっと綺麗にかけないかと思うのと、
クォータニオンの掛け算になりきれていない関数をうまくリファクタリングできません。
これ以上スマートにかけないでしょうか?
http://codepad.org/i1yXApwF
>>951 初心者の頃バンバン構造体使ってたけどやっぱりクラス覚えてから使わなくなるよなw
いまだにクラスの有効的な使い方が解らない俺。
968 :
965:2013/06/27(木) 11:06:07.38 ID:4uTUBgp+
質問板で効いてきたほうがいいですね、失礼しました
969 :
939:2013/06/27(木) 17:30:05.89 ID:FeY2Pa5S
>>941 遅くなってすまん
50万以上出たのはParticleEXってやつ。もしかしたら同じfxファイル見てるんじゃないかな
やっぱりそういう形で管理してたんだな
こうやって時間だけで位置を指定するのは革新的な方法だと感じたけど
こうすると初期値をシェーダに渡す量が増えると思うんだよな
ただでさえそんな大量のパラメーターを渡せないしどうしたものかと悩んでるのに
float3がpos、norm、tan、binorm、float4がsposだから16個のfloatしか渡せないんだよな
DrawPolygonIndexed3DToShader使うよりMMEみたいにシェーダ使ってモデル描画って形式のほうが軽かったりするのかな
それともMMDの自由度の低さを補うためにこんなことをしてるだけで特に利点はないのか
ポインタについては
typedef struct tagLIST
{
LIST *next;
LIST *prev;
} LIST ;
LIST list[ 10000 ];
list* head;
list* tail;
で、先頭のprevをNULL、末尾のnextがNULL、headに先頭、tailに末尾を代入してるリストを
if(i=0;i<10000;i++)
{〜}
で回すのと
list*j;
if(j=head; j->next != NULL; j = j->next)
{〜}
で回すのとじゃああんまり速度差気にしなくていいかなって話
どっちが速いとかわかる?
革新的てw
MMEは元々MMDに存在しないエフェクトファイルの読み込み機能をDLLをフックして実現してるんだから
>それともMMDの自由度の低さを補うためにこんなことをしてるだけで特に利点はないのか
これ以外に何があるんだよw
シェーダだけで書いてるパーティクルエフェクトが存在しなかったとでも言いたいの?
もっと勉強した方がいいよ。
GPU PROかShaderXお勧め。最新刊から読むべし。
なんでそんな皮肉った言い方しかできないの。
じゃあ、お前がやさしく答えてあげればいいよ。
プログラムスレってだいたいこんなんばっかよ
2chに何期待してるんだか。
>>970は皮肉交じりにちゃんと答えてるけど
>>971 は文句だけで何もしない学級委員だしな
>>975 そのオチって、基本的に本人が何もしないで口開けて待ってるだけの人が陥るパターン
ITに限らないけど、自分個人が常に自学自習かスキルアップしないとそうなって当たり前だと思う
単芝生やして言う事じゃないと思う
触るな触るな
その手の話題は雑談スレ(というかプログラマ板向けだな)
スキル磨くならフリーランス最強
979 :
969:2013/06/28(金) 18:59:53.88 ID:AYnm5c/2
そういえばdxlibには
頂点バッファに相当する機能が無いね
>>980 VertexBufferをラップした物って話?
あんま意味無いような
スキル磨けば評価されて生き残れるようになってるんだったら日本の労働生産性が米国の6割にはならねえよ
結局既得権益を持ってる組織に入り込めるかどうかだけが全て能力は関係ないそういう国でした
一応、「VertexBufferハンドル」というものはあるっぽい
CreateVertexBuffer で作って、Draw〜_UseVertexBufferで描画できる
(シェーダ使うならDrawPolygon3DToShader_UseVertexBuffer)
984 :
979:2013/06/29(土) 14:02:39.67 ID:K6rcYNWm
おお、シェーダ使った関数もあったのか
あと実装に向けての問題は、
1.フレームまたいだパーティクルの生成にどうやって対応するか(すでにVRAM上に存在するデータを送りなおしていたら遅くなる)
2.GPUで処理するために初期値とパーティクルの運動記述するための変数の渡し方(数が多すぎてHLSLのセマンティクスでは足りない)
3.バッファのサイズはunsigned short(65535)が上限なのか
これぐらいかな
1は出来るだけ渡す回数を減らしてシステムメモリのアクセスを無くしてGPUが独立に処理できる状態を維持しないといけないし
でもパーティクルの生成なんてほとんど毎フレーム呼び出されるしどうしたものか
2はMMEみたいに時間からすべて計算で出すにしても途中のデータを保持するにしても、
最低でもfloat3だけで座標、速度、加速度、自転初期角、自転速度、サイズ程度の情報量は必要になる
欲を言えばローカル軸のために指向軸やサイズ、色の展開のための値や公転の速度や初期状態、基準軸も渡さないと
毎フレームシステムメモリからのアクセスは無くせないしなんかいい方法ないかな
3はVertexやIndexを使う以上、DXライブラリの改造が必要なのかな6万上限だとインデックスに6個ずつ、1万パーティクルしか置いとけないし
それともバッファハンドルは個別に持つことが出来たりなんかするのか
これ実装は現実的じゃないかな
ここじゃなくて管理人さんのほうに聞くべきだろうか
おじさん古い人間なんで、話半分に聞いてね
1を避けることは無理だべ
実際データが更新される以上、更新されたデータは渡さなきゃならない
2は別のセマンティクスを無理やり利用するとか?
ttp://msdn.microsoft.com/ja-jp/library/cc324493.aspx ブレンディングウェイトとか法線ベクトルとか
2つ目以降のテクスチャ座標とか・・・
DxLibがこの辺予約してたらダメだけどさ
# DirectX9は自由にセマンティクス定義できないからなぁ・・・
ってか、
>座標、速度、加速度、自転初期角、自転速度、サイズ
ここまでいくと「パーティクル」と呼ぶにはちと重すぎやしないか?
まるで弾幕ゲーの弾みたいだ
毎フレーム更新するなら速度と加速度と自転速度は渡す必要なくなるね
>>970 ShaderXは翻訳本がないのがなぁ
この業界、新しい技術を勉強しようとすると英語必須だな。
プレイステーションくらいまではむしろ日本語が標準語だったのだが。
最近じゃ韓国語のマニュアルはあるけど日本語はないとか
そんなんばっか。
そろそろ次スレ
テンプレなんだが、【関連スレ】を
【公式】と【前スレ】の間に置くのはどうだろうかと提案してみる
あっち過疎ってるから少し分散させた方がいいかなと
効果があるとも思えないけど、それくらいの変更ならいいんじゃないかな。
消極的賛成。
990 :
名前は開発中のものです。:2013/06/30(日) 16:50:24.29 ID:AaytdumH
3Dライン引いたときに カメラの近くのラインが消えちゃうのは
どうにもならぬのですか
Projection行列(perspective/ortho)のznearの値を小さくする
992 :
名前は開発中のものです。:2013/06/30(日) 17:45:43.50 ID:AaytdumH
ありがとござまーす
モデルのフレーム位置ってどうやって設定するんですか?
MV1SetMatrixで設定しても足元の位置を取得してるみたいです
モデルが悪いのかモーションが悪いのか…
>>989のスレと「スレ立てる前に〜」スレを追加して
スレ立て行ってきます
ごめん、無理だった・・・
誰か頼むorz
次スレ立てたよ