- 1 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 23:06:39 ID:Ns2HwhRB]
- Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、 「DXライブラリ」に関するスレッドです。 DXライブラリの詳細ついては homepage2.nifty.com/natupaji/DxLib/ を参照して頂きたい。 DXライブラリに関するテクニックなどの情報交換などを行う事で、 多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
- 873 名前:866 mailto:sage [2008/10/12(日) 20:19:06 ID:vIpSBElN]
- ごめん
URLミスった www1.axfc.net/uploader/Img/l/2913099659/Img_22620.png
- 874 名前:名前は開発中のものです。 mailto:sage [2008/10/12(日) 21:11:31 ID:U28t+20v]
- 赤い部分を切り抜いてみたところ480*480だった。
えーとつまりどういうことだ。 (0,0,480,480)で描画したら0〜479の480ピクセル分が塗られるはず。 つまり (0,0,480+1,480+1)で描画したら0〜480の481ピクセル分が塗られるはず。 しかしSetGraphでは(480,480)となってるから、 画面上は0〜479の480ピクセル分しかないはず。 つまり、赤く塗られている部分は正しいという事になる。 隙間が出来てるのはSetGraphで(480,480)にしたはずなのに なぜか1ピクセル分余分にできてる。 ……って事かな??
- 875 名前:名前は開発中のものです。 [2008/10/12(日) 21:41:00 ID:gLc2eLS+]
- >>870
つまりこれでもいいんだよね? for(i=0;i<500;i++){ for(j=0;j<500;j++){ 座標(i,j)色を変える。 } }
- 876 名前:名前は開発中のものです。 mailto:sage [2008/10/12(日) 23:04:47 ID:vIpSBElN]
- >>874
そうみたいですね しかもその余分にできたスペースには描画ができないんです 皆さんはこうならないんですか?
- 877 名前:名前は開発中のものです。 mailto:sage [2008/10/13(月) 00:01:00 ID:6zGpRl/9]
- いや、てかそもそもそれ隙間じゃなくて枠じゃないか?
- 878 名前:名前は開発中のものです。 mailto:sage [2008/10/13(月) 08:22:34 ID:N+ktUREE]
- >872
>ソフトウェア描画 SetUse3DFlag がture/falseで違いはあるか?ってこと
- 879 名前:名前は開発中のものです。 mailto:sage [2008/10/13(月) 08:23:20 ID:N+ktUREE]
- tureじゃねぇ、true
- 880 名前:名前は開発中のものです。 mailto:sage [2008/10/13(月) 15:33:09 ID:+BgxII2m]
- >>877
今API直打ちで画面全体塗りつぶしをしてみたんだけど隙間はできなかった >>878 違いはなかった クライアントエリアの問題かと思ってSetDrawAreaも試してみたけど効果なし ダブルバッファリングも関係なかった みんなもこうなってるのか、それとも自分だけなのかが知りたい
- 881 名前:877 mailto:sage [2008/10/13(月) 15:43:26 ID:NvE7YaYt]
- >>880
872で見せてもらった画像を、拡大してよくみると、 上側と左側には薄い灰色と濃い灰色の2ピクセル分の枠がある。 が、右側と下側にはその色はなく、 代わりにうっすーい灰色と白色の2ピクセル分がある。 その部分を隙間って言ってるんだよね? 枠の色が薄すぎるだけの話じゃないのかな?
- 882 名前:名前は開発中のものです。 mailto:sage [2008/10/13(月) 16:32:41 ID:+BgxII2m]
- >>881
本当だ 拡大して比較してみるとDXライブラリのウィンドウは枠ありのウィンドウだった なるほど、これ枠だったのか・・・ ウインドウスタイルって変更できないのかな 比較の画像一応貼っとく www1.axfc.net/uploader/Img/l/7930573026/Img_22689.png
- 883 名前:名前は開発中のものです。 mailto:sage [2008/10/13(月) 16:37:46 ID:1LlTRytx]
- 404じゃねえかアホ
- 884 名前:名前は開発中のものです。 mailto:sage [2008/10/13(月) 16:42:36 ID:+BgxII2m]
- 自分は見えるんだけどな;
専ブラなら普通のブラウザで直接飛んでみてくれないか
- 885 名前:877 mailto:sage [2008/10/13(月) 16:49:49 ID:NvE7YaYt]
- 873は俺は見えないが872なら見えた。
同様に882は俺にも見えないが www1.axfc.net/uploader/Img/so/Img_22689.png これなら俺も見えるw
- 886 名前:名前は開発中のものです。 mailto:sage [2008/10/13(月) 17:19:34 ID:1LlTRytx]
- クソみてえなアップローダ使うなよ
- 887 名前:名前は開発中のものです。 mailto:sage [2008/10/13(月) 20:36:22 ID:8/f9V+rI]
- っていうか、この画像持って公式で聞いて来いw
- 888 名前:名前は開発中のものです。 mailto:sage [2008/10/13(月) 21:25:16 ID:+BgxII2m]
- そうですね
公式で聞いてみます ありがとうございました
- 889 名前:名前は開発中のものです。 mailto:sage [2008/10/13(月) 21:57:36 ID:Kshw6a23]
- 確かにそうなるな。
クラシックウィンドウ使ってるから気にならなかった。
- 890 名前:866 mailto:sage [2008/10/15(水) 17:55:03 ID:Yimr3vsO]
- 解決したので報告します
SetWindowLong(GetMainWindowHandle(), GWL_EXSTYLE, WS_EX_WINDOWEDGE); SetWindowPos(GetMainWindowHandle(), NULL, NULL, NULL, NULL, NULL, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
- 891 名前:名前は開発中のものです。 mailto:sage [2008/10/15(水) 23:59:28 ID:Emw9vuwB]
- 質問。
プログラムの素人レベルがシューティングを作るのにどれぐらいかかる? ・自機がジョイパッドで動く ・ショットが出る ・敵が出てきて動く(sin波ぐらいは実装したい) ・敵がショットを出す(2wayとか3wayとか全方位とか自機狙いのだけ、凝ったのなんてまだ技術的にムリだし) ・ザコが一定でた後にボス戦 ・自分にあたったら残機が減って、0になったら最初から ・敵に当たったらスコアが増えて、敵が消える ・ボスを倒したらゲームクリア ・1面のみ 本気だせば1ヶ月ぐらいで作れるかな? リソースはドットだけなら自分で書くつもり、音楽はムリ。
- 892 名前:名前は開発中のものです。 mailto:sage [2008/10/16(木) 00:35:15 ID:a+E7tl+p]
- 素人レベルってのがどれくらいかによる。
- 893 名前:名前は開発中のものです。 mailto:sage [2008/10/16(木) 00:43:12 ID:wEpmfpuy]
- プログラム全く分かりません、でなければいけると思う。
- 894 名前:名前は開発中のものです。 mailto:sage [2008/10/16(木) 00:44:07 ID:L3LJ4NiJ]
- >>892
上手く言えないけど今出来る事は 関数を作る(void なんとか(){ の奴) cppを分割してexternで呼び出してmainで実行 三角関数は一応出来る 何も見ないで自力で出来るのは、画像を→↓←↑と四角く永遠と移動させるぐらい 今やっててジョイパッドの移動ぐらいなら楽に実装できた。 でも当たり判定とか弾を出すコードのイメージがあまりつかめないって感じ。
- 895 名前:名前は開発中のものです。 mailto:sage [2008/10/16(木) 00:53:06 ID:IdgqtOe/]
- C++でexternて使ったこと無いかも
- 896 名前:名前は開発中のものです。 mailto:sage [2008/10/16(木) 00:55:21 ID:wWxMuhcD]
- >>894
ちょっと待ったー。 外部ファイルにある関数をexternで呼び出す必要はないぞ。 ヘッダファイルにプロトタイプ宣言する方法を勉強した方がいい。(ロベールとかで。) そっちの方がスマートに書けるし、それが定番。
- 897 名前:名前は開発中のものです。 mailto:sage [2008/10/16(木) 01:16:18 ID:L3LJ4NiJ]
- >>896
ん、ごめんまだ素人レベルだから言ってる事の意味が微妙に分からないんだけど つまり 何々.hのファイルにプロトタイプ宣言って言うのをすると、extern void 何々で呼び出す必要がなくなるって事?
- 898 名前:名前は開発中のものです。 mailto:sage [2008/10/16(木) 01:27:19 ID:wWxMuhcD]
- >>897
んー、実はexternの効果忘れた。>>895が言うように、使う場面が無いんだよね。 ○○.hにプロトタイプ宣言しておくと、その#include "○○.h"とするだけで、プロトタイプ宣言された関数が使えるようになる。 通常、一つにファイルに対して、一つのヘッダを作るよ。 例: hogehoge.cpp → hogehoge.h piyopiyo.cpp → piyopiyo.h 人によってはヘッダの拡張子がhppになったりする。(むしろ、C++のヘッダならこっちが主流かもしれないけれど) 確かにプロトタイプ宣言さえあれば、extern使う必要は無くなる。
- 899 名前:名前は開発中のものです。 mailto:sage [2008/10/16(木) 01:39:21 ID:L3LJ4NiJ]
- >>898
そうなのか、初めて知った。 ちなみにexternの場合だと player.cpp内の例えば void move(){ 何々 } って関数をextern.h内で「extern void move();」って宣言するだけで別のcpp内(main.cppでもnaninani.cppでも)使えるようになる。 externも勿論使うファイル内で#include "extern.h"とする必要があるけどね。 でもプロトタイプのが主流みたいだし、そっちを使ったほうがいいのかな? 因みに俺のプログラムの流れはこういう感じにしようと思ってる↓ main.cppって言うコードを作る、最低限の事を書いたら一旦放置。 ↓ キャラ移動とか敵の移動とか音楽を読み込むとかのコードを別ファイルに書く ↓ externで一つのヘッダーファイルにすべてのコードを読み込ませる ↓ main.cpp内で読み込んだヘッダーファイル内の別々に書いたコードを「○○();」メインループに読み込ませる。 って感じでつくろうかなーって頭の中で思ってたんだけど、間違ってるのかな? プログラム難しいけど楽しすぎwwwww
|

|