1 名前:名前は開発中のものです。 mailto:sage [2012/02/23(木) 21:35:32.53 ID:Si08WDH/] Cを習得した程度のスキルでも、 ゲームのグラフィックを比較的容易に描画する事のできる、 「DXライブラリ」に関するスレッドです。 DXライブラリに関するテクニックなどの情報交換などを行う事で、 多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。 【公式】 homepage2.nifty.com/natupaji/DxLib/ 【過去スレ】 DXライブラリ 総合スレッド pc11.2ch.net/test/read.cgi/gamedev/1197468399/ DXライブラリ 総合スレッド 2008 pc11.2ch.net/test/read.cgi/gamedev/1224923873/ DXライブラリ 総合スレッド その3 pc11.2ch.net/test/read.cgi/gamedev/1238429676/ DXライブラリ 総合スレッド その4 pc11.2ch.net/test/read.cgi/gamedev/1249822550/ DXライブラリ 総合スレッド その5 pc11.2ch.net/test/read.cgi/gamedev/1259912953/ DXライブラリ 総合スレッド その6 hibari.2ch.net/test/read.cgi/gamedev/1267108154/ DXライブラリ 総合スレッド その7 hibari.2ch.net/test/read.cgi/gamedev/1286180687/ DXライブラリ 総合スレッド その8 hibari.2ch.net/test/read.cgi/gamedev/1301818631/ DXライブラリ 総合スレッド その9 hibari.2ch.net/test/read.cgi/gamedev/1310904069/ DXライブラリ 総合スレッド その10 hibari.2ch.net/test/read.cgi/gamedev/1313655495/ DXライブラリ 総合スレッド その11 toro.2ch.net/test/read.cgi/gamedev/1322844235/
851 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 04:32:17.32 ID:ETYUDOJj] LILO and switch
852 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 05:20:07.65 ID:J67XAZ6b] なんでローカルにnew
853 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 06:11:28.75 ID:rvG7rk61] まず、メモリリークチェックしたほうがいいな。 >>847 のプログラミングからは駄々漏れ臭いがぷんぷんする。 _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); ゴリ押しおまじないプログラミングは危険だぜ。
854 名前:名前は開発中のものです。 [2012/05/20(日) 08:54:21.16 ID:jxpb7tAX] >>847 無理すんな。普通にやれw
855 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 09:17:03.32 ID:GdVgJDsL] 綺麗に書く素人が「綺麗に」とか考えて作っても読みやすくはならんと思うぞ
856 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 09:24:37.57 ID:rvG7rk61] DXライブラリのC++ラッパー作ってます。よろしく。 mint.ninja-web.net/dpp/index.html
857 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 09:33:19.40 ID:QwDamEGA] >>847 メンバ変数にでも保持しておかないと、 スコープ抜けたらローカル変数は保持できないので、結果的にメモリリークする まあ、>>849 がFAだと思うが
858 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 09:47:55.18 ID:b4J8kKZD] >>849 確かにswitchはオススメしないって言われた お手本のコードは無いです。 メインループのこの部分(タイトル画面やメインゲームやオプション画面の変異)って どのようにした方がいいですか? 他の方法がわからない 今思いついたのは NowState=&Start(); while(~~~){ NowState=NowState();//次に実行するべき関数のアドレスを返す }
859 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 09:49:23.86 ID:b4J8kKZD] タスクシステム?というのは聞いたけど昔のものだとかする必要が無いとか言われた
860 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 09:50:46.90 ID:GdVgJDsL] グローバルにenumでモード切り替え用の変数作ってswitchが一番簡単
861 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 10:17:37.19 ID:K5FhX9FA] シーン管理でggr
862 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 10:21:43.19 ID:b4J8kKZD] c#やjavaでいいんじゃないかってくらい全部クラス化してる。 クラスは自分が管理クラス(今回の場合はラウンドクラス)から渡されたデータを使って処理を行う。 例えば一連の流れをいうと キャラクターが攻撃を行ったら判定クラスのメソッドが呼ばれ 判定クラスのメンバ変数ポインタからキャラクターの情報を貰って 判定結果がtrueならダメージ処理クラスに攻撃方法と対象と攻撃者が渡されるメソッドが呼ばれ ダメージ処理クラスが持っているキャラクターの情報を貰って HPが0ならキャラクターに死亡フラグを立て、UIクラスのメソッドに攻撃者と対象を渡す。 つまりキャラクタークラス→判定クラス→ダメージ処理クラス→UIクラス とバトンリレーになってる。 この時、キャラクタークラスや判定クラスやダメージ処理クラスは、キャラクターの情報を持ってないと仕事にならないのでラウンド管理クラスが保持している。 イメージとしてはクラゲと、クラゲの触手 class RoundAdmin{ Character character[]; Judge judge; Damage damage; public: void SetCharaNum(int); void SetJudgeClassChara(Character* hoge){damage.SetChara(hoge);}; void SetDamageClassChara(Character*); } 以上のことを踏まえて誰か中央部の設計お願いします。もう設計の最初からやり直しするのは嫌ですヽ(;▽;)ノ
863 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 10:39:42.64 ID:b4J8kKZD] >>861 d.hatena.ne.jp/selvaggio/touch/20060821/1156148509 関数ポインタ?をスタックしまくるんですか でもタイトルシーン→ゲームシーン→リザルトシーン という流れがあった場合リザルトシーンを予めタイトルシーン時にリザルトをpushしなきゃならないってことですよね
864 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 10:48:07.65 ID:rvG7rk61] 昨日はアクションでstd::mapが速い遅いの話だったが、今日はRPGの戦闘か? C++だと相互参照するのに嫌な制限あるから難しいよね。 >>856 のサンプルに入ってるソースではデータと振る舞いを分けちゃってますが、 クラスを名前だけ前方宣言してダブルディスパッチするほうが一般的なのかなぁ。
865 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 11:49:53.71 ID:rvG7rk61] >>862 こうか? class Charactor { __int HP; __bool isDead; __void Attack(Charactor* target, How* how) __{ ____Judge judge; ____bool is = judge.IsHit(target); ____if( is ) ____{ ______Damage damage; ______damage.Set(this, target, how); ______if( HP == 0 ) ______{ ________isDead = true; ________UI ui; ________ui.Set(this, how); ______} ____} __} };
866 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 11:56:57.34 ID:rvG7rk61] だめだ、エスパーよろ。
867 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 14:50:25.73 ID:b4J8kKZD] >>865 それぞれの返り値がないから 例えばjudge.ishit()っていうメソッドの中でdamageを定義してメソッドを呼んでる こう・・・ class Charactor { int HP; int x,y; double Angle; bool isDead; RoundAdmin* Admin; void Attack(int Kind){ Admin->judge.IsHit(this,x,y,Angle,Kind); } }; class Judge{ RoundAdmin* Admin; void Judge(RoundAdmon tmpAdmin){ Admin=tmpAdmin; } void IsHit(Attacker,x,y,Angle,Kind){ for(int i=0;i<Admin->CharaNum;i++){ if(~~~){ Admin->damage.func(Attacker,i,Kind); } } } }
868 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 14:50:56.96 ID:b4J8kKZD] 説明が下手でスパゲティで死にたい
869 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 14:54:58.64 ID:d1pNr8pV] enum { TITLE, MAIN, ENDING, }; int state = TITLE; int main(void) { while() { func[state](); } }
870 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 15:33:37.24 ID:GdVgJDsL] >>863 ゲームオーバー処理の時にゲームシーンをpopして、そのままゲームオーバーをpushすればいいんじゃないの?
871 名前:名前は開発中のものです。 [2012/05/20(日) 16:09:24.24 ID:b4J8kKZD] >>870 逆だと思ってました(popしたものが実行されると思ってた) そういうことですか >>869 func[MAIN]関数内で保持したい変数ってどうすればいいんですか? func[MAIN]以外が呼び出されたら消えて欲しいです。 あと今更ですが質問厨でウザいですし基本設計の質問はDxlibスレでスレチだった・・・
872 名前:名前は開発中のものです。 mailto:age [2012/05/20(日) 18:03:42.86 ID:B+9uILOG] Charactor*のようにポインターのマークが後ろにつくのはどういう意味だっけ?
873 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 18:16:08.20 ID:eBiE/F9z] Character* x; // Characterのポインタ型を表す型名 Character*30 // Characterという変数と30の乗算(演算子オーバーロードがされていない場合) Character*=10 // Characterという変数に30を乗算し代入(演算子オーバーロードがされていない場合) /*Character*/ // コメントの終端 どれでもお好きな物をどうぞ C++のスレがないってのは ここで質問して良いって言う理由にはならないからな?
874 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 18:30:54.34 ID:rvG7rk61] 中高生の黒歴史
875 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 18:44:31.78 ID:iNm25OoA] いい加減、スレ立てるか。>>841 でいい?
876 名前:名前は開発中のものです。 mailto:age [2012/05/20(日) 18:44:39.45 ID:B+9uILOG] ありがd Character* x; // Characterのポインタ型を表す型名 ですよね しかし↓このように書くのはどうなんだろう? Charactor *target
877 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 18:56:48.04 ID:m1rxCUFY] >>876 個人でゲーム作ってるなら、どっちか好きなほうを選べばいい ttp://www.henshi.net/k/hiki.cgi?GoogleCppStyleGuide#l99 ttp://ockeysprogramming.blog42.fc2.com/blog-entry-607.html
878 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 19:16:26.37 ID:/AOQLV8Q] >>875 スレタイに「ゲーム製作」入れて、 C/C++ゲーム製作総合スレッド Part1 でいいんじゃない?
879 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 19:19:04.91 ID:B+9uILOG] これは参考になりますね。どうもありがとうございます〜 C++の本には載ってない文法なので疑問でしたが 人それぞれの考え方なんですね
880 名前:名前は開発中のものです。 [2012/05/20(日) 21:23:14.14 ID:iNm25OoA] 立てた C/C++ゲーム製作総合スレッド Part1 toro.2ch.net/test/read.cgi/gamedev/1337516528/l50
881 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 21:29:41.56 ID:m1rxCUFY] >>880 乙
882 名前:名前は開発中のものです。 mailto:sage [2012/05/21(月) 01:56:01.80 ID:ZnI/WkSf] >>880 おつ
883 名前:名前は開発中のものです。 mailto:sage [2012/05/21(月) 16:15:45.24 ID:L5xx/kw7] >>879 手元の入門書(2種類)だと載ってるけどな
884 名前:名前は開発中のものです。 mailto:sage [2012/05/21(月) 18:26:14.29 ID:ffV6Y48y] キャラクターを一瞬真っ白にして描画する方法ってわかる? 例えばダメージを受けたときなんかに使うアレ
885 名前:名前は開発中のものです。 mailto:sage [2012/05/21(月) 18:30:28.40 ID:I9dpNaEz] >>884 明るさを0にして色反転ってできなかったっけ?
886 名前:名前は開発中のものです。 mailto:sage [2012/05/21(月) 18:51:02.98 ID:ffV6Y48y] >>885 フィルタか、サンキュー
887 名前:名前は開発中のものです。 mailto:sage [2012/05/21(月) 18:58:22.65 ID:ffV6Y48y] 違った、ブレンドモードか。危ない危ない…
888 名前:名前は開発中のものです。 mailto:sage [2012/05/21(月) 22:19:42.57 ID:47wV3n9Q] SetDrawBright()とSetDrawBlendMode()使って、 一時的に他の色っぽく表示っていうのがこのスレか前のスレかにあったね 参考にさせてもらったわ
889 名前:名前は開発中のものです。 mailto:sage [2012/05/21(月) 23:13:34.24 ID:yadbYRsO] 別の画像を表示
890 名前:名前は開発中のものです。 mailto:sage [2012/05/22(火) 00:28:56.82 ID:fGZyqonm] 画像を指定した角度座標でマスクできる関数教えてください! 四角く作ったミニマップがダサいです!
891 名前:名前は開発中のものです。 mailto:sage [2012/05/22(火) 15:12:29.46 ID:mXIdZtP1] 上からマスク画像を表示
892 名前:名前は開発中のものです。 mailto:sage [2012/05/22(火) 20:41:55.22 ID:KEARhB46] >>890 すまんが、その質問からだとどういうふうに描きたいのか分からない。 「○○っていうゲームの△△みたいに」っていう例えでも良いんで もう少し詳しくやりたいことを説明してはくれまいか。
893 名前:名前は開発中のものです。 mailto:sage [2012/05/22(火) 23:11:59.34 ID:fGZyqonm] AVAのミニマップ表示と EXVSの画面右上のミニマップの両方お願いします。
894 名前:名前は開発中のものです。 mailto:sage [2012/05/22(火) 23:33:05.27 ID:GwTouD/j] EXVSってただの丸だろ。マスクする必要なしw
895 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 10:34:59.14 ID:b4o10B2o] 構造体のポインタを引数にする関数がうまく使えない。 クラスのメンバ構造体のポインタを渡そうとしても「CClass::TStructからTStructへ変換できません」と言われる。 わけわからん。お助けくだせえ
896 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 10:36:23.94 ID:b4o10B2o] おっと、それ用のスレがあったんか。スレ汚しすまん
897 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 12:41:41.58 ID:0bw1KTX7] >>889 以前他のライブラリで試そうとしたんだけどどうやっても白いくり抜いたような画像は得られませんでした。 やっぱり出来ないんですよね? たとえば赤い色の敵がいるとすると青と緑の要素がないからキレイに白くならなかったような そのときの結論は、手作業で白い敵の絵も作ってダメージのとき そちらを表示するしかないということでした
898 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 13:39:40.92 ID:fw4B82cQ] シェーダを使うw
899 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 13:59:04.47 ID:EJDtoHbk] >>897 DXライブラリのメモリイメージAPIから作り出すことができる。 ただしDirect3Dは、同じテクスチャを同じ描画モードで 連続して描画すると効率が良いので、 一枚の敵画像の中に白く塗り潰した敵の絵も一緒に入れてしまったほうが 描画するときの効率はいい。
900 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 14:07:34.09 ID:EJDtoHbk] Direct3D9の固定パイプラインがもっている、 あるいはHLSL書いてピクセルシェーダ使うのも描画モードが切り替わるので、 Direct3Dの一括描画を止めてしまう。 手作業で白い敵の絵も作って、アルファブレンドで二枚塗りして フェードさせるのが最も望ましいんじゃないかな。
901 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 17:25:41.49 ID:0bw1KTX7] >>898 わかりません・・・Directx7レベルPGなのでw >>899 >>900 よくわかりました。ありがとうございます。 おかげでこないだ詰まってた問題も原因がわかりました。 スプライト処理クラスを作って一枚表示ごとに描画モードを SetRenderStateで変えていたのですが、去年買ったi5パソコンで数百程度の 小さい画像表示で処理落ちし始めてビビリました。 このスレで「描画モードを変えると処理が重くならないか?」という話題があったのを うっすら記憶していて、SetRenderStateをまとめてやるようにしたら改善されました。 いま「SetRenderState 重い」で検索したらたしかに重たいと警告を発してる開発者さんがいました。
902 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 21:39:28.35 ID:oEFLuczz] スプライトの色を一時的に白っぽくするとかはここを参考にした覚えがある ttp://dixq.net/forum/viewtopic.php?t=9714&p=78319
903 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 21:52:32.24 ID:fw4B82cQ] 画像ロードする関数を少しラップしてソフトイメージ経由で白マスク画像を作成、連結したもの作らせると結構良さそうかな
904 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 22:29:47.19 ID:hXbSVptG] ファミコンだったらパレットチェンジでデータ量少なくかつ高速に処理できるのに最新PCって駄目だな
905 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 22:42:46.64 ID:kOpBPT9L] 全くだw いちいち色違いのキャラを用意しないといけないとか、面倒だわ。 俺もこの白点滅のやり方について公式とかで質問した人間だから、同類。
906 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 22:49:16.12 ID:EJDtoHbk] >>903 いくつかポイントがあって、合成する元の画像がそれを意識して作られる必要あり。 テクスチャは2の累乗であるwidth, height の正方形である。 だから長方形とかだと裏で大きめの正方形を確保してしまうから、 合成後の画像が正方形のスペースを有意義に使うこと。 カラーパレットが空いている必要がある。 つまり256色を白以外で使いつくされてるとだめ。
907 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 22:50:09.77 ID:pwt5T56h] 今だってピクセルシェーダー使えば同じこと出来るだろ
908 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 23:13:59.87 ID:hXbSVptG] そんな高度なテクニックは使いこなせねえよ
909 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 23:18:06.90 ID:0ldDGJ6S] 白抜きしたいキャラクタをまずブレンドモードInvで反転で描くだろ? その上にもっぺん同じキャラクタをこんどはAddで加算描画するだろ? そうすると抜き色以外255で埋まるって寸法よ
910 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 00:14:49.78 ID:OTDx3X8F] 別に白画像作ればいいじゃん
911 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 00:37:40.90 ID:YnP/Ncq+] アルファブレンドのON,OFFの切り替えが頻繁に起きるぐらいなら 全部アルファブレンドONで描画したほうがいいんだな。 マップタイルだけOFFとか。
912 名前:名前は開発中のものです。 mailto:sage [2012/05/25(金) 00:25:55.82 ID:rg8OJbTJ] >>909 頭やわらかいねきみ
913 名前:名前は開発中のものです。 mailto:sage [2012/05/25(金) 20:12:45.46 ID:9VSOgWxy] Allegroには、グラフィックの背景色以外の部分を指定の色一色にして描画する関数があって、 ビットマップでフォントを用意してそれを指定の色で描いたり、 そのシューティングゲームでダメージを受けて一瞬#fffだか#f00だかのシルエットになるときとか使い道があった
914 名前:名前は開発中のものです。 mailto:sage [2012/05/27(日) 08:25:16.10 ID:/36TiFsh] でも白画像でいいよね
915 名前:名前は開発中のものです。 mailto:sage [2012/05/27(日) 11:50:59.78 ID:6LUkVEJp] 作るの面倒くさい。少なくとも自動生成じゃないと。
916 名前:名前は開発中のものです。 mailto:sage [2012/05/27(日) 16:01:26.83 ID:jTp1UMkC] 俺はゲーム内で自動派だけど、 ゲーム外でツールで生成する派とかもいるかもしれんな 要はゲームで実現できればいいし
917 名前:名前は開発中のものです。 [2012/05/28(月) 03:51:16.27 ID:xvuBoj/+] ゲームではかなりよくある表現だから関数があってもいいかもな
918 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 05:01:17.17 ID:fvu7wQ0B] 関数作ったよー>< // r, g, bの色を透過色とみなした白マスクを下に繋げて作成。alphacheckを1にするアルファ値0も透過する。 // AllNum以降はLoadDivGraph系と同じ(ただし複製後の画像を想定して指定すべし)。 int LoadDivGraphWhiteMaskDup(const wchar *infile, int r, int g, int b, int alphacheck, int AllNum, int XNum, int YNum, int SizeX, int SizeY, int *HandleBuf) { int inhandle = LoadSoftImage(infile); int w, h; GetSoftImageSize(inhandle, &w, &h); int outhandle = MakeARGB8ColorSoftImage(w, h*2); BltSoftImage(0, 0, w, h, inhandle, 0, 0, outhandle); for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) { int tr, tg, tb, ta; GetPixelSoftImage(inhandle, x, y, &tr, &tg, &tb, &ta); if ((tr == r && tg == g && tb == b) || (alphacheck && ta == 0)) DrawPixelSoftImage(outhandle, x, y+h, 0, 0, 0, 0); else DrawPixelSoftImage(outhandle, x, y+h, 255, 255, 255, 255); } } int outgraph = CreateDivGraphFromSoftImage(outhandle, AllNum, XNum, YNum, SizeX, SizeY, HandleBuf); DeleteSoftImage(inhandle); DeleteSoftImage(outhandle); return outgraph; }
919 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 06:51:35.69 ID:mvM7MJU+] マリオみたいな感じのゲームを作ろうと思ったけどジャンプができない。 色々サイトとか回ってみたけど中々分からない。 誰か教えてくれると幸いです。
920 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 08:13:51.39 ID:fvu7wQ0B] 重力と地面に立つことを作ればあとは飛ぶだけ
921 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 08:21:05.78 ID:IVkwT0S2] >>919 v=gt 速度の上限を定める 落下しすぎたら戻す ジャンプで難しいのは着地だけ どうしてもダメなら最初は加速させずに等速ジャンプでいいと思うよ 押してる間だけ上昇、離したら下降とかね
922 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 08:40:00.71 ID:c9K0Nu9s] アクションゲームの最初の壁はジャンプ 次の壁は坂道
923 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 08:52:55.29 ID:6YRysOIW] 最初の壁は床だろう……。
924 名前:名前は開発中のものです。 [2012/05/28(月) 10:20:42.61 ID:rvNFgryv] どこから作りかで変るだろ マップチップ並べた床作らなくても地面にする座標決めればキャラの動きは作れる >>919 てかDXライブラリの公式ページにサンプルあるじゃん homepage2.nifty.com/natupaji/DxLib/dxprogram.html 2.ジャンプ処理
925 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 10:21:04.96 ID:90lU+KxT] 床てY軸の位置こていしとくだけじゃないか
926 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 10:32:44.25 ID:6YRysOIW] それを言うなら、ジャンプだって下方向へ加速させるだけだ。 さらに言うなら、昔のゲームみたいに(等加速度でなくて)等速直線運動だとしてもジャンプはジャンプだ。
927 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 11:25:52.97 ID:uXHACx8T] yが毎フレーム5マイナスされる時 厚さ1の床をどうやって判定するんだ
928 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 11:28:20.73 ID:9WGXBrjP] 5以内に地面があれば5-距離だけ移動してジャンプ終了、でよくね?
929 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 11:53:09.06 ID:aojI3MeF] for(i=0; i<5; i++) { y++; if(isAtari()) { y--; } }
930 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 11:59:48.69 ID:b7wzF1nG] ちょっと横から失礼 >>902 これで真っ白な画像を得られました。ありがとうございます。 #include "DxLib.h" int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) { ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK); int x = 0; int Handle = LoadGraph("char.png"); while (ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0) { SetDrawBright(255, 255, 255); SetDrawBlendMode(DX_BLENDMODE_INVSRC, 255); DrawGraph( x, 100, Handle, TRUE ); SetDrawBlendMode(DX_BLENDMODE_ADD, 255); DrawGraph( x, 100, Handle, TRUE ); SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 ) ; x = x + 1; } DxLib_End(); return 0; } ブレンドモード切替の負荷の重さにはびっくりしたので ゲームの最初にこれで白い画像を作って表示することにしました。
931 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 13:04:49.57 ID:b7wzF1nG] >>918 ちょっとだけ直して動きました。 ttp://www1.axfc.net/uploader/Sc/so/349786 使えそうです。ありがとうございます。
932 名前:名前は開発中のものです。 [2012/05/28(月) 14:53:28.29 ID:WnycGPJc] DXについて勉強するのにオススメの書籍とかありますか? 横スクロールのアクションゲームを作ってみたいんですが
933 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 15:02:03.10 ID:jUTN7lVO] 14才からはじめるわくわく〜 みたいなやつ
934 名前:名前は開発中のものです。 [2012/05/28(月) 20:02:07.96 ID:GTiho4az] >>932 俺の結論として本は要らない Dxライブラリは覚えること余りないから必要なのはサンプルでしょ ネットで他言語でもなんでも見たらいいと思う
935 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 21:06:10.30 ID:51O+Wupn] 公式にあるサンプル全部やって、全部ちょこっとずつ改造してみれば、 次に何を勉強すればいいか道が見えてくるかもね
936 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 01:46:18.53 ID:L7O/xZHN] >>927 そんな半端な場所に床を設置すんな
937 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 01:50:59.85 ID:BLevQqxO] うお、仮とはいえPMXに対応してきたのか すげーな
938 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 02:00:46.52 ID:ajD2ZMcH] >>933 あれ買うなら東方もどきのサイトの方が1000倍マシ
939 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 16:38:49.14 ID:0ZCTZE5+] >>932 DXってのはDXライブラリのことを指してるのかな? DXライブラリ自体は画像の描画や音楽の再生、キー操作の取得なんかを簡単にできるものだと思えばいい。 リファレンスを読めばわかるから、書籍など全く必要ない。 問題は各ゲーム(シューティング、横スクロールアクション、落ち物、パズル、etc...)の構造なんだけど、 この辺は当然ながら言語もDXライブラリも全く関係ないから、ひたすらググればいいと思う。 もちろんシューティングに特化した書籍なんかも売ってるとは思うから、 どうしても本がいいならそういうのを買えばいいと思うよ。
940 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 23:01:39.68 ID:sRt+VGOO] 【ゲームバグ集】私達の知ってるゲームとは違う【吹いたら負け】 www.youtube.com/watch?v=kN29n-Gnv6A&feature=related これ見るとゲームのバグのほとんどが地形かキャラ同士の変な判定でめり込むことによって起きてるんだね 横アクションを作るとき注意ですね
941 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 23:29:00.29 ID:RKMJ5hGw] 勢い良くぶつかったら吹っ飛んだとか、 しゃがみジャンプで天井ぶつかったら吹っ飛んだとか、 ブロックとブロックの間に挟まって吹っ飛んだとか、 よくある光景ですよね
942 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 23:38:12.13 ID:0DxYP3XJ] 敵とブロックに挟まれたと思ったらキャラが消えたとか
943 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 00:16:28.28 ID:X2kmab9H] それは大統領
944 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 05:19:34.98 ID:LR2h9MNT] いつのまにか3.08aが出ていたのね
945 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 07:52:32.75 ID:AnVA06dY] 前回からの違いは主に3D関係か
946 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 08:24:03.27 ID:xNmKjSKJ] SetBlendGraphParamが便利そう
947 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 12:26:15.74 ID:vux5Qb/R] まだリファレンスに反映してない?
948 名前:名前は開発中のものです。 [2012/05/31(木) 14:24:38.29 ID:LR2h9MNT] 3.08a で x64 のプログラムをビルド出来た Release だと駄目みたいだけど
949 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 14:59:29.76 ID:AjXSR+Ss] x64のメリットはなに? スピードは同じでメモリがいっぱいとれるとかかな?
950 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 15:35:46.17 ID:WauJ0XKH] X
951 名前:名前は開発中のものです。 mailto:sage [2012/05/31(木) 18:52:53.60 ID:M5YppKNB] VirtualAllocでも使わないとメモリーはいっぱい取れないな