1 名前:名前は開発中のものです。 mailto:sage [2009/12/04(金) 16:49:13 ID:7SKA4I5z] Cを習得した程度のスキルでも、 GUIのゲームを比較的容易に作成する事を可能にする、 「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/
300 名前:名前は開発中のものです。 mailto:sage [2009/12/24(木) 15:25:46 ID:44g9Q8NV] >>299 ディレクトリ構造は変わってませんでした。 念のため homepage2.nifty.com/natupaji/DxLib/dxuse_vc2008express.html ここに書いてある事全部やり直したんだが駄目でした。 新プロジェクトでDXライブラリを使うには何か特別な設定って必要? もう自分の頭だけでは解決できませんorz
301 名前:名前は開発中のものです。 mailto:sage [2009/12/24(木) 15:44:18 ID:eAwQjQv4] >>300 LoadGraphScreenだけが使えないのかが気になるところ もしそうなら、マイドキュメントのVisual Studio 2008→Projects→自分のつくったプロジェクト名→自分の作ったプロジェクト名ってところにvcprojって拡張子のがあると思うんだがそこに画像おけば読み込まれると思うんだが 試してみてくれ
302 名前:名前は開発中のものです。 mailto:sage [2009/12/24(木) 15:45:17 ID:eAwQjQv4] というよりvcprojのあるフォルダに画像な 書き方微妙ですまん
303 名前:名前は開発中のものです。 mailto:sage [2009/12/24(木) 16:00:28 ID:44g9Q8NV] 読み込みました! あとLoadGraphScreenだけが使えない訳ではなく、画像を読み込む関数が使えませんでした。
304 名前:名前は開発中のものです。 mailto:sage [2009/12/24(木) 16:05:57 ID:eAwQjQv4] そうか画像系は全滅かなって意味で聞いてみた Dxlib自体使えないかそれともって意味だったから とにかくよかったな がんばれよ
305 名前:名前は開発中のものです。 mailto:sage [2009/12/24(木) 19:54:35 ID:xY2Wh0F8] >>280 > できる。 ありがとう
306 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 01:32:03 ID:uFkH7xmW] このスレ見てbccからVC++にかえたんだけど、ライセンス認証ってしたほうが いいのかな?あと、25にちとかでるけど
307 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 02:14:02 ID:hL2XqgMI] タダなんだから認証くらいやっとけ
308 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 02:43:02 ID:uFkH7xmW] 認証しても有料になったりしないよな。 150万とかきいたけど。 あんしんした ありがとう^^
309 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 02:49:19 ID:Pj/9DURL] やっちまったな・・
310 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 03:09:34 ID:hL2XqgMI] それ本当にMicrosoft Visual C++ 2008 Express Edition だよな…?
311 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 03:28:02 ID:uFkH7xmW] 使ってるときに上にそう書いてるから間違いないはず。 なんだ? ちょっとこわくなってきたじゃないか;; \(^o^)/
312 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 04:20:36 ID:DqIGjvQ6] 詐欺師が名刺に詐欺師って書くわけないって婆っちゃが逝ってた
313 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 07:07:34 ID:ZSVKFocn] VC++の使い方解らない奴と有料じゃないか云々言ってるやつはここを読め dixq.net/vcpp.html
314 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 10:06:25 ID:EP1DxHaQ] おまいらプログラム組みながら聖夜をすごしたのですか?
315 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 10:20:07 ID:L3IT6oO5] 俺は1日プログラミングは休憩してアニメ見ながら過ごしたよ。しにたい
316 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 14:15:30 ID:2d0wlUJ7] 「人多いし、クリスマス特価でモノは高いし、別の日で良くね? そもそも仕事だし」 「じゃあそれで」 悪かったな
317 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 14:35:04 ID:DqIGjvQ6] むしろリアル誘いに振り回されてプログラム出来なくなることの方が苦痛 毎回断るのもアレだから2回に1回くらい安く済みそうなときは行く
318 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 17:25:10 ID:ZhGjQlkx] Xファイルってのが詳しくわかってないんだが、アニメーションデータをいくつも組み込めるのか? もし組み込めるならお勧めソフトを教えていただきたいでござる
319 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 18:27:52 ID:EP1DxHaQ] Rocdebone2がいいでござるよ .xも対応して複数のアニメーション組み込めるでござる
320 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 18:32:34 ID:ZhGjQlkx] >>319 メタセコイアでモデルを作成 そのファイルをRocdebone2でモーション作成 って流れでいいのだと思いますが、メタセコイアのほうでボーン作らないともしかして動かせられない? Cyberdeliaってツールだとメタセコイアで適当に作ったファイルで.xファイル出力できるけど、DirectXVierwerでエラーが出る・・・ Rocdebone2のインターフェースがごちゃごちゃしててわかりづらいから、ちょっと勉強してみる・・・
321 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 18:33:38 ID:V52nYqVj] >>318 >もし組み込めるならお勧めソフトを教えていただきたいでござる 有料でも良いなら「Maya」「Softimage」「3ds Max」のいずれか。 無料が良いなら「メタセコイア + (Keynote or Toystudio)」「Blender」「Mod Tool(商用利用は不可)」のいずれか。
322 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 18:52:38 ID:ZhGjQlkx] >>321 いまToystudioさわってみましたが、使いやすくてびっくり だけど出力ファイルがDXライブラリに対応してるのはxファイルだけとは・・・ 8 名前:名前は開発中のものです。[] 投稿日:2009/12/05(土) 12:30:22 ID:CQOWfBMw ToyStudioでアニメーション作って、MQOで出力したんだけど、 ものすごい膨大な量のMQOデータが出てきたんだけど・・・ アニメーションを作るたびに毎回こんなのが出てくるの? そもそもこういう出力結果をゲーム内でアニメとして使えるの? まさにこれと同じような感じなんだが、xファイルとしては出力できないのでしょうか?
323 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 18:53:45 ID:3T809Z1U] >318 X形式の仕様としては、1つのファイルに複数のアニメーションを 組み込めるんだけど、実際に書き出し機能が標準であるソフトは 市販とフリー併せても、RokDeBoneとTOYSTUDIO、エルフレイナ ぐらいしかないかも。 BlenderやSoftImage(とmodtool)用のプラグインでは公開して くれている人がいるけど、XNA用とかに特化したデータを 書き出すのでDXライブラリでは読めなかったと思う。 (これは各ソフトやDXライブラリの問題ではなく、そもそも x形式の自由度が高過ぎるので互換性が低いことが原因)。 RokDeBoneとかで書き出したxデータが、DXライブラリで 読めるかは試してないので読めるかもしれないけど keynoteやRokDeBoneで、ある程度のモーション作るのは モーションレイヤーやミキサーないので結構大変な気がする。 けっきょく、DXライブラリで使える複数アニメーションつき xファイル形式が欲しい場合はツールかプラグインを自作する しかないんじゃないかな。 でもモデルデータと、モーションは分けている方が何かと 融通は利くと思うよ。修正後の差し替えとかの点でも。
324 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 19:03:16 ID:EP1DxHaQ] >>320 Rocdebone2でもボーン入れる作業はできるよ こっちは線形のボーン。詳しくはおちゃっこLABで たいしてメタセコイアで骨入れる場合はmikoto形式のものがある こっちは三角形ボーンに影響度のアンカーボックスタイプでござる 詳しくはここら辺がいい ボーンの作り方 homepage3.nifty.com/ghpk/e3d/rb2007.htm umemori69.hp.infoseek.co.jp/umemori69_014.htm umemori69.hp.infoseek.co.jp/umemori69_013.htm モデリングテク mattaku.sa-ra-sa.com/
325 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 19:05:23 ID:EP1DxHaQ] あと、3DゲームつくりたいのならEASY3DライブラリまたはSeleneでもいいでおじゃるでやんす 逆転の発想
326 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 19:08:48 ID:V52nYqVj] >>320 DxLibModelViewerで確認してみた? >>322 ToyStudioには無償版と有償版(5000円)があって、残念ながらXファイルをエクスポートできるのは有償版だけなんですよね・・・ まだ仮対応らしいけどMMDのPMDを使うか、FBXからMV1に変換して使うとかも検討してみて。
327 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 19:09:24 ID:ZhGjQlkx] >>323 >>344 モーションひとつ作るのだけで大変そうですねえ・・・挫折しそうだorz エルフレイナというやつ、まだチェックしてなかったので見てみました 使いやすそうですけど、やはりフリーだとxファイル出力ができないのですね・・・ >>322 での出力もできないというのも、シェア版にしないといけないみたいですね RokDeBoneが現状自分の最後の望みみたいなので、ボーンの作り方等読んでがんばってみます。 親切にレスありがとうございます(つA`) >>325 3Dゲーム以外も作ってみたいのでDXライブラリがんばってみますw
328 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 20:26:29 ID:V52nYqVj] ちょっとRokDeBone2が出力したXファイルとFBXを試してみたので報告しておきます。 RokDeBone2付属サンプルの「glow.sig」を編集してXファイルに出力。 これをDirectXVierwer、DxLibModelViewerで読み込んでアニメーション表示OK。 MSサンプルの「dude.fbx」をDxLibModelViewerで読み込んでXファイルに出力。 これをDirectXVierwer、DxLibModelViewerで読み込んでアニメーション表示OK。 しかし、これをRokDeBone2で読み込むと原因不明のエラー。
329 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 21:00:26 ID:2weq8SiY] DXライブラリの拡大縮小機能を使って 擬似3Dを今まさに作ってる俺には手が届かない話題だな。
330 名前:名前は開発中のものです。 mailto:sage [2009/12/25(金) 22:10:40 ID:EP1DxHaQ] 一方通行なわけか
331 名前:名前は開発中のものです。 mailto:sage [2009/12/26(土) 02:21:18 ID:h7BLtdtN] 3Dモーションは、trueSpaceを使ってみ。フリーだ www.caligari.com/downloads.html 古いバージョンがよければ、一番下にSerialNumberが書いてある。 機能が多くて安かったが、MSの介入があってこのザマだ。 Xファイルのインポートエクスポートがある。
332 名前:328 mailto:sage [2009/12/26(土) 13:42:22 ID:UrPNO9E9] >>328 の続きです。 ModTool7.5でFBXを出力、これをDxLibModelViewerで読み込むと強制終了する。 公式のFBXViewerでは正常にアニメーション表示できているのでDxLibModelViewerのバグかもしれないが、ModTool7.5のエクスポータにも色々と問題がありそう。 メタセコイア(Keynote)でFBXを出力、これをDxLibModelViewerで読み込むとエラー。 メタセコイア(Keynote)でXファイルを出力、これをDxLibModelViewerでアニメーション表示OK。 PMD(モデルデータ)をDxLibModelViewerで表示OK。 しかし、Xファイル出力するとデータが壊れることがある。MV1出力は問題なし。 VMD(モーションデータ)をDxLibModelViewerでアニメーション表示OKだが、データによっては読み込めない場合もある。 エラーメッセージも表示されないし、今のところ原因不明。 まだまだ不安定ではあるもののMMDが結構良さげな印象だった。
333 名前:名前は開発中のものです。 mailto:sage [2009/12/26(土) 13:44:47 ID:R/WYZk+C] 乙。報告あるとのちのち使う人がいたとき参考になるからな
334 名前:名前は開発中のものです。 mailto:sage [2009/12/26(土) 16:52:38 ID:IeIeiG58] C++スレから誘導されてきました。 今学習に使っているのは14歳から始めるC++ゲームプログラミングで、 現在サンプルを触ってみている状態です。 void TekiControl::move(float jx, float jy){ list<CharaData>::iterator it; it = tekilist.begin(); (*it).anim->draw(0, (*it).x, (*it).y); //子機発射処理 ※この部分を指定秒数ごとに実行したい float dy = GameFrame::IdouHosei(8); podsally( (*it).x+64, (*it).y+32, 20, 0,-dy); podsally( (*it).x+64, (*it).y+32, 10, 0,-dy); podsally( (*it).x+64, (*it).y+32, 20, 0,dy); podsally( (*it).x+64, (*it).y+32, 10, 0,dy); podmove(jx,jy); //子機移動 } 子機発射処理のみを指定秒数で実行するようにしたいのですが、 どのような方法があるでしょうか? できればvoid TekiControl::move(float jx, float jy){ 内で 処理できるようにしたいのですが・・・。
335 名前:名前は開発中のものです。 mailto:sage [2009/12/26(土) 17:01:21 ID:EuBBUaJe] move(){ static before_time; if(before_time - now_time() > 指定病数){ before_time = now_time(); IdouHose(); } }
336 名前:名前は開発中のものです。 mailto:sage [2009/12/26(土) 17:03:21 ID:EuBBUaJe] 引き算逆だった
337 名前:名前は開発中のものです。 mailto:sage [2009/12/26(土) 17:15:36 ID:IeIeiG58] これは//子機発射処理 の上に記述していいんでしょうか。 move(){を中にまた使うということですか? nowtimeの初期値はGetNowCountなどの取得で合っているでしょうか。 IdouHose(); とは何のことでしょうか。 質問ばかりですいません。 現在改造しながら勉強しているのですが、ここがどうしてもできないもので…。
338 名前:名前は開発中のものです。 mailto:sage [2009/12/26(土) 17:24:29 ID:vrlJW694] 改造とかしないで基本からやったほうがいいぞ
339 名前:名前は開発中のものです。 mailto:sage [2009/12/26(土) 17:29:32 ID:EuBBUaJe] その本持ってないんで適当です。 GetNowCountが最大値超えた場合とか考慮必要。 void TekiControl::move(float jx, float jy){ list<CharaData>::iterator it; it = tekilist.begin(); (*it).anim->draw(0, (*it).x, (*it).y); static unsigned int before_time; if((GetNowCount() - before_time) > 指定秒数*1000){ before_time = GetNowCount(); //子機発射処理 } float dy = GameFrame::IdouHosei(8); podsally( (*it).x+64, (*it).y+32, 20, 0,-dy); podsally( (*it).x+64, (*it).y+32, 10, 0,-dy); podsally( (*it).x+64, (*it).y+32, 20, 0,dy); podsally( (*it).x+64, (*it).y+32, 10, 0,dy); podmove(jx,jy); //子機移動 }
340 名前:名前は開発中のものです。 mailto:sage [2009/12/26(土) 17:29:32 ID:IeIeiG58] 本に載っている内容はとりあえず一通りやりました。 次は改造かな、と思ったのですが…
341 名前:名前は開発中のものです。 mailto:sage [2009/12/26(土) 17:32:22 ID:IeIeiG58] >>339 これでできました!ありがとうございます!! 10時からやっていたので本当にうれしいです。 本当にありがとうございました。
342 名前:名前は開発中のものです。 [2009/12/26(土) 17:54:19 ID:E9OJHMux] 3Dゲーム創りたいんだけど、最近3D対応したばかりのDXライブラリより EASY3DとかSeleneのほうがいいのかな? ここで聞くのは野暮だと思うけど、2DゲームでDXライブラリを使って良かったので、 3D機能についての現状を知りたい。
343 名前:名前は開発中のものです。 mailto:sage [2009/12/26(土) 18:16:38 ID:t2+el/7e] >>341 もう解決してるけどそういう「何フレーム化に一度」の処理は、1Fごとに++するTimeみたいな変数を作って、 if (Time%60==0)みたいに使ったほうが良い 特にGetNowCountは音ゲー作るかFPS計測する時など1ミリ秒のズレも許されない時以外はあまり使うべきではない
344 名前:名前は開発中のものです。 mailto:sage [2009/12/26(土) 20:29:54 ID:R/WYZk+C] >>342 俺 DXlib 3D使ったことない Selene 使ったことない Easy3D HSP版だけ使った HSPで3Dは楽だし結構いろんなことできるしよかったよ ただ演算多くなる場合は断然cが速すぎ
345 名前:名前は開発中のものです。 mailto:sage [2009/12/26(土) 22:19:58 ID:UrPNO9E9] >>342 基本的な機能は揃っているし十分3Dゲームを作れるよ。 ニコ動でDXライブラリを使って作られた3Dゲームが公開されているので一度見てみるといいよ。 しかし、Seleneと比較するとやや機能不足な点もある。 シェーダー、ポストエフェクト、GUI、物理エンジン、スプライト(パーティクル)など。 特にシェーダーが使えないというのはレンダリングの品質に大きく差が出る。(PS3とPS2ぐらい違う) 逆に言えばDXライブラリの方が扱いが簡単なので、3D初心者ならこっちの方が向いてると思う。
346 名前:名前は開発中のものです。 mailto:sage [2009/12/26(土) 23:51:39 ID:FO5uRkla] あと、空間分割とかないな 無いものは自前で実装すりゃいいけど、その頻度が増えると DXライブラリで無理して作ってる感じになる ならSeleneとか他の3Dが充実してるライブラリ使ったほうがいい もしくはDirectX直 どの程度のものを作るかによるってことだな >>332 FBXならBlenderが良いよ X、FBX,、PMD+VMDの話題は前にも見た気がする
347 名前:名前は開発中のものです。 mailto:sage [2009/12/27(日) 00:12:09 ID:kPK58Sfx] >>346 そこらへんがDXライブラリじゃ駄目といわれる所以だよね 出来なくても無いけど2Dほど簡単ではないし、それならちょっと頑張って他のライブラリ使ったほうがずっと天井が高い
348 名前:名前は開発中のものです。 mailto:さ [2009/12/27(日) 00:28:01 ID:MBrvOJgD] 結局このライブラリは3Dに関してはまだ遅れているってことなのかな つい最近対応したばかりだから仕方ない話だといえばそれまでなんだけど
349 名前:332 mailto:sage [2009/12/27(日) 01:02:13 ID:bc5V7EbG] >>346 >X、FBX,、PMD+VMDの話題は前にも見た気がする 情報ありがとう。 前スレ見てなかったけど、Blenderの出力したFBXは問題ないようですね。 ただUIが独特で個人的には使いにくかったので・・・ あとToyStudioの出力したXファイルも問題ないみたいなのでこっちも良いかも。
350 名前:346 mailto:sage [2009/12/27(日) 01:27:46 ID:GGjOngEr] >>347 つっても、あくまで現時点ね >>348 が言うように、3D対応されたばかりで機能が足らないのは仕方ない 個人的には期待してる PMD化するのは手間だけど PMD+VMDは3Dを扱う敷居がぐっと下がる モーションが連番で別ファイルになってるのも、使ってみればかなり便利 最終的にはMV1にしてもいいしね 3D機能の充実は時間かかるだろうけど、作者にはがんばってもらいたい
351 名前:名前は開発中のものです。 mailto:sage [2009/12/27(日) 13:06:29 ID:2vbWXkV1] でもあまり機能が充実しすぎるとお手軽ライブラリじゃなくなるのよね。 高機能で簡単、というのはただ単に高機能というだけよりよっぽど作るのが難しい。 DXライブラリはお手軽なところが受けてるだろうから、あまり機能追加しすぎて複雑にならないことを祈る。
352 名前:名前は開発中のものです。 mailto:sage [2009/12/27(日) 14:00:34 ID:uhSQPV5X] DXライブラリの3Dライブラリは、安定するまでに2年くらい必要だろう 同程度のライブラリでDrakGDKを使ってれば良いと思う。 C言語の初級からでも扱える3Dライブラリで難易度が低い これで3Dの技術を身に付けて、 2年後くらいにDXライブラリ3Dを始めるのもよい 3Dは表面化されない小さいトラブルが多い。 そして、わけのわからん専門用語も出てくるし....
353 名前:名前は開発中のものです。 [2009/12/27(日) 17:13:24 ID:z8YG6h4b] 今サンプルを参考にちょろっと創った感じだと、現時点でもかなり簡単に ある程度のレベルのものは創れそうだよ。 少なくとも64以上のものは簡単に作れるだろうし、努力しだいではPS2レベルのも出来るんだろう。 本格的に目指すのでない限りは更新速度や質問できる環境などを考えると、 DXライブラリでぜんぜんいいと思った。 まだ3Dモデルを動かすとこまでしかやってないけどね。
354 名前:名前は開発中のものです。 mailto:sage [2009/12/27(日) 17:59:53 ID:yZAsy6xS] 直接質問できる環境は大きいよな しかし管理人さんって何者なんだろうな
355 名前:名前は開発中のものです。 mailto:sage [2009/12/27(日) 18:49:06 ID:8drOPqxx] 作者って14歳の中のひとなんだろうか…
356 名前:名前は開発中のものです。 mailto:sage [2009/12/27(日) 18:51:42 ID:A9L3SGsA] クラスとか使ってC++に最適化されたDxLibも作って欲しいわ
357 名前:名前は開発中のものです。 mailto:sage [2009/12/27(日) 18:56:35 ID:8drOPqxx] Dx. まで入力したら入力補間で命令がズラっと出るという夢をみた。 いや、まぁ自分で改造すればいいのかもしれんけど…
358 名前:名前は開発中のものです。 [2009/12/27(日) 19:16:58 ID:z8YG6h4b] これってブラーとか鏡(レンダリングした結果をテクスチャに)とかはまだ実装されてない?
359 名前:名前は開発中のものです。 mailto:sage [2009/12/27(日) 20:07:35 ID:M0Cw0Z6W] >>357 DxLib::
360 名前:名前は開発中のものです。 mailto:sage [2009/12/27(日) 20:23:19 ID:LDM1qCXB] すいませんこのソフトってオブジェクト指向を理解してないと利用できないのでしょうか?
361 名前:名前は開発中のものです。 mailto:sage [2009/12/27(日) 20:32:01 ID:jKh1EiXg] 自分はHSPから移動してきたので 変数は全てグローバル変数で管理して 各ファンクションもサブルーチンとしてしか認識していなかったが 普通に作れた
362 名前:名前は開発中のものです。 mailto:sage [2009/12/27(日) 20:37:49 ID:bc5V7EbG] >>358 「ブラー」はモデルを半透明にして重ねて描画じゃダメ? 「鏡」は3Dに限らず描画先を指定できないと思うので無理そう。 >>360 C言語の知識だけで十分だよ。 まあ、14歳でも使えるらしいので。
363 名前:名前は開発中のものです。 mailto:sage [2009/12/27(日) 21:54:18 ID:mBfODTUH] ガチで99%の変数をグローバルにして ゲーム完成させたらソースコードが12000行とかになって悶絶した クラス使わないなら関数化は必須に近い・・・ VCの左画面様様だわ
364 名前:名前は開発中のものです。 mailto:sage [2009/12/27(日) 22:06:33 ID:8drOPqxx] 俺もHSPから移行組だったからグローバル当たり前が染み付いていたけど アクセス制限が邪魔なら全部publicでもいいからクラス使った方が 変数名とか関数名の管理が楽だぞ
365 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 01:07:57 ID:3r1xx2ry] >>358 >ブラーとか鏡 今試してみたら3Dでも、SetDrawScreen()でテクスチャにも レンダリングできたよ。管理人さんが昨日直してくれたバージョンだと DrawExtendGraph()でも表示できた。 ずらしたり拡大縮小すれば、DirectXの本とかに良く載っているAAや 被写界深度の表現も出来そうな感じ。 できないのはテクスチャをロックしてピクセル単位でいじること じゃないかな。つまりブラーや鏡とかは可能だけどレンダリングした 画像にポスト処理とかはできない…と思う。 ただこのへんの処理やソートとかは、DirectX直接いじる時と同じで 自分で実装しないといけないぽいので、その意味では既出のように 低レベル(ハード寄り)なので2D機能よりは敷居高い部分あるかも。
366 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 03:34:23 ID:9l/NWr9W] すみません。 このエラーは何が原因なんでしょうか? LINK : fatal error LNK1104:DxLib_VC2005用.exe' を開くことができません。
367 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 03:42:52 ID:/F5FiFDi] 良い感じにPMDの問題報告→修正されてきてるな
368 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 07:59:40 ID:TSFI1pm5] >>366 DXライブラリのエラーではない、以上。 変な場所で実行してるんじゃなければ、 exeファイルのパーミッション確認しとけ。
369 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 10:27:15 ID:9l/NWr9W] わかりました。ありがとうございます。
370 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 11:44:34 ID:Us5hvkZh] >>362 14歳より歳いってて、Cは授業で少しくらいの自分がいまいち理解できないとちょっと悲しくなるタイトルだと思うんだ。
371 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 11:45:38 ID:dBTW62Xp] 俺なんか14歳以下どころか猫以下だぜ・・・
372 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 11:49:28 ID:jpOTUZve] あの猫高知能すぎだよな…
373 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 11:57:25 ID:yuCthtY8] >>365 SetDrawScreen関数は任意のテクスチャを描画先に指定できないと思うんですがやり方があるんでしょうか?
374 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 12:43:57 ID:u/qep0of] あんなレベルの猫や猿が標準だったら今頃世界から人間滅ぼされてるよな・・・
375 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 12:58:13 ID:3EFD++9F] 俺は逆にグローバル関数出来るだけ使わないように拘ってたが 色々面倒になってグローバルも積極的に使うようにしたがな
376 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 12:59:10 ID:3EFD++9F] 間違えた ×グローバル関数 ○グローバル変数 まあどうでもいいことだけど
377 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 13:16:08 ID:jpOTUZve] 最新(掲示板)の奴、ウィンドウの拡大縮小すると変にならね?
378 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 13:46:53 ID:yuCthtY8] >>377 掲示板(2009/12/27(Sun) 13:35)に投稿されているバージョンで試してみたけど確かに挙動が違う。 ウィンドウの拡縮が反映されてないね。
379 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 14:29:28 ID:vxFbJ2Ow] ifってeles使わなくてもifで固めればeles使う必要あるのかな?
380 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 14:41:43 ID:TSFI1pm5] >>379 どこから突っ込めばいいんだい?
381 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 14:49:03 ID:YIPGDrjp] 日本語からじゃない?
382 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 14:54:14 ID:jpOTUZve] スレチって所からだな
383 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 15:42:28 ID:0XgsQP9X] >>379 とりあえずマジレスするが まずスレチな 次にelseな elseを使わないと想定していないエラーが起きる場合もあるから else ifって形にするべき
384 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 15:43:55 ID:vxFbJ2Ow] すいませんでした。 else ifのところのelseをぬいてもおなじように動いたので、 いるのかなと思って C言語のすれにいきます。
385 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 15:46:54 ID:vxFbJ2Ow] ですよね、些細な疑問にマジレスありです。 すっきりしました^^
386 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 16:46:29 ID:EmomTfPw] 友蔵心の俳句
387 名前:365 mailto:sage [2009/12/28(月) 17:40:27 ID:3r1xx2ry] >>373 試したことはないけどpng等から作ったテクスチャとか 「任意なテクスチャ」には無理だと思う。 たぶんテクスチャにレンダリングしたい時は、描画可能な テクスチャを専用で作らないといけないはず。 具体的には、SetDrawValidAlphaChannelGraphCreateFlag()等で 指定してから、MakeGraph()で作ったテクスチャになら レンダリングできる。 あとはそのテクスチャを普通にDrawGraph()とかで描画できるけど UVやビルボードに使えるかはまだ試してないので分からない。 このへんを含めてリファレンスには載っていない関数も かなり多いので、Dxlibのソースや公式掲示板の過去ログ とか見ると使い方も含めていろいろ発見あるかも。
388 名前:373 mailto:sage [2009/12/28(月) 18:48:57 ID:yuCthtY8] >>387 ありがとうございます。 SetDrawScreen関数はMakeGraph関数で作成したグラフィックも指定できるんですね。 リファレンスに書かれていない機能だったとは・・・
389 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 18:52:49 ID:dBTW62Xp] ほうほうそれは知らんかった なんで隠すんだろうな
390 名前:名前は開発中のものです。 mailto:sage [2009/12/29(火) 00:11:37 ID:MjH8+OO8] 関係ないスレだろうけど、ぐぐって検索したらここが見つかったのでここで書く。 「ゲームプログラマになる前に覚えておきたい技術」のシングルトンが変 普通シングルトンといったらpublic static getInstance()内部で初回呼び出し時に インスタンスを作成するのに、別にインスタンス作成のためのpublic static create()というメソッドがある。 そして、クラス外部のどこかでcreate()を呼び出してインスタンスを作成している。 二回createしたら落ちるだとさ。つまり複数インスタンスをcreateするコードをかけてしまう。 これでは、実行時に落ちるとはいえ、コンパイル時にエラーを検出できない。 たとえば、複数のプログラマが、コードの一部分を分担してそれぞれ作っているときに それぞれがcreate()していると、コードを分けている段階では問題なくても 一つにマージしたときにエラーが発生するというシナリオが起きてしまう。
391 名前:名前は開発中のものです。 mailto:sage [2009/12/29(火) 00:18:26 ID:IYgt3GZP] あの本は結構適当だからな
392 名前:名前は開発中のものです。 mailto:sage [2009/12/29(火) 01:19:32 ID:0CS2MVBj] セガの限界です 教育担当者ですらその程度 だからあそこまで落ちぶれた
393 名前:名前は開発中のものです。 mailto:sage [2009/12/29(火) 02:24:27 ID:RokfBydo] Singleton の構築|Code++ ttp://ameblo.jp/woooh-p/entry-10031871696.html 2回create()を呼び出すと落ちるのは問題だが 初期化関数を別に用意したほうがいい場合もある
394 名前:名前は開発中のものです。 mailto:sage [2009/12/29(火) 10:12:58 ID:Mul0eZVk] まあシングルトンなんか使う時点で…
395 名前:名前は開発中のものです。 mailto:sage [2009/12/29(火) 10:14:09 ID:qD3DEd6e] シングルトンは普通に使うだろ
396 名前:名前は開発中のものです。 mailto:sage [2009/12/29(火) 10:31:45 ID:Mul0eZVk] とりあえずシングルトンにしとけばオブジェクト指向っぽいしどこからでもアクセスできて便利と思ってる奴が多すぎる グローバル変数だと意識して使うのは勝手だけどさ
397 名前:名前は開発中のものです。 mailto:sage [2009/12/29(火) 11:41:51 ID:4TKwhtv1] SEGAはプログラマが悪いんじゃなくて企画が悪いんじゃね?
398 名前:名前は開発中のものです。 mailto:sage [2009/12/29(火) 12:33:29 ID:MJuE+QA3] 宣伝が悪い
399 名前:名前は開発中のものです。 mailto:sage [2009/12/29(火) 12:33:57 ID:IYgt3GZP] つまりなにもかも悪いのか
400 名前:名前は開発中のものです。 mailto:sage [2009/12/30(水) 18:16:44 ID:UY2bjnZL] ChangeFontType(DX_FONTTYPE_ANTIALIASING_EDGE); ↑でフォントを変更すると異常に重くなる。 これ以外で文字も目立たせる方法ってあります? たくさんの色つかってる背景なので、文字が目立たなくて見にくい
401 名前:名前は開発中のものです。 mailto:sage [2009/12/30(水) 18:19:27 ID:61sxYcJT] CreateFontToHandle
402 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 10:45:01 ID:OYP4V88L] VC++確かにべんりだーー。 {}のつながりがわかるじゃないか。 bccのときはこめんとひっつでした。 ただぎょうがわかればいいな〜〜
403 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 10:49:31 ID:usKzGBmk] 一度VC#やVB触ったらVC++なんかゴミにしか感じられなくなるけどな
404 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 10:52:44 ID:tpzydI5S] VC#やVBも機械語と比べたらゴミにしか感じられないけどな
405 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 12:36:09 ID:WC0TdB7O] >>402 メニューの[ツール]->[オプション]->[テキストエディタ]->[C/C++]->[全般] で行番号をチェック
406 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 13:08:58 ID:/td8CeQE] >>402 それはお前のインデントが悪い
407 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 15:11:34 ID:7pzjYUfB] VC#やVBってVC++より遅いんだろ? それにVC#はガベジなんちゃらというので急に重くなるそうじゃないか アクションとかシューティングに向くの?
408 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 15:26:26 ID:rtNA4Eqo] その通りだからC++でやりなよ
409 名前:名前は開発中のものです。 mailto:さ [2010/01/01(金) 16:19:43 ID:oXGgPpta] >>407 .NETのガベージコレクションは優秀だから重くなることは無いよ Xbox360では多少難あるけどね 実行速度遅くて困るなんてことは今の時代のPCスペックじゃ有り得ないそ Javaのゲームも余裕で動く時代だし アクション、シューティングもネットブックで動かせたよ
410 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 16:32:52 ID:i5316gGW] 勝手に動いたガベコレが2フレームくらい時を止めても困る
411 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 16:44:58 ID:usKzGBmk] 今時そんな細かい処理速度が表に出てくるほどのゲームを作るのは大変だぞ そんなカツカツの高負荷のゲーム作るんだったらそもそもDXライブラリなんか使うべきじゃないしな それはともかく>>403 は単にIDEの出来だけを言ったつもりだった
412 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 16:48:57 ID:qgsN6nSc] VC#()笑 VB()爆
413 名前:名前は開発中のものです。 [2010/01/01(金) 17:46:25 ID:+lDteCCN] ゼタセカンドでさえ遅れるのを許されない設計の場合 まず ・設計を改める 削れる処理はないか。 もっと速い処理はないか。 特に算術演算はコンパイラでさえ最適化しきれない「なにがやりてーんだタココラ」って効率の悪いコードになりがち。 セオリーから外れてないか。 ウェイトを「カウントアップ」でやろうとしてないか。 などを見直し、それでもダメだ!1ヨクトセカンドでも遅れるのは許されぬ!ってとき ハードウェアとダチ公になる のだ。 遅れるってのは結局「OSのスリープに頼っているから」である。 OSのスリープはもちろんOSがやることなので「今は特に眠くないです。」といったらスリープしてもらえない。 そこをハードウェアとダチトモコレクションすることで、強制的にスリープするのだ。
414 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 17:52:47 ID:+lDteCCN] 格闘ゲームだったら体力が0になったとき義塾大学になるのはもちろんだが、 気絶などのステータスもある。何のモーションのとき何が何でキャンセルできるのか そういうことも常に演算する対象だが、これを if(cancell_OK == 1) とかやってるやつは基本がなってない。 char cancell_OK, cancell_NG, cancell_only_special・・・・・・・ などと延々必要になるではないか。 ステータス管理の変数は1つにまとめろ。それは可能である。 というふうに、効率の悪いコードになっているのを改めることでだいぶ良くなる。
415 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 18:19:25 ID:Xn7CcDBA] >ステータス管理の変数は1つにまとめろ。それは可能である。 へぇ〜どうなるの 40文字以内で教えてください
416 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 18:20:21 ID:ulJ3MFDL] >ウェイトを「カウントアップ」でやろうとしてないか。 これについて教えて下さい
417 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 18:20:50 ID:+lDteCCN] 結局のところ、格闘ゲームにおけるステータスってのは0か1しかない。 分かるだろ。の
418 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 18:22:58 ID:qgsN6nSc] >>414 cancell… ステータスはビット演算でやってもいいが可読性が著しく低いから、 boolの配列作って0〜nの数字をそれぞれステータス名でenumしてる スパゲッティどころか脳髄の如く絡まってるコード持って自慢げにメモリ使用量が〜〜とか言ってる奴いるとぶん殴りたくなる というかぶん殴る
419 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 18:23:47 ID:+lDteCCN] カウントアップウェイト 信じられないことに、いまだに良く見るんだが for(i=0, i < During; i++) のこと。逆も然り。 for(i=During; i !=0; i--) のような これ数えてる間、CPUがずっとそれに占有されるだろ これじゃウェイト、スリープの意味がない。
420 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 18:25:49 ID:ulJ3MFDL] >>419 これ駄目なの?普通に使ってた 代わりにどう書けばいいの?
421 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 18:27:56 ID:+lDteCCN] ウェイトやスリープってのは、 「何もしないんだから、その間他の処理をさせよう」 ってのが基本だ。また、そうでないとウェイトしてる間他の何の処理もできないから 極端に言えば画面が停止することになる。 普通は、OS越しに駆動するゲームだったらOSに用意されるスリープ命令を使う。 OSがない組み込みなどで動かすゲームなら、割り込みを使う。
422 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 18:38:45 ID:ulJ3MFDL] ?
423 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 19:16:43 ID:CHW7ms0X] ループ処理の話かと思った
424 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 19:24:26 ID:Xn7CcDBA] unsigned long stat; #define CANCEL_OK 0x00000001 ,,, if (stat & CANCEL_OK) ... else if (stat & CANCEL_NG) ... とか書くのかな >boolの配列作って0〜nの数字をそれぞれステータス名でenumしてる みたいなほうが好きだ ただ例にあげてるとおりに格闘ゲームだとするとキャラクターの1フレームごとの変数の数が増えるのをきらうのはわかる
425 名前:名前は開発中のものです。 [2010/01/01(金) 19:28:11 ID:DuVCrQzJ] >OSがない組み込みなどで動かすゲームなら、割り込みを使う。 GBAとかMSXとか古いゲーム機の時のことでしょ 懐かしいな
426 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 19:28:36 ID:+lDteCCN] 時間軸で考えると、 例えば「1時間後に働けよ」というのがスリープの考え方。 「じゃあその1時間何をするか」。 1時間、ずーっと1,2,3,4,5,6,7,8,・・・・と声に出して数え上げるとする。 これじゃ、なんか用事があっても何も出来ない。 「じゃあ本でも読むか」となれば、別の処理(本を読んで知識を得る)が出来る。 どっちやっててもシステム時間として1時間は過ぎるが 片方は「実質的に意味のあることを何もしてないのにパワーだけ食う」 片方は「実質的に何もしないんだから別のことをする」 どっちが効率的か分かるだろう
427 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 19:31:29 ID:+lDteCCN] また、ループも for(i=0; i < During; i++){ Plus += Exactly; } ではなく、 if(During == FuckingAss){ Plus += Exactly; Plus += Exactly; Plus += Exactly; Plus += Exactly; Plus += Exactly; Plus += Exactly; } などとしたりすることがある。 基本的にコッチのほうが速いからだ。 CPUとコンパイラにもよるが。
428 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 19:32:53 ID:ulJ3MFDL] >>427 へー
429 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 19:35:16 ID:ulJ3MFDL] でも1000回のループとかだと、1000行書いてたらさすがにソース長くなって鬱陶しいよね 大体何回までのループなら>>427 の↓のパターンで書いてもいいの?
430 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 19:37:18 ID:+lDteCCN] デッドライン、つまりここまでに必ず処理終えろ!っていう最終期限が決まってるシステムでは forループではなく、こういうふうな展開したループもどきが使われることも多い。 難点は、見た目素人っぽいこと それ以外は何してるか分かりやすくていいのだが 「こっちのほうが速いよ」ってことをなかなか認めてもらえないのが難といえば難 これを、デッドラインまで繰り返す デッドラインが決まっているということはおおよそのアタリがつくし、 そんなに長いループにもならない。なってはいけない。
431 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 19:42:28 ID:+lDteCCN] まあこういう小ネタは 「もっと軽くしたい」ってときの最終手段なので 根本から遅いのであれば設計を見直したほうがいいよ
432 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 19:44:49 ID:Xn7CcDBA] >ID:+lDteCCNが考える中で じゃあWindowsのDXライブラリで たとえば1フレーム50ミリ秒にするのにSleepを使わない最適なメインループはどういうの 公式のサンプルがいいのなら「それ」といってくれればいいです
433 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 19:46:30 ID:qgsN6nSc] マジレスするとDXライブラリ使うような環境でこんな事を考える必要は無い
434 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 19:48:17 ID:ulJ3MFDL] >boolの配列作って0〜nの数字をそれぞれステータス名でenumしてる これ具体的にどんな感じで書けばいいの?
435 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 19:50:56 ID:+lDteCCN] 俺やったら、スリープはCPUに直結する。 例えばPowerPCはタイマユニットを持っているので これに値を入れてカウントさせる。アンダーフローと同時に割り込みが入る。 その割り込みでタスクを駆動させる。 こういうハード寄りもいいとこのタイマ管理ってのはアプリで使うもんじゃないというし、 まあそれもそうだろうが実現する場合これが一番いいのだ。 ハードウェアのタイマクロック計上はタスクじゃないので、一切影響を及ぼさない。 普通OSのスリープは多かれ少なかれCPUのパワーを食うが 俺のやるタイマは一切食わない。割り込み処理のオーバーヘッドは微々たるもの。
436 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 19:52:10 ID:ulJ3MFDL] >>435 全然わからんからサンプルソースで説明しておくれ
437 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 19:54:51 ID:OvIEzR2y] wwwwww DXライブラリのスレでPowerPCwwww 面白いヤツだなお前
438 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 20:05:29 ID:+lDteCCN] PowerPCは例えだし サンプルといっても、やりたい事を記した関数しかないのだがw 割り込みはソフトウェアじゃない。 割り込みは、ベクタ方式の場合ベクタベースからオフセットしたところにプログラムカウンタが来るだけだから 別にソースで表すもんじゃない。 また、PowerPCならベクタじゃない。
439 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 20:07:18 ID:rctl5BXb] 割り込みベクタとか。正月でやっぱらったロートルPGが集まるスレはここか?
440 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 20:08:35 ID:rctl5BXb] やっぱらったって酔っぱらったなw 俺も飲んでるがなww
441 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 20:10:31 ID:+lDteCCN] でもハード寄りプログラムは面白い。 普通あんまり使わないウォッチドッグタイマ どうしても更新したいのに処理が終わらなかったとき これで強制的に更新したりできる たまにはハード寄りのオブジェクトを作ってみても面白い
442 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 20:42:23 ID:WC0TdB7O] >413で間違えて書き込んだのか知らないけど ここは主にDXライブラリやそれに関する話をするスレなので DXライブラリに全く関係ないPowerPCの話はやめてほしい あとゲームではあまり意味の無い、 >427のような時期尚早な最適化を進めるのはどうかと思う 今のVC++の無償版には最適化機能が付いているし
443 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 20:50:31 ID:+lDteCCN] 考え方はx86系統でも同じなのに・・・w
444 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 22:16:35 ID:yLIIIbHt] >>434 横レスだが、たぶんこんなかんじじゃないの enum StatusSet{ Stat_POINSON, Stat_PARALYSIS, Stat_DISEASE, Stat_CURSE, Stat_NUM }; bool phys_stat[Stat_NUM]; for(int i=0;i<Stat_Num;++i) phys_stat[i] = false; あとはif( phys_stat[Stat_POISON] )とかでもswitchで振り分けてもいいし STLのbitsetは役に立たないかな?使ったことないけど
445 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 22:41:12 ID:qgsN6nSc] >>444 意図してたのはちょっと違った enum StatusSet{ JUMP, WALK, DASH, ATTACK, }; bool stat[5]; if (stat[JUMP]) { 〜〜 } という。 #まあjumpとかwalkは色々やるべきなのでintで管理すべきだが……
446 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 22:49:37 ID:ulJ3MFDL] >>444-445 ありがとん
447 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 23:18:29 ID:4nYhycH7] ID:+lDteCCNみたいなオナニーはブログででもやってくれ
448 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 23:28:38 ID:/td8CeQE] 私はステータスはビット演算派だ。 可読性が指摘されているが、 やり方が悪いくせに可読性が低いと決めつける奴に進歩はない。 #define JUMP (1 << 0) #define WALK (1 << 1) #define DASH (1 << 2) #define ATTACK (1 << 3) unsigned long stat; if (stat & WALK) { 〜〜 } ↓ジャンプアタック if (stat & (JUMP | ATTACK)) { 〜〜 } ----------------------------------------------- Cをアセンブラ視点で見られるかどうかは重要だと思うが、 今は最適化のレベルが上がっているので、 >>427 のようなロートルな話は意味がないと思う。
449 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 23:30:56 ID:+lDteCCN] なんかコンパイラを優秀な最適化屋と思ってるのがいるが、 logとビットシフトでは10秒も差がある。
450 名前:名前は開発中のものです。 mailto:sage [2010/01/01(金) 23:57:47 ID:1cbp2whq] 言ってることの半分もわからないけど DXライブラリと無関係なのはわかる
451 名前:名前は開発中のものです。 mailto:sage [2010/01/02(土) 00:16:20 ID:ek4oo2Ge] まあこいつプログラム板ゲ製板どこにでも湧くキチガイなんだけどな
452 名前:名前は開発中のものです。 mailto:sage [2010/01/02(土) 00:26:34 ID:08xjavwk] どうせたいがい描画がボトルネックになるから細かいことを気にしてもほとんど意味がない
453 名前:名前は開発中のものです。 mailto:sage [2010/01/02(土) 00:27:36 ID:HeY6umvi] >logとビットシフトでは10秒も差がある。
454 名前:名前は開発中のものです。 mailto:sage [2010/01/02(土) 00:33:31 ID:08xjavwk] 実際に表に出てくるパフォーマンスっていうのは「積み重ね」じゃないからな 細かいことはIOや描画の桁違いのコストで吹き飛ぶ
455 名前:名前は開発中のものです。 mailto:sage [2010/01/02(土) 00:36:42 ID:txdXna1V] コミケ終わったとたん速度はえ〜〜〜w >>405 ありがとです 行表示できました まだ、便利な機能があればおしえてほしいです。
456 名前:名前は開発中のものです。 mailto:sage [2010/01/02(土) 11:44:35 ID:Ab6bZvqB] >logとビットシフトでは10秒も差がある。 10秒って・・・・・・Z80とかクロック4Mhzの時代の話ですか?
457 名前:ひらしょ [2010/01/02(土) 13:50:19 ID:xqJ6LKWH] 流れさえぎってすまないが、ゲームプログラマになる前に云々の著者です。 シングルトンがああなのは、getInstanceの速度をあげるため。 if一回減らせる。描画APIラッパとかだとここ重要。 create二回で死ぬのも「二回呼んじゃダメ!」と言いながら assertで死ぬわけで、意味のある死に方。 ゲームにおいては、 間違ったコードを書いても動き続けることは重要ではない。 間違った、あるいは非効率なコードを書いたら すぐわかるようにしておいて、出荷までに直すべき。
458 名前:名前は開発中のものです。 mailto:sage [2010/01/02(土) 14:03:41 ID:+OdFeBMV] 平山さん?SE-GA-♪
459 名前:名前は開発中のものです。 mailto:sage [2010/01/02(土) 14:09:07 ID:X1WEcwoJ] うわ、こんなスレまで見てんのかよ 老いぼれセガ社員必死だな Seleneスレ荒したのお前だろ
460 名前:名前は開発中のものです。 mailto:sage [2010/01/02(土) 14:09:36 ID:7cOQTtto] >>459 Selene作者帰れよ
461 名前:名前は開発中のものです。 mailto:sage [2010/01/02(土) 14:38:27 ID:Y2eIfDvE] ここは有名人の集うインターネッツですね
462 名前:名前は開発中のものです。 mailto:sage [2010/01/02(土) 14:41:47 ID:+OdFeBMV] 証拠うpまだー?
463 名前:名前は開発中のものです。 mailto:sage [2010/01/02(土) 15:39:32 ID:HeY6umvi] >>457 は>>390 の書き込みに対してか >>390 はassertが何のためにあるのかも知らないただのプログラム初心者だな スレ違いでチラシの裏にでも書くような内容を堂々と書くくらいだしな >>459 Seleneの現行スレ、過去スレ見たけど全然荒れてないぞ あと、お前はアンチSEGAのスレにでもいけ
464 名前:名前は開発中のものです。 mailto:sage [2010/01/02(土) 18:47:34 ID:US5QyJsT] 3.01きたな
465 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 09:52:26 ID:uXTT7Kpp] >>457 ゲームならその仕様で良いだろうね。 ”ゲームプログラマになった後の〜”の執筆もよろしくお願いします
466 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 11:10:30 ID:WXd0Gz3I] ちょっと相談なのですが、座標はfloat型で取得していて、 マップは20×15で通れるところが0、通れないところが1で2次元配列読み込み済。 自キャラは32×32の場合、DXライブラリのサンプルにあったマップとのあたり判定の例に従って float oldX,oldY;//移動前の座標 int key = GetJoypadInputState(DX_INPUT_KEY_PAD1); oldX = (*it).x ;//移動前のX座標 oldY = (*it).y ;//移動前のY座標 int x1 = (*it).x , y1 = (*it).y; int x2 = (*it).x+32 , y2 = (*it).y+32; //右下の座標(どこで使うか考えている) printfDx("%d,%d,%d,%d\n",x1,y1,x2,y2);
467 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 11:12:21 ID:WXd0Gz3I] float df = GameFrame::IdouHosei(4); if(key & PAD_INPUT_UP) (*it).y = (*it).y - df; if(key & PAD_INPUT_DOWN) (*it).y = (*it).y + df; if(key & PAD_INPUT_LEFT) (*it).x = (*it).x - df; if(key & PAD_INPUT_RIGHT) (*it).x = (*it).x + df; if((*it).x<0) (*it).x=0; if((*it).x>608) (*it).x=608; if((*it).y<0) (*it).y=0; if((*it).y>448) (*it).y=448; x=x1/32; y=y1/32; if(map[y][x]==1){ (*it).x = oldX ; (*it).y = oldY ; } (*it).anim->draw(0, (*it).x, (*it).y); こんな感じにすると若干思っているのとずれるんですよね…。 当たり判定なので左上の座標と右下の座標を取得するところまでは考えたのですが、 どのようにしたら実情にあったマップとのあたり判定になると思いますか?
468 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 11:25:02 ID:CHMCqqiY] とりあえず見難いから->使っとけよ 移動させてから戻すんじゃなくて、二次元配列のマップチップなら移動先が0かどうか判定するほうがいいんじゃね
469 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 11:26:09 ID:mNxKxxAQ] >>467 >こんな感じにすると若干思っているのとずれるんですよね…。 ちょっと分かりづらいので、何が原因でどういう風にずれるのか詳しく教えて。
470 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 11:44:39 ID:WXd0Gz3I] >>469 うまく言えないのですが、ぶつかるべきところでぶつからないで食い込んで止まったりする、という感じでしょうか・・・。 あと、通行可のはずのところに入れなかったり。 マップに入れるところ、入れないところを作りたいのですが。
471 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 11:52:19 ID:v00n4e/G] 何でもそうだが、 条件判定は少なければ少ないほどよい。 っていうか現場でifififififififififififififififif重ねる奴は怒られる。 switch-caseで済む場合もあれば ビットシフトで済む場合もある 俺はswitch-case大嫌い 下に来るまでクロックを食いながら来るからだ だから個人的にはビット演算以外認めない ビット演算なら、立てておけば何が来ても一瞬だからだ
472 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 12:06:18 ID:v00n4e/G] ビット演算が嫌いだったり何らかの理由でどうしてもswitch-caseにしなければならないのなら ステータスに数字を割り振って、その値が指すものに直に飛ばしてもよい 擬似テーブル方式だな 内心嫌だった とにかく、ifififififififififififififififififififififififififififififififififififififififififififififififififififififififififififififififififififififif重ねるのは見た目にもよくないし 実行速度的にも良くないので絶対に改めるべきだ。 単純なswitch-caseも絶対に避けるべきだ。10項目あったら10項目めに来るまで最低11クロックかかる。 11クロックもあったらシェーダを3回も回せる。 じつにもったいない話だ。
473 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 12:07:15 ID:aWVerO1p] まず x=x1/32; y=y1/32; ↓ x=x1/20; y=y1/15; じゃないか? その上でマップに当たった場合、 ギリギリまでキャラクタを移動させる処理が足りない。 それをやらないと、キャラクタがブルブル震える。 あと変数の名前をもうちょっと考えてやろうな。 配列の引数に渡すセル番号の値がキャラ座標と同じx,yはひどい。 規格が違う。
474 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 12:10:36 ID:CHMCqqiY] とりあえずマップが格子状ならキャラクターのx,yも同じ値で管理すべき 実際の位置は表示部分で考えるか、滑らかな動きがいいなら別途キャラクター表示x,yを用意して補正してやる
475 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 12:15:25 ID:mNxKxxAQ] >ちょっと相談なのですが という言い回しだったので「アルゴリズムを提案してほしい」ということかと思ったのに、実は「バグを見つけて下さい」ということだったとは・・・ >>473 で解決だな。
476 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 13:43:46 ID:+Y7mHkgr] お前ら馬鹿か 自キャラは32×32だから/32でいいだろ 出鱈目教えんなよw それと if(map[y][x]==1){ (*it).x = oldX ; (*it).y = oldY ; } となってるが それはキャラの左上しか減り込みチェックしてないから int x2 = (*it).x+32 , y2 = (*it).y+32 は int x2 = (*it).x+31 , y2 = (*it).y+31 に変えて map[y1][x1], map[y1][x2], map[y2][x1], map[y2][x2] をチェックしてやらんといかん 他も変えるべき個所はあるがとりあえずここまで
477 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 13:47:15 ID:+Y7mHkgr] 間違えたw >map[y1][x1], map[y1][x2], map[y2][x1], map[y2][x2] をチェックしてやらんといかん はなかったことね 取りあえず4隅をチェックするということ
478 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 14:02:44 ID:+Y7mHkgr] あとね、ID:WXd0Gz3I のことやろうとするとね、結構大変だから、俺もやったけど 引き返すなら今のうちかも、特に初心者は ある程度慣れた人ならできるだろうけど 俺の場合は下行くか上行くか左行くか右行くかによって場合わけで上の人が嫌いって言ってたswitch-caseでやったけど まあ上手いことやればswitch-case使わなくてもできるんだろうけど 俺の場合は上行った場合は左上と右上の2隅チェック、 右行った場合は右上と右下の2隅チェック、以下略 ってやってったと思ったんだけど
479 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 14:31:11 ID:CHMCqqiY] 初心者が誤解するとアレだから一応言っておくけどswitch-caseは基本JMPだから。
480 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 15:24:02 ID:WXd0Gz3I] あたり判定みたいに右下と左上のみの判定じゃ難しいみたいですね。 なんとなくそれっぽい動きができればそれでいいのですが…。 switch-caseも一度考えてみます。
481 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 16:42:55 ID:TuIYpr0P] >>480 スレ斜め読みのおいらが答えると、まず、floatは辞めよう。 一度、float型で、単純な計算をさせると分るけど、floatは精度的に難がありすぎる。 使うなら、intかdoubleを。(特に今回は浮動小数点が必要なさそうだからintで十分) あと、値が何を示しているのか?をきっちりと考える事。 (x2が、自キャラがギリギリ外れてる位置なのか?ギリギリ入っている位置なのか?) 可能なら、それぞれの名前をx1=>x_top x2=>x_under y1=>y_left y2=>y_rightとか、 ちゃんと意味する名前に・・・。 また、無意味なマジックナンバーはさっさと定数に。 static const int SQUARE_SIZE=32;とかにする。 さらに、一般的にキャラと通路がほとんど同じ大きさだと、 将棋みたいなマス目管理じゃないと、操作不可能になりやすい。 (何か絶対の理由が無ければ、キャラの処理的な大きさは7割で処理していっても問題無い。) めんどくさいんで、人の書いたモノの紹介で濁すけど、 今回は、基本ただの四角形と四角形の判定辺りで行ける。 marupeke296.com/COL_main.html の その4 のはじめの所を読めば問題解決するだろう。
482 名前:名前は開発中のものです。 [2010/01/03(日) 18:04:43 ID:smx+9BoV] 宇宙船を舞台にしたFPSゲームを作ろうと思っています。 次のような要素を実現したいのですが・・・ @エイリアンを倒した数によって、ヒロインのおっぱいが大きくなる。 Aステージをクリアしたあと、ヒロインのおっぱいを揉める。 @に関しては、おっぱいの大きさごとのモデルを作るのではなく、DXライブラリの プログラムで、おっぱいだけを大きくしたいです。 Aに関しては、プレイヤーの動きに応じてちゃんとおっぱいがもにもにするようにしたいです。 DXライブラリで可能でしょうか?
483 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 18:10:25 ID:Cn7qbODV] 3D? おっぱい以前に,さすがにFPSならDXライブラリじゃなくてもっとちゃんとした3Dゲームエンジン使った方が結果的にずっと楽だよ
484 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 18:12:54 ID:FbdCmvgh] ,,, ,,,,,, : .と お 大 お エ _ = ~~ ``ヽ_,=''~´ ´~ヽ : は こ き .っ イ _= ~ ヽ : 思 が く ぱ リ ~=、 ミゞ、 , -彡 ヽ. : わ ま .し. い ア ~=、、、Cl~evj <e~}6)_ 、、、ミ : ん し よ を .ン ミ.~~ /', ゚ ;'7 ミ7ヾ~- 、 : か い う の ≡ (','゚, '.人 ゝ | ヽ : ね な 命 `= `ー' iノ' | / | ん で ~ーノノノノノ'′ て _ ∩ピタ (; ゚д゚) し | | | し ⌒J ( ;´゚д゚) ・・・・・・・・・ c(,_U_U ガク ( ;´゚Д゚) おっぱいは何のためにあるんだー c(,_U_U _,,..-―'"⌒"~⌒"~ ゙゙̄"'''ョ ゙~,,,....-=-‐√"゙゙T"~ ̄Y"゙=ミ T | l,_,,/\ ,,/\
485 名前:名前は開発中のものです。 [2010/01/03(日) 20:05:43 ID:wq7ATXDp] >>482 3Dメッシュの1部分の頂点座標を変更することが出来れば可能ではないだろうか DXLibではメッシュの中の1点の頂点情報を変更する関数が見当たりませんでした 直DirectXではLockVertexBufferで頂点情報を抜き出し、一部変更してからUnlockすれば書き換えできる その他知る限りだとDarkBasicのSET VERTEXDATAがそれらしき機能かもしれない 自分はボーンの使い方わかないので、頂点書き換え方式でキャラのモーション作ってます
486 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 21:49:29 ID:v00n4e/G] シェーダでやったほうが1000倍ラクだと言っておく
487 名前:名前は開発中のものです。 mailto:sage [2010/01/04(月) 00:50:49 ID:96m9JQJM] おっぱいシェーダw
488 名前:名前は開発中のものです。 mailto:sage [2010/01/04(月) 08:25:51 ID:TtKqpyJC] 究極のおっぱいシェーダーをダウンロードできるところを教えてください おっぱいはTonnyかべっかんこみたいなのが好みです
489 名前:名前は開発中のものです。 mailto:sage [2010/01/04(月) 11:15:32 ID:fBgUH+Pe] makeしたら負けやと思う で
490 名前:名前は開発中のものです。 [2010/01/04(月) 15:41:04 ID:7VFKyHz5] >>486 HLSLで頂点シェーダやったけど、メッシュ全体の平行移動しかわからない 一部分の頂点座標を動かすってoffset引数使うとまでは調べられたが情報全然ありません どうやってやるのでしょうか
491 名前:名前は開発中のものです。 mailto:sage [2010/01/04(月) 16:44:21 ID:R2vcIv7j] スキニング
492 名前:名前は開発中のものです。 mailto:sage [2010/01/05(火) 23:31:28 ID:V0sHGwwt] 3Dゲーム作ってるんだけど、キャラクターモデルの大きさとかって影響あるの? ビットマップと違って3Dはラスターデータだから、データの重さにはあまり影響ないように思うんだけど。 テクスチャの大きさが影響するとか? もしそうなら、大体どれくらいの大きさのモデルが基準になるんだろう。
493 名前:名前は開発中のものです。 mailto:sage [2010/01/05(火) 23:58:55 ID:7uq6yiIC] サンプルを参考にゲームを作り、1面、2面…とバラバラにcppを作ったのですが、 これを一つにまとめて、クリアしたら次の面にいくようにしたいのですが、どのような方法がありますか?
494 名前:名前は開発中のものです。 mailto:sage [2010/01/06(水) 00:27:54 ID:lKDLfFv0] >>492 ポリゴン数とテクスチャサイズはパフォーマンスに影響するよ。 市販のゲームを参考にすると良いと思う。 ttp://www.geocities.jp/gamerabbits/programing_08.htm >>493 「#include」「extern」を使う。 ttp://www.geocities.jp/ky_webid/c/032.html
495 名前:名前は開発中のものです。 mailto:sage [2010/01/06(水) 02:00:14 ID:odLPnjyO] ポリゴン数の話でなく、オブジェクトのサイズの話の方なら 3DCGソフトによって座標系や単位もバラバラなので関係ないよ。 ただ作業上の手間はあるので、サイズは統一しておいた方が 良いとは思う。 Dxライブラリの場合は、メタセコに合わせているので市販の3DCG ソフトから直接xで書き出した場合は、極小で表示されると思う。 3DCGソフト側で適正なサイズでモデリングするか、メタセコ経由 してサイズを調整するのが無難かも。 >>493 switchとかでもできるけど、シーン(面)ごとにクラスに分けてるなら 基底のクラス作ってそっから各面を派生させたほうが楽かも。 シーン遷移(シーケンス遷移)やstateパターンとかでググるといいかも。
496 名前:名前は開発中のものです。 mailto:sage [2010/01/06(水) 02:15:00 ID:ngavL09N] 質問者のレベルを考えると if ( scene == SCENE_TITLE ) Title(); else if ( scene == SCENE_PLAY ) Play(); でも良い気がした。
497 名前:名前は開発中のものです。 mailto:sage [2010/01/06(水) 02:17:06 ID:BbbKJDe6] 関数ポインタなんてどですたい
498 名前:名前は開発中のものです。 mailto:sage [2010/01/06(水) 02:41:18 ID:T+FI4egH] モデルの大きさは1以下にしたほうがいいとか どっかに書いてあった気がする 浮動少数点の精度がどうたらこうたらで
499 名前:名前は開発中のものです。 mailto:sage [2010/01/06(水) 16:02:24 ID:AxwVnUF1] void model_load( char *file,int zx, int zy){ 〜略〜 mapmodel_h = MV1LoadModel(file) ; 〜略〜 } //グローバルスコープ int mapmodel_h; int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){ 〜略〜 model_load("newmap2.mqo",5,6); これのmodel_load関数のどこが間違ってるの?デバッグ中に「モデルファイル newmap2.mqo が読み込めませんでした」とか怒られる ちゃんとファイルを置く場所も間違ってないのに・・・
500 名前:名前は開発中のものです。 mailto:sage [2010/01/06(水) 16:15:50 ID:Yz0j5Uar] それはね、ほら、あれだよ
501 名前:名前は開発中のものです。 mailto:sage [2010/01/06(水) 19:54:12 ID:+MjWEeUN] ファイルを置く場所が間違ってないなら、そのファイルが問題なんじゃないだろうか。 試しにDxLibのサンプルのファイルに置き換えてみるとかどうだろう。 あと念のため、>>301-302 も見てみてね。
502 名前:名前は開発中のものです。 mailto:sage [2010/01/06(水) 21:30:52 ID:AxwVnUF1] ・・・回答ありがとう。解決したよ・・・ たった今、もの凄い恥ずかしいミスをしている事に気づいた。ぅゎー
503 名前:名前は開発中のものです。 mailto:sage [2010/01/07(木) 00:27:42 ID:YFEgAVA7] うまくいかないのでやり方を教えてほしいのですが、 story.cpp内のdraw関数では、 switch(nowstage) { case 0: DrawGraph(0,0,img[0],FALSE); (nowfstageは現在プレイ中のステージ。クリアすると+1されるようになってる img[0]には画像が読み込まれている) という宣言がしてあって、 void ShootGame::drawGameClear(){ slgmap.draw(); jikicnt.move(); bakucnt.move(); GameFrame::drawGameClear(); int key = GetJoypadInputState(DX_INPUT_KEY_PAD1); if(key & PAD_INPUT_B)story.draw(); // if(key & PAD_INPUT_B)setGameState(GAME_MAIN); } とした場合、該当のキーを押している間は画像が表示されるのですが、キーを離すと表示されません。 まずキーを押したら画像が表示されて、その後キー入力で画像を切り換えて何枚か表示させた後、 またキーを押したらGAME_MAINに戻るようにしたいのですが、どうしたらいいですか?
504 名前:名前は開発中のものです。 mailto:sage [2010/01/07(木) 01:03:02 ID:TMdG719d] enum { START, FIRST, SECOND, END, }; int draw_state = START; drawGameClear(){ int key = GetJoypadInputState(); if(key & PAD_INPUT){ draw_state++; } } some_function(){ if(draw_state == START){ // hyouji sinai } else if(draw_state == FIRST){ // 1maime hyouji } else if(draw_state == SECOND{ // 2maime hyouji } else if(draw_state == END){ // GAME_MAIN ni modoru } }
505 名前:名前は開発中のものです。 mailto:sage [2010/01/07(木) 01:04:01 ID:TMdG719d] あ、キーを押した瞬間だけ検知するロジックが必要だな
506 名前:名前は開発中のものです。 mailto:sage [2010/01/07(木) 01:10:32 ID:TMdG719d] bool before_key_state = false; bool now_key_state = false; chk_key(){ before_key_state = now_key_state; if(GetJoypadInputState() & PAD_INPUT){ now_key_state = true; } } chk_key()を毎フレームかコールバックでやってるなら キーが押されたときに実行して以下の処理で検知とか if(!before_key_state && now_key_state){ // ima osareta }
507 名前:名前は開発中のものです。 mailto:sage [2010/01/07(木) 01:11:44 ID:TMdG719d] こうか。。超適当 chk_key(){ before_key_state = now_key_state; if(GetJoypadInputState() & PAD_INPUT){ now_key_state = true; } else{ now_key_state = false; } }
508 名前:名前は開発中のものです。 [2010/01/07(木) 15:40:47 ID:4ItCtcBu] 上記のchk_key関数を作ってGameClear内に呼び出すようにしたのですが、 方法が悪いのか、やはりキーを押している間しか画像が表示されません。 現在このような形にしています。 bool before_key_state = false; bool now_key_state = false; はすべての関数の外で呼び出し、 (int cstate = STARTは外で呼び出すと2回目から画像が出なくなったので、中にしました) void ShootGame::drawGameClear(){ int cstate = START; chk_key(); int key = GetJoypadInputState(DX_INPUT_KEY_PAD1); if(key & PAD_INPUT_B){ cstate++; } if(cstate == START){ slgmap.draw(); jikicnt.move(); bakucnt.move(); GameFrame::drawGameClear(); } else if(cstate == FIRST){ story.draw(); } else if(cstate == SECOND){ story.draw(); } else if(cstate == END){ setGameState(GAME_MAIN); }
509 名前:名前は開発中のものです。 [2010/01/07(木) 15:43:45 ID:4ItCtcBu] if(cstate == START){ 以下をsome_function関数にして、 void ShootGame::drawGameClear(){ int key = GetJoypadInputState(DX_INPUT_KEY_PAD1); chk_key(); if(key & PAD_INPUT_B){ cstate++; some_function(); } } というのもやってみましたが(当然ですが)できませんでした。 chk_keyの中身は、 void ShootGame::chk_key(){ int key = GetJoypadInputState(DX_INPUT_KEY_PAD1); before_key_state = now_key_state; if(key & PAD_INPUT_B){ now_key_state = true; } else{ now_key_state = false; } } というような形になっています。
510 名前:名前は開発中のものです。 [2010/01/07(木) 15:52:30 ID:4ItCtcBu] キーを離すと「cstate = START」の状態に戻っていると思います。 if(key & PAD_INPUT_B){ }内の cstate++;の前後に if(cstate == START){ を入れるというのも試してみたのですが、 やはりうまくいきません
511 名前:名前は開発中のものです。 mailto:sage [2010/01/07(木) 16:22:43 ID:3PYGN21/] そりゃ cstate はローカル変数だからな それじゃあその関数呼ばれるたびに cstate = START; がセットされるわな int cstate = START; を static int cstate = START; に変えるか あるいは cstate をメンバ変数にするかしないと あと、キー押し続けチェックは彼とは違ったやりかたになるけど chk_key(); int key = GetJoypadInputState(DX_INPUT_KEY_PAD1); if(key & PAD_INPUT_B){ cstate++; } の部分を以下に変えたらどうか static bool holdDownB = true; int key = GetJoypadInputState(DX_INPUT_KEY_PAD1); int pushB = key & PAD_INPUT_B; if (pushB && !holdDownB){ cstate++; holdDownB = true; } if (!pushB) holdDownB = false;
512 名前:名前は開発中のものです。 mailto:sage [2010/01/07(木) 16:39:31 ID:4ItCtcBu] ありがとうございます。 確かにintでは値の保持ができませんね…。気が付きませんでした。 静的変数にしなくてはいけなかったんですね。 あとキー入力の部分もありがとうございました。 考えていた通りに動かすことができました。
513 名前:名前は開発中のものです。 mailto:sage [2010/01/07(木) 16:45:13 ID:tQIgGLUE] DxlibをC#で使ってる解説サイトとかないかな?
514 名前:名前は開発中のものです。 mailto:sage [2010/01/07(木) 17:40:30 ID:eYJAziPK] >>513 C#版は一部の関数が使えないこと以外はC版と同じ。 readme.txtに書かれていること以上に解説することがないから解説サイトもないよ。
515 名前:名前は開発中のものです。 mailto:sage [2010/01/07(木) 22:19:47 ID:TMdG719d] static変数使うと初期化がうまくできなくなりがちなんだよなあ
516 名前:名前は開発中のものです。 mailto:sage [2010/01/07(木) 23:25:56 ID:eYJAziPK] >>515 別に静的変数を使わなくても実装できるよ。 せっかくC++使ってるんだしクラス化してみたら? ↓みたいな感じで。 // ジョイパッド管理クラス class Joypad { private: enum { MAX_BUTTON = 28 // DXライブラリは最大28個のボタンに対応している }; int PressedCounts[MAX_BUTTON]; // 各ボタンの押されたフレーム数を保存しておく public: void Update(); // ジョイパッドの入力状態を更新する int GetPressedCount(int InputType, int Button); // ボタンが押されたフレーム数を取得する }; // 使用例:------------------------------- // ジョイパッドの入力状態を毎フレーム1回だけ更新する joybad->Update(); // パッド1のBボタンが押された if(joybad->GetPressedCount(DX_INPUT_KEY_PAD1, PAD_INPUT_B) == 1) { // 何らかの処理 }
517 名前:名前は開発中のものです。 mailto:sage [2010/01/08(金) 02:41:50 ID:8yWASrLd] 態々クラス化する程のことか 少なくとも手間は普通にコーディングした方が全然掛からないが
518 名前:名前は開発中のものです。 mailto:sage [2010/01/08(金) 09:30:18 ID:TquDKlBD] ならその方法で良いんじゃない? クラス化はあくまで一例でしょ 君のいう普通がどんななのかは知らないけど
519 名前:名前は開発中のものです。 mailto:sage [2010/01/08(金) 21:55:23 ID:G0v30nLn] スクリーンのある位置のpixelが、 何色を表示しているかわかる方法ってありますか?
520 名前:名前は開発中のものです。 mailto:sage [2010/01/08(金) 21:59:21 ID:UpbwAmjx] ある
521 名前:名前は開発中のものです。 mailto:sage [2010/01/08(金) 22:04:52 ID:3zMDBTld] ある。
522 名前:名前は開発中のものです。 mailto:sage [2010/01/08(金) 22:08:20 ID:G0v30nLn] GetPixelですか?
523 名前:名前は開発中のものです。 mailto:sage [2010/01/08(金) 22:11:52 ID:3zMDBTld] なんでそれを聞く必要があるの?リファレンスにも書いてあるし自分で試すことも出来るのに
524 名前:名前は開発中のものです。 mailto:sage [2010/01/08(金) 22:16:19 ID:5mIUw3Vj] >>523 言いたいことは分かるけど、おまいさんに突っ込む資格は無いだろうw
525 名前:名前は開発中のものです。 mailto:sage [2010/01/08(金) 22:23:08 ID:G0v30nLn] >>520 ,521,523,524 なんとか出来そうになりました ありがとうございます
526 名前:名前は開発中のものです。 mailto:sage [2010/01/08(金) 23:05:49 ID:qPTthljo] ワロタ
527 名前:名前は開発中のものです。 mailto:sage [2010/01/08(金) 23:08:41 ID:hMOVMPlC] できそうってまだできてないのw
528 名前:名前は開発中のものです。 mailto:sage [2010/01/09(土) 10:14:37 ID:D2rGgWHr] ストライクウィ○チーズ保管庫画像取得 maniax.dlsite.com/work/=/product_id/RJ057302.html 結構使える
529 名前:名前は開発中のものです。 mailto:sage [2010/01/09(土) 10:31:31 ID:KNCSUVMR] >>528 wgetでおk
530 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 04:28:31 ID:PNNRGsjZ] ゲームプログラマになる前に覚えておきたい技術を買ったんだけど 難しすぎるだろこれ DXライブラリのサイトのほうがどれだけわかりやすいか これは勉強する本じゃなくて、もう理解してる人が確認する ためのもんか?
531 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 04:43:49 ID:ePiCCxYA] 少なくとも入門書レベルなら、他人に教えてあげられるくらいの実力は要ると思う。 それでもプロとしてみるなら初心者だろうね。
532 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 04:58:47 ID:PNNRGsjZ] 何をやってるかはわかるんだけど、自分の力だけではコード書けない 結局サンプル見ながらそれを打ち込むだけ こんなんじゃ意味ないでしょ? 買うのまだはやかったなー
533 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 05:01:50 ID:ePiCCxYA] とりあえず一番最初の倉庫番チャレンジしてみたらどう? 自分は昼から始めて夕方までかかった orz
534 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 07:32:15 ID:JParRIfb] >>532 最初は意味わかんなくて、できる人のソースをコピペ。 次に少しずつソースを読解できるようになり改造していく。 そしてやっと自力ですべて書けるようになる…のが 普通の流れだと思うよ。 ひらしょー本は、初心者に構造的に説明しようと誠実に書いて くれている結果、冗長で読みにくくなった部分はあるとは思うけど 必要なことは抑えてある本だと思うので、まずは本に書いて ある事が分かるように勉強していけばいいんじゃないかな。 何が分からないかにもよるし、教え方の手腕の問題もある だろうけど、すぐに理解できちゃうような内容しか書いて いない本だとお金出して買う価値もないと思うし、 ゲーム関連技術がもし簡単に書けちゃう内容だと、こんなに 解説本も出ないと思う。
535 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 11:04:17 ID:Rc1hlYFq] 将来使うはずだと無理矢理クラスを使って書いてるけど 今のところ決定的にcに比べて便利だと思うところはないなぁ 確かに変数と関数を一塊にできるのは気持ちがいいのだが・・・
536 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 11:07:58 ID:2OywdL5M] listとか両方で実装してみると大分ちがわね?
537 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 11:20:33 ID:dmK/QlFI] >>532 Chapter13(I部 2次元のゲーム)までは頑張れ。 >>535 継承、カプセル化、ポリモーフィズム、演算子のオーバーロード、STLあたりを理解できるとメリットを感じられるようになるよ。
538 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 11:44:54 ID:QNWx2gsU] 最初はコピペ、それを改造、ってのはごく普通の流れだろうな。 俺も昔は雑誌に載ってたプログラムをぽちぽち打ち込んでたもんよ。
539 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 11:46:10 ID:wtJzH8/F] 俺も昔はラジオを録音してたもんよ
540 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 13:31:00 ID:pKLMp+mv] 今は3Dゲーならudkとかunityとか、2D紙芝居なら吉里吉里とかnスクとかがあるから、 趣味でゲーム作る程度ならプログラムまで手を出す必要はないよ。
541 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 15:45:18 ID:sQQs0/m1] 俺の場合は最初はソース呼んで理解するところから入ったがな コピペがあまり意味あるとは思えん そっから自己流のアレンジで打っていったがな まあある程度コピペっちゃあコピペだけどな まあコピペは動作確認には必要かも知れんがな あとポリリズムとかは使ってったけどカプセル化は結局面倒になって公開しちゃえーて戻ったけどな 結局グローバル変数使いまくりに戻ったし、まあ使いまくりって程でもないが カプセル化やろうと思えばできるけどだってアクセサ通すと速度落ちそうな気すんだもん、それが気になってな 小規模の個人レベルであまりカプセル化のメリット感じられんのだが ポリポリなんちゃらは俺もlistで重宝してるな まあポリポリ使うより天麩羅使う方がすっきり書ける場合もあるしなあ
542 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 17:31:32 ID:/Tzv4S+1] そりゃあ、ポリリズムなんて使ってたらな。
543 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 17:36:55 ID:ohvCsHNW] Javaなんかと違ってC++はクラス作るのが面倒なんだよな 場合によってはかえってミスしやすくなったり保守性が下がったりする
544 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 17:45:33 ID:RHOGN5ub] 質問なんですが、画像でいうLoadGraphのように文字列を先にhoge[数字]読み込んでおいて、 DrawString(x,y,hoge[数字],Cr) ;のように呼び出して使う…ような感じになる方法ってありませんか? あと、文中に改行も含めたいのですが・・・。 できれば1行ずつ表示されると嬉しいです。
545 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 18:00:03 ID:wtJzH8/F] 外部ファイルを読み込みたいのか? それなら龍神録にサンプルが載ってる。csv用だけどtxtにも転用できるはず
546 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 18:38:42 ID:VQ1HZqsF] やりたい事がはっきりしてるんだから、自分で作ればいいだけでは。
547 名前:名前は開発中のものです。 [2010/01/10(日) 18:52:06 ID:RHOGN5ub] 内部の別のクラスでTEXTの内容を変数に格納しておいて、 それをDrawString(x,y,hoge[数字],Cr) ;で呼び出したいんです… char hoge[1]="AAA"; DrawString(x,y,hoge[1],Cr) ; みたいな形です。
548 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 18:58:51 ID:2OywdL5M] 普通に読み込んで、文字列の位置を計算をして出力
549 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 19:01:30 ID:TNXhxGf1] 何を言っているのかわからないし 何をしたいのかもわからない
550 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 19:16:21 ID:RHOGN5ub] 画面に複数行の文字を表示したいんです。 通常はDrawString( 250 , 240 - 32 , "Hello C World!" , Cr );って書くと Hello C World! と表示されると思うんですけど、このHello C World!の部分を、 改行を含む、変数を入れたいんです。
551 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 19:20:29 ID:3/rctmpl] #include <string> using namespace std; string str[10]; str[0] = "AAA"; DrawString(x,y,str[0].c_str(),Cr); 文中に改行を含めたいってのはたぶん\nとか文中に入れたいんだと思うから C++ splitとかでググってなんかフォントの縦幅とかなんたらやればいいんじゃないかな…
552 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 19:42:52 ID:TNXhxGf1] 何言ってるのこいつ?
553 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 19:43:31 ID:z71TR0/5] sprintf(str, "Hello C world!\n"); DrawString(x, y, str, Cr);
554 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 19:59:40 ID:2OywdL5M] for(i = 0; i < numof_lines; ++i) DrawString(x, y + i * font_size, str[i], color);
555 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 21:11:56 ID:dmK/QlFI] >>544 そういう関数は用意されてないので自作するしかないよ。 改行文字を検索して文字列を一行ずつに分割、forループでY座標をずらして描画すればいいんじゃない?
556 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 21:40:30 ID:MFEe7NV6] DrawFormatStringの関数の デフォルトのフォントの大きさってどれくらいなの? 書いてないから分かんないよ
557 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 21:57:23 ID:/Tzv4S+1] 作者が悪いみたいな言い方で気に入らねえなあ。 コードみりゃ書いてあんだろ、16だ。
558 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 23:42:22 ID:ePiCCxYA] 話の流れとは全然関係ないんだが、画面サイズを2パターン用意したら、なんかすげぇ面倒なことに(笑) 「なんとなく」ってだけで実装するもんじゃねーなあ。 単純に拡縮するだけなら簡単なんだろうけども。
559 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 23:46:51 ID:2OywdL5M] ルートレイヤ(固定サイズ)に描画→スクリーンに拡大描画でいいじゃん
560 名前:名前は開発中のものです。 mailto:sage [2010/01/10(日) 23:52:21 ID:PVCd/Cxa] 16 : 9 って今後は用意すべき?
561 名前:558 mailto:sage [2010/01/11(月) 01:11:32 ID:HJnYHrsQ] >>559 それは>>558 の3行目で否定してる「単なる拡縮」だw もともと800x600でゲームを作ってたんだけどさ、 とある理由により、小さいウィンドウのバージョンを作らなきゃならなくなったんだ。 でもそのまま縮小すると、特にドット絵なんかは見てられなくなるし、 元が800x600用(あくまで縮小版はオマケ)なので、縮小版を基準にして800x600用に拡大するのも納得いかず。 そんなわけで、それぞれの画像の大きさを変えずに、ゲームの中身を変えようと思ったのが色々と失敗だった(笑) >>560 主流が16:9になるか16:10になるかは別として、今後は4:3のモニタは減っていくだろうからなあ。 とはいえ現状ではモニタ側で4:3に対応(レターボックスや引き延ばし)してくれたりするし、作りやすい方でいいんじゃない?
562 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 01:27:26 ID:1pzIf3AP] 今すぐ用意すべき
563 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 01:44:29 ID:Rz8RXzhw] ドット絵が汚くなるってのは補完してるからじゃなくて?ニアレストネイバーでやれば綺麗に縮小されないかな
564 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 02:18:06 ID:HJnYHrsQ] >>563 ドット絵は無理じゃない? あとクリティカルな部分はともかく、1つの画像ファイルでなんとかしたいよね。
565 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 02:25:08 ID:b9O3GovE] ペイントでキャラの画像を作る。保存をするとふちの部分の色が変わるのは何でだろう(´・ω・`)
566 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 03:05:07 ID:Rz8RXzhw] ペイントの拡大縮小は補完処理が働くから確実にドット絵が汚くなるよね
567 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 03:06:28 ID:/BVVeYOc] 565は拡大縮小してるとは言ってないけどね。
568 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 08:45:34 ID:50WrHthA] >>565 色が劣化する形式で保存してるんじゃないの?
569 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 09:45:29 ID:MF6sCU3I] 文字の回転ってどうやってやるんですか? △の記号を90度回転させたものがほしいんだけど・・・・
570 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 09:52:18 ID:bJEynoIQ] >>565 画像をRGBにすれば解決する サイズは大きくなるがな
571 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 10:18:00 ID:32xuNCiI] 文字入れられるだろ それ回転すればいいだけ
572 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 10:18:14 ID:8N572MW3] >>569 画像にでも描いて回転描画させろ
573 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 10:22:10 ID:bJEynoIQ] >>569 DrawVString
574 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 10:27:58 ID:MF6sCU3I] >>572 それはやれると思ってたけど 変だったんで。 結局、文字を回転させる方法はないのか? よくゲームである △(90度回転)6 △(90度回転)な感じにしたい。
575 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 10:32:32 ID:dSgt7dTb] >>574 方法はいくらでもある。 そして、いくらでもやってる人がいる。 以上
576 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 11:01:12 ID:MF6sCU3I] >>575 でもやり方は知らないんでしょ? 知ってる人お願いしますね。
577 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 11:40:02 ID:yFPTqlzr] >>561 そうか、ワイドもあったか ゲームやるならドットバイドットでやりたいよね
578 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 11:40:28 ID:bJEynoIQ] で、>>573 は試したのかね
579 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 11:43:03 ID:JhPE/M8b] >>569 興味があったから探してみた。初心者なんで見当違いだったらスマソ ttp://bbs.wankuma.com/index.cgi?mode=al2&namber=42794&KLOG=73 ttp://msdn.microsoft.com/ja-jp/library/cc428368.aspx
580 名前:565 mailto:sage [2010/01/11(月) 12:24:49 ID:b9O3GovE] 色々試したらできました ありがとうでした。
581 名前:名前は開発中のものです。 [2010/01/11(月) 15:35:07 ID:C8nZ8yZZ] |> <| こういうことだろ?
582 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 15:43:43 ID:32xuNCiI] <| |> だと思ってた
583 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 16:11:51 ID:i9YgsXIH] (゚д゚ ) <| y |>
584 名前:名前は開発中のものです。 mailto:sage [2010/01/11(月) 16:25:44 ID:MF6sCU3I] >>582 が正解
585 名前:名前は開発中のものです。 mailto:sage [2010/01/12(火) 00:34:41 ID:Lz7AOqT1] >>581 と>>582 の違いはなんだ? abをbaと書く程度の差じゃないか
586 名前:名前は開発中のものです。 mailto:sage [2010/01/12(火) 19:18:12 ID:fpWsGGI2] オブジェクトのy座標が-0.2のときそれを描画ルーチンにわたすと 0の位置に描かれそうな気がするんですけど (つまり-0.9〜0.9が同じ位置に表示されそう) DXLibにそのままわたすとどうなりますか? あと固定小数点のたとえば int y100;の1/100が1ドットとするとき int y_for_draw; if (y100 < 0) { y_for_draw = (y-99) / 100; } else { y_for_draw = y / 100; } でfloorになる?これは一般的にどう書かれる?
587 名前:名前は開発中のものです。 mailto:sage [2010/01/12(火) 19:32:24 ID:UxS4I4g/] 言っている意味がよく分からない。もっと要点絞ってくれ
588 名前:名前は開発中のものです。 mailto:sage [2010/01/12(火) 19:52:43 ID:vZoY7Utz] >>586 >オブジェクトのy座標が-0.2のときそれを描画ルーチンにわたすと >0の位置に描かれそうな気がするんですけど >(つまり-0.9〜0.9が同じ位置に表示されそう) >DXLibにそのままわたすとどうなりますか? C言語では小数から整数への変換は小数切捨てになる。 「型キャスト」で調べてみて。 >でfloorになる?これは一般的にどう書かれる? ならない。もっと言えばコンパイルすら通らない。 「y_for_draw = (y-99) / 100;」は小数点以下を切り上げしていないので。 一般的かどうかは分からないけど、固定小数点数を浮動小数点数にしてmath.hのfloor関数を使った方が簡単だと思う。
589 名前:名前は開発中のものです。 mailto:sage [2010/01/12(火) 19:57:29 ID:fpWsGGI2] >>587 質問は2つです 1つめはDXLibでたとえば描画ルーチンのXY座標に(-0.3, -0.9)をわたしたときと(0.1, 0.9)をわたした時が同じ場所になってしまうのでは? 2つめは たとえば、キャラクターの座標の内部的な整数の変数(たとえばint x_naibu, y_naibu;(前質問ではint y100;))が 100移動すると「1ドット」動いたことになるとすると、 描画ルーチンには基本 (x_naibu / 100) を x座標としてわたすことになりますが、 もし x_naibu が -99 でも 99 でも (x_naibu / 100)はゼロになってしまいます。 これを解決する一般的なやりかたが知りたいという話です。 書き込みに間違いが y_for_draw = (y-99) / 100; は y_for_draw = (y100-99) / 100; 下は y_for_draw = y100 / 100;
590 名前:名前は開発中のものです。 mailto:sage [2010/01/12(火) 19:57:59 ID:MSorSp1h] >>535 最初はそんな感じやね C++実用レベルは理解しなきゃいけないこと多くて投げ出しがち でも使い続けることをおすすめする 何よりまず慣れることが大事、慣れれば勝手にクラスありきになる 次第に理解が深まってゲーム製作には大いに役立つ
591 名前:名前は開発中のものです。 mailto:sage [2010/01/12(火) 20:04:11 ID:VTukhXVT] C++はタブーとイディオムがある程度わかってくればいいんだがそこまでがしんどい
592 名前:名前は開発中のものです。 mailto:sage [2010/01/12(火) 20:11:01 ID:fpWsGGI2] >C言語では小数から整数への変換は小数切捨てになる。 ありがとう >「型キャスト」で調べてみて。 型のサイズの順位とか知らないことがたくさんありました。 >>でfloorになる?これは一般的にどう書かれる? >ならない。もっと言えばコンパイルすら通らない。 ちょっと間違えました。 >>589 のようにしてコンパイルはとおってますが、何か穴があるかもと心配でした。 ちなみにdoubleを使ってたらたとえば加算する数値をきっちり1.0にすることができないことによる不具合を味わったことがあり、 固定小数点なら100を加えるときっちり1ドットだけ動くのが確定している利点があると思うんです。
593 名前:名前は開発中のものです。 mailto:sage [2010/01/12(火) 20:36:56 ID:vZoY7Utz] >>592 誤:y_for_draw = (y100-99) / 100; 正:y_for_draw = (y100+99) / 100; やりたいのはこういうことじゃない? 固定小数点数にもデメリットはあるし、個人的には浮動小数点数を使った方が良いと思うんだけどなあ・・・ ・表現として分かりづらい(ソースコードが見づらい) ・扱える数値の範囲が狭い ・浮動小数点数を扱う標準関数やその他のライブラリが使用できない
594 名前:名前は開発中のものです。 mailto:sage [2010/01/12(火) 20:50:28 ID:efhBp1Rb] ふと思ったんだけど -0.5 の小数点以下を切り捨てってのは 普通は 0 になると考えるのか -1 と考えるのか。
595 名前:名前は開発中のものです。 mailto:sage [2010/01/12(火) 21:01:29 ID:fpWsGGI2] >>593 >誤:y_for_draw = (y100-99) / 100; >正:y_for_draw = (y100+99) / 100; いえ、修正後を再掲すると if (y100 < 0) { y_for_draw = (y100-99) / 100; } else { y_for_draw = y100 / 100; } で、"y100"が 0〜99 のときは描画ルーチンはゼロの座標をわたしたくて、 y100が -100〜-1 のときは「-1」の座標、-101のときは「-2」にしたいので それにはこれで合ってると思います。 ちなみに固定小数点は今回だけのミニゲームで試しにやってみようって感じです。 次からはまた浮動小数点使うようになりそうです。 >・表現として分かりづらい(ソースコードが見づらい) 「y100」って感じの変数名で意外と解決されそうだったり^^;
596 名前:名前は開発中のものです。 mailto:sage [2010/01/12(火) 23:19:04 ID:q3clJG+f] 俺も全く同じことしてたわw 変数名の付け方も マイナスは考慮してなかったけど y100は表現的にある程度解決できてもそれ以外、それに関わる他の変数とか範囲とかがややこしくなってくるんだよねえ >・浮動小数点数を扱う標準関数やその他のライブラリが使用できない キャストすればいいんじゃないの?
597 名前:名前は開発中のものです。 mailto:sage [2010/01/13(水) 00:33:55 ID:c62gE9Ki] >>595 ごめん、勘違いしてたみたい。 floor関数の動作なら>>595 で大丈夫そう。 >>596 >キャストすればいいんじゃないの? 誤差を無くすために固定小数点数を使っているのでそれをやると駄目だと思うんだけど・・・ 「y100」という変数名が分かり易いというのはかなり疑問を感じるな。 最初に見たとき「y+100」か「y-100」の書き間違いかと思ったし。 あと小数第2位までしか扱えないのはかなり精度が低いと思う。 アクション性の高いゲームだと誤差の影響が出そう。
598 名前:名前は開発中のものです。 mailto:sage [2010/01/13(水) 00:47:43 ID:ikjcXzx3] そもそも固定小数点使ってるのは誤差を無くす為だったのか まあ y100 というのは苦肉の策でそのまま yを使うよりはまだ分かり易いだろうということと、 そら他人からみたらあれっとは思っても自分で使う分には若干間違い減らす可能性が上がるかなといった程度だろ あくまで少数第2位までを使うのは表示上の問題だけじゃないの? 表示する場合は整数しか扱えないが内部的には小数で記憶しておきたいという そもそも別に少数第2位までしか扱えないわけではないと思うがなあ ただ座標の値を少数第2位まで持ちたいってだけで 計算まで少数第2位までしか使えないってわけじゃないでしょ
599 名前:名前は開発中のものです。 mailto:sage [2010/01/13(水) 11:01:12 ID:5DwaMjit] log.txtを勝手に生成されるんですけど 生成しないようにするには可能?
600 名前:名前は開発中のものです。 mailto:sage [2010/01/13(水) 11:13:13 ID:c62gE9Ki] >>599 SetOutApplicationLogValidFlag(FALSE);
601 名前:名前は開発中のものです。 [2010/01/13(水) 11:54:25 ID:e0BJb6Ws] 2.25bなんだが、 vista で CheckHitKey( KEY_INPUT_RSHIFT ); がうまく動作しない。 XPだと動く。RSHIFTだけ動かないんだよな。 なんでだろう?
602 名前:名前は開発中のものです。 mailto:sage [2010/01/13(水) 12:44:41 ID:c62gE9Ki] >>601 hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1352
603 名前:名前は開発中のものです。 [2010/01/13(水) 13:01:04 ID:b/PQw5gR] 質問です。 画像などをロードするとっきって、パスをいつもちまちま指定しないといけないのでしょうか? 例えば、画像をロードする場合、 Load("Data\\img\\hoge.png"); みたいな感じではなく、単に Load("hoge.png"); のようにロードできたら楽なのになぁと思った次第です。 ファイルが増えるに従って、管理がしやすくするためにパスも長くなっていきますし……。 もちろん自分でパスをセットしてくれる関数を組むのもアリなのですが、 VC#みたいに、リソース追加&ファイル名指定でさっくり使えたら楽だなと思ったので……。 リソースからの読み込みができる関数はみつけたのですが、 IDでの指定なので、どのファイルがどのIDなのか覚えるのが面倒となってしまい使いにくいorz
604 名前:名前は開発中のものです。 mailto:sage [2010/01/13(水) 13:22:01 ID:qeehEc52] >>603 自動的にDataフォルダを検索してhoge.pngを探してロードするってこと? win32APIの関数使えば出来なくも無いと思うけど多分労力に見合うほどのメリットはないと思うよ 何回もロードするもんでもないし
605 名前:名前は開発中のものです。 mailto:sage [2010/01/13(水) 13:26:47 ID:HfkhU9/3] >>601-602 俺は601じゃないけど、2.25bをまだ使ってる。 で、601の様な現象知らなかったわけだが、602の解決してる時点で9月だよな。 俺が持ってる2.25bはタイムスタンプが5月だし、公式でDLできる2.25bも5月のものだ。 602の示してるレスで公開されてるtestバージョンはバージョンアップされるたびに上書きされてるから、 (今落として確認したが)つい先日のものになってるな。 2.25bバージョンの最新って管理人さん持ってるかなぁ……。
606 名前:名前は開発中のものです。 mailto:sage [2010/01/13(水) 13:35:20 ID:c62gE9Ki] >>603 >IDでの指定なので、どのファイルがどのIDなのか覚えるのが面倒となってしまい使いにくいorz IDをファイル名と同じにするとか分かり易い名前に変えてしまえばいいだけでは?
607 名前:名前は開発中のものです。 mailto:sage [2010/01/13(水) 13:46:41 ID:H0QsxNXz] 最近バージョンだと何か問題でもあるのか?
608 名前:名前は開発中のものです。 [2010/01/13(水) 15:49:43 ID:Yyh3OrXE] DXライブラリが最新バージョンだと動画をLoadGraphで読んでPlayMovietoGraph使って表示したとき透明色が適用されない (といっても透明色にするにはエンコード方式は古いMicrosoft Video 1くらいしか使えない諸刃の剣)
609 名前:名前は開発中のものです。 mailto:sage [2010/01/13(水) 16:07:06 ID:HfkhU9/3] 俺が過去に作ったゲームを最新のDXライブラリでリコンパイルすると透過色が無視されるてるなー。
610 名前:名前は開発中のものです。 mailto:sage [2010/01/13(水) 16:39:46 ID:fVXUl//w] 孔明の罠
611 名前:名前は開発中のものです。 [2010/01/13(水) 17:47:10 ID:b/PQw5gR] >>604 その通りです。 ロードする際に使った文字列を、ハンドル代わりにつかっているので、 メリットとしては、指定をいちいちしなくてすむので楽になります。 たとえば、 Draw("hoge.png"); とかで、色々操作できるような設計にしています。 Win32APIの関数でできるのですか。 直接MSDNから探し出すスキルがない残念スキルですが、調べてみようと思います。 >>606 おおなるほど、これは盲点でした……。
612 名前:名前は開発中のものです。 mailto:sage [2010/01/13(水) 19:35:30 ID:KRarygD9] >>611 良い方法じゃないかもしれないけど、マクロと stringかsprintf系の関数使って文字列つなげば 一応Load()には、ファイル名渡すだけでもすむよ。 //-------------------------------------- #define HOGE_PATH "..\\iData\\img\\" void Hoge::LoadData(const char* data_name) { char path[255]; sprintf(path, HOGE_PATH "%s.png", data_name); Load(path); } //-------------------------------------- みたいな感じで(エラー処理とかは省略)。 ちなみにHogeのコンストラクタ内とかで、APIのFindFirstFile() とか使って、フォルダ内の任意の形式のデータ名を列挙して 読み込むようにすれば、Hogeの生成時にpngの形式だけ自動で 読み込むとかも可能。 ただスクリーンショット取れるゲームとかでない限り、画像 データの名前や数は変わらないはずだから、ハードコーティング するよりパス含んだデータ名を列挙したテキストとかを作って おくのがいい気もする(もちろんこれも手動では作らない)。 そうしておけば、画像の数とかに変更あってもプログラムの方は 何もいじる必要ないし。
613 名前:名前は開発中のものです。 mailto:sage [2010/01/13(水) 20:53:47 ID:fVXUl//w] なんというレベル・・・
614 名前:名前は開発中のものです。 mailto:sage [2010/01/13(水) 22:45:52 ID:K/6CPc2l] 俺はstd::mapを使ってるな。値を画像ハンドルにしてる。 キーを文字列にすれば分かりやすいし。
615 名前:名前は開発中のものです。 mailto:sage [2010/01/14(木) 02:11:03 ID:842AZX10] 同じファイル名が来ることはないのか
616 名前:名前は開発中のものです。 mailto:sage [2010/01/14(木) 02:36:14 ID:Y9GNPZz3] 画像ファイル名一覧(分割するなら分割数なども)を 外部のテキストファイルに置いて、それを読み込む手法は便利ちゃ便利だし美しいな。 ツクール系や画像ビューワなどのアプリを作りたいというなら別にしても、 結局、その画像を使うにはプログラムの修正が必要だったりするわけで、 そこまで外部化するメリットが無い気がする。 それならファイル名をプログラム側で固定してしまうというのも十分アリじゃないかな。 「趣味で!」「勉強のため」というなら好きにやるべきだし、そういうこだわりは重要だと思うけれど。 >>615 拡張子無しとか、拡張子を固定するとか、 あとは最初はbmpで次はjpg…みたいに読み込む優先度を決めておくとか。
617 名前:616 mailto:sage [2010/01/14(木) 02:42:40 ID:Y9GNPZz3] 送信してから思った。 最近は個人レベルのゲームプログラミングでも、 ゲームの内容を外部のスクリプトファイルで定義するスタイルが増えてきてるみたい。 全部をスクリプト化しろとは言わないけど、 例えばメニュー画面の挙動とか、何らかのキャラクターのアニメーションの仕方とか、 そういう部分的にでも外部に出しちゃう作りにすれば活かせるかもね。 まあ、非常に手間ですが。
618 名前:名前は開発中のものです。 mailto:sage [2010/01/14(木) 10:10:33 ID:DPt8d+Sq] 外部ファイルにパスや必要な情報書いて読み込み、 それをクラスに格納して処理、コンテナに追加して保持、分割も自動でやってる ハンドルはアドレスをクラスに用意したポインタのメンバ変数に格納して 再ロードしても画像ハンドルへのアクセス先は変わらないようにしてる SetRestoreGraphCallbackに↑で書いたコンテナから再ロードする関数登録 ハンドルの情報が消えてしまうときって、それまでに画像読み込んで取得したハンドル全て消えるよね? 何が消えるかよくわからなかったから 描画関係全て再設定させてるんだけど、皆さんは再ロード処理どのようにしてますか?
619 名前:名前は開発中のものです。 mailto:sage [2010/01/14(木) 11:35:51 ID:f9B4N6q6] >>618 何を言っているのかわからない
620 名前:名前は開発中のものです。 mailto:sage [2010/01/14(木) 11:42:32 ID:Wuk1wnH6] >>618 >ハンドルの情報が消えてしまうときって、それまでに画像読み込んで取得したハンドル全て消えるよね? まずこれがよく分からない・・・ リファレンスに全部書いてあると思うけど。
621 名前:名前は開発中のものです。 [2010/01/14(木) 12:57:05 ID:GEhjs3wb] ドラクエとかマップとかキャラ動かすプログラムは1個つくったら 流用が基本だよな あとはちょくちょく改造 現にSFCのドラクエ3ってSFCドラクエ6の流(ry
622 名前:618 mailto:sage [2010/01/14(木) 12:59:53 ID:DPt8d+Sq] ごめん、書き方悪かった 何が消えるってか何が初期化されるのか、 ハンドル以外にもあったようなのでそれもききたかった (DXライブラリのスレだったかな?カメラがどうとか) ってハンドルは全て消えるよね・・・ で、リファレンスに全部書いてあるのか 見落としてたっぽい、すまねえ見てくる
623 名前:名前は開発中のものです。 [2010/01/14(木) 13:11:27 ID:GEhjs3wb] ffshowの取り込み機能使うと紙芝居のような連番のjpgが作れる (例:0.jpg〜1000.jpg (画像の形式:jpgにフレーム番号の桁数は0に設定)) (画像の形式はpngやbmpとかできるけどファイル容量が馬鹿でかくなる) プログラムテストで使う大量の連番JPG1個ずつくるのめんどせーって人はおすすめ
624 名前:名前は開発中のものです。 mailto:sage [2010/01/14(木) 13:53:55 ID:842AZX10] 俺も各クラスの画像にはハンドルのポインタ渡して ウィンドウ⇔フルスクリーンにするときとか再ロードする場合は一括でやれるようにしてる
625 名前:名前は開発中のものです。 mailto:sage [2010/01/14(木) 14:22:58 ID:f9B4N6q6] めんどくせーのでエスパーすると ハンドル情報が無効になった場合の対処でよろしいアルか?
626 名前:618 mailto:sage [2010/01/14(木) 21:00:02 ID:DPt8d+Sq] いやもう、まじでわかりづらくてすまん >>624 と同じやり方だし、これはこれでいいかな カメラもライトもモーション状態も全部復元できた つーわけでスルーしてくだされ
627 名前:名前は開発中のものです。 mailto:sage [2010/01/15(金) 12:18:57 ID:MEm+h6H+] 更新通知はオブザーバーパターンかな
628 名前:名前は開発中のものです。 mailto:sage [2010/01/15(金) 23:03:18 ID:GfBht2fI] WinSockを使ってオンラインのゲームを作りたいと思っています。 非同期通信にした後、 ウィンドウメッセージをどうやって受け取ればいいのでしょうか
629 名前:名前は開発中のものです。 mailto:sage [2010/01/15(金) 23:16:16 ID:mIIIz4fa] 通信とウィンドウズメッセージ処理は別スレッドで
630 名前:名前は開発中のものです。 mailto:sage [2010/01/15(金) 23:20:44 ID:MEm+h6H+] bccとvc++以外のコンパイラで使いたい場合はDLL化するしかないかな?
631 名前:名前は開発中のものです。 mailto:sage [2010/01/16(土) 14:25:40 ID:q2B4ABrd] C#用のDLLが使える 普通のCインターフェイスだから
632 名前:628 mailto:sage [2010/01/16(土) 16:27:15 ID:rUwaGg5H] 開発環境はVisual Studio 2008 Express Editionです。 >通信とウィンドウズメッセージ処理は別スレッドで これは、マルチスレッドにする、ということでしょうか? あと、ウィンドウメッセージを受け取るにはPeekMessage関数を使うのでしょうか?
633 名前:名前は開発中のものです。 mailto:sage [2010/01/16(土) 16:40:06 ID:jHRnZJbI] まだ、はやい
634 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 15:10:04 ID:NiKHIjeB] どうにかgifアニメを表示できないでしょうか?
635 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 15:50:40 ID:ocST5QSJ] ばらして一つ一つ表示すれば
636 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 16:17:33 ID:1VuUUtA0] コマごとに読み込んでハンドルを配列に入れて回しながら表示してみろ
637 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 16:19:59 ID:Y1kYbBl9] みんなアニメーションの抽象化ってどうやってんの?
638 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 16:36:31 ID:ZRf7R4pO] >>637 デザ・・・と言いたいところだが、キチガイ扱いされるので言わない^^b
639 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 16:36:50 ID:AJVbiEYR] アニメーションの抽象化ってなに。
640 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 16:37:28 ID:ocST5QSJ] 14歳に乗ってたな
641 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 17:21:08 ID:NiKHIjeB] ありがとうございます! gif自体がDXライブラリで表示できないみたいなので ばらしてbmpに変換して表示させます。
642 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 18:17:21 ID:/YEQVsc4] ソフトによってはgifアニメを書き出す要領でアニメーション用にずらっと並べた形で排出してくれるものもあるから要チェック
643 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 18:40:53 ID:NiKHIjeB] Giamっていうツールで分解してみます。 gifが表示できたらなあ・・・
644 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 19:23:22 ID:p6A/ppr3] gifの表示だけは諦めた方がいい と思ったけど何年か前にライセンス切れたとかだったっけ?
645 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 19:34:01 ID:YzUndEty] gifアニメ、 PlayMovie()で出来たはず。
646 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 19:40:04 ID:NiKHIjeB] >>645 うおおおおおおおおおおおおおおおおおおおおおお できたあああああああああああああああああああああああああ ありがとおおおおおおおおおおおおおおおおおおおお
647 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 19:44:19 ID:/YEQVsc4] playmovieが使えるのか、初めて知った
648 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 19:44:24 ID:aB6jW3dA] でもgifアニメ表示する利点というか利用価値が思いつかない
649 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 19:46:09 ID:YzUndEty] これは作者も知らないと思う、osの機能だから。
650 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 19:57:40 ID:NiKHIjeB] 本当にありがとうございました。 ただのビューワを作ろうかと・・・ できないと諦めかけてたので>>645 さんありがとう!
651 名前:名前は開発中のものです。 mailto:sage [2010/01/18(月) 21:14:28 ID:ZRf7R4pO] >>645 APIの旅からの帰還 お待ちしておりました 全員敬礼!
652 名前:名前は開発中のものです。 mailto:sage [2010/01/20(水) 21:26:19 ID:ZmWqqE9G] #define MAX_MOVIE_NUM (100) // 同時に持てるムービーハンドルの最大数 と、DxLib.hの中に書いてあったのですが、 この(100)の値を変えても100以上読むことができません 変更を適応する方法とかありますでしょうか・・・
653 名前:名前は開発中のものです。 mailto:sage [2010/01/20(水) 21:37:33 ID:ZmWqqE9G] ライブラリの改造で事足りました スレ汚しすまそ 以下スルーお願いします
654 名前:名前は開発中のものです。 mailto:sage [2010/01/20(水) 21:42:45 ID:SKKsOccv] 俺は言われるとスルーできねえ太刀なんだよ どうしてくれんんだてめえ
655 名前:名前は開発中のものです。 mailto:sage [2010/01/20(水) 22:09:33 ID:q0DDgX3G] キレやすそうだな。
656 名前:名前は開発中のものです。 mailto:sage [2010/01/20(水) 23:52:50 ID:cMpODo4B] 真面目なかたなのね
657 名前:名前は開発中のものです。 mailto:sage [2010/01/20(水) 23:59:20 ID:zuhGGFh3] 太刀だけにキレやすいってか うまいこと言うじゃねーか
658 名前:名前は開発中のものです。 mailto:sage [2010/01/21(木) 06:53:57 ID:zKTatolx] だれうま
659 名前:名前は開発中のものです。 mailto:sage [2010/01/21(木) 17:26:19 ID:VSiukrvi] おれうま
660 名前:名前は開発中のものです。 mailto:sage [2010/01/21(木) 17:42:38 ID:ASaFDbPd] きみのためならうま
661 名前:名前は開発中のものです。 mailto:sage [2010/01/21(木) 18:34:21 ID:f/5KsMY8] かゆ・・・うま・・・
662 名前:名前は開発中のものです。 mailto:sage [2010/01/21(木) 21:15:18 ID:3z0s89gO] 昨日、この屋しきから逃げ出そうとした研究いんが一人、射さつされた、て はなしだ。 夜、からだ中 あついかゆい。 胸のはれ物 かきむしたら 肉がくさり落ちやがた。 いったいおれ どうな て May 19, 1998 やと ねつ ひいた も とてもかゆい 今日 はらへったの、いぬ のエサ くう May 21, 1998 かゆい かゆい スコットーきた ひどいかおなんで ころし うまかっ です。 4 かゆい うま
663 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 17:17:54 ID:t3rqV2es] MV1GetFramePositionでフレームの座標取れた人いる?
664 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 17:45:49 ID:eNyArIdy] >>663 何かそれと関連するような書き込みみた MV1Frame系の根本辺りにバグでてるのかもよ 試してないから憶測な
665 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 18:30:40 ID:t3rqV2es] >>664 そうなのか・・・
666 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 18:53:34 ID:mtzPnJPW] SetWindowStyleModeのあと ドラッグ&ドロップが効かなくなるのは仕様ですか
667 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 19:30:56 ID:mtzPnJPW] #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){ char Key[MAX_PATH]; char File[MAX_PATH]; int open; bool flag=false; SetAlwaysRunFlag(TRUE);//アクテイブでも動作 if(ChangeWindowMode(TRUE)!=DX_CHANGESCREEN_OK || DxLib_Init()==-1) return-1; SetDrawScreen(DX_SCREEN_BACK); SetDragFileValidFlag(TRUE);//ドラッグ&ドロップ許可 while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll(Key)){ open=GetDragFilePath(File); if(open!=-1){ clsDx(); printfDx("%s",File); } DragFileInfoClear(); if(Key[KEY_INPUT_Z]==1){//zキーでスタイル変更 if(flag==false){ flag=true; SetWindowStyleMode(2); SetDragFileValidFlag(TRUE);//ドラッグ&ドロップ許可 } else{ flag=false; SetWindowStyleMode(0); SetDragFileValidFlag(TRUE);//ドラッグ&ドロップ許可 } } if(Key[KEY_INPUT_ESCAPE]==1)break; ScreenFlip(); }
668 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 19:33:03 ID:mtzPnJPW] DxLib_End(); return 0; } //ソースここまで スタイル変更のあとはどんなことやっても無駄でした。 なにか解決方とかありますでしょうか・・・
669 名前:名前は開発中のものです。 mailto:sage [2010/01/25(月) 13:30:00 ID:KA8nsg8v] SetWindowStyleMode(2); SetDragFileValidFlag(FALSE); SetDragFileValidFlag(TRUE);//ドラッグ&ドロップ許可 SetWindowStyleMode(0); SetDragFileValidFlag(FALSE); SetDragFileValidFlag(TRUE);//ドラッグ&ドロップ許可 ほい
670 名前:名前は開発中のものです。 [2010/01/25(月) 14:54:28 ID:RTDsX0xD] 同じプログラムでもBCCとVCでコンパイルすると微妙に絵画スピード違う? BCCの方が重いんだが
671 名前:名前は開発中のものです。 mailto:sage [2010/01/25(月) 17:04:41 ID:okvPpsG4] 絵画? 描画? まあ、別のアルゴリズムでビルドされている以上、違いがあってもおかしくはないな。 もしかすると最適化の設定とかもあるかもしれない。
672 名前:名前は開発中のものです。 mailto:sage [2010/01/25(月) 17:30:21 ID:0o6Nm1jn] 描画の速度は同じだと思われるが最適化の性能はコンパイラによって大分違う っつっても今は両方同じくらいだと思うが 古いのは効率悪い
673 名前:名前は開発中のものです。 mailto:sage [2010/01/25(月) 17:32:24 ID:LL1ffQYA] CPU メモリ グラフィックカード MMX 他のソフトが動作してないか などなど 条件を一致させるのは至難の技
674 名前:名前は開発中のものです。 mailto:sage [2010/01/25(月) 19:00:44 ID:6DMAN8Oi] >>669 ありがとうございます! 無事ドラッグ&ドロップがスタイル変更後も効くようになりました なんだかくやしいです
675 名前:名前は開発中のものです。 mailto:sage [2010/01/26(火) 01:58:18 ID:tj2S0wJn] 隠し関数一覧とかないの? リファレンスに機能の半分くらい乗ってなくね?
676 名前:名前は開発中のものです。 mailto:sage [2010/01/26(火) 02:34:26 ID:PVZ337CH] そんなあなたにおすすめ、DxLib.h
677 名前:名前は開発中のものです。 mailto:sage [2010/01/26(火) 02:43:45 ID:tj2S0wJn] 既に見ながら発掘してるけど、使い方分からんのが沢山あるし。
678 名前:名前は開発中のものです。 [2010/01/26(火) 03:09:22 ID:p39VC7Ub] LoadSoundMem("ファイル名"); SetSoundCurrentTime(時間,サウンドハンドル); PlaySoundMem(サウンドハンドル,DX_PLAYTYPE_LOOP,*2 BGMを最初から再生するかというフラグ); *2 TRUEで最初から再生(デフォルト) FALSEで途中から再生できる int bgm; bgm=LoadSoundMem("a.wav"); SetSoundCurrentTime(5000,bgm); PlaySoundMem(bgm,DX_PLAYTYPE_LOOP,FALSE); a.wavの5秒後から再生する(BGMファイルの曲の長さ仮に5秒以内のファイルなら最初からになる ・・・と思う)
679 名前:名前は開発中のものです。 mailto:sage [2010/01/26(火) 13:26:42 ID:PVZ337CH] >>677 内部用の関数だったり、試験的に実装した関数なんかが多いから、 公式リファレンスが無いのは仕方ない。 仮に第三者がリファレンスを作ったとしても、 内部用関数である以上、いつ仕様が変更されてもおかしくないわけだし。 …以前、DXライブラリのWikiを作ろうとした人がいたけれど、あれどうなったのかなあ。 DxLib.hにはしっかり丁寧にコメントが書かれてるし、実用レベルでそんなに困ることはないと思うけどな。 コメントを読んでも意味がわからない関数は、たぶん今の自分には関係ない関数だと思っていい。
680 名前:名前は開発中のものです。 [2010/01/27(水) 02:10:49 ID:+9fTCg9n] まあ PlayBeep()なんて 誰得な関数もあるしな
681 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 02:46:02 ID:wVIH00tk] それってBeep音鳴らすの? だとしたらエラーの警告音とかに使えそうじゃない?
682 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 12:43:56 ID:bk5n/QgN] エラーが発生したなら、素直にOSへ投げた方が良さそうだしなあ。 Beep音に限らずね。 逆に、ゲーム内で「エラー」の演出をしたいというなら、 それ専用のサウンドファイルを用意するべきだろう。
683 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 13:28:51 ID:VlaGcRFB] SetDrawBlendMode( DX_BLENDMODE_ALPHA, 128); LoadGraphScreen( 30, 10, "a.bmp", TRUE); SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0); をやると一気にfpsが小さくなるんだけど、それを避ける方法ある? 丁寧に教えてください。断片じゃ分からないんで。
684 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 13:34:10 ID:eUrMXCBM] ハハッ 公式見てこいよ 根本から間違ってる
685 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 13:43:01 ID:D7qew4lJ] ハハッワロス
686 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 14:40:35 ID:eQLJYwgf] 宣言 int LoadGraphScreen( int x , int y , char *GraphName , int TransFlag ) ; 概略 画像ファイルを読みこんで画面に表示する 要するに、ハードディスクから画像を”読み込んで”表示するわけだ。 毎フレーム、データ読み込んでたら重くなるの当たり前。
687 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 15:40:40 ID:VlaGcRFB] >>686 ttp://dixq.net/g/39.html ここの人の見てαブレンド処理したんだけどそんな変なの? できれば、αブレンド処理の速いやり方教えてほしい。
688 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 15:44:59 ID:eQLJYwgf] 違う! αブレンドのやり方はそれでいい! 一つ訊きたいが、fpsがどうとか言ってるって事は、ある程度形は出来てるんだよな? アクションかシューティングか、何作ってるのか知らないけど。 てことは、キャラなりなんなりを毎フレームに表示させてるんだよな? そのキャラを表示する時に LoadGraphScreen を使って表示してるのか!?
689 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 15:50:10 ID:eQLJYwgf] 君はさ、学校に通う時、 朝、本屋へ行って教科書買って、学校行って勉強して、終わったら教科書捨てて、 次の朝、また本屋で教科書買って、学校行って勉強して、終わったら教科書捨てて、 また次の朝、本屋で教科書買って、学校行って勉強して、終わったら教科書捨てて…… ってやるか? やらないだろ? 毎フレーム LoadGraphScreen を使うってのは毎日教科書買ってるようなもんなんだよ。
690 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 15:52:15 ID:VlaGcRFB] >>688 キャラはDrawGraphで表示してる。 オプション画面に切り替えた時、点数などを表すボードみたいものに LoadGraphScreenを使ってる。だから、ゲームには影響ないんだけど。 オプション画面に切り替えた時fpsが一気に下がって気になって今回 聞きました。
691 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 15:59:36 ID:eUrMXCBM] >>690 オプション画面に切り替えたら画面停止でもすんの? プログラムのフロー分かってる?
692 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 16:00:00 ID:gFzXyqzf] 最初に表示するとき一回ロードしておいて、それを毎フレーム描画するようにすればいいだろう
693 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 16:07:18 ID:D7qew4lJ] 私のために争うのはやめて!
694 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 16:08:24 ID:VlaGcRFB] >>691 それはしない。一気にfpsが落ちる。ブレンド処理で。 単にTフレームごとに作画してScreenFlip()で表示してます。 >>692 詳しくおねがいします。
695 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 16:09:48 ID:D7qew4lJ] 全部DrawGraphですればいいんじゃないかなぁ? アハハハハハハハ!
696 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 16:11:58 ID:VlaGcRFB] >>695 ブレンド処理したいんですけDrawGraphでも可能なんですか?
697 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 16:14:13 ID:D7qew4lJ] >>696 てめーなに中だよコラ リファレンスに目を通してから質問しろカス
698 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 16:16:13 ID:eQLJYwgf] あのさ↓の意味ちゃんと解って使ってる? SetDrawBlendMode( DX_BLENDMODE_ALPHA, 128); LoadGraphScreen( 30, 10, "a.bmp", TRUE); SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0); 1行目で「これから描画するものはアルファブレンドモードにしますよ」 2行目で「a.bmpを読み込んで描画しますよ」 3行目で「これから描画するものはブレンドなしにしますよ」 ってだけだよ?
699 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 16:16:22 ID:VlaGcRFB] DrawGraphでもブレンド処理可能みたいですね・・・。 ありがとうございます。
700 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 16:18:42 ID:VlaGcRFB] >>697 ヤンデレの人ありがとうございました。
701 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 16:23:54 ID:eUrMXCBM] まあ常識的に考えてブレンド処理なんて頻繁に使われるものがDrawGraphで使えないわけないわな
702 名前:名前は開発中のものです。 [2010/01/27(水) 17:37:50 ID:SU7TxAxC] int zeikin[1000000]; int amakudari; for(amakudari=0;amakudari<1000000;amakudari++){ zeikin[amakudari]=LoadGraph("官僚.bmp"); }
703 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 18:42:02 ID:4CYQjQL/] だいたい4MBくらいか。たいしたことないな。
704 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 14:26:55 ID:DRAuGFCj] 小手先のテクとかはそれなりに分かってきたと思うんだけどゲームの作り方が分からん うーんバイトでも探して勉強させてもらおうかな。でも使えないバイトとか来たら迷惑かな
705 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 15:45:51 ID:yml/58A3] >>704 そもそも採用してもらえないと思うけど・・・ どこまで作れるのか知らないけど解説サイトも本もいっぱいあるし、いくらでも勉強できると思うんだけどなあ。
706 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 16:04:31 ID:X4/enaKn] むしろ小手先にテクニックの方が理解は難しいと思うが。 いったいどんなゲームを目指してるんだ。
707 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 17:52:34 ID:DRAuGFCj] シューティングで勉強してるけど思うようにいかない とりあえず自機も敵機も○で表現して 直進する玉を打ったり衝突判定したりとかなら一応できたんだけど なんか死ぬほど処理が重いし(処理落ちしまくり)、拡張しにくそうだし 機体のパラメータデータとかステージデータの扱い方とかもわからないし 今はちょっとハードルを下げてインベーダーに変えようかなと思ってる
708 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 17:55:43 ID:jCVSqiZx] 龍神録は見たか?
709 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 18:24:47 ID:kJL+rTdA] >>707 どこの部分で処理食ってるか調べるんだ。 「衝突判定」が怪しいから、衝突判定を飛ばしてみて 処理落ちするかどうか確認するとか。
710 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 18:38:06 ID:DRAuGFCj] >>708 まだなので、ちょっと読んできますね >>709 というかボトルネックは衝突判定と玉の生成破棄ぐらいしか思いつかない モートン順序とかネットで読んだりしたけどなかなか理解と実装までいけないですわ・・・
711 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 18:38:15 ID:jCVSqiZx] dxlib使ってる環境で衝突判定による処理落ちはあまり考えられないんじゃないかなあ 俺はloadgraphとか自発的なSleepを疑う
712 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 19:21:22 ID:bXBGYPJV] 重いのは上司と女のケツ
713 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 19:23:42 ID:Pa0ASUM2] 足りないのは知識じゃなくて情熱
714 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 20:40:58 ID:/bsOILuR] PCのスペックも分からんし、 「死ぬほど重い」がどれくらいなのかも分からない(FPS60で重いと言う人だっている)、 ゲームの内容もさっぱりだしなあ。 それでもプレイ出来ないほど重くなるとは考えにくいんだが。
715 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 20:57:24 ID:QBlyvB6i] LoadGraphScreenをしてる、とか? 知り合いがなんか思いって言ってたからソース見たら、毎フレームスクリーンショットを取るという謎な動作してたりした。 ぶっちゃけ、重いってのはなんか変な事してるんだと思うよ。
716 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 21:35:34 ID:VeYpTI6t] 何が変なことかわかる経験をお持ちでないから仕方が無いことよ
717 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 21:37:02 ID:Pa0ASUM2] 俺も低スペックPCだと重くなる。 それもFPSがなぜか半分になる。 ウィンドウがノンアクティブでも動作する設定にしてノンアクティブにしたときの動作と似ている。 DXlib特有の何かがあるんだと思う。
718 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 21:38:36 ID:QBlyvB6i] ソースっていうかプロジェクトうpったらアドバイス貰えるかもね ソース晒すの抵抗あるだろうし、個人的にVC++かVSじゃないと困るけど
719 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 00:36:37 ID:zzrUYLD6] 画像Aの(x, y)に画像Bの(x1, y1, x2, y2)を転送ってできます?
720 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 00:38:24 ID:cifYwtzO] うん
721 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 06:43:38 ID:P5qgz5J8] >>710 思いつく思いつかないじゃなくて 各セクションごとの消費時間調べて どこがボトルネックなのか調べるぐらいはすべき
722 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 09:38:05 ID:BdSu0ysP] PCのスペックも分からんし、 「死ぬほど重い」がどれくらいなのかも分からない ゲームの内容もさっぱりだしなあ。
723 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 09:48:06 ID:EF522hf9] 昔、STGの敵を一体だけ出してテストしてたときに 妙に動きが重いなーと思ったら 300体の敵がピタリ重なって表示されていた
724 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 11:23:55 ID:BdSu0ysP] 俺もあったなw
725 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 11:50:08 ID:mWel1DHT] あるあるw
726 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 12:31:38 ID:zzrUYLD6] >>720 すいませんそれは一体どうやればいいんでしょう? SetDrawScreen(handle); Draw〜〜 とやってもバグってウィンドウの外に描画されてしまいます
727 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 12:46:37 ID:cifYwtzO] >>726 BltSoftImage
728 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 12:49:56 ID:zzrUYLD6] SoftImageって遅くないですか?
729 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 12:51:56 ID:cifYwtzO] 使い方による
730 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 15:02:29 ID:zvCh6Jzw] そもそも早さを気にするような関数なのか?
731 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 16:16:41 ID:zzrUYLD6] ソフトイメージ使ってみました これは便利なものですね しかしCreateGraphFromSoftImageで変換しないとアルファブレンドができないのが難点ですね
732 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 16:23:02 ID:cifYwtzO] そもそも変換して使うもん しないと君の言うとおり非常に表示が遅くなるよ
733 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 17:03:39 ID:zzrUYLD6] おや、FillSoftImageがバグってますねこれ
734 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 17:04:55 ID:TNYZudKh] ID:zzrUYLD6 (#^ω^)ビキビキ
735 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 17:07:37 ID:zzrUYLD6] >>734 なにか?
736 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 17:21:39 ID:GX4pyXso] 愚痴ならチラシの裏にでも書いとけよ
737 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 18:18:02 ID:QgRnLSPg] 馬鹿な発言からして*SoftImageの解説を読んで無いな
738 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 19:10:19 ID:BdSu0ysP] >>735 関係者なんだろ
739 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 20:21:19 ID:UcIFEpC1] ID:zzrUYLD6 (#^ω^)ビキビキ
740 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 20:29:33 ID:zzrUYLD6] >>739 言いたいことが有るならハッキリ言ったらどうです コピーアンドペーストしかできないというわけではないんでしょう?
741 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 21:04:41 ID:wCFnb5ju] >>733 バグがあるって言うなら、ちゃんと症状を書いて欲しい ちゃんと検証をしないでバグがあるって言うのは荒らしと同じだよ
742 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 21:10:38 ID:cifYwtzO] どう考えてもこいつの仕様把握ミスか使い方間違ってるかだけどな
743 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 21:47:57 ID:zzrUYLD6] codepad.org/JesphHgh www1.axfc.net/uploader/Img/so/71545 バグだろ
744 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 22:05:12 ID:BIjXD56Q] 会話で否定から入るタイプ 礼を言わない自分のことばかり
745 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 22:16:56 ID:nicWHVwK] こういう奴はなぜか自分が嫌われてることに気づかないんだよなw
746 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 22:22:34 ID:dQt5iAcR] もうそのへんにしとこうぜ。
747 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 22:46:17 ID:zzrUYLD6] >>743 に問題が有るとして、それを指摘できるレベルの人間はここにはいないと言うことでよろしいでしょうか? もし問題がないのなら、私に対していわれのない批判を向けた人たちは謝罪するべきです 私はそれが社会人としての最低限のマナーだと考えます
748 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 22:55:31 ID:cifYwtzO] 何かモノを教えてもらった際にはお礼を言いましょう 私はそれが社会人としての最低限のマナーだと考えます
749 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 22:58:58 ID:ZFqeJ0u6] そもそも何がしたいのかわからん
750 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 23:02:09 ID:dQt5iAcR] >>747 >もし問題がないのなら、私に対していわれのない批判を向けた人たちは謝罪するべきです 俺は静観してただけだから無関係だが、 説明しなければ批判受けてもしょうがなかろう。
751 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 23:11:56 ID:m0apTEno] DXライブラリをビルドできる環境が無いのでなんとも言えないが Ver 3.01 での NS_FillBaseImage関数 (DxBaseImage.cpp の5124行目あたり) で DWORD の Color が WORD にキャストされているので、ARGBのうち、ARが捨てられている気がする このキャストをなくせばいいんじゃないかなー
752 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 23:28:01 ID:zzrUYLD6] >>751 DWORDに修正してビルドし先のコードで試したところ正常に動くようになりました 丁寧に修正箇所も教えていただいて、どうもありがとうございました!
753 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 06:29:35 ID:7H/reV3I] 馬鹿ばっかり・・・
754 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 13:54:18 ID:HHPX/Q69] >>753 もっと蔑んだ目で言って下さい
755 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 14:32:44 ID:CuC3sxxQ] >>754 | |/ノ二__‐──ァ ヽニニ二二二ヾ } ,'⌒ヽ /⌒!| =彳o。ト ̄ヽ '´ !o_シ`ヾ | i/ ヽ ! ! ハ!| ー─ ' i ! `' '' " ||ヽ l |
756 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 15:25:26 ID:JBJvvpkE] >>754 ',::r、:| <●> <●> !> イ |:、`{ `> .:: 、 __ノ |::∧ヘ /、__r)\ |:::::|
757 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 17:18:12 ID:2P10BkIV] アニメーション作りたかったから double owari; do{ DrawGraph(0,0,player[3],TRUE); DrawGraph(0,0,player[4],TRUE); DrawGraph(0,0,player[5],TRUE); DrawGraph(0,0,player[6],TRUE); owari = FALSE }while(owari = TRUE); やったらパソコンが動かなくなったよ! 誰か助けて
758 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 17:22:47 ID:JBJvvpkE] owari==true
759 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 17:25:48 ID:2P10BkIV] 出来ました!! ありがとうございます しかし画像が動いてない・・・
760 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 17:43:27 ID:PA+3lzr7] そりゃScreenFlip挟んでないからな…
761 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 17:45:11 ID:2P10BkIV] 画像も動いたし一件落着かと思ったんですが double owari; do{ SetDrawScreen( DX_SCREEN_BACK ) ; ClsDrawScreen() ; DrawGraph(0,0,player[3],TRUE); ScreenFlip() ; WaitTimer(500); ClsDrawScreen() ; DrawGraph(0,0,player[4],TRUE); ScreenFlip() ; WaitTimer(500); ClsDrawScreen() ; DrawGraph(0,0,player[5],TRUE); ScreenFlip() ; WaitTimer(500); ClsDrawScreen() ; DrawGraph(0,0,player[6],TRUE); ScreenFlip() ; WaitTimer(500); owari = FALSE; }while(owari == FALSE); これじゃあゲームが終わりません 誰かアニメーションの書き方を教えてください
762 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 17:52:12 ID:PA+3lzr7] ClsDrawScreen(); static int a = 0; DrawGraph(0,0,player[3+a],TRUE); if(a<3)a++; WaitTimer(500); ScreenFlip() ;
763 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 18:01:12 ID:2P10BkIV] ありがとうございます 試してみたんですが、画像が動いてくれません これはwhileの中に入れて使用するんでしょうか?
764 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 18:13:29 ID:c9TXpFDF] コピペするだけじゃなくて、その命令の意味をよく考えてみよう。
765 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 18:16:33 ID:JBJvvpkE] とりあえず龍神録読んで来い
766 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 18:29:11 ID:W0mdJ7eW] それ以前にリファレンスを嫁 あんだけわかりやすいのがあるんだから・・・
767 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 18:31:18 ID:HHPX/Q69] 基本的な考えを理解してないな。 例えば絵が1ドットずつ動くプログラムだとすると 座標0に表示 ↓ 座標1に表示 ↓ 座標2に表示 ↓ 座標3に表示 ↓ : って書くんじゃなくて(これは>761の書き方)、 座標xに表示 ←―┐ ↓ | xを+1する | 繰り返す ↓ | └―――――┘ って書くのを意識するといいよ
768 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 18:35:18 ID:1VFB3DYv] かわいいなw
769 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 19:00:00 ID:2P10BkIV] double owari; do{ ClsDrawScreen(); static int a = 0; DrawGraph(0,0,player[3+a],TRUE); if(a<3)a++; WaitTimer(500); ScreenFlip() ; owari = FALSE; }while(owari == FALSE); こうやってみました aが0に戻らなくて[6]がずっと表示されてしまいます あと、できればdo{}while();は使いたくないです
770 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 19:07:41 ID:dC7YcGqj] static intがまずいんじゃなか?
771 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 19:10:47 ID:PA+3lzr7] >>769 >aが0に戻らなくて[6]がずっと表示されてしまいます わかってんならaを0に戻せよ… whileでもforでも好きなもんを使えよ… >>764-767 無視すんなよ…
772 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 19:13:09 ID:CfyGLtto] まずはC言語勉強してこい
773 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 19:23:57 ID:2P10BkIV] >>771 すいませんでした if(a>3)a=0;を追加したんですが止まってしまいます >>764 考えて>>769 をつくってみました! >>765 そのサイト、アニメーションについて載ってなくて… >>766 homepage2.nifty.com/natupaji/DxLib/dxfunc.html このページでしょうか? 何回か読んだのですがアニメーションについて載ってなかったです… >>767 座標を動かさないようにするんですか? >>768 ありがとうございます >>770 消してみたんですが、動きすらしなくなりました
774 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 19:32:13 ID:JBJvvpkE] アニメーションでなく根本的な所から理解出来てない 龍神録一通りやってゲームプログラミングの基礎を学べ
775 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 19:36:09 ID:2P10BkIV] すいませんでした まだ自分はなにも理解していないみたいなので もう一度最初から学び直してきます みなさんありがとうございました
776 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 19:36:15 ID:PA+3lzr7] >>773 もうDXライブラリ以前の問題だからVIPで聞け yutori7.2ch.net/test/read.cgi/news4vip/1264908880/
777 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 19:36:48 ID:GeAXL5Qw] a=3になってるから
778 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 19:37:45 ID:Di+guFUQ] >>770 >>772 >>773 if(a<3)a++; if(a>3)a=0; こうしたんなら a=3 の場合はどっちも掛からないから a=3 のまま止まるわなあ
779 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 19:43:39 ID:2P10BkIV] >>777 >>778 if(a>=3)A=0; にしたらきちんと動いてくれました! でも学び直してきます ありがとうございました >>776 ありがとうございます 次からはそこで質問しますね
780 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 19:44:26 ID:2P10BkIV] うそです Aじゃなくてaです
781 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 20:01:10 ID:uYVfFOYk] このライブラリって64bit windowsでも 問題なく動くの?
782 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 20:09:34 ID:CfyGLtto] 動かないんじゃね? ライブラリをDLLにすれば動くかも
783 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 20:09:49 ID:0ATLaas4] なんで?
784 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 22:57:51 ID:W0mdJ7eW] 普通に動くよw ネイティブでって意味ならたぶん動かないけど、そういう事じゃないだろ?
785 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 23:29:30 ID:CfyGLtto] ゲームが実行出来るかじゃなくて 正常にビルド出来るかって意味かと思った つーかそれだとDLLでも動かないねすまん
786 名前:名前は開発中のものです。 mailto:sage [2010/02/01(月) 00:07:00 ID:2kqPhNjN] ビルドもVSとか使ってるなら通るはずだよ 俺この間までWin7の64bitと、XPの32bitで出先<->家での開発してたし
787 名前:名前は開発中のものです。 mailto:sage [2010/02/01(月) 01:01:10 ID:YQ/gjtQh] 本体のビット数とDLLのビット数が違うとダメだけどね。 DXライブラリでもゲーム制作の話でもないけど この間それで問題が起きてね……w
788 名前:名前は開発中のものです。 mailto:sage [2010/02/01(月) 16:57:45 ID:Lf2Nvhz5] なんで?
789 名前:名前は開発中のものです。 mailto:sage [2010/02/01(月) 17:45:18 ID:ooYrGYNe] なんだっていいさ
790 名前:名前は開発中のものです。 mailto:sage [2010/02/01(月) 18:32:39 ID:864q13BL] long doubleとか使って試せば 787かいいたいことがわかるとおもう たぶん
791 名前:名前は開発中のものです。 mailto:sage [2010/02/01(月) 18:36:19 ID:PxBHY40/] いや、32bitアプリからは64bitDLLは使えないし 64bitアプリからは32bitDLLは使えない。 だから通常、DLLまで用意する場合じゃ無けりゃ32bitで作ればいいんだけど .NET FrameworkでAny CPUで作った場合はまることがある。 DLLはネイティブで32bit固定なのに、EXEは実行環境によって32/64変わるから 開発時の環境が32bitだと気がつかない。 ということじゃないかなあ。
792 名前:名前は開発中のものです。 mailto:sage [2010/02/01(月) 18:52:33 ID:Lf2Nvhz5] それで?
793 名前:名前は開発中のものです。 mailto:sage [2010/02/01(月) 18:58:44 ID:xufADCF/] ググレカス
794 名前:名前は開発中のものです。 mailto:sage [2010/02/02(火) 13:39:47 ID:EWwGB+Nl] libを32bitで作って64bitマシンでコンパイルしたオブジェクトとリンクしても問題ないの?
795 名前:名前は開発中のものです。 mailto:sage [2010/02/02(火) 13:53:12 ID:ZXzo3Aq8] なんで?
796 名前:名前は開発中のものです。 mailto:sage [2010/02/02(火) 13:54:59 ID:6T1hs+2r] ビルド時のターゲットはビルド環境とは関係ない
797 名前:名前は開発中のものです。 mailto:sage [2010/02/02(火) 18:27:35 ID:NU2kONNz] 「64bitマシンでビルドする」というのと、「64bit用アプリとしてビルドする」というのは別物ってことよね。 コンパイラが対応しているかどうかは別として。(比較的最近のVisualStudioなら問題なし) もちろん、32bitでも同様。 で、開発マシンが32/64問わず、 64bit用としてビルドしたアプリ本体 + 32bit用としてビルドしたDLL → 動かない 32bit用としてビルドしたアプリ本体 + 32bit用としてビルドしたDLL → たぶん動く であると。
798 名前:名前は開発中のものです。 mailto:sage [2010/02/02(火) 21:43:09 ID:ZXzo3Aq8] それで?
799 名前:名前は開発中のものです。 mailto:sage [2010/02/02(火) 22:29:37 ID:ocqUn9yT] なにが?
800 名前:名前は開発中のものです。 mailto:sage [2010/02/02(火) 23:35:47 ID:3geZi3lZ] つーか64Bitアプリにするほどメモリ使うゲームを作るのかと。
801 名前:名前は開発中のものです。 mailto:sage [2010/02/03(水) 05:04:33 ID:U8Pd5rkG] なんで?
802 名前:名前は開発中のものです。 mailto:sage [2010/02/03(水) 05:54:02 ID:XTUJJ4Iu] 基本的には32bitアプリでも動くって話だけど その基本的って部分がちょっとだけ気になる。
803 名前:名前は開発中のものです。 mailto:sage [2010/02/03(水) 08:44:53 ID:g7fkj8BM] 64BitOSで動かすことを気にしてるなら 従前どおりの32Bitアプリが何の問題もなく動くので徒労。 メモリを4GB以上使いたい場合以外にあえて64Bit化する意味は薄い。
804 名前:名前は開発中のものです。 mailto:sage [2010/02/03(水) 14:05:09 ID:5f3a6r9D] シューティングの画像ってサイズ奇数にして中心にオブジェクトのxyを持ってきた方が作り易い気がするんだが、みんな普通にx1y1x2y2でやってるの?
805 名前:名前は開発中のものです。 mailto:sage [2010/02/03(水) 14:18:36 ID:gyXnlokN] 場合による。 長方形のキャラ(回転なし)とかだと後者の方が便利だし。
806 名前:名前は開発中のものです。 mailto:sage [2010/02/03(水) 15:51:20 ID:U8Pd5rkG] なんで?
807 名前:名前は開発中のものです。 mailto:sage [2010/02/03(水) 22:19:22 ID:WAfqMpru] お前を食べるためさ!
808 名前:名前は開発中のものです。 mailto:sage [2010/02/03(水) 22:40:10 ID:U8Pd5rkG] 変態
809 名前:名前は開発中のものです。 mailto:sage [2010/02/03(水) 23:31:20 ID:y+n9ea+J] DxLIBだとインストール済みのフォントデータしか使えないのかな? 思っていたより使い勝手悪いな…
810 名前:名前は開発中のものです。 mailto:sage [2010/02/03(水) 23:39:52 ID:mUdTkHdF] よくわからんがフォントリソースとして読み込んでから使えとか見た気がするな
811 名前:名前は開発中のものです。 mailto:sage [2010/02/04(木) 01:32:44 ID:9yr7SgZz] d AddFontResourceを使ってゲーム起動時に追加出来た
812 名前:名前は開発中のものです。 mailto:sage [2010/02/04(木) 10:22:35 ID:B+CnvqXs] 思っていたより使い勝手悪いな…
813 名前:名前は開発中のものです。 mailto:sage [2010/02/04(木) 15:03:56 ID:0uWBCETA] DXLIBのデータファイルの暗号化機能を使おうかと思うんだけど パスワードってリテラルでEXEに埋め込んじゃってダイジョブなん?
814 名前:名前は開発中のものです。 mailto:sage [2010/02/04(木) 15:08:11 ID:WAZ4oke5] 思っていたより使い勝手悪いな…
815 名前:名前は開発中のものです。 mailto:sage [2010/02/04(木) 18:53:49 ID:QxyExYir] なにがどう大丈夫なのか解らんが、 自分で何とかできないのなら諦めて普通に使うしかないだろう。
816 名前:名前は開発中のものです。 mailto:sage [2010/02/04(木) 18:55:51 ID:0uWBCETA] いや、キーがバイナリエディタとかで見えちゃうんじゃないかなと思って・・・
817 名前:名前は開発中のものです。 mailto:sage [2010/02/04(木) 19:04:15 ID:1Mq3yDnQ] >>816 ようは 「入力された文字」==「キー」 ってやってもだいじょうぶかきいてるんだろ? キーはみえる
818 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 01:25:04 ID:a9qwHvOS] 乱数とかつかって謎の文字列を生成する関数とか作って それをキーに使ったほうがわかりにくくていいんかな
819 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 01:30:13 ID:y9Rl8Gqj] 自分でそれができるのならやればいいのでは。 どうしてそこまで隠したがるのか知らないけど。 俺は、俺の作ったゲームをプレイした人が 「このゲームの生データ見てみたい!」 って思ってくれるほど魅力があるデータを作れた自信がないから そこまで心配はしてないな。
820 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 01:31:15 ID:RCBVAjHS] >>816 暗号鍵を何かでエンコードしてリテラルとしてソースコード埋め込んどいて、SetDXArchiveKeyStringにデコードして渡すとか?
821 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 02:23:43 ID:9VhG5z2Z] 暗号化の機構と、暗号鍵と、暗号化の対象が全て一箇所にある以上 どうしようもない気はする
822 名前:名前は開発中のものです。 [2010/02/05(金) 16:46:58 ID:N9JJZcSG] キャラのポリゴン数ってどれくらいが理想? 今のところ10000ポリゴンはあるんだが。 ちなみにメタセコでCark(分割)4の曲面化つかったデータね ちなみに胴体だけです これじゃ動かないかなあ
823 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 16:50:07 ID:qcSvBbHw] みんな画像や音声のロードってどうしてるの? NowLoading...のアニメーションを動かしながらロード、ってのをしたいんだけど、 読み込みとアニメーションを並行してやる方法が分からないんだ
824 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 16:52:34 ID:Ir4+43zS] >>822 >>492
825 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 19:50:51 ID:EoD901Y8] マルチスレッドじゃね
826 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 20:17:16 ID:Ir4+43zS] >>823 1フレームに1つずつファイルを読み込みながらアニメーション表示させる。 マルチスレッドを使ってもいいけどこっちの方が簡単。
827 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 20:25:49 ID:qcSvBbHw] >>825 公式の掲示板の過去ログで、2007年にLoadGraphはマルチスレッドに対応してないみたいな事を管理人さんが・・・ >>826 音声ファイルとかだと1フレームの間にロードし終わってくれますかね・・・?
828 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 20:30:27 ID:g1+Hi/0a] 俺も>>826 の方法だけど たしかにちょっと止まるな
829 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 20:30:28 ID:EoD901Y8] 起動時に全部読み込んで後でNowLoadingだけ表示しとけばいいんじゃね
830 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 20:38:57 ID:XWwIt0Ve] 本末転倒w
831 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 20:58:53 ID:Ir4+43zS] 個人的な感覚でだけど>>829 の方法が可能ならこれでいいんじゃないかな。 そもそもプレイヤーにストレスを与えないようにするのが目的だし、実際「NowLoading...」と表示しておきながら読み込み以外の処理もしてたりするしね。 あと>>826 の方法は確かに処理落ちする可能性はあるけど何か問題あるの? どうせプログレスバーを表示させるぐらいじゃないの?
832 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 21:03:23 ID:g1+Hi/0a] >>829 はネタレスだろw
833 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 21:04:42 ID:qcSvBbHw] >>831 起動時に全部読み込むと、読み込みファイルのサイズが大きくなったときにちょっと・・・。 できるだけ逐次ロードしたいから・・・。 あと、最初に読み込もうとすると数秒止まっちゃって、それが気にくわないというかストレス。
834 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 21:37:34 ID:RBAQ2+kz] マルチスレッドなしならなうろーでぃんぐはアニメーションさせないのが一番
835 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 21:58:05 ID:RjYJfLjO] かなりいい加減なコードだけど、スレッドを使った Now Loading のサンプル ttp://codepad.org/HMbYruHZ
836 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 22:31:40 ID:qcSvBbHw] >>835 おお・・・ 参考にしてみまする
837 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 22:43:27 ID:Xzk70bEL] i=0; なんかループ{ なんかロード1コ なんかナウローディングとか表示 なんか四角とか描画(x, y ,x+i, y); 画面更新 } CとかDirectXライブラリの記述方法は忘れた
838 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 22:55:33 ID:9VhG5z2Z] DXライブラリはともかく、Cの表記とゲームプログラミングの作法は忘れんなw
839 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 23:11:28 ID:a9qwHvOS] ファイル単位で読み込もうとするからデカイファイルのせいで処理落ちするコマが出てくるんじゃね? while(!end()) { read( Nバイト ); draw(); } これならフレームレート安定するだろう でもわざわざ読み込み速度を意図的に落としてまでやるべきなのかは疑問
840 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 23:14:04 ID:+ZQFEOdr] DXライブラリで >read( Nバイト ); ってどうやんの?
841 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 23:19:28 ID:qcSvBbHw] スレッド使ってロードしようとしたらエラー吐いて落ちた・・・。 やっぱりLoadGraphはマルチスレッド対応してないってことなのかな・・・。 >>839 kwsk
842 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 23:29:20 ID:ax38IgEf] >>835 のコードだったらわざわざマルチスレッドにせずとも>>826 でやればいいような気もするが
843 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 23:31:09 ID:9VhG5z2Z] 自己満足で!(超重要
844 名前:名前は開発中のものです。 mailto:sage [2010/02/05(金) 23:45:43 ID:tUrF1ELA] スレッド系はきっちり作らないと他人の環境限定で ある日突然落ちたりしてデバッグで泣くことになるぞ。 CPUのコア数によって出たり出なかったりとかするからな。
845 名前:名前は開発中のものです。 mailto:sage [2010/02/06(土) 02:01:00 ID:npht8xA6] Now loading...のアニメーションを動画にしたらどうかな?
846 名前:名前は開発中のものです。 mailto:sage [2010/02/06(土) 02:46:06 ID:Y+vgz54E] その動画を読み込ん出る間のNow Loading画面が欲しくなるね!
847 名前:名前は開発中のものです。 mailto:sage [2010/02/06(土) 03:13:17 ID:ryKI6KOb] Now loading...をLoading Complete!に修正すればよくね
848 名前:名前は開発中のものです。 mailto:sage [2010/02/06(土) 04:54:47 ID:sLGxAtvo] 「ロードした」なら使ってもいい!
849 名前:名前は開発中のものです。 mailto:sage [2010/02/06(土) 07:42:28 ID:heYW4fwh] >>829 はネタのつもりで書いただろうけど、実際にやってる人を見たことあるよ。 静止画を表示しながら読み込み(2秒間)⇒「NowLoading...」(0.2秒) 本人曰く「ただ気分を味わいたかった」と。 でも実際のゲームを見てみるとプレイヤーからはそれは分からないし、むしろ「ロード早いなあ」という印象すら受けた・・・ これも一つの答えなんだと思ったよw マルチスレッドを使う方法は↓に書いてある。 hpcgi2.nifty.com/natupaji/aska.cgi あと画像はLoadDivGraphで分割読み込みができる。
850 名前:849 mailto:sage [2010/02/06(土) 07:48:32 ID:heYW4fwh] すみません。 掲示板のリンクがダメですね・・・ 記事No「1896」です。
851 名前:名前は開発中のものです。 mailto:sage [2010/02/06(土) 09:42:16 ID:AjOTNEN+] >>849 LoadDivGraphで分割読み込み、ってアレはひとつの画像を複数の画像に分割するんであって、 分割してひとつの画像読み込むわけじゃないっていう マルチスレッドの方は読んでみた 応用してやれないか試してみる
852 名前:名前は開発中のものです。 mailto:sage [2010/02/06(土) 13:12:13 ID:6i+WO82B] そもそも円滑にアニメーションさせる必要なくね? 要所要所で動作が若干止まったりしたほうが読み込んでるっぽくてユーザも安心するし
853 名前:名前は開発中のものです。 mailto:sage [2010/02/06(土) 13:15:04 ID:m1I5HW8a] じじいの酷い言い訳
854 名前:名前は開発中のものです。 mailto:sage [2010/02/06(土) 13:30:09 ID:xpV9NzXE] じじいくらべならまけませんよ?
855 名前:名前は開発中のものです。 [2010/02/06(土) 14:19:32 ID:heYW4fwh] アニメーションの種類によるんじゃなかな? 読み込みの進捗を表示させるようなタイプなら>>823 で多少カクカクしても問題ないと思うし、むしろマルチスレッドにすると同期を取るのがめんどくさいし。 逆にもっと派手なアニメーションだと処理落ちすると見栄えが悪くなるのでマルチスレッドにするしかないと思う。 ただ個人的には同人ゲームなら静止画で「NowLoading...」と表示させておくだけで十分だと思うんだけど・・・
856 名前:名前は開発中のものです。 mailto:sage [2010/02/06(土) 15:27:53 ID:hilmmGtE] 静止画1枚だとフリーズしてんのかな?って不安になる
857 名前:名前は開発中のものです。 mailto:sage [2010/02/06(土) 16:16:36 ID:+7JZw7l0] カクカクでもいいならマルチスレッド必要ないよな
858 名前:名前は開発中のものです。 mailto:sage [2010/02/06(土) 16:21:12 ID:AjOTNEN+] せめてNowLoading... [ ココ ] で何かのアニメーションはさせたいよね
859 名前:名前は開発中のものです。 [2010/02/06(土) 22:28:44 ID:fMJ0B1gK] そこは操気弾のアニメを
860 名前:名前は開発中のものです。 [2010/02/06(土) 23:38:51 ID:cCb1U7aq] これって3dもつくれるんだよね? Blenderにも対応してる?
861 名前:名前は開発中のものです。 mailto:sage [2010/02/07(日) 07:39:53 ID:cnkJTmx7] >>860 >これって3dもつくれるんだよね? 作れるよ。 >Blenderにも対応してる? モデリングソフトの対応状況は過去レスを見てみて。 BlenderはFBXが使えるみたい。
862 名前:名前は開発中のものです。 mailto:sage [2010/02/11(木) 23:41:27 ID:AgKonL0C] メタセコで武器だけ作って、それを3Dのキャラモデルに持たせるのはどうやるんだろう。 DXライブラリの範疇ではないのかな。 なにか調べる取っ掛かりはない?
863 名前:名前は開発中のものです。 mailto:sage [2010/02/12(金) 02:48:39 ID:iGppiI+j] 位置とか角度の親子関係を作れればいいんじゃないかな
864 名前:名前は開発中のものです。 mailto:sage [2010/02/12(金) 04:35:23 ID:Z51oc7q7] >>862 DXライブラリは知らんけどリアルタイムレンダリングがデフォじゃない?
865 名前:名前は開発中のものです。 mailto:sage [2010/02/12(金) 07:46:33 ID:gSVuHgsF] >>862 「コンストレイント」で検索してみるといいよ。 やり方は簡単で>>863 の言う通り、「手」の移動と回転を「武器」に加えるだけ。
866 名前:名前は開発中のものです。 mailto:sage [2010/02/12(金) 15:42:11 ID:9oJmNhGP] DrawChipMapってどうやって使うの
867 名前:名前は開発中のものです。 mailto:sage [2010/02/12(金) 21:24:07 ID:m/RgGbdM] GetNowHiPerformanceCount()の内容をprintfしたいんですが%dの部分を何に変えたらいいですか
868 名前:名前は開発中のものです。 mailto:sage [2010/02/12(金) 21:53:10 ID:5g1bekrX] g
869 名前:名前は開発中のものです。 mailto:sage [2010/02/12(金) 22:17:37 ID:gSVuHgsF] >>867 試してないけど戻り値がLONGLONG型なので「%I64d」か「%lld」じゃないかな。
870 名前:名前は開発中のものです。 mailto:sage [2010/02/12(金) 22:39:37 ID:3A3ijQ60] >>863-865 サンクス! やり方、納得です。 取り敢えず手の回転並進行列とって、そのまま武器に適用させてみる。
871 名前:名前は開発中のものです。 mailto:sage [2010/02/12(金) 23:19:30 ID:gSVuHgsF] >>866 チップグラフィックを使ったマップ描画 int MapWidth, MapHeight : マップデータ全体の幅と高さ int *MapData : マップデータが格納されたアドレス int ChipTypeNum : マップに使うチップの種類の数 int *ChipGrHandle : チップのグラフィック配列のアドレス int TransFlag : 透過色処理の有無 int MapDrawX, MapDrawY : 描画するマップの起点となる左上座標 int MapDrawWidth, MapDrawHeight : 起点座標から描画するマップの幅と高さ int ScreenX, ScreenY : マップを描画する画面上の座標 (2004/02/08) 2.11 DrawChipMap 関数を非公開関数に変更。
872 名前:名前は開発中のものです。 mailto:sage [2010/02/13(土) 00:47:58 ID:lykIm1Dn] >>868-869 サンクス! lldでいけました。
873 名前:名前は開発中のものです。 mailto:sage [2010/02/13(土) 18:36:09 ID:nVI35ftX] 1つの画像に対して、縦横で別倍率の拡縮、および回転を同時に行うとき、 何か簡単な方法って無いものかな? 拡縮してから回転させたときと、回転させてから拡縮するときとで結果が異なるけどさ。 無いなら無いで、自前で座標を計算してDrawModiGraph()に投げるつもりだけれど。
874 名前:名前は開発中のものです。 mailto:sage [2010/02/13(土) 19:30:01 ID:pV6Ocbxc] ないので俺は自分で関数作った
875 名前:名前は開発中のものです。 mailto:sage [2010/02/13(土) 22:38:54 ID:nVI35ftX] そっか、ありがと。
876 名前:名前は開発中のものです。 mailto:sage [2010/02/14(日) 21:14:56 ID:9DOaOyQ2] 半透明処理で ClearDrawScreen() SetDrawBlendMode( DX_BLENDMODE_ALPHA, ・・・ DrawGraph(・・・ ScreenFlip() って書いたら、1箇所使っただけなのにかなり処理が重くなる DrawGraphが悪い? フレームスキップするしかない?
877 名前:名前は開発中のものです。 mailto:sage [2010/02/14(日) 21:20:54 ID:lH/o5bwf] いや、俺普通に何箇所も使うけど重くなんないよ? 本当にその四行だけで試してみた?
878 名前:名前は開発中のものです。 mailto:sage [2010/02/14(日) 21:21:28 ID:I7ZtRrpB] フレームスキップは基本過ぎるだろ
879 名前:名前は開発中のものです。 mailto:sage [2010/02/14(日) 21:24:26 ID:9DOaOyQ2] >>877 ClearDrawScreen() SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 ) DrawGraph(・・・ // 普通の画像 SetDrawBlendMode( DX_BLENDMODE_ALPHA, ・・・ DrawGraph(・・・ // 半透明させるの画像 SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 ) DrawGraph(・・・ // 普通の画像 ScreenFlip() こうやってます 画像を重ねる都合上、 SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 ) を2回やってます もっと効率よい方法があるんでしょうか?
880 名前:名前は開発中のものです。 mailto:sage [2010/02/14(日) 21:26:43 ID:9DOaOyQ2] >>877 フレームスキップってどうやればいいでしょうか? 画面処理を別スレッドにして、処理時間オーバーしたら放棄、 でいいの?
881 名前:名前は開発中のものです。 mailto:sage [2010/02/14(日) 21:27:36 ID:9DOaOyQ2] すみません 880 は >>878 へのレスです
882 名前:名前は開発中のものです。 mailto:sage [2010/02/14(日) 21:32:50 ID:r2nQlTSv] >>879 いちいち戻さない方が速いかも
883 名前:名前は開発中のものです。 mailto:sage [2010/02/14(日) 21:34:14 ID:I7ZtRrpB] >>880 ググれば幾らかサンプルコードが出てくる。確か龍神録でも触れてたと思うし。 PC上で動くゲームを作るのなら秒間60回更新するように調整するのは基本中の基本。 DXLIBに限った話じゃない。CPU使用率が異常に高かったりしたら間違いなくこっちの問題でしょ。
884 名前:879 mailto:sage [2010/02/14(日) 21:58:05 ID:9DOaOyQ2] 3番目の↓ SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 ) DrawGraph(・・・ // 普通の画像 が処理を重くしてる原因だったので、これを削ることにしました ありがとうございます 龍神録というサイトを初めて知ったので、質問してよかった >>883 ありがとうございます
885 名前:名前は開発中のものです。 mailto:sage [2010/02/15(月) 08:08:26 ID:BUryD20y] 何故そこだけ問題があったんだろう。気になる。 >873だが、色々な変形に対応させようと思うと結構面倒だな。引数も増えるし。 回転と拡縮だけにしてしまうか。 ……とここまで書いて、 画像クラスを作ってしまえば簡単だということに気づいた。
886 名前:名前は開発中のものです。 mailto:sage [2010/02/15(月) 20:26:12 ID:ccjc3ij8] 平面だけでいいなら2*2行列に行列演算を繰り返して 最後にその4点にあわせてDrawModiGraphするってのが汎用的で記述もわかりやすくていいんじゃね? どっかからできの良い数学ライブラリ持ってきてもいいし 回転拡大スライド程度なら簡単な行列計算だけに絞れるから自分で作ってもいい
887 名前:名前は開発中のものです。 mailto:sage [2010/02/15(月) 20:55:41 ID:BUryD20y] 行列とか完全に忘れてて愕然とした orz >>886 結局のところ、妥協して回転、拡縮、左右/上下反転の3つだけ関数にしたんだが、 どっちかっていうと、コーディングよりも設計に悩んでた。 変形する順番によって最終的な結果が変わる場合があるから、 それらに対応しようとすると、その分だけ引数も増えるわけで、結果として使いにくい関数になっちゃうのよね。 で、画像をクラスにして ImageClass img; //中略 img.rotate(3.14); //180度回転 img.extend(1.0,2.0); //縦2倍 img.rotate(1.57); //90度回転 img.draw(0,0); //0,0に描画 とかでも良かったかな、と思った。
888 名前:名前は開発中のものです。 mailto:sage [2010/02/15(月) 21:00:03 ID:K58uOKXK] ・画像内での基準点の位置 ・上の基準点が実際に描画される位置 ・基準点を中心としたスケール ・基準点を中心とした回転角度 で十分だと思うけど
889 名前:名前は開発中のものです。 mailto:sage [2010/02/15(月) 21:57:09 ID:BUryD20y] >>888 それだけで引数7つあるぜ? 各変形の優先度を決める(もしくは同じ変形を複数回行う)とか、 回転と拡縮以外の変形も出来るようにするなら、どれだけ増えるんだ。
890 名前:名前は開発中のものです。 mailto:sage [2010/02/15(月) 22:01:20 ID:8F/ucvej] 回転と拡大縮小って別に順不同じゃね 基点となる座標が変われば別だが
891 名前:名前は開発中のものです。 mailto:sage [2010/02/15(月) 22:17:52 ID:BUryD20y] >>890 ゲームの都合上、縦横で別々に拡大率を設定できるようにする必要があった。 正方形を、90度回転させてから、横に2倍 □□ → ■□ → ■■□□ ■■ → ■□ → ■■□□ 横に2倍にしてから、90度回転 ■□ □□ → □□□□ → ■□ ■■ → ■■■■ → ■□ ■□ みたいに変わる。
892 名前:名前は開発中のものです。 mailto:sage [2010/02/15(月) 22:23:00 ID:8F/ucvej] >>891 それって渡す引数のほうを工夫すればいいんでねーの 二つ目は90度回転してから縦に二倍しても同じものを得られるわけだし DrawExRotaGraph2(int x,int y,int cx,int cy,double ExtRateX,double ExtRateY,double Angle,int GrHandle,int TransFlag,int TurnFlag); 10個だな
893 名前:名前は開発中のものです。 mailto:sage [2010/02/15(月) 22:29:12 ID:BUryD20y] >>892 質問、90度以外でも渡し方次第で出来る?
894 名前:名前は開発中のものです。 mailto:sage [2010/02/15(月) 22:31:47 ID:8F/ucvej] >>893 出来るんじゃね
895 名前:名前は開発中のものです。 mailto:sage [2010/02/15(月) 22:57:23 ID:ccjc3ij8] 引数が多いと見苦しいし、書く順番でちょっと混乱しそう それに回転と伸縮どっちが優先か見た目に明らかじゃないのも気になる
896 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 00:28:56 ID:ytIVItbu] なんに使うのかがそもそも想像できない俺……。
897 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 03:07:21 ID:JDL3KQO6] >>896 こんな感じでどう? gamdev4.hp.infoseek.co.jp/cgi-bin/up/No_0079jpg.html
898 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 04:51:49 ID:iDbvu+FE] >>897 ( ゚д゚)ポカーン
899 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 05:23:23 ID:g5MLEwas] ようやく理解できた
900 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 06:40:46 ID:OQUeahIO] 3Dでやれば簡単だぜ
901 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 09:20:21 ID:aK6xRRB6] 把握。 そういう力技、嫌いじゃないぜw
902 名前:898 mailto:sage [2010/02/16(火) 10:16:29 ID:JDL3KQO6] すまん、いい例えが思い浮かばなかったんだw
903 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 10:17:15 ID:JDL3KQO6] 名前間違えた、897だ
904 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 11:28:24 ID:iwCPzVGw] GetDrawStringWidthの第二引数StrLenはどういう意味があるのでしょうか? マニュアルには > StrLen として文字列の長さをわざわざ指定する ようにしたのは色々な側面から見て文字列の長さを指定できるよう にしたほうが良いと思ったからです。 と書いてありますが、どういうケースで指定が必要になるのか想像がつきません。
905 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 12:41:35 ID:ghUeZnk+] >>904 DXライブラリの作者さんがそう考えただけで、別に必要なければ使わなければいいだけでは? 例を挙げておくとこんな感じ。第二引数は指定できなくても書けるけど複雑になってしまう。 char Str[] = "今日もいい天気だ"; int MaxWidth = 50; // この幅に収まるように描画したい int MaxChar = 0; // MaxWidthに収まる最大文字数 for( int i = 0; i < strlen(Str); i++ ) { StrWidth = GetDrawStringWidth( Str , i ) ; if(StrWidth < MaxWidth) { MaxChar = i ; } } Str[MaxChar] = '\0' ; DrawString( 0 , 0 , Str , GetColor( 255 , 255 , 255 ) ) ;
906 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 12:56:47 ID:iwCPzVGw] >>905 なるほど、理解しました。
907 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 13:02:27 ID:JDL3KQO6] 辛うじて一度だけ使った記憶があるな。 メニュー画面だったかな。文字列をセンタリングして表示するのに利用した。 文字列の前後に空白や記号がある場合、 それらも含めた文字数で横の長さを決めると、ちょっとズレて見えることがある。 ……ぶっちゃけた話、 他にも方法は色々あるだろうとか、メニュー画面くらい画像にしろよとか思うので 使う機会はあんまり無い気がする。
908 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 17:38:15 ID:S7mGVY2n] C/C++以外からDLL経由で使おうとするとnull文字で終わってない文字列とか渡すのに便利です
909 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 21:28:56 ID:QXMNjoNk] >>873 DrawModiGraph()とアフィン変換 アフィン変換 クラスでググるといいかもしれない
910 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 22:33:22 ID:7n/4grgh] 逆に文字列の長さよりもStrLenの方が短い場合とかに使うんじゃね? デバッグ文表示で最後まで表示しないで途中で切ることとかよくあるんじゃね?
911 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 23:25:40 ID:b96KcuEj] アフィン変換か・・・左右反転と拡大縮小って同時にできるもんなんだな、しらなかった でもこれってソースになる元画像を読んでからやるの?格納してからメモリ上の画像をハンドルで指定して操作したりできるんだろうか
912 名前:名前は開発中のものです。 mailto:sage [2010/02/16(火) 23:50:46 ID:QXMNjoNk] あ、左右反転もなのか DrawModiBillboard3Dのがいいと思う
913 名前:名前は開発中のものです。 mailto:sage [2010/02/17(水) 00:19:59 ID:BMwZx7QF] >>912 いや自分は873ではないんだけれども、参考になったので書かせてもらった。横槍すまんね DrawModiBillboard3Dって左右反転できるのか。x1を右上の座標、x2を左上の座標、x3とx4も同様に交換ってやれば反転するのかな?
914 名前:名前は開発中のものです。 mailto:sage [2010/02/17(水) 02:18:28 ID:V7zWpnOB] ゲームで銃の連射中の音を作りたい 例えば 「ドッギュウン」て音声のファイルがあったとする。 そのファイルを使って単発発射で「ドッギュウン」、連射で「ドッドッドッドッドッギュウン」ってなカンジにしたいんだけど 音声の再生中かを CheckSoundMemで調べて、再生してなかったら再生してもヨシってすると案の定 「ドッギュウン・ドッギュウン・ドッギュウン・ドッギュウン」ってカンジになってしまう。 なので、ソレをナシにすると1ループごとに再生するんであまりにも早くて 「ドドドドドドドドドドッギュウン」ってカンジになる。 音声の再生位置を調べて、ある程度達してたら再生ってやろうと思ったけどそんな関数は無かった。 だから適当に変数用意して3ループ目ごとに再生ってカンジにしようとしているんだけど…(ゴチャゴチャする気もするが) 一般的なゲームの場合ってこういう時どうしてるの? 音声を二つ「ドッドッドッド」「ドッギュウン」用意して、ボタン押しっぱなし時は「ドッドッド」、離す・もしくは一押しの時は「ドッギュウン」とか?
915 名前:名前は開発中のものです。 mailto:sage [2010/02/17(水) 02:32:31 ID:ccv1Zplj] ボタン押してる間「ドッ」をループ 離したら「ッギュウン」でいいんじゃねーの?
916 名前:名前は開発中のものです。 mailto:sage [2010/02/17(水) 05:47:58 ID:9a0E55gk] そんなめんどくさいことしなくても 弾の発射間隔を広げるか、数発ごとに発射音を鳴らすようにすればいいじゃん
917 名前:名前は開発中のものです。 mailto:sage [2010/02/17(水) 06:26:15 ID:CMLdNZJw] 弾を撃つと開始されるカウンタを作って そのカウンタが条件を満たしたとき音を鳴らせばいいんじゃないの? 1ループごとだと早すぎるんなら1おきにするとかもできる。
918 名前:名前は開発中のものです。 mailto:sage [2010/02/17(水) 08:34:48 ID:MHINozGj] >>912 自前で変形させるなら、2Dでも3D(ビルボード)でも大差なくない?
919 名前:名前は開発中のものです。 mailto:sage [2010/02/17(水) 13:16:50 ID:WoQHqNki] >一般的なゲームの場合ってこういう時どうしてるの? FFのデータ見たら、あらかじめ重なった時の効果音も 組み合わせごとにいっぱい入ってて、意外だった とかいう話を、どこかのスレで見たような、見なかったような。 手間と配布方式とかによって変わってきそう。
920 名前:名前は開発中のものです。 mailto:sage [2010/02/17(水) 19:53:18 ID:b05sIrPr] >>918 カメラ使って視点操作で楽できるからじゃね?
921 名前:名前は開発中のものです。 mailto:sage [2010/02/17(水) 21:17:38 ID:MHINozGj] ああ、なるほど。 カメラで視点操作ってことは、一括だよな。 メリットでもあるしデメリットでもあるという感じか。
922 名前:名前は開発中のものです。 mailto:sage [2010/02/17(水) 22:06:32 ID:BMwZx7QF] DrawModiBillboard3Dって描画位置が変にならない? 前にDrawBillboard3DをDrawModiBillboard3Dにそのまま置き換えてみたら同じ位置に描画されなかったから使うのやめちゃったんだけど
923 名前:名前は開発中のものです。 mailto:sage [2010/02/17(水) 22:17:31 ID:V7zWpnOB] >>915-917 多彩な案サンクス!やってみるよ俺
924 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 02:17:33 ID:artpUogb] アフィン変換ってのとDrawModiGraphでよくね? DrawModiGraphで左右反転は入れ替えで普通にできたよ。 アフィン変換の使いやすそうなクラス公開してたりするし、よくわからんまま使えそうだ。
925 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 16:24:17 ID:wXmsheL/] スクリーンではなくバッファに描画するにはどうすればいいのでしょうか? 例えば、画像描画や文字列描画を組み合わせて描画する物である「メニューウインドウ」をバッファに描画して、 それを透過やら拡大縮小してスクリーンに描画したいです。
926 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 16:47:24 ID:S5tbEoCa] >>925 hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1533 これでどう?
927 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 17:21:51 ID:wXmsheL/] >>926 まさに求めていたものはこれです。 ありがとうございました。
928 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 18:10:44 ID:UX2j7dSO] dxlibで書き込める画像って作れるのか・・・ レイヤーシステムどうやって作るのか悩んでたところだよ
929 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 18:19:30 ID:sI5JnKeC] BaseImageでもやろうと思えば出来るんじゃない? SoftImageにも転送付いてたような
930 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 18:37:31 ID:UX2j7dSO] SoftImageは変形とかブレンドを自前でやんないといけなくて面倒だった気がする
931 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 18:41:04 ID:yr41/JmB] >>897 の右側の魔法陣みたいな斜めにして回転、みたいな変換・表示するのにはどうすればいいかわからない・・・。 というか、アフィン変換した画像というか、DXライブラリでどうアフィン変換利用すれば良いかわからないんだけど、 誰か分かる人頼む・・・。
932 名前:873=897 mailto:sage [2010/02/18(木) 19:07:00 ID:7/BIGMNa] 結局アフィン変換がよくわからずに、三角関数で画像を変形させた俺。 おかしいな、大学は理系だったはずなんだけどなー。 行列なんて普通に使ってたはずなのに…… orz
933 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 19:28:11 ID:wsPY0Q5n] >>931 斜めにして回転って2Dでやるほうが難しいんじゃないかな。 DrawModiBillboard3Dってカメラ関数使って斜めから見れるん? >>897 の魔方陣のように傾けて見れるならなんとかなりそうだけど。
934 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 19:30:18 ID:sI5JnKeC] いわゆる「習う」数学は公式を持ってきた後に「解く」からいけない。そこが重要だと思ってしまう 解くのは別にコンピュータがやればいい。大切なのは解き方
935 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 19:40:26 ID:UX2j7dSO] ひょっとして3Dつかって2Dゲーム作る方が楽なのかな 最近はそういうゲームも結構あるよね
936 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 19:43:40 ID:cSNnQmS/] DXライブラリ使ってるならまさにその方式を使ってることになるけど
937 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 20:41:03 ID:S5tbEoCa] >>931 つまり、画像を2回回転させて描画したいっていうことだよね? DrawModiBillboard3D関数の引数x1, y1〜x4, y4に各頂点を2回回転させた座標を指定すればいけると思う。 ビルボードじゃなくてモデルとして扱った方が簡単なような気もするけど・・・
938 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 20:49:00 ID:7/BIGMNa] >>937 自分みたいに3Dサッパリな人間には、モデルデータを用意するだけでハードルが高いからなあ。 そうなると、従来の画像で扱えるビルボードの方が良さそう。 あとは動的に画像を生成するような場合(スクリーンショットとか)にも向いているかもしれない。 モデルデータを使わずにやるなら、素直に2Dでも良いわけだが。
939 名前:937 mailto:sage [2010/02/18(木) 20:57:50 ID:S5tbEoCa] すみません、>>937 に書いた方法はウソでしたorz.. 引数x1, y1〜x4, y4は2次元の変形しか指定できないし、DrawBillboard3D関数にはある引数Angleも無いので3次元の回転は無理そうです・・・ モデルにすればMV1SetMatrix関数で自由に変形できるんだけど・・・ >>931 の作ってるゲームは2Dなの? それなら斜めに傾いている画像を使って下さいw
940 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 21:04:10 ID:UX2j7dSO] 2Dだとやっぱり事前に描いて置いておくのが一番なのかな
941 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 21:07:33 ID:cSNnQmS/] >>897 みたいな効果を多用するならともかく 一部でしか使わないならそのために複雑な仕組み作りたくないでしょ
942 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 21:07:35 ID:7/BIGMNa] 2Dゲームなら、それこそ>937の方法で良いような気がするけどなー。
943 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 21:43:03 ID:6a8jaVSb] 俺もblederで即死したけど メタセコなら普通に使えた
944 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 22:34:17 ID:7/BIGMNa] 少ない脳みそ絞って書いてみた。 3Dとかアフィン変換とかサッパリなので2Dで。 gamdev4.hp.infoseek.co.jp/cgi-bin/up/No_0080zip.html
945 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 23:17:57 ID:yr41/JmB] >>944 マジ感謝・・・なんだが、サンプルコードなくて使い方を迷う
946 名前:名前は開発中のものです。 mailto:sage [2010/02/18(木) 23:44:29 ID:7/BIGMNa] すまん、付け忘れた extRate_xとextRate_yに1、hImgにグラフィックハンドル、残りの引数には0でも入れてくれれば とりあえず動くと思う。
947 名前:名前は開発中のものです。 mailto:sage [2010/02/19(金) 00:27:45 ID:u7/N0T5p] 俺がいつも使ってる拡張画像表示はこれ void DrawExRotaGraphF(float ex, float ey, float xScale, float yScale, float Angle, int GrHandle, int TransFlag, int TurnFlag) { int gx,gy; float ix,iy,ca=cos(Angle),sa=sin(Angle); GetGraphSize(GrHandle,&gx,&gy); gx*=xScale/2; gy*=yScale/2; VECTOR2D pos[4] = { { -gx, -gy}, { +gx, -gy}, { +gx, +gy}, { -gx, +gy} }; for (int i=0;i<4;i++) { ix = pos[i].x*ca - pos[i].y*sa; iy = pos[i].x*sa + pos[i].y*ca; pos[i].x=ix+ex; pos[i].y=iy+ey; } if (!TurnFlag) DrawModiGraph((int)pos[0].x, (int)pos[0].y, (int)pos[1].x, (int)pos[1].y, (int)pos[2].x, (int)pos[2].y, (int)pos[3].x, (int)pos[3].y, GrHandle, TransFlag); else DrawModiGraph((int)pos[1].x, (int)pos[1].y, (int)pos[0].x, (int)pos[0].y, (int)pos[3].x, (int)pos[3].y, (int)pos[2].x, (int)pos[2].y, GrHandle, TransFlag); } ていうかこのくらいDXライブラリも用意して欲しいところだが
948 名前:名前は開発中のものです。 mailto:sage [2010/02/19(金) 00:28:54 ID:u7/N0T5p] あ、VECTOR2Dはオリジナルだった /* 2D用行列 */ typedef struct VECTOR2D { float x,y; } VECTOR2D; まあ使わなくても二次元配列なりで出来るけどね
949 名前:944 mailto:sage [2010/02/19(金) 00:43:49 ID:zmDX76mU] 2Dの描画関数群を見てると、Zバッファ版なるものがあるんだけれど これって何か上手く使えないかな。 公式BBSだと、マスク処理に使うって話があったけれど… >>947 やってることは自分と同じ…かな? たぶん。 そっちの方がシンプルなコードだがw
950 名前:名前は開発中のものです。 mailto:sage [2010/02/19(金) 01:11:24 ID:u7/N0T5p] >>949 同じだね 縮小拡大前に回転するかしないかってのは入れる値を変えれば出来るし、縦の反転は180度回転させた後に左右反転すれば再現可能 自分はこれをよく使うので最低限のものだけを入れて、必要に応じてラッパー関数を使えばいい(まあこれ自体もmodiのラッパーだけど)
951 名前:名前は開発中のものです。 mailto:sage [2010/02/19(金) 01:32:26 ID:zmDX76mU] >>950 回転させてから拡大(縦横別倍率)ってどうやるの?
952 名前:名前は開発中のものです。 mailto:sage [2010/02/19(金) 01:36:21 ID:u7/N0T5p] 拡大率を予めsincosにぶち込めばいい 「回転を見越して拡大縮小する」
953 名前:名前は開発中のものです。 mailto:sage [2010/02/19(金) 02:17:39 ID:zmDX76mU] 先生、その見越し方が分かりません
954 名前:名前は開発中のものです。 mailto:sage [2010/02/19(金) 10:00:47 ID:vzeC0aMv] つかそういういくつもの変換を同時に適用するために 行列があるんだと思うが・・・行列を使わないなんて無駄に複雑になるだけだよ。
955 名前:名前は開発中のものです。 mailto:sage [2010/02/19(金) 12:10:45 ID:zmDX76mU] >>954 計算部分を自前でやってるだけで、やってることそのものは変わらない気がする
956 名前:名前は開発中のものです。 mailto:sage [2010/02/19(金) 13:25:42 ID:zmDX76mU] チラ裏で申し訳ない。 画像処理の入門書を読んでるんだが (1)自前で行列(回転用行列、拡大用行列など)を用意 (2)それらを掛け合わせて、最終的な変形用の行列を作る (3)変形用行列を関数に渡す …みたいな感じだった。 行列をクラスにして、演算子のオーバーロードで簡単に加算や乗算が出来るようにするとか そういう工夫がされているようだ。 あと、公式BBSでこんなの見つけた hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=1033
957 名前:名前は開発中のものです。 mailto:sage [2010/02/19(金) 13:34:25 ID:G1VFwFwU] 3D用の関数に行列使えるのがあるよ
958 名前:名前は開発中のものです。 mailto:sage [2010/02/19(金) 13:37:37 ID:gvWv62bY] 上で話題にでてたアフィン変換だって2次元に特化した行列じゃんか クラス公開されててちょっといじれば簡単に使えるのとかあったぞ 行列うんぬんよりクラスがわからんとか?
959 名前:名前は開発中のものです。 mailto:sage [2010/02/19(金) 14:02:46 ID:az/+pLVO] 頂点の集合に行列を演算してできた形に描画するのはいいんだが 長方形の画像を自由変形して描画するアルゴリズムはいったいどうやって実装されてるんだろう ピクセル単位で全部写像してたらすごく遅くなりそうだが他に方法も浮かばない
960 名前:名前は開発中のものです。 mailto:sage [2010/02/19(金) 14:11:57 ID:uvqEn+/2] 専用のハードウェアにやらせてるんだから爆速 アルゴリズムとかいう次元じゃない
961 名前:名前は開発中のものです。 mailto:sage [2010/02/19(金) 14:17:06 ID:zmDX76mU] >>957 3Dの方はあんまり見てなかったぜ。 これから勉強しないとな…。 >>958 クラスが分からないとかは流石に発想が飛躍しすぎじゃね? >>959 テクニカルな最適化や、誤魔化しとかはやってるかもしれないけど、 基本的なやり方は同じで、あとはハードウェア様による力技なんじゃない?
962 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 03:58:01 ID:qZkPMJuP] LoadGraphを使う関数を繰り返し呼び出してると 例外が出て強制終了することがある 具体的には、 main(){ : : shop->open(); } とメインの関数からクラスのメンバ関数を呼んだとき、 openを十回くらい呼び出すと、openを呼んで最初に出てくるLoadGraphで強制終了する open内で何度もLoadGraphを呼び出しているが、最初のLoadGraph以外で強制終了したことはない 他のまったく別のクラスのメンバ関数でも、二回目に呼び出したときに 最初のLoadGraphで強制終了するので、 openでなくLoadGraphに問題があると思うんだけど そもそもどういう状況でLoadGraphが例外出すか分かりませんか? メモリ使用量を見る限りメモリリークなどはない ちなみに使ってるのはBcc版
963 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 04:03:15 ID:qXzrwIFO] 具体的の意味わかってんのかカス
964 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 07:32:26 ID:Jsc/BFjh] 例外ってどんな例外? メッセージとか無い? 読み込んでる画像はどんな画像? ファイルサイズとかフォーマットとか。 メモリリークかどうかもどんな環境でどれくらいのサイズの画像を読み込んでるのか教えてくれないとこっちでは判断できない もっと詳しく
965 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 09:49:28 ID:RLyfmrNj] 全く具体的じゃないのに具体的には、とはこれいかに。
966 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 09:53:22 ID:KFJm0GRx] 何が例外出すか分かりませんか?だよ どういう状況で例外出すってエラーメッセージに全部書いてあるだろうが
967 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 10:11:36 ID:a8pqqcvy] エスパーしてみるに、 「最初のLoadGraph」に指定してるファイルが、 (1)形式的に未対応のものを指定している (2)指定ファイルの内部フォーマットがおかしい のどれかなんじゃないのかな? 「最初のLoadGraph」以外は成功してるって話だし。
968 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 15:35:20 ID:etAIwZMZ] DX_ライブラリ使っていたら いつもなら「ch.」(chは構造体)で設定したパロメータが表示されたのに 今日使ってたら表示されなくなった。これってどこの設定変えれば元に戻るの?
969 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 16:19:36 ID:AEul0BlH] インテリセンスはよくぶっ壊れる
970 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 16:56:28 ID:OQn9U246] たまにJavaやるとEclipseの入力支援の賢さに感動する。
971 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 17:28:51 ID:ROg57qmn] いや普通にVS2008の方が賢いだろ C++はダメダメだが
972 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 20:46:20 ID:LFTpl00q] >IntelliSense 最近のは分からないけど、ちょっと変なことやると対応しなくなるしなあ。
973 名前:962 mailto:sage [2010/02/24(水) 20:46:27 ID:qZkPMJuP] Bccのデバッガは見方がよく分からなかったのでVC++で原因を調べてみた 移植にかなり手間取ったけど、原因はnew,deleteでの HEAP CORRUPTION DELETEDだった ごめんよ、DXライブラリ
974 名前:名前は開発中のものです。 [2010/02/25(木) 00:10:24 ID:wGlYMdYr] VS2008EEC#でDXLib使ってるけど、ゲーム開発はなんでC++が多いいのか・・・? C#使いやすいと思うんだが・・・
975 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 00:27:31 ID:JfnFuENI] C#とC++と、どっちも知らない人間(俺みたいな)が始めようとしたら そりゃデフォルトで解説されてるC++使うよ。
976 名前:名前は開発中のものです。 [2010/02/25(木) 00:40:37 ID:rlWr6nuc] >>974 >>975 素人はメモリ管理で苦労させられる C#はライブラリの導入・セッティングまでも驚くほど簡単だ
977 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 00:43:57 ID:o6l4NITL] むしろメモリ管理を隠蔽化されると不安になる
978 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 00:57:11 ID:xk33jNpg] C#は動作速度どうなんだ? あと.NETないと動かないんだっけ それはどうでもいいが
979 名前:名前は開発中のものです。 [2010/02/25(木) 01:15:00 ID:rlWr6nuc] >>978 今のPCスペック考えると動作速度気にするのは意味無いかな 同人レベルならFFやメタルギアのような実写モーションやるわけではないし HSPよりは圧倒的に速いよ、ニコ動見てもHSP+Easy3Dで3Dアクション作ってる奴がたくさん居る C#もJavaもゲーム製作には十分過ぎる
980 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 01:40:51 ID:DXATdGPP] >>974 >>975 の理由もあるが、 単純に、C言語覚えたから次はorいよいよC++に〜とかって感じじゃない? JAVAとかの経験がなければガベコレとかも知らないだろうし。 メモリ管理とかはまぁゲ製作以外で活かせる人なら勉強にもなるから良いやー、とか。
981 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 02:07:47 ID:hEXp+gEa] C#は解析が簡単なんじゃないの? 改造し放題だと市販のゲームには向かないと思う
982 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 02:29:34 ID:8SXpDUIf] >>974 公式サンプルがC言語で書かれているし、どれか一つ言語を覚えるとしたら自然にC言語になるんじゃないかな。 DXライブラリ自体もC言語で書かれてるしね。 >>981 難読化ツールというものがある。 それにC言語でも解析は可能なので市販する場合は独自に暗号化する必要がある。 特に画像、サウンド、シナリオテキストは見えてしまうとマズいので。
983 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 02:39:17 ID:hEXp+gEa] そりゃデータは暗号化するだろうけど、それは言語とは関係ない話では?
984 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 05:08:59 ID:SPGhDv+7] >>982 ぜってー使ったこと無いだろ>難(ry あのスカスカ具合を見てから言えw データも言語関係ないし
985 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 07:36:27 ID:fv/CwMlZ] C++はWiondows標準のexeファイルを作成でき、そのまま実行できる C#やJAVAはWindows非標準の中間ファイルしか作れず実行環境のインストールをユーザーに説明し、納得させ、実行させなければいけない 余計なソフトのインストールを嫌うユーザーは多い 速度よりも何よりもこの差があるからC#やJAVAは選ばれない
986 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 07:53:11 ID:xyh/cBvs] インストーラーで強制インストールとかまんこい
987 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 08:25:15 ID:JegjOA7A] デフォルトでインストール済()笑
988 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 08:29:09 ID:8SXpDUIf] >>983 どの言語にしても暗号化は必要と言いたかったのだけど・・・ >>984 >あのスカスカ具合を見てから言えw どの難読化ツールを使ったか知らないけど、それでスカスカだと感じたんならしょうがないね・・・ そこまでセキュリティが必要なものを作っている人もいないと思うけどなあ。
989 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 09:03:26 ID:PKMfSc2o] >>981 現状の市販ゲームが改造し放題なのばかりなのに何言ってるんだ。
990 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 09:57:05 ID:8oJeVww7] >>984 無料のやつしか使ったこと無いだろ
991 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 10:40:15 ID:olOvytZe] DXライブラリから話がずれてるぞ。