DXライブラリ 総合スレッド その4at GAMEDEV
DXライブラリ 総合スレッド その4 - 暇つぶし2ch4:名前は開発中のものです。
09/08/10 01:28:46 x4cP5rNi
クラスで挫折した

5:名前は開発中のものです。
09/08/10 01:37:49 bFMOlul4
もうクラスなしじゃ生きていけない

6:名前は開発中のものです。
09/08/10 01:51:32 QAwN9V2J
ライブラリと関係ない話をすんなとは言わねーが、C言語そのものを使い慣れてない
レベルの質問は勘弁してくれ
ここはC言語初心者質問スレじゃねーから

7:名前は開発中のものです。
09/08/10 07:42:59 61l6TBny
>>4
もっと頑張れよ
俺も1回挫折して再度勉強し直したけど使える道具が増えていろいろ記述が楽になったから
ちゃんと苦労なりの見返りはあると思うよ

8:名前は開発中のものです。
09/08/10 08:38:41 ejPisMfv
4じゃないけど、俺もクラスはよくわからん。
というかなぜそういう事をする必要があるのか、
ゲーム製作においてどういうメリットがあるのか、
どういうときに使うと便利なのか、
が解らないから、なかなか頭に入らない。

9:名前は開発中のものです。
09/08/10 08:59:13 QAwN9V2J
・リソース解放処理をデストラクタに書くと楽
・何個も実体を作るような構造体を扱う場合、構造体へのポインタを関数に渡すよりも、
勝手に*thisを作って内部的に同じことをしてくれるクラスの方が楽

10:名前は開発中のものです。
09/08/10 09:05:04 bFMOlul4
>>8
俺もポインタとか必要になるまでよくわからなかったし、
必要になれば覚えるもんだよ

「あ! 今やりたいことコレ使えばできるじゃん!!」
って気づいた時の喜びといったらもうね

11:名前は開発中のものです。
09/08/10 10:16:45 EzwBEj6R
フンドルワラタ

12:名前は開発中のものです。
09/08/10 10:52:15 QAwN9V2J
フンドレの人はマジでC言語初心者スレとか探した方がいいな

13:名前は開発中のものです。
09/08/10 10:58:48 HlYTjnic
自動リソース管理
ポリモーフィズム

これだけでも覚える価値あり
ポリモーフィズムはすごいゲームと相性いいしね


14:名前は開発中のものです。
09/08/10 12:31:05 xD0qaraW
>>10
分かる分かるw 俺もまさにそうだ。
きっかけはリプレイ機能付けたいな、だったかしら

15:名前は開発中のものです。
09/08/10 15:24:33 Ug4ZM9mI
俺もクラスよく分からんのだが
STGの弾作るときに便利だと聞いた
今から弾処理だから勉強してみる予定

16:名前は開発中のものです。
09/08/10 16:52:41 QAwN9V2J
structとclassは全く同じ。classはデフォがprivateになっただけの構造体。
メンバ関数は、隠れ引数として構造体へのポインタ*thisがこっそり付いただけ。つまり、
以下の二つは大体同じ意味のコード。

// Cっぽい版
struct vector2d {
float x, y;
};
inline void rotate_vector2d(vector2d *this, float theta) {
vector2d old = *this;
this->x = old.x * cosf(theta) - old.y * sinf(theta);
this->y = old.x * sinf(theta) + old.y * cosf(theta);
}

// C++版
struct vector2d {
float x, y;
void rotate(float theta) { // vector2d *this は隠れ引数として勝手に入る
vector2d old = *this;
x = old.x * cos(theta) - old.y * sin(theta); // メンバ変数アクセスは勝手にthis->が入る
y = old.x * sin(theta) + old.y * cos(theta);
}
};

仮想関数は、派生クラスの仮想関数へのポインタ一覧vtblが隠れグローバル定数として
用意されてて、派生クラスの実体にはvtblへのポインタであるvptrが隠れメンバ定数と
してくっついてる。で、仮想関数を呼ぶ時はvptrを通して参照する。
thisと違って、vtblやvptrには普通は触れない。触る必要も無いし。

クラスの仕組みはこんなもん。あとは使い方次第。
コンストラクタには変な仕様が色々くっついてるから覚えた方がいいけどな。

17:名前は開発中のものです。
09/08/10 16:55:28 ++6V/igm
うまく使えば
new Bullet(
 this, // 親は自分で
 RAD(270), //270度方向に
 10, //1フレーム10pixelで動く
 GROUP_FRIEND //味方の弾
); //を作るよ!
ってできて楽しいだけ。

18:名前は開発中のものです。
09/08/10 17:08:08 jE6nNtzy
こういうの見せられると、
「俺って実はプログラム全然できてないんじゃないか」
と思うなぁ。

一応ゲームはできてるんだけどねw

19:名前は開発中のものです。
09/08/10 17:16:17 QAwN9V2J
完成品が一つも出てこないよりはいいんじゃね?

20:名前は開発中のものです。
09/08/10 17:28:46 ++6V/igm
DxArchiveのソース見てたら単にファイル格納&暗号化じゃなくて圧縮&暗号化だったんだな
各APIでも読み込めるしかなり使いやすいな

21:名前は開発中のものです。
09/08/10 18:10:02 91ixwnBP
DxArchiveのエンコードとデコードをプログラムからやる方法教えてください

22:名前は開発中のものです。
09/08/10 18:22:48 g7oYbweh
つ URLリンク(homepage2.nifty.com)


23:名前は開発中のものです。
09/08/11 00:22:51 y+GUJ2eW
クラスが便利なことを実感するのは2個目のゲームを作るときだと思う俺ガイル
自分でつくったものをブラックボックス的に使いまわせるってすごい便利

24:名前は開発中のものです。
09/08/11 00:36:49 ubRnnBVT
必要性を感じないなら無理にクラスを使う必要はない。
重要なのはクラスを使うことではなく分かりやすいプログラムを書くこと。
分かりやすいプログラムを追及していくとおのずとオブジェクト指向/クラスへと向かっていく。



25:名前は開発中のものです。
09/08/11 01:14:30 F+5v/k7H
ちゃんと最後に かもしれない とつけてくださいね

26:名前は開発中のものです。
09/08/11 02:11:06 L7W3nnsg
なんだそりゃ
どうしても抽象化できない病気とかならともかく

27:名前は開発中のものです。
09/08/11 02:47:06 E0sSKTbh
クラス勉強したいなー
ってことで俺は今、クラス化している。

それくらいの動機でもいいよね?

28:名前は開発中のものです。
09/08/11 02:56:03 hi68lz2+
いいんじゃないかな<動機
便利な使い方が分かると、楽しくなってくる、、、と思う

29:名前は開発中のものです。
09/08/11 03:53:37 Ev9Wt5wN
>>22
たとえばオリジナルのセーブデータをDxArchiveで暗号化して保存することってできますか?

30:名前は開発中のものです。
09/08/11 04:21:17 E0sSKTbh
>>29
ソースが公開されているように見えるが

31:名前は開発中のものです。
09/08/11 09:51:42 kbSEr/35
ファイル分割して関数書いて、で綺麗に片付くならそれでいい。
クラスに包む方が綺麗に片付くところは、クラスを使えばもっといい。
使い分けが適切ならさらにいい。

32:名前は開発中のものです。
09/08/11 12:46:59 88dfSPXH
同じようなゲーム作りたくないから
クラスが役に立ったことはほとんど無いな

描画系関数はかなり再利用するから
ファイル分割して綺麗に関数をまとめた分にはかなり役に立つ

33:名前は開発中のものです。
09/08/11 13:15:45 jm9PqIPM
たとえばどんな関数をつかいまわすの?

34:名前は開発中のものです。
09/08/11 13:25:12 bYgbIZyE
モザイクかけたりボカシかけたりシャープにしたり
ノイズ入れたり回転させたりセピアにしたり

35:名前は開発中のものです。
09/08/11 13:36:49 jm9PqIPM
よくわからないけどそういうのって関数一つにできるもんなの?
Mozaiku(x1,y1,x2,y2)みたいに?


36:名前は開発中のものです。
09/08/11 13:38:13 88dfSPXH
うん

37:名前は開発中のものです。
09/08/11 13:48:11 jm9PqIPM
いったいどうやって?画面情報を取得して、CPUのほうで計算して上から貼付けたりするの?

38:名前は開発中のものです。
09/08/11 13:49:48 88dfSPXH
うん

39:名前は開発中のものです。
09/08/12 13:04:35 /zSclh+b
シーンをクラス化する利点がよくわからなくて
switch文で頑張る俺

40:名前は開発中のものです。
09/08/12 14:01:46 3OGNII1m
if-eilse if-elseでもswitchでも関数ポインタテーブルでも仮想関数でも普通に書ける上で
switchが総合的に見て一番いい状況だからswitchで頑張る、ならそれでいい

41:名前は開発中のものです。
09/08/13 01:13:11 u+NBJI2f
組み方によっては、シーンを追加するたびにシーン管理のコードを変更しなきゃならないからなあ。
せっかくライブラリっぽくしたのに、いちいち弄らされるのは面倒だ。

そこがクリア出来るなら何でもいい。

42:名前は開発中のものです。
09/08/13 02:32:38 tx0/U4pP
キャラクタを白く点滅フラッシュさせるためには
それ用にマスク画像を用意しないとできないかな?

43:名前は開発中のものです。
09/08/13 02:49:29 wLlGHcGf
少なくとも俺は、同じ事をしようとした時、それしか解決策を思いつかなかった。

44:名前は開発中のものです。
09/08/13 03:37:12 uVGvNX64
SetDrawBrightで輝度値設定してやるとか

45:名前は開発中のものです。
09/08/13 03:54:30 wLlGHcGf
いや、SetDrawBrightだと最高100%までしか輝度あげられなくて、
その100%ってのは、画像そのまんま表示って事なのよ。

つまりSetDrawBrightは暗くはできても明るくはできない。

46:名前は開発中のものです。
09/08/13 04:13:42 uVGvNX64
SetDrawBright(0,0,0);//暗く
SetDrawBlendMode(DX_BLENDMODE_INVSRC);//反転
とするのはどうかな

47:名前は開発中のものです。
09/08/13 07:09:05 fyRM2WT2
それだけZバッファを適用して、きつくした白いフォグを適用させるって冗談みたいな方法もあるぞw

48:名前は開発中のものです。
09/08/13 09:08:42 hlVZHvkF
武器とか魔法のデータってどうやって管理してる?
やっぱり大本のクラスを作って継承させる感じ?
DBとかでもりもり書いたほうが楽そうではあるんだけれど

49:名前は開発中のものです。
09/08/13 10:27:48 ymWx9+cu
>> 42
パレット操作

50:名前は開発中のものです。
09/08/13 11:29:30 FIgxQyht
そういやパレット操作の命令が追加されたんだっけ。

それを使って白い画像を作って、グラフィックハンドルまで用意しておけばできるはずだな……。

51:名前は開発中のものです。
09/08/13 13:06:09 8SGCfcLw
>>48
struct(構造体)を持つSTLのリストを作って、そこで管理
新しく何かを手に入れたならば、リストに新しい構造体を埋める
代入する値は手打ち、つまり長々と代入文を書く。DB化してもよいが労力は大差ない
これは仲間キャラクターや戦闘の管理に向いているだろう

もう1つは数値をひとつ代入するリストを作って
そこに例えば武器ナンバー001番って値を入れて
必要な時に武器の威力や効果をまとめた関数を読み出す
この方法は数値が絶対に変わらない武器や道具の管理に向いている

最後に、bool型のスイッチを作って、Trueなら入手した、と考える方法
この方法は魔法やイベントフラグなど、数値も数も考えない物の管理に向いている


52:名前は開発中のものです。
09/08/13 22:01:59 hlVZHvkF
>>51
ありがとう
2つ目のパターンがいいのかな
どうも膨大になっちゃってたからいろいろ試してみる
ありがとう

53:名前は開発中のものです。
09/08/13 22:09:12 LkhPG9Xp
構造体の代入じゃ駄目なのかそれ

54:名前は開発中のものです。
09/08/13 23:45:36 u+NBJI2f
テンプレで、名前や数字を変えるだけで何とかなるものと、それだけでは表現できないものと、両方がある。

武器や魔法は前者であることが多いと思う。
ダメージなどが違うだけでアルゴリズムは変わらない。回復/支援魔法なども入れても数パターンで済む。
TRPG的な魔法とかはコンピュータゲームじゃ作りにくいだろうし。

逆に、イベントなどは後者で作られる。
クラスの継承なり、関数ポインタなり、外部スクリプトなりで、イベントごとにまるっと別の処理になるだろう。
ただしその場合でも、共通データを格納する部分は、武器や魔法と同じようなテンプレ処理を利用することになるかも。



55: ◆GRGSIBERIA
09/08/14 00:12:28 FT3Wa2QE
>>51
戦闘で魔法を使うんならその方法でいいだろうけど、
呼び出すときに関数ポインタ使わなきゃならんから面倒くさくね?
データ的には安上がりでいいんだろうけど、可読性考えると怖いなあ……。

56: ◆GRGSIBERIA
09/08/14 00:19:13 FT3Wa2QE
ごめんなさい。
二番目の話です。

57:名前は開発中のものです。
09/08/14 00:50:19 E9/t+ChI
基本基本クラスで例外は派生クラスでいいんじゃね

58:名前は開発中のものです。
09/08/14 01:01:23 Bq2DtYMd
まあ別に仕事でプログラムする以外だったら好きなようにすればいいんじゃね

59:名前は開発中のものです。
09/08/14 15:49:45 X3RFlmNR
dxライブラリがSetDrawScreenで使っているバックバッファに
dxライブラリを介さずに絵を書き加えてやる方法はないもんかな・・・

それができるだけで結構3D表示させられそうなんだが

60:名前は開発中のものです。
09/08/14 16:36:31 zyAixWsB
>>59
俺の場合3Dは行列系関数とDrawPolygon3Dで間に合ってるけど、
それって裏画面にDirectXで描画するってこと?

61:名前は開発中のものです。
09/08/14 16:39:24 yqfw1t8Z
うん

62:名前は開発中のものです。
09/08/14 16:42:41 X3RFlmNR
>>60
そそ。それでxファイルにして読み込んだ
ちょっと複雑な形を描きたいのさ

ちなみに直接表に描かせたら
最前面にチラつきながら描かれた。当たり前だが

63:名前は開発中のものです。
09/08/14 16:44:04 gSsKeH9y
DX3D持ってたらそれ使うのもいいかも
使ったこと無いから分からんが

64:名前は開発中のものです。
09/08/14 16:45:05 nG17WJCb
3Dを扱うのだったら、 DarkGDKがお勧め
使い勝手は、DXライブラリとほとんど同じ。

DarkGDK
URLリンク(wiki.game-develop.com)

DarkGDKの3Dデモ
URLリンク(gamdev3.hp.infoseek.co.jp)


65:名前は開発中のものです。
09/08/14 16:57:46 zyAixWsB
DXライブラリの内部構造についてだったら公式で質問するのがいいかも

関係ないけど俺は自前でmqoファイルを読み込んでDrawPolygon3Dで表示させてる
アニメーションさせないならこっちのほうが簡単な可能性も。

66:名前は開発中のものです。
09/08/14 17:20:43 X3RFlmNR
>>63-65
ありがと
せっかく用意されてるんだからDrawPolygon3Dでやるのが一番かねえ
半日ぶんの作業ムダ\(^o^)/になるけどさ・・・

67:名前は開発中のものです。
09/08/14 18:06:22 3WJxATTy
そこまでやるならDirectXで全部やる手も有力じゃね

68:名前は開発中のものです。
09/08/14 21:00:47 29Ur8y7j
DXライブラリの3Dが弱いってのは周知といえば周知だからなあ
なんともいえない感じ

自分もひとつ聞いていいかな
DrawFormatStringToHandleで文字出すときに文章列を垂直に描画する方法ってないものか
縦書きではなくあくまで横書きの文章を90度倒した感じでだしたいのだけれどどうだろう?
いまは画像ファイルに書き起こしたものをスタブで表示してるんだがそれにも限界があるなあと思って聞いてみた

69:名前は開発中のものです。
09/08/14 23:59:27 zyAixWsB
>>69
つDrawFormatVStringToHandle
多分コレ

70:名前は開発中のものです。
09/08/15 00:06:33 6Y2Lsqny
ありがてえありがてえ
ヘッダ読んだらほんとにあったよ
やっぱ一度読むべきかなあ
ともあれサンクス

71:名前は開発中のものです。
09/08/15 00:06:58 /+RAh+Ze
感動した

72:名前は開発中のものです。
09/08/15 04:30:18 0tJ1Sg/h
ヘッダ読むとドキュメント化されてないすげえ関数いっぱい紛れてるから一度は読むべきだよな

73:名前は開発中のものです。
09/08/15 05:38:43 0FgKCDOQ
でも公開されてないって事は動作保証もされてないんでしょ?
ちょっと使うには不安だなぁ。

自分だけで楽しむモノを作るのならともかく。

74:名前は開発中のものです。
09/08/15 09:50:43 0tJ1Sg/h
フリーのライブラリで動作保証www

75:名前は開発中のものです。
09/08/15 10:23:55 ZOL661pL
フリーのライブラリに過度なサポートを求めるのもアレだと思うけど、
管理人はちゃんとリファレンスに載ってない関数も仕様のうちに含めてやってくれてるよ

自分で動作確認したり、ヘッダ読んだだけで用途が分かる人なら使っても問題無し。

76:名前は開発中のものです。
09/08/15 12:54:50 KTR4wq9i
DrawFormatStringをオーバーロードしてキャストによる警告を防ぎたいんだけど
どうやってオーバーロードすればいいんでしょうか
, ... ) ; ←最後のコレのせいでうまくいかない

77:66
09/08/15 22:42:39 eXbOcFmf
ところでDXlibとは別口で用意させたバックバッファを適当なサーフェイスに写し取って、
CreateGraphFromMemでハンドル取らせてDrawGraph、というのもやってみたが
やっぱりうまくいかなかった
というかエラー直していく気力が尽きた

78:名前は開発中のものです。
09/08/15 23:30:18 vKUvgt96
>>76
こういうことだろうか
int DrawFormatString(double x, double y, int Color, const char *FormatString, ...)
{
char buf[1024];
va_list args;
va_start(args, FormatString);
vsprintf(buf, FormatString, args);
va_end(args);
return DrawString((int)x, (int)y, buf, Color);
}

79:名前は開発中のものです。
09/08/15 23:45:00 KTR4wq9i
>>78
こんな方法が…ってよくわかってないけど
vsprintf→vsprintf_s で警告が全部消えてくれました
ありがとうございました

80:名前は開発中のものです。
09/08/16 11:37:57 tL1KdmQ7
3Dで描画した画面にエフェクトをかけたいんだけど、
裏画面の内容をテクスチャにコピーするか、
テクスチャにZバッファを使って3D描画させる方法は無いものだろうか……

81:名前は開発中のものです。
09/08/16 16:11:57 9Wblhgl3
>>80
ライブラリ使わない方がいいんじゃね?
専門書買ってDirectXを直接叩いた方が早いと思う
ぶっちゃけゲーム性に影響出るような話じゃないし、うじうじ悩むくらいなら仕様にした方が


82:名前は開発中のものです。
09/08/16 16:52:25 tL1KdmQ7
>>81
やっぱりDXライブラリじゃ無理かなー
DXライブラリだけでここまで出来るんだぜ!ってのを示すのが
ゲームのコンセプトの一つだったりするんで、このまま頑張ろうと思う

83:名前は開発中のものです。
09/08/16 17:17:23 DZlUccKL
PlayMovieで動画再生できるのにサンプルプログラムのDrawGraphを使った方法では動画再生できませんどうなっていますか

84:名前は開発中のものです。
09/08/16 23:45:33 DZlUccKL
ちなみに音は再生されます。原因が分かる方いらっしゃいますでしょうか。

85:名前は開発中のものです。
09/08/16 23:52:04 axVCKY3T
必要なコーデックがインストールされてないとか

86:名前は開発中のものです。
09/08/18 08:42:08 RhXPi4iH
一切WaitTimerとかのウェイト系入れなくても60FPSで動いてるように見えるんだけどどこかで自動的に止まってるの?
止まってるとしたら完全に頼り切っていいのかな?環境によってはウェイト入らない・・・なんてことないよね?

87:名前は開発中のものです。
09/08/18 09:43:47 5Sn+aO70
画面の裏ページを表ページに反映するのに
ウエイトかかってると思うの


88:名前は開発中のものです。
09/08/18 09:55:18 sXr4stcl
環境によってはFPSが変わると思うの

89:名前は開発中のものです。
09/08/18 11:33:49 00xLRELk
>>86

ScreenFlip使ってるんでしょ。デフォルトだと垂直同期信号待ちしてるから
多くの場合は60FPSで固定されるよ。(環境によっては無視される)

↓の命令でFALSEにしてみればノーウェイトで動くと思う。


宣言 int SetWaitVSyncFlag( int Flag ) ;

概略  ScreenFlip関数 実行時にCRTの垂直同期信号待ちをするかのフラグセット

引数 Flag : CRTの垂直同期信号を待つか否かを決めるフラグ情報
      TRUE : 待つ(デフォルト)
      FALSE : 待たない
戻り値  0:成功
  -1:エラー発生

解説  ScreenFlip関数の実行時にCRTの垂直同期信号を待つか、を 決めるフラグを設定する関数です。
基本的に待ったほうが画面の ちらつきが減り綺麗に表示されます。
 この関数は垂直同期信号の意味を理解していて、その上で状態を 変更したい方だけが使用してください。
恐らく普通は変更する必要は ないと思います。


90:名前は開発中のものです。
09/08/18 13:21:27 zmoiJH/s
簡単だし必要な基礎知識だから、まずはティアリングとかvsyncとかでぐぐれ。

で、ScreenFlipはデフォでvsyncを取るんだが、その時に単純に待機するんで、60Hzの
リフレッシュレートのモニタで垂直帰線を待つ環境だと「たまたまいい具合に」60Hzで
動作するタイマーのような副作用が出る。だが、あくまでも偶然の副作用。120Hzの
CRTモニタなんかだと多分倍速ゲー。ライブラリの中身は見てないんで分からんけど、
DirectX9のPresentなんかだと描画領域が全部隠れたらノーウェイトになる。
まぁ、副作用に期待すんな、真面目に書け、ってこと。

余談だが、最近はもうほとんどvsync無視の流れ。洋ゲは元々vsync無視路線だったし、
Vista以降はOS側がティアリングの面倒も見てるっぽいんで。
だが、2Dゲーならvsyncは当分入れた方がいいだろうな。

91:名前は開発中のものです。
09/08/18 13:26:04 HFc5HuZS
>>90
つまり「タイマー書け」ということだな
把握した

92:名前は開発中のものです。
09/08/19 21:48:34 HjcmZFcs
スレリンク(tech板:940番)
の質問をここでしても良いでしょうか?

93:名前は開発中のものです。
09/08/19 21:58:48 0Pez5CCG
>>92
見てきた
int clsDx( void );の部分をclsDx();にすればおk

94:名前は開発中のものです。
09/08/19 22:11:53 HjcmZFcs
>>93
ありがとうございます!

95:名前は開発中のものです。
09/08/19 22:52:27 lo8N+aSi
まぁDirectXスレよりここで質問する方が正しいっちゃ正しいんだが…
ぶっちゃけ>>6だな

96:名前は開発中のものです。
09/08/19 22:54:13 MeZHtU7e
こまけぇこたぁ(ry

97:名前は開発中のものです。
09/08/20 12:27:11 /tnemE9L
こんにちは
DrawGraphなどの描画先を画面ではなく画像データにしたいのですができませんよね?
どうしてますか?

98:97
09/08/20 12:42:59 /tnemE9L
画像データというか画面以外のサーフェスに描画したいということです

99:名前は開発中のものです。
09/08/20 13:16:31 YSyk4xXm
なるほど

100:名前は開発中のものです。
09/08/20 13:35:57 nEJMnXXK
>>98
MakeGraphとかで作ったテクスチャに描画するのなら、
SetDrawScreenでDX_SCREEN_BACKの代わりにグラフィックハンドルを指定すればできる
そういうことじゃないのならわかんないや

101:97
09/08/20 13:58:30 /tnemE9L
>>100
できました!
ありがとうございました

102:名前は開発中のものです。
09/08/20 17:07:09 0+koOsTw
DrawGraphなどで有効になる透過色を白色にできないでしょうか?

103:名前は開発中のものです。
09/08/20 17:20:54 yefoTBGX
>>102
SetTransColor( r, g, b ) で透過色設定出来るよ

104:名前は開発中のものです。
09/08/20 17:22:51 0+koOsTw
ありがとうございます

105:名前は開発中のものです。
09/08/21 22:44:36 a6lala98
SetDrawScreenってふつうのグラフィックハンドルも指定できるのか・・・
どこで知ったんだ?実験の賜物とか?

106:名前は開発中のものです。
09/08/21 22:50:03 U8PTrxx1
最初のスレの頃にはもう発見されてたような……

107:名前は開発中のものです。
09/08/21 22:53:25 U8PTrxx1
あ、最初に描画可能なグラフィックを作るフラグをオンにする必要があるのを忘れてた……
>>101は大丈夫だっただろうか

108:名前は開発中のものです。
09/08/21 23:02:23 6L4KzEGj
105のおかげで100の意味が初めて理解できた。
何を言ってるんだろうと思ってた。

ありがとう100と105。

109:名前は開発中のものです。
09/08/21 23:16:16 6oCpfJQO
俺も初めて知った

110:名前は開発中のものです。
09/08/21 23:20:00 oiLCSSry
初めて知った
感動した

111:名前は開発中のものです。
09/08/22 04:26:19 4ewWT7wa
SetDrawScreen という関数に画像ハンドルを渡すことで
レンダリングターゲットを変更することが出来ます。

ただ、どんな画像ハンドルでも良いと言うわけではなくて、
レンダリングターゲットにすることが出来る画像ハンドルである必要があります。
 レンダリングターゲットにすることができる画像ハンドルを作成する為には、
レンダリングターゲットにすることができる画像ハンドルを作成するかどうかを
設定する関数 SetDrawValidGraphCreateFlag に TRUE を渡して呼び出した後、
MakeGraph 関数で画像ハンドルを作成します。

int SubScreen;

SetDrawValidGraphCreateFlag( TRUE );
SubScreen = MakeGraph( 640, 480 );
SetDrawValidGraphCreateFlag( FALSE );

 こうして作成した画像ハンドルは SetDrawScreen で描画先とすることが出来ます。

SetDrawScreen( SubScreen );

 普通の画像として描画することも出来ます。

DrawGraph( 0, 0, SubScreen, TRUE );

 ただ、この機能は他の機能に比べて正常に動作するグラフィックチップの
敷居が高いので、余りお勧めできません。
(ソフトウエアレンダリングモードでしたら確実に動作しますが)

112:名前は開発中のものです。
09/08/22 09:14:50 4ewWT7wa
透過も使いたい場合
URLリンク(hpcgi2.nifty.com)

113:名前は開発中のものです。
09/08/22 11:24:00 4ewWT7wa
うちのPCじゃ透過できなかったorz

114:名前は開発中のものです。
09/08/22 14:54:20 qJPnhRZH
ひとの形をしていなかったッ

115:名前は開発中のものです。
09/08/23 16:41:05 S7Qhx8zZ
製作中のゲームのメモリ使用量が300MBと半端ないんだが…。
どういう所を削ってけばいいんだろう。
それと、DXで製作されたソフトは内容にもよるだろうけど、
どのくらいの使用量が打倒?

116:名前は開発中のものです。
09/08/23 16:47:53 GkvvlwQe
画像や音楽データのフォーマット変換

117:名前は開発中のものです。
09/08/23 16:48:57 GkvvlwQe
実行中にメモリ使用量が除所に増えていくようならメモリリークの可能性がある

118:名前は開発中のものです。
09/08/23 16:50:31 GkvvlwQe
あとは、リソースは使いたいときだけオープンして使い終わったら開放するとか

119:名前は開発中のものです。
09/08/23 20:32:02 GokZTUUA
俺のパソコンだけかも試練が、

↑キーまたは↓キーを押している間、文字キーは1個しか入力できないの?
←キーまたは→キーを押している間は文字キーを2個入力できるのに。

120:名前は開発中のものです。
09/08/23 20:35:50 GokZTUUA
ゲームのボタン配置変えたら解決した。
X → S
Z → A

121:名前は開発中のものです。
09/08/23 20:38:29 omMMPR8c
現在のPCの仕様だから問題ない
同時押しできるキーがある程度決まってるんで、
動的なゲームだとパッド対応にしないと辛かったりする

122:名前は開発中のものです。
09/08/23 20:54:06 BIZKogr3
今のPCゲーは1G2G推奨があるから300M使ったぐらい問題ないだろう

123:名前は開発中のものです。
09/08/23 21:30:33 f9+n1yyL
>>122
それで収まってるならいいけどリークしてる場合1G超えちゃったりするから

124:名前は開発中のものです。
09/08/23 23:57:34 fzVvbF1D
>>119
キーボードは一部のキー(Shiftなど)を除いて、同時押し出来るように作られてないからな。

>>121
PCの仕様というか、キーボードの仕様だな。
しかも物理的な回路レベルでの話だから、プログラムで解決できる問題じゃない。

125:名前は開発中のものです。
09/08/24 03:15:56 04E2ZlIh
いいキーボードを使えば回避できるらしいというのを聞いた頃がある
マジ?

126:名前は開発中のものです。
09/08/24 03:20:12 I4p4xHvy
全てのキーの同時押しに対応しているキーボードもある

127:名前は開発中のものです。
09/08/24 03:34:59 NKOKVJpx
>同時押しが出来ない
コスト削減のためらしいしね。


128:名前は開発中のものです。
09/08/24 08:14:30 D9SJqUdL
パソコンによってはできない組み合わせで押すと本体から電子音がでるよね

129:名前は開発中のものです。
09/08/24 15:39:22 fDqh5B1I
Nキーロールオーバーでぐぐれ

130:名前は開発中のものです。
09/08/24 16:16:31 wBD0oA5j
画像描画するときに画面の外に描画しようとしたらスキップみたいな親切なことはライブラリのほうではやってもらえない?
自分で計算しないとだめかな


131:名前は開発中のものです。
09/08/24 17:05:40 m/vASYf5
>>130
自分で計算っていっても難しいことじゃなくない?
画面サイズの最大値か0を超えようとしたら画像に合わせて処理すればいいだけだし

132:名前は開発中のものです。
09/08/24 17:16:05 2t9nwqgt
描画範囲を指定すると、そこからはみ出したら自動的に描画スキップしてくれてるんだぜ!
指定しなかった場合でも描画先の画面はみ出したらスキップされたような……

画面内に1000回描画→凄く処理落ち
画面外に1000回描画→処理落ちなし
ってことから推測しただけだけど

133:名前は開発中のものです。
09/08/24 18:28:42 2+sT6dWW
俺は画面の内外で当たり判定の有無も変えるようにしてるから
結局判定は自前でやってる。

単純な矩形なら簡単だけど、回転ありにしたらちょっと面倒なんだよね。
まぁ最大半径求めて大雑把に判定させるだけだけど。

134:名前は開発中のものです。
09/08/25 22:51:52 YgczeX4M
ウィンドウのサイズを変更できるようにしたいと思います
それで例えば画面いっぱいに一枚絵表示したいときは、
画像をウィンドウサイズにあわせて縮小、みたいなことを全ての場面でしなくてはならないのでしょうか?


135:名前は開発中のものです。
09/08/25 23:01:16 DAVmGBeA
つ[マニュアル]

136:名前は開発中のものです。
09/08/26 00:37:14 fiAN9ZAo
135凄いな。
134の言いたい事理解できるんだ……俺は無理だった。

137:名前は開発中のものです。
09/08/26 04:38:25 sFUkJOAt
>>134
コンパイルして実行すりゃすぐわかることを何故聞く。

138:名前は開発中のものです。
09/08/26 18:36:58 qUt4mYH3
>>137
いちいち手間かけなくても画面をストレッチできるように指定できるかどうかを
聞きたかったんだと思うよ
わかりにくいけど

139:名前は開発中のものです。
09/08/26 20:19:51 vFoh53HS
最初から解像度大きめに作っておいて、SetWindowSizeExtendRateで調節がベターか?

140:名前は開発中のものです。
09/08/27 00:07:53 T/6Db6QY
mp3で四曲合計16Mほどロードしたらメモリー消費量が300Mになったんだけどこんなもんかな?


141:名前は開発中のものです。
09/08/27 00:13:07 7m3osaFh
>>140
多分そんなもん
ついでにいうと、特にメモリ内にロードしなくちゃいけない理由がない限りは
ストリーム再生したほうがいいと思うよ

142:名前は開発中のものです。
09/08/27 00:18:39 PkUzIv2U
関数一覧とか見てニヤニヤするのは俺だけじゃないはず
使いこなしきれてないけどなwww

143:名前は開発中のものです。
09/08/27 00:25:58 QySx8uSH
なんで四曲合計16Mほどなのに300Mになってしまうのん?

144:名前は開発中のものです。
09/08/27 00:28:36 T/6Db6QY
そんなもんですかサンクス
PlayMusicだとループ先頭がセットできないようなんでSoundのほう使ってます

145:名前は開発中のものです。
09/08/27 00:29:55 v/FuG6jC
>>143
詳しくないがよくわからんが
jpegとかpngだって展開したら結局BMPと同等らしいからMP3もwav並になるとか?

146:名前は開発中のものです。
09/08/27 00:36:54 gFnYY/qu
>>143
そこいら周りは、良くわからんがWMPでMP3を再生すると結構消費するな。
BGMとかは、気をつけた方が良いんだな。

147:名前は開発中のものです。
09/08/27 01:05:35 cHVgGeXQ
つSetCreateSoundDataType

URLリンク(homepage2.nifty.com)

148:名前は開発中のものです。
09/08/27 01:22:42 cJyiTera
つまり圧縮された音楽ファイルは読み込み時にデフォルトでwavファイル並の量のメモリ展開がされてるわけだな・・・

149:名前は開発中のものです。
09/08/27 12:24:29 K7QbDWYZ
Dxライブラリで原点の設定を変えることは出来るでしょうか?
WINAPIの関数でSetViewportOrgEx( HDC, X,Y ,NULL)?
と言うのがあるらしいのですが、
もしかしてライブラリ中身をいじらないと無理?

150:名前は開発中のものです。
09/08/28 08:35:35 kw3b0sCg
>>149
3Dでならビューポート行列をセットする関数があるからそれでできる
2Dなら自前でなんとかするしかない

151:名前は開発中のものです。
09/08/28 13:39:24 NuR4qvr2
>>150
ググッててその単語何度か見た気がする・・・・・・。
自前で作ってみるよ。何事も挑戦だよな

152:名前は開発中のものです。
09/08/28 14:02:58 KkzSCV0k
ちょうど自分も同じ問題にぶつかったぜ
絶対座標と、スクリーンの原点を決めれば描画時にxyからスクリーン原点の座標引くだけで行けるぽい


153:名前は開発中のものです。
09/08/28 14:21:28 QSUjzmlq
原点の設定を変えてどんなことができるようになるんだ?

154:名前は開発中のものです。
09/08/28 14:49:51 m1jmte75
楽できる

155:名前は開発中のものです。
09/08/28 16:32:56 MVZ2y/yX
>>152
それ以外に方法があるのか知りたい

156:名前は開発中のものです。
09/08/28 21:30:24 NuR4qvr2
いま「弾幕」って本のライブラリをいじってたんだけど。
Dxライブラリを使いながら座標変換の部分だけ取り出したくて、
描画処理関係のソースを必死に読んで組み込んでみたら、
まったく座標が関係なかったんだが・・・・・・。

具体的にどうすればよいの?(つかれた声で)

157:名前は開発中のものです。
09/08/28 21:34:49 KG8AvTh+
具体的にどうしたいいの?(つかれた声で)

158:名前は開発中のものです。
09/08/28 21:35:29 KG8AvTh+
コピペミスったし

159:名前は開発中のものです。
09/08/28 21:39:25 4C/GS6Sj
かっこわりぃw

160:名前は開発中のものです。
09/08/28 21:48:28 NuR4qvr2
「弾幕」のサンプルでは、
.原点が画面の中心
.MaxX が1
.MaxY が1
.なのに画面サイズは普通
 描画(X,Y)のXに+1しただけで画面端に行く

描画(X、Y) <= オメーはいったい何を基準に描画してんだよ?
って言う風な流れでソースを読み始めた。

でも、仮引数に 
”コンストラクタ”CGraphics(HWND hwnd)<=なにこれ?っと思って
Dxライブラリのヘッダから
extern HWND GetMainWindowHandle( void ) ;
ってのを見つけて代入したんだけど。
思ったような効果が得られなくて orzしてたところ。
長文スマソ

161:名前は開発中のものです。
09/08/28 21:49:44 2g2Xw9AF
>>156

それは本気で訊いてるのか?

「弾幕」って本を誰もが知ってると思ってるのか?
「座標変換の部分のソース」とやらを俺たちが知ってるとでも思ってるのか?
お前さんがどのようにそれを組み込んだか俺たちが知ってるとでも思ってるのか?
お前さんがなにをしようとしてたのか俺たちが知ってるとでも思ってるのか?
「まったく座標が関係なかった」ってのがどういう状況だったのか俺たちにわかるとでも思ってるのか?

162:すいませんでしたぁぁぁぁぁ!!!
09/08/28 21:56:09 NuR4qvr2
ニホンゴ勉強してきまーす

163:名前は開発中のものです。
09/08/28 22:25:50 v4qfe6aQ
>>139
に誰か突っ込んでやれよ

164:名前は開発中のものです。
09/08/29 02:38:28 uZ03ORl6
また水平思考ゲームか…

165:名前は開発中のものです。
09/08/29 02:43:33 oQAm69KI
原点座標の水平移動!

166:名前は開発中のものです。
09/08/29 03:19:38 wEbz732B
関係ないけど「弾幕」って本面白そうだなw
アマゾンのレビュー見る限り弾幕作るのにはあまり約にたたなそうだが

167:名前は開発中のものです。
09/08/29 03:29:47 GQMCE92i
それの一つ前のSTGプログラミングって本持ってるけど
これも結構良い感じよ

読んでて「なるほどこういう風に考えるのか」ってテクがぎっしり
ちと難しいけど

168:名前は開発中のものです。
09/08/29 10:47:45 eAXf2/jo
vS2008のC++で開発しています。
DXライブラリでループ中のデバッグってどうやるんでしょうか?
F11のステップインで始めてもウィンドウが見えないし、
ウォッチ式も
CXX0017エラーです:シンボル"pon"が見つかりません
とエラーが出ます。


169:168
09/08/29 10:49:29 eAXf2/jo
すいません日本語おかしかったです二行目訂正します。
DXライブラリのProcessMessage関数、ClearDrawScreen関数ScreenFlip関数を使用し、
ループさせているときのデバッグってどうやるんでしょうか?

170:名前は開発中のものです。
09/08/29 13:45:22 iB7bt5pR
エラーの原因臭い箇所にブレークポイントつけてF5でデバッグ開始、
そこからF10のステップオーバーで処理を追う。
デバッグなしで実行する場合は関数のエラー時にMessageWindowを呼ぶと分かりやすいよ。

171:名前は開発中のものです。
09/08/29 14:37:44 Dgspg8qU
つDrawFormatString

172:168
09/08/29 14:42:16 eAXf2/jo
>>170>>171
ありがとうございます
私も今はDrawFormatStringでウォッチウィンドウみたいなものを作ってます


173:名前は開発中のものです。
09/08/29 22:36:31 MCRpsmFK
SetTransColorの透過色設定 Windows7だとうまく透明化しない場合があるけど
その場合あらかじめbmpで保存してその後にbmp2pngなどのツール使ってpngつくったら
透明化できた

174:名前は開発中のものです。
09/08/29 22:54:27 fvZFlbGy
透過色指定は画像ロードの前に!
って、同じところで悩んでた覚えのある俺のソースにコメント入ってた。

175:名前は開発中のものです。
09/08/30 02:44:15 y9n97dOf
座標(0,0)のRGB値を透過色として指定したいとおもっているのですが、
座標(0,0)のRGB値を得るにはどうしたらいいですか。

176:名前は開発中のものです。
09/08/30 02:45:20 y9n97dOf
画像ファイルの、です。

177:名前は開発中のものです。
09/08/30 02:52:09 4ar2ylnT
これかなぁ

宣言 int GetPixelSoftImage( int SIHandle, int x, int y, int *r, int *g, int *b, int *a ) ;

概略  CPUで扱うイメージの指定座標の色を取得する(各色要素は0~255)

引数 int SIHandle : ソフトウエアイメージハンドル
int x, int y : 色を取得する座標
int *r : 取得した色の赤成分を書き込む変数のアドレス
int *g : 取得した色の緑成分を書き込む変数のアドレス
int *b : 取得した色の青成分を書き込む変数のアドレス
int *a : 取得した色の透明度を書き込む変数のアドレス
戻り値 0:正常終了 -1:エラー

解説  LoadSoftImage 関数や、MakeARGB8ColorSoftImage 関数等で作成したソフトウエアイメージハンドルの指定の座標の色を取得します。
 赤・緑・青・透明度各成分の値は0~255です。透明情報の無い画像形式の場合の透明度は不定です。読み込み対象がパレット画像の場合は指定された座標のパレットの色が変数に代入されます。

178:名前は開発中のものです。
09/08/30 02:52:39 CiTH8nsL
LoadSoftImageしてGetPixelSoftImage

179:名前は開発中のものです。
09/08/30 02:58:52 y9n97dOf
すいません画像ファイルはリソースとして実行ファイルに埋め込んでいてLoadGraphToResourceで読み込むのでLoadSoftImageは使えないですどうしたらいいですか

180:名前は開発中のものです。
09/08/30 03:11:30 y9n97dOf
'GetPixelSoftImage': 識別子が見つかりませんでした

181:名無しさん@そうだ選挙に行こう
09/08/30 03:30:53 CiTH8nsL
リソースに埋め込むってことはライブラリからやれることを制限しちゃうのであんまり勧められてないと思うんだけど
こういう風にしたら無理やり取れるかな?
SetDrawValidGraphCreateFlag( TRUE );
SubScreen = MakeGraph( 1, 1 );
SetDrawValidGraphCreateFlag( FALSE );
SetDrawScreen( SubScreen );
DrawGraph( 0, 0, ResourceBMP, FALSE );
color = GetPixel( 0, 0 );
SetDrawScreen( DX_SCREEN_BACK );
DeleteGraph( SubScreen );

182:名無しさん@そうだ選挙に行こう
09/08/30 04:30:33 cI6gEy1Z
GetPixelじゃ駄目なん?

183:名無しさん@そうだ選挙に行こう
09/08/30 11:48:44 RtX14t/M
CUIからCUIの移行がわけわかめ
タイルベースのゲームなんだけどCUIでのあるFから次のFまでの間の補完の仕方がさっぱりだ
updateのほうも書き直さないとだめなのかなこれ

>>168
int main(void)にして標準出力するとゲーム画面のほかにコマンドプロンプトが開かれるからデバッグに使えそうな気がする

184:名無しさん@そうだ選挙に行こう
09/08/30 15:38:21 CRpFUzJB
CUIって聞いて何のことかサッパリな俺

185:名無しさん@そうだ選挙に行こう
09/08/30 15:55:39 WME/rg1R
CUIはわかるけど183が何を言ってるのかサッパリな俺 Fってなに?

186:名無しさん@そうだ選挙に行こう
09/08/30 17:20:24 wkJ8VIAR
FCUP

187:名前は開発中のものです。
09/08/31 17:09:24 j0BBlJ3J
巨乳プログラミングか

188:名前は開発中のものです。
09/08/31 19:40:48 HKlHFgLy
>>183
CUIからCUIの移行がわけわかめ → 説明するつもりが全く無い
タイルベースのゲーム → 2DドラクエやねとはくやCrawlの画面を想像させるがやはり何も特定できない
あるFから次のF → 「フレーム」だとわかるが
補完の仕方が → 補完てのが何か何を何で補完なのかこれも説明するつもりが無い
updateのほうも → cursesでいうところのrefresh()を想像させるが特定のプログラムを前提とした言い方なのにDXライブラリにおいての何かはわからない

キー待ちのルーチンは
ClearInputCharBuf() と GetInputCharWait()
でgetch()相当のものを作るとCUIのゲームを移植する助けになる

189:名前は開発中のものです。
09/08/31 19:54:39 j0BBlJ3J
なんだ>>183はただのカッコ付けたがりの初心者だったのか

190:名前は開発中のものです。
09/08/31 19:58:59 TnY2fXBk
>>189

そういう言い方もなんかかっこ悪いから止めといた方がいいよ。

191:名前は開発中のものです。
09/08/31 20:12:13 j0BBlJ3J
ごめんなさい

192:名前は開発中のものです。
09/08/31 20:20:05 gxnPvUD+
ローグみたいなマス目区切りのゲームで
ある枡からとなりの枡に歩かせるみたいな処理がわかんない
CUIだと移動前と移動後の座標に対応した位置に文字をプリントするだけだけど
GUIだと移動中も補完しないといけないけどそのうまいやりかたがわからない
キャラクターに整数のマス目座標だけじゃなくて実数の座標も持たせて
ゲームの1ステップの更新処理を書き直さないといけないのかな

193:名前は開発中のものです。
09/08/31 20:31:03 0NTvvGjW
そうですね

194:名前は開発中のものです。
09/08/31 20:39:29 j0BBlJ3J
>>192
更新処理はアニメーションの時間を挟むように書き直さないといけないと思う
実数の座標を持たせる方法もあるけど、移動前のマスの座標を記憶しておくだけでも大丈夫な気もする
あと、アニメーションが何フレーム目かを数えておく変数。

移動に30フレーム掛かるなら、移動アニメーション時のみ描画座標を
(float)( [移動後の描画座標] - [移動前の描画座標] ) / 30.0f * [フレーム数] + 移動前の描画座標
みたいにすると比較的楽に実装できるかもしれない

カッコつけ呼ばわりしてゴメンね

195:名前は開発中のものです。
09/08/31 20:39:54 CGTLvA+X
公式サンプルの4を見ればいいんじゃないかな。
URLリンク(homepage2.nifty.com)


196:名前は開発中のものです。
09/08/31 22:19:58 oBCh4ToJ
>>192

普通に座標で扱って、マス目の方をそれに合わせるのが楽だと思う。

1マスの大きさが32×32だとすると、

┌─┬─┐
│A │B │
├─┼─┤
│C │D │
└─┴─┘

Aの座標は (0*32.0*32)
Bの座標は (1*32.0*32)
Cの座標は (0*32.1*32)
Dの座標は (1*32.1*32)

ってなるからそれに合わせて停止させるなり、なんなりすればいいんじゃない。

197:名前は開発中のものです。
09/08/31 23:06:45 X2VhMns5
まずは途中のアニメのないバージョンを作ってから考えればいいんでないかい。

>>196
ごめん、正直それは無いかなと思った。
確かに描画処理は正直で分かりやすいが、それ以外の部分にしわ寄せが来ると思う。

198:名前は開発中のものです。
09/09/01 01:37:56 23qSxMZB
別に普通に座標で扱っても枡の座標なんて32で割ればいいだけじゃん

199:名前は開発中のものです。
09/09/01 02:31:19 8OtNRGcI
ゲームの内容が、描画の都合に合わせられるって問題じゃね?

200:名前は開発中のものです。
09/09/01 02:58:02 oEGjKhW3
どんな不都合があるのか全く想像できない。
逆にマス目優先にした方が不都合出る気がするのだが。

201:名前は開発中のものです。
09/09/01 04:49:18 23qSxMZB
まあローグライクやRPGのような非リアルタイプのゲームだと座標優先にする必要ないのかもね
基本マス目で取って移動時の描画の時だけその分ずらすなりすれば

202:名前は開発中のものです。
09/09/01 05:08:12 8OtNRGcI
>>201
そんな感じかな。

もちろんリアルタイムなゲームで、ゲーム的な座標と表示される座標を切り分けても良いと思うよ。
マップの拡大/縮小なんかも出来るようになるし。

格闘ゲームなんかに多いのかな?
2人の距離が近いと画面がズームインして、離れてるとズームアウトするような演出。

203:名前は開発中のものです。
09/09/01 10:51:04 nKmT4YF9
>それ以外の部分にしわ寄せが来ると思う。
>例えば、 ←ここが抜けてる

204:192
09/09/01 12:17:02 yHdt/VNY
レス㌧です
>>194,195あたりを参考にさせてもらいます

205:名前は開発中のものです。
09/09/01 13:52:42 8OtNRGcI
>>203
>202

206:197=205
09/09/01 14:35:15 8OtNRGcI
アンカーだけ貼るのも大人げないと思った。ごめん。


>>203
ローグあんまり詳しくないので、例えを将棋に変更させてくれ。そんなに変わらんと思うし。

基本となるのは、ゲームの処理部分と描画部分は可能な限り分けるべき、という考え方。
あくまで個人的な考え方なので、参考までに。


まず、今回の話でいうゲーム処理/描画優先というのは、例えば「歩」を一歩前に進める処理をした場合、
 ゲーム優先: y -= 1;
   描画優先: y -= SQUARE_WIDTH; //SQUARE_WIDTHは1マスの大きさ
のようなコードになることを指す。
将棋の場合は、実際には相対座標ではなく棋譜のようなデータをやり取りするような気もするけどね。

当然ながら、SQUARE_WIDTH というのは描画に必要な数字であって、将棋のルーチンには関係がない。
ゆえに、処理と描画の分割の原則に反する。


実際に作るところを想像してみれば分かると思うが、
コマを動かす、コマを取る、コマを使う…などと、あらゆる場面で SQUARE_WIDTH の値が必要になる。
それらを関数に切り分けたとしても、やっぱり SQUARE_WIDTH が要ることには変わりない。

となると、グローバル変数にするか、全ての処理関数に引数として渡すか、処理クラスのメンバ変数にするか…
みたいな話になってしまう。これはちょっと面倒くさい。

207:名前は開発中のものです。
09/09/01 14:52:19 8OtNRGcI
>206の続き

メリットはもう1つあって、演出の部分を独立して記述できるというのがある。
パッと思いつくのは、以下の2つ。

 (1)コマを動かすアニメーション
 (2)将棋盤やマスの外見(大きさや向きなど)


(1)については、コマを等速で動かす以外にも、
瞬間移動のような演出で移動したり、本当に将棋を打っているような動かし方(一旦コマを取ってから目的の位置に直接打つ)
なんて感じにもアレンジできる。

(2)について、将棋盤を拡大/縮小したり、回転させたり…ということ。
DXライブラリだと微妙だが、頑張れば3D表示にすることも出来るんじゃないかな。

将棋からは少し離れるが、>202に挙げた格闘ゲームのような場合だと、
画面のズーム具合によって当たり判定が変わってくるとか、あんまり考えたくないw



「描画優先」だと、これらの演出をやろうとしたら、処理ルーチンまで弄らなきゃならない。
プログラマが複数居る場合や、自分が昔作ったコードを再利用しよう!って時には非常に便利。

208:名前は開発中のものです。
09/09/01 15:13:02 nKmT4YF9
要するにアニメーション用のデータと関数を別に作れって事だよね?

209:名前は開発中のものです。
09/09/01 15:34:28 8OtNRGcI
うん。

210:名前は開発中のものです。
09/09/01 15:49:03 cIBqgsTF
結局どんな方法でもできちゃうから、人それぞれの実装になっちゃうんだよなぁ
こういうのは結構性格が出るもんだよね

211:名前は開発中のものです。
09/09/01 17:02:32 XGg+VYDQ
そうだよねえ
俺とかは最近は関数型言語にはまってるからクラス書くの躊躇しちゃうし。
書くけど

212:名前は開発中のものです。
09/09/01 17:04:37 274s1Rjx
一度C++の勉強するのもありだよ
クラス以外にも使えるものがたくさん増えるから

213:名前は開発中のものです。
09/09/01 17:07:47 XGg+VYDQ
俺に言ってるのかな?
大丈夫C++系言語で関数型ぽくやってるだけだから

214:名前は開発中のものです。
09/09/01 17:22:53 +fqDZss/
STLとBoostとテンプレートは便利だなぁ

215:名前は開発中のものです。
09/09/01 17:42:13 R+Ajue9X
STLしか使ったことないなー
Boostって実際便利なのかしら
……ってそろそろスレチだね

216:名前は開発中のものです。
09/09/01 18:10:35 79ZlRDOx
正規表現のために導入したな…

217:名前は開発中のものです。
09/09/01 22:01:53 p5MLHwg5
VS2008のC++でプログラムを書いています
DXライブラリを使って色々書いているのですが、
これは何という環境になるんでしょうか??

SDKやMFCとか色々聞きますが、定義は調べて何となくわかるのですが
実際使ってみてもイマイチピンと来ません。
恥ずかしい質問ですが、よければ教えてください

218:名前は開発中のものです。
09/09/01 22:08:21 R+Ajue9X
>>217
開発環境のことかな?
よくわかんないけど
VC2008+DXライブラリ……ってことになるんじゃないのじゃないの?

219:名前は開発中のものです。
09/09/01 22:10:47 p5MLHwg5
>>218
C++/CLIとか色々区分けがあるようでよく分からないままでした
特にないのですね、ありがとうございます


220:名前は開発中のものです。
09/09/02 05:50:56 PDqEN4Be
本家掲示板より一部コピペ

[2371] 現状報告 投稿者:管理人 投稿日:2009/08/26(Wed) 00:28 [返信]


●●さんも仰られていますが現在の機能でも一応3Dゲームを作ることは可能です
が、●●さんの仰られているとおり3Dモデルを描画したい場合に3Dモデルを読み込む
プログラムも自前で用意しなければならないのでちょっと大変です。

なので現在DXライブラリの側で3Dモデルを読み込んだり描画したりする機能を作っています。
公開までにはまだ時間がかかりそうですが・・・





ってことはもうすぐDXライブラリが3Dもやりやすくなるってこと!?


221:名前は開発中のものです。
09/09/02 10:08:37 rPa0Irhp
3D機能のことは作者さん自身が結構前から掲示板で言ってるね。
シェーダー書いてるとか、サンプルゲーム作っているようなことも書いてあったと思う。


222:名前は開発中のものです。
09/09/02 11:10:30 txodknIz
dxライブラリ作者さんには本当に頭が上がらないけど
実質作者さん一人で作ってる状態だから
作者さんのやる気が失われたらそれまでだよな。
やはりいつかはdirectxを直接叩けるようにならないとダメかな。

223:名前は開発中のものです。
09/09/02 12:21:40 Cce9QmIE
モデルの読み込み、表示自体はとても簡単だったりする……
でもモデルって意外とメモリ食うんだよなぁ……

224:名前は開発中のものです。
09/09/02 12:59:12 mmNevjUs
意外っていうか、そりゃ食うだろうなと思うのは素人考えか?

225:名前は開発中のものです。
09/09/02 13:28:14 Cce9QmIE
数値だけの構造体の配列のサイズなんて誤差の範囲だぜー
とか思ってたら確保失敗するくらいのサイズになったんで、当時の自分が素人だったのです

226:名前は開発中のものです。
09/09/03 07:04:26 T5vV7TnQ
ウインドウのアイコンを変更するにはどうすればよいでしょう?
環境はVC++2008EEです

URLリンク(homepage2.nifty.com)
のページの「VisualC++ 2005 Express Edition の場合」を実行し、
タスクバーのアイコンは変更できました。その後、
URLリンク(homepage2.nifty.com)
を実行しようと思いましたが、
「VisualC++ はプロジェクトの フォルダに勝手に『resource.h』」
とありますがこれが作成されません
無いので自分でresource.hを作成して「#define IDI_ICON1  101」とコードをいれ、インクルードしてみましたが
error C3872: '0x3000': この文字を識別子で使用することはできません
エラーが返ってきます。
どうしたら良いでしょうか?

227:名前は開発中のものです。
09/09/03 10:46:56 1k0ytKa3
全角スペース入ってるんじゃない?
参考
URLリンク(tmopro.jugem.jp)

228:名前は開発中のものです。
09/09/03 17:48:16 gF4nk6I+
>>227
ありがとうございます。おかげさまでそのエラーは出なくなりました
が、別のエラーが出るようになりました
1>c:\documents and settings\user1\デスクトップ\te\main.cpp(8) : error C2365: 'SetWindowIconID' : 再定義; 以前の定義は '関数' でした。
1> d:\program files\vc++\dxlib_vc\プロジェクトに追加すべきファイル_vc用\dxlib.h(1288) : 'SetWindowIconID' の宣言を確認してください。
1>normal.cpp

229:名前は開発中のものです。
09/09/03 17:50:39 gF4nk6I+
以上がエラーです
後、dxlib.h(1288) はこうなっていましたが、触ったことはありません
extern int SetWindowIconID( int ID ) ;
どこがおかしいんでしょう・・

230:名前は開発中のものです。
09/09/03 18:05:44 A1uxg92h
>>229
う~ん、VCまともに使ったことないから憶測だけど、
多分「resource.h」はどこかに生成されていて、自動的にインクルードされてるんじゃないかな?

だから、ファイル検索かなにかでそのプロジェクトの「resource.h」を探して、
その中から「#define IDI_ICON1」を検索して、値を使えばいいんじゃなかろうか。

あと、SetWindowIconID();はSetWindowIconID(101);みたいに値を入れて使うんだと思う。




231:名前は開発中のものです。
09/09/03 18:23:32 Sn/ikMPs
main.cppをここに書けばわかるんじゃないかな

232:名前は開発中のものです。
09/09/03 21:37:21 T5vV7TnQ
test1とtest2でプロジェクトごとアップロードしました。
上がアイコン云々無し(DXライブラリでループ処理だけのプログラムです)、
2がアイコンアリ(上記にアイコン関係を追加してみたもの)です
ウィンドウの左上にアイコンを表示させたいのです。
test1
URLリンク(www1.axfc.net)
test2
URLリンク(www1.axfc.net)
もしVS2008EE版ではアイコンは追加できない、ということでしたらそれを教えてください!
検索して探してますが2005の設定は見つかるのですが、2008は見つかりません。
また、>>230三里言うとおり探してみましたが見つかりません。ただ、私の検索方法が悪いために見つからないのかもしれませんが・・
どうやってもうまくいきません・・どなたか助けてください!

233:名前は開発中のものです。
09/09/03 22:44:01 Fa49oYdi
main.cpp
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
SetWindowIconID(1);
:
Resource.rc
1 ICON "pa.ico"
MAINICON ICON "pa.ico"

ヘッダなくていけると思う。
Resource.rcの中身が下のだけしか書いてなかったのが原因かな

234:名前は開発中のものです。
09/09/03 22:51:41 A1uxg92h
あら、書き込もうとしたら別の人が。
どうやらVC2005での方法はVC2008ではそのまま使えないみたいね

あとエラーの原因は>>233が書いてくれてる通りSetWindowIconID();がMain関数の外だったからみたい
main.cppとResource.rcを上の通り書き換えたらちゃんとアイコンが変わるのを確認しました


……こっそり自分も参考にさせてもらうw


235:名前は開発中のものです。
09/09/03 23:01:20 T5vV7TnQ
>>233
うおおおおおおおおおおおおおおおおおおありがとうございます!!
ぶっちゃけ何のことかさぱり分かりませんが理解できるように頑張ります!!
ありがとうございました!!!!!

236:名前は開発中のものです。
09/09/03 23:02:10 dJUWTSPd
へえ。
VC++2008EEではリソースファイル自体使えないと思ってたが
ちゃんと認識してコンパイル自体は通るものなんだな。

237:名前は開発中のものです。
09/09/04 19:04:06 tN2/1bc/
エディタが無いだけじゃなかったかな?
メモ帳なりで直打ちすればいけたはず

238:名前は開発中のものです。
09/09/04 23:54:55 OeFMQ4dR
Visual Studio 2008 Professional Edition を使ってるんだけど、リソースファイルのエディタっていけるの?
いや、あんまし使う気はないけど、生糸効果と思って

239:名前は開発中のものです。
09/09/05 16:56:12 2qZWX7kG
「生糸効果」って使う気はないけど知識として知っておくと安心するような
心理効果のことをいうのかとと思ってググった俺にあやまれ!

で、自分はVisual Studio殆ど使わないから知らないや

240:名前は開発中のものです。
09/09/05 17:46:17 RPOoFk2m
>>239
あんたのせいでぐぐるはめになった、ゆるさない。

241:名前は開発中のものです。
09/09/05 18:14:33 HL+1Ve6P
>>238
あんたのせいでエロティックな想像をしたじゃないか
どうしてくれる

242:名前は開発中のものです。
09/09/05 18:36:42 Rujfzbds
生理効果でもなかったな。 えーーい、あやまれ

243:名前は開発中のものです。
09/09/05 19:02:17 8x0oNbxr
ちくしょう、これは悔しい!

244:名前は開発中のものです。
09/09/06 00:40:58 mn2N5j+D
聞いとこうか

3分考えた。

245:名前は開発中のものです。
09/09/06 18:03:53 SXc0SYaw
3D機能追加バージョンきたよ~

246:名前は開発中のものです。
09/09/06 18:04:31 B+myjfqG
うそですよね

247:名前は開発中のものです。
09/09/06 19:40:14 lHtCBQvH
うおおほんとだきてる

248:名前は開発中のものです。
09/09/06 20:01:26 Yqyzr7Gn
今までのゲームにライブラリ差し替えて
ちゃんと動くか調べるのがいいかなー?

249:名前は開発中のものです。
09/09/06 20:07:38 c5NNpkKl
またまたご冗談を・・・!

250:名前は開発中のものです。
09/09/06 20:11:26 K0n3Qux8
ほんとだすげー
9になったのか

251:名前は開発中のものです。
09/09/06 20:14:48 jVBhPaFa
本家のとこに書いてログ流すのもアレなんでここで

管理人さんSUGEEEEE
3D分からないけど勉強するよ
ありがとう!!

252:名前は開発中のものです。
09/09/06 20:20:14 0/c4sO+5
きた

253:名前は開発中のものです。
09/09/06 20:24:40 c5NNpkKl
次はかっちょいい3Dモデルを素人でも簡単に作れるライブラリをお願いします

254:名前は開発中のものです。
09/09/06 20:30:48 vSGZDRNx
きたー!
のはいいけど自前で組んだ3D機能はどうしようか……

255:名前は開発中のものです。
09/09/06 23:14:51 DQQSJ8aQ
ほんとだ!
管理人さんおつかれさま!

256:名前は開発中のものです。
09/09/06 23:16:45 PnnRINsg
3D座標と2D座標の変換コマンドは、ありますか?

257:名前は開発中のものです。
09/09/07 14:02:36 xkLdHRZU
これから2Dベースのゲーム作るんだけど
今までどおりDXライブラリの2D関数で作るか、それとも3Dを2Dのように使いながら
2Dベースにするか、どちらがいいと思う?
3Dの詳しいことは分からないけど、後者の方法が後々よさそうな気がする

258:名前は開発中のものです。
09/09/07 15:29:35 E0ANBzLg
描画部分をゲームシステム内部に入り込ませなければなんでもおk
DxLibの2Dは3Dの機能を使って動いてるとか聞いたから2Dゲー作るならどっち使っても変わらないと思う

259:名前は開発中のものです。
09/09/07 19:02:42 58QeR9y8
てっきり釣りだと思って無視してたよ、作者さん感謝

260:名前は開発中のものです。
09/09/07 19:33:23 /xpJiZqh
算術演算関数は2Dでも便利そうだな

261:名前は開発中のものです。
09/09/07 20:54:19 mtoRAEsk
ウインドウからフルスクリーンに切り替えるときは正常に切り替わるんだが
逆すると画面かたまる。
Ver2.25bならそんなことならなかったのに・・・バグ?

262:名前は開発中のものです。
09/09/07 23:17:03 nFi5wZfB
>>257
普通に考えて2D関数でいいと思う。
DX9ベースなんだし結局は3Dを2Dのように使ってるわけだし。

263:名前は開発中のものです。
09/09/08 00:38:27 z9qhn60X
もう言うことなしだな

264:名前は開発中のものです。
09/09/08 01:09:04 Irgfbbw7
ゲームシステム内部に描画部分を入り込ませないって難しくない?
格闘ゲームとかだったら技の描画が終わるまで待たないといけないとかあるから
プログラムのほうが技描画につかうフレーム数とか知らないといけないし

265:名前は開発中のものです。
09/09/08 01:27:25 tR4qipDA
アニメーションをコントロールする部分は処理側の動作
コントローラから与えられた指示通りに描画するのは描画側の動作

266:名前は開発中のものです。
09/09/08 03:03:06 42hcEkNL
つーか、システム内部に描画処理を入れるほうが難しい。


267:名前は開発中のものです。
09/09/08 03:03:18 j3uaJz1Z
ゲームシステムと描画部分は別スレッドで動かして同期させるぐらいでもいいレベル
それくらい切り離す

268:名前は開発中のものです。
09/09/08 06:50:03 raNa9Btb
別スレッドってやってみたいけど難しそうなイメージがある……

269:名前は開発中のものです。
09/09/08 07:47:30 E/Nmen8G
切り離そうと思ったけど全然できないです・・
・・・
while(ProcessMessage()){
gamesystem();
gamebyouga();
} ScreenFlip();
・・・
みたいにしろってことですよね?
こういう場合マップにnpcや家があるときは、その情報は描画ルーチンに引数で渡すの?

270:名前は開発中のものです。
09/09/08 21:22:25 bomSovik
よく考えたらDXライブラリってそういうのを気にしなくても言いように作られたライブラリなんだよな
自分が気にならないうちはどう組んでも大丈夫なんじゃない?

271:名前は開発中のものです。
09/09/09 01:48:35 qdGLrtJ/
>>269
マップの情報(構造体やリストなど)をstructにして共有してしまう
こうするとAIの思考などを増やした時にも活用できる
引数で渡すのはやってもいいけど、概念が難しくなるな


272:名前は開発中のものです。
09/09/09 02:39:16 7WqXI6aF
クラス使えばおk
while(true){
GameMain.update();
GameMain.draw();
}
みたいな感じで

273:名前は開発中のものです。
09/09/09 02:54:33 UaP+j4GV
>>272
269じゃないけどスッキリした

274:名前は開発中のものです。
09/09/09 20:13:09 zvDt5L6z
マップの情報なんかグローバル変数でいいよ
整理したかったらクラスにまとめてそのインスタンスをグローバル変数にする
どうせマップの仕様なんかゲームによって全然違うんだから再利用性とか考えても仕方ない

275:名前は開発中のものです。
09/09/09 22:55:25 bs+ujCWy
新しいのを入れたら一部のソリューションでインテリセンスがニート化してしまった

276:名前は開発中のものです。
09/09/09 23:33:20 JpuijvmK
>>274
そのセンスが(
マップクラスを流用できるようにすればrpgでもactでもstgでも流用できるというのに
もう部品化を突き詰めて考えな
なんでもかんでも流用できるんだぞ?

277:名前は開発中のものです。
09/09/09 23:37:08 qrXrtoKd
繰り返し繰り返しプログラム描いてるうちに自然と部品化の癖が付いてくもんさ
そうじゃないうちに無理にやろうとするとぐちゃぐちゃなソースになったりする……
はい、経験者です

278:名前は開発中のものです。
09/09/09 23:42:38 I+tziH4w
char *name="あいうえお";
char ch[64]="かきくけこ";
name=ch;
DrawFormatString(0,0,Color,"%s",name);

これを実行すると文字化けするのですが、どこが悪いのでしょうか?
printfDxだとちゃんと かきくけこ と表示されるのですが・・・


279:名前は開発中のものです。
09/09/09 23:46:04 JpuijvmK
ある瞬間に慣れるんだよね
それはクラス化とかポインタとか、ある程度人によりけりだけどなんだかん゛でC++独自の機能ってのは多い


280:名前は開発中のものです。
09/09/10 00:04:13 giF8NyH+
>>278
文字化けしなかったよ

281:名前は開発中のものです。
09/09/10 02:55:29 tiE+Irh9
個人的に言わせて貰えば、
クラス化は勧めるけど、(再利用を考え)モジュールとして流用は考えないのが吉。
正直、モジュール化を考えるぐらいなら、読みやすいコードと
無駄に依存しあわないクラス関係を優先すべき。

今時のOO本なら、大抵が
 「再利用」は誇大広告だった。
と言ってるように、その方向でのクラス設計なんて考えない方が良い。
OOが構造化と対比し、流用可能箇所を事前に決めておけば、効率よく「再利用」は可能だが、
なんでもかんでもが、流用できるわけでもないし、下手になんでもかんでも流用しようとすれば、
どんどんと利点のない制約を負う羽目になる。

ついでに言えば、ゲームはコードをガンガン書いてモノ創りまくった方が良いよ。
設計やらなんやらは、とりあえず指負って数えられない程度はモノつくってからで十分。


282:名前は開発中のものです。
09/09/10 04:20:17 NcRwHXlm
設計気にしだして、実装してる途中に、ちょっといい設計に気づいてやり直して・・・とかいうループに陥って一向に先に進めない俺

283:名前は開発中のものです。
09/09/10 08:56:36 st2UuMEg
>>282
よう、俺。自分もその泥沼にはまって当分先に進めそうにないよ。

ところで自分も一応ヘタレなりにOOでやってるけど、OO設計自体難しいし、
下手にやると無駄にコード量とバグが増えるだけになってしまう。
あくまで私見だが、個人で小規模なプログラムを作るんだったら、
方法論にとらわれるよりはなるべくコード量が少なくて、簡潔に書けるようにした方がいいと思う。
最終的にバグが出なければプレイヤーは文句言わないわけだし。

それから真面目にOOやりたいんだったらC++よりもC#の方がお勧め。
ヘッダファイルを書く必要がないし、プロパティが使えるし、
意味不明なコンパイルエラーも出ないし、インテリセンスが強力なので、格段に楽。
まだ試してないけど、DXライブラリの最新版も使えるみたいだし。


284:名前は開発中のものです。
09/09/10 09:04:48 wnyirDpF
>>282
俺のことかー!
抽象クラスでどうたらとか委譲してどったらとかして変更に強い保守性の高いプログラム云々の
薀蓄を半端に齧っていつまで経ってもゲーム制作が進まない。

285:名前は開発中のものです。
09/09/10 09:11:47 krQIFNZx
>>282
俺もだー!
あんまりグダグダやってるとそのうち別のゲームとの出会いがあったりして、
今度はそのジャンルのゲーム作りたくなって……
って感じに投げちゃう場合があるから怖い

286:名前は開発中のものです。
09/09/10 09:21:27 UPhqsit2
C#は標準ライブラリがとても綺麗だから普通にDXライブラリ使うとかなり異質な感じになって気持ち悪い
だからDXを徹底的にラップしたくなって何のためにDXライブラリ使ってるのかよく分からなくなる

287:名前は開発中のものです。
09/09/10 14:01:45 S3IE2udy
DrawGraphとLoadGraph関数について質問です
LoadGraph関数で画像(int hk0)をローカル変数にすると画像を表示できるのですが、
グローバル変数だと表示できません
これはこういう仕様ということなのでしょうか?

//洞窟グラフィック
//int hk0=LoadGraph( "背景0.PNG" );

int normal(){
while(ProcessMessage()==0 && ClearDrawScreen()==0){
//↑メッセージ処理   ↑画面をクリア  
//ココ↓
DrawGraph( 30,30, hk0 , FALSE ) ;//最奥の背景
//ココ↑
ScreenFlip(); }
return 0; }

288:名前は開発中のものです。
09/09/10 14:14:32 UPhqsit2
それだとDXライブラリが初期化される前にLoadGraphが呼ばれてしまうのでエラーになる。
グローバルスコープではhk0は宣言するだけにして,グラフィックの読み込みとhk0への代入は
DXライブラリを初期化した後の別の場所に書く。

289:名前は開発中のものです。
09/09/10 14:15:57 S3IE2udy
>>288
なるほど!ありがとうございます

290:名前は開発中のものです。
09/09/10 14:54:52 NcRwHXlm
ところで誰か3Dのほう使ってみた?

291:名前は開発中のものです。
09/09/10 20:53:01 wnyirDpF
講座が出揃う頃に

292:名前は開発中のものです。
09/09/10 21:28:32 jjF99z4R
管理人凄過ぎだろ
よくあんなにサンプル作る気になれるな

293:名前は開発中のものです。
09/09/10 21:45:58 X0AmmjCJ
管理人の作ってるゲームがどういうのか見たい

294:名前は開発中のものです。
09/09/10 22:31:54 7AnaxO8P
ClearDrawScreen()で画面を消去するときに色を
指定する方法ってありますか?
一応リファレンス見たのですが見つからなかったので

295:名前は開発中のものです。
09/09/10 22:49:35 VEb8+Aag
管理人氏にお金が入るように何かできないものか

296:名前は開発中のものです。
09/09/10 22:49:43 +WsOOm4g
DrawBoxを使うのはダメかい?

297:名前は開発中のものです。
09/09/10 22:57:44 N91khfEH
本はいらん

カンパできるようにしておけばいいかも

298:名前は開発中のものです。
09/09/10 23:48:30 SYHhvOWj
>>294
あれは画面を0,0,0,で埋め尽くすだけだからな
ClearDrawScreen()をいじればその一食の色になるかもしれないが、オススメはできない

299:名前は開発中のものです。
09/09/11 00:18:31 gE7BS8gu
俺は画面消去したあと素直に画面を塗りつぶしてる
描画コスト的にどうなのかはわからにゃー

300:名前は開発中のものです。
09/09/11 00:35:58 UuKHtBFC
SetBackGroundColorみたいな隠れ関数があった気がする

301:名前は開発中のものです。
09/09/11 00:43:10 UuKHtBFC
あったこれかな?違ってたらすまん
DxLib(1319):
extern int SetBackgroundColor( int Red, int Green, int Blue ) ; // メインウインドウのバックグラウンドカラーを設定する

302:名前は開発中のものです。
09/09/11 01:42:41 fDajLJwg
画面全体にDrawBoxで塗りつぶしちゃうんなら直前のClearいらなくね?

303:名前は開発中のものです。
09/09/11 01:46:10 Q61p/EqI
いらないと思うね。

DrawBoxのコストもほとんど無いと思うし、これだけでいいと思うな。

304:名前は開発中のものです。
09/09/11 03:14:52 UZNv/bcm
サンプルゲームの弾当てゲームが絵が出ない。
ボタン押すとショット音みたいなのは出るから起動はしてるんだと思うけど。

305:名前は開発中のものです。
09/09/11 04:00:57 HYELPMxN
初見で33824まで行ったけどそこから行けなくなった

306:名前は開発中のものです。
09/09/11 05:37:43 RaGG6Tm7
>>304
十中八九、画像を置く場所が間違ってる

307:名前は開発中のものです。
09/09/11 05:45:16 HYELPMxN
置くも何も展開したら動かさずそのまま叩けばいいだけだが

308:306
09/09/11 05:48:04 RaGG6Tm7
>>307
ああ、サンプルゲームってそっちか。
勘違いしてた

309:名前は開発中のものです。
09/09/11 05:55:08 HYELPMxN
俺も最初置く場所が間違ってんだろと思って確かめたんだよ

310:名前は開発中のものです。
09/09/11 05:56:33 RaGG6Tm7
>>309
なるほど。
しかし無理ゲーすぎるw

311:名前は開発中のものです。
09/09/11 12:35:15 w7CCpmFC
d3d9を使っているって事はもうdirect Drawは使ってないの?
今までの2D描画関数も内部的にはブリッツからポリゴンにテクスチャ貼って系の処理に
置き換わってるの?

312:名前は開発中のものです。
09/09/11 12:54:47 D7FB9Z1+
そうだよ

313:名前は開発中のものです。
09/09/11 13:09:22 w7CCpmFC
>>312
サンクス

314:名前は開発中のものです。
09/09/11 13:17:22 9Lzy/YYP
非常に嬉しい進化だが
かなりのヘボ環境でも動くのが大きな利点だったから
動かない環境が出そうでやや心配。

>>304とか解決したんだろうか?
表示されない環境とかplz

315:名前は開発中のものです。
09/09/11 14:08:14 7Df/Sf3+
98SEとかMeとか聞かなくなって久しいし、
もうDirectX9がほぼ標準で搭載されてると見ていいんじゃないかな。

316:名前は開発中のものです。
09/09/11 14:19:14 gE7BS8gu
というかバリバリ3D使うようなゲームならDirectX9インスコできないような環境では
まともにプレイできないんでないの? スペック的に。

DirectX9インスコできなかったのってWin95しか経験ないんだけど

317:名前は開発中のものです。
09/09/11 14:38:02 ZsOOGSag
>というかバリバリ3D使うようなゲームなら

いや、そういう問題じゃなくて。
DXライブラリはバリバリ3Dゲー作るためだけに使うわけじゃないだろう?

旧態依然としたロースペック環境で動くようなお手軽2Dゲー作るのに、
逆に足かせになってしまわないかって事でしょう。

318:名前は開発中のものです。
09/09/11 15:15:48 gE7BS8gu
古い環境に対応したいなら以前のバージョンのままでいいんじゃないかな、てことを言いたかったんです

でも今までのバージョンだとvistaとかで動かない場合があるらしいし
(vistaでなくても最近のグラボだと不具合起きるのも多いっぽい)、
結局最新OSに対応するか古いOSに対応するかのどっちかを選ばなきゃいけなくなるんだよね

319:名前は開発中のものです。
09/09/11 15:22:28 0tIAEx6O
古いバージョンすでに持ってる人ならいいけど、
新規ユーザーの場合、古いバージョンも今後ずっと公開されてないといけないよね。

320:名前は開発中のものです。
09/09/11 15:34:45 7nQKpTWv
//前回のマウスクリック状態を記録する
BOOL MOUSE_previous = FALSE;
//マウス左ボタンが押されているかどうか
if( ( GetMouseInput() & MOUSE_INPUT_LEFT ) != 0 ) {
if( MOUSE_previous == FALSE){
// テロン音の再生
PlaySoundMem( teron , DX_PLAYTYPE_BACK ) ;
MOUSE_previous = TRUE;
} else{
MOUSE_previous = FALSE;
}
}

321:名前は開発中のものです。
09/09/11 15:44:49 7nQKpTWv
すみません、画面をクリックすると音が出るというものを作りたいのですが
音は出るもののクリックを押しっぱなしで音が連鎖してしまうため
テテテテテテテテテロン♪となってしまいます…
再生が終わるまで操作を受け付けなくすることならできたのですが
今度はクリック連打ができなくて(音が鳴り終わるまで操作不能)になりスムーズにいきませんでした
イラっと来たときにPCを素手で殴るフラッシュみたいなのを作りたいのですが
どなたかヒントをもらえませんでしょうか
↓これだとクリックしていると常に音がなってしまう…

  //音
  teron = LoadSoundMem( "sound\\miss.ogg" ) ;

  //マウス左ボタンが押されているかどうか
  if( ( GetMouseInput() & MOUSE_INPUT_LEFT ) != 0 ) {
    if( MOUSE_previous == FALSE){
      // テロン音の再生
      PlaySoundMem( teron , DX_PLAYTYPE_BACK ) ;
      MOUSE_previous = TRUE;
      } else{
    MOUSE_previous = FALSE;
    }
  }

322:名前は開発中のものです。
09/09/11 15:58:56 2Qz1qHiY
ためしてないけど
  //マウス左ボタンが押されているかどうか
  if( ( GetMouseInput() & MOUSE_INPUT_LEFT ) != 0 )
  {
    if( MOUSE_previous == FALSE)
    {
      // テロン音の再生
      PlaySoundMem( teron , DX_PLAYTYPE_BACK ) ;
    }
    MOUSE_previous = TRUE;
  }
  else
  {
    MOUSE_previous = FALSE;
  }

323:名前は開発中のものです。
09/09/11 16:28:32 7nQKpTWv
>>322
おおおできました!!ありがとうございます!
TRUEを置く場所が悪かったのか…
まだまだはじめたばかりで全然理解できていない;
14歳からはじめるC言語がまったく理解できない私は小学生レベル…

324:名前は開発中のものです。
09/09/12 00:23:48 JXXczQq6
その14は16進数の14だ

325:名前は開発中のものです。
09/09/12 00:33:09 8CxwwxBM
詐欺じゃねーかwww

326:名前は開発中のものです。
09/09/12 01:14:32 btT9t2iM
10進数の14歳で理解するにはある程度のベースがないと辛いよな……
なんらかのツールでゲーム製作の経験があるとか。

327:名前は開発中のものです。
09/09/12 01:34:46 U3GFUsn+
14の頃は「おまじない」を覚えられなくて挫折した

328:名前は開発中のものです。
09/09/12 03:21:46 UWkw1X1S
hspのベースがあったから楽だったけど
なかったら俺の頭じゃ無理

329:名前は開発中のものです。
09/09/12 03:48:09 MpMLIfv8
>>314
解決してないです。
画像ファイルの場所とか、解凍したそのままのフォルダ構成で起動してるんですが…。
DirectX9が動く環境です。
OSはXPでDirectX9.0c,グラボは7600GTなので問題は無いはずです。

330:名前は開発中のものです。
09/09/12 03:49:40 MpMLIfv8
追記
dataフォルダ内のXファイル(Teki.x)をDirectXViewerで開いても何も表示されないのは普通ですかね?

331:名前は開発中のものです。
09/09/12 04:04:02 BAkR7Olt
高校生になるまでpc触らせてもらえんかった

こういうのって結構大きいと思う。

332:名前は開発中のものです。
09/09/12 04:17:07 pjlPXLRM
中学生で2chやる奴にならなくて良かったろ

333:名前は開発中のものです。
09/09/12 04:18:26 z98JJXec
やってたら絶対無色だろうな

334:名前は開発中のものです。
09/09/12 04:19:01 btT9t2iM
俺は中学生でPC持ったなー
コミックメーカー→GameMaker→C++って感じだった
PCがネット使えないから携帯で必死にドキュメント読みながらやってたっけ

335:名前は開発中のものです。
09/09/12 06:11:25 cRHwJC7O
中学生でも凄い奴は居るからなあ

URLリンク(pmns.blog81.fc2.com)
これで15歳ってんだから驚きだよ

336:名前は開発中のものです。
09/09/12 06:21:36 btT9t2iM
将来有望すぎるw
同じゆとり世代として負けてらんないな……

337:名前は開発中のものです。
09/09/12 08:35:22 Lwqm4GL2
とても敵わんな。
それにしても、本当に15歳なのだろうか。
プログラミング知識はともかく、文章が上手すぎる。

そういや、最近になってtinyゼビウスを作ったのが当時小学生だと知って愕然とした。
小学生の作ったゲームを買って遊んでたのかよ、当時の俺……。

338:名前は開発中のものです。
09/09/12 09:28:44 Qk9MqXvw
>>311
DirectX7の頃からデフォでは2D描画にDirect3D使ってたよ
でないと半透明描画とかあんなに高速にできない

>>329
DxLib_Initの前にSetUseDirectDrawFlag(FALSE);を書くとちゃんと表示されたりするらしい
URLリンク(hpcgi2.nifty.com)
でもDirect3D使わなくなるから遅いらしい
>Teki.xがDirectXViewerで
他のxファイルが開けるんならTeki.xが普通じゃないと考えていいんじゃないだろうか

339:名前は開発中のものです。
09/09/12 12:43:11 8CxwwxBM
>>335
やっぱこういうのは早めに教育するべきなのかねぇ
そろばんとかフラッシュ暗算とかに近いものがあるのかもしれん

340:名前は開発中のものです。
09/09/12 13:28:47 aYgAXTrW
今の時代、小学校にも国語・算数・プログラミングってな勢いで
浸透させたらいいのに。
思考能力の訓練としては算数よりも有用だと思う。算数+国語+図工ぐらいの
ポテンシャルがあると思う。

341:名前は開発中のものです。
09/09/12 16:50:07 tOkowyQz
14歳<俺、RPGツクールでRPG作れるプログラマなんだぜっ(キリッ

342:名前は開発中のものです。
09/09/12 16:55:29 jwMgxYoR
出来を期待しなければ3歳でも作れる

343:名前は開発中のものです。
09/09/12 18:01:37 nWAUzoPG
>>341
最近のRPGツクールにはRGSSという機能がついていてだな、

344:名前は開発中のものです。
09/09/12 18:28:03 btT9t2iM
スクリプトの場合はプログラマじゃなくてスクリプタじゃない?

345:名前は開発中のものです。
09/09/12 18:37:07 tOkowyQz
>>343
つRPGツクール3

346:名前は開発中のものです。
09/09/12 18:38:23 aYgAXTrW
RPG

347:名前は開発中のものです。
09/09/12 18:39:42 aYgAXTrW
まちがえた。ごめ。

348:名前は開発中のものです。
09/09/12 23:54:23 trXx+E3M
そろそろ3D使った凄いゲームでてきた?

349:名前は開発中のものです。
09/09/13 05:08:12 9AQ8ifoB
>>338
情報ありがとうございます。
新バージョンに移行するかどうか迷ったのでサンプル動かしてみたのですが、
新バージョンに移行したときに試してみます。
リンク先の記事は新バージョン前のものですが、
旧バージョンは問題なく動いてますしいくつかゲーム製作したんですけどねぇ…。

まあ新バージョンに移行って言っても使い分ければいいだけですが、
ただそれだけの作業がめんどいって理由ですので気が向いて新バージョンを試せたら報告させていただきますね。

350:名前は開発中のものです。
09/09/13 10:02:51 DwgS6f5A
俺の作ったゲーム未満の異物は、新バージョンにしてもぜんぶ動いてる

351:名前は開発中のものです。
09/09/14 03:24:36 pVkfPbzp
>>329
>>338

3D機能が使いたいので、2.25を上書きで3.0にしたら、
画面が真っ黒になって改善されないので弱っているので情報探しています。

BCC版3.0
XPでDirectX9.0c,nVidia GeForce 7600GSです。
329さんと似ています。

で、SetUseDirectDrawFlag(FALSE);を入れたら動き出しました。
他の人が3.0で作ったプログラムが(上記の一文を入れて貰わないと)一切動かない。

352:名前は開発中のものです。
09/09/14 08:18:18 f8Z+xLGT
URLリンク(www3.atwiki.jp)
これを作ったのも中学生

353:名前は開発中のものです。
09/09/14 08:30:53 0vG04VD/
>>351
アクセラレータとか弄ってみた?

354:名前は開発中のものです。
09/09/14 09:02:24 RnMmNwo/
まだ3.00安定してないみたいだなー
ふと思ったんだけど、動作環境を多くするために2.25で作ったexeと3.00で作ったexeを同梱するってのはアリかね?

355:名前は開発中のものです。
09/09/14 09:09:14 QKJBJXW0
動作報告で作者さまに貢献するか。

356:名前は開発中のものです。
09/09/14 10:37:53 5HzSE7nK
>>354
プログラム的に対処できないならそれしか方法無いしな

357:351
09/09/14 16:14:06 pVkfPbzp
>>353
アンチエイリアシングなど色々な状態の組み合わせで試してみたけどダメでした。

358:名前は開発中のものです。
09/09/14 18:05:52 346GA2uE
文字列をタブでそろえるにはどうすればいいんでしょうか?
どこかでみたと思うのですが忘れてしまいました
(例
あいうえお かきくけこ
さしす   たちつてと
わ     やゆよ

といった感じでそろえたいのです

359:名前は開発中のものです。
09/09/14 20:14:32 K05PVkYK
\t
スレ違いだということは自覚しておくように

360:名前は開発中のものです。
09/09/14 20:42:10 UkTBA8h9
DxLibってタブ把握してくれてるの?

361:名前は開発中のものです。
09/09/15 07:52:02 TVGKkCOT
無理でした
無さそうなので他の方法で解決してみます

362:名前は開発中のものです。
09/09/15 09:09:20 8DD3jZyy
DXライブラリではタブ認識せんよ
等幅フォントで間に必要な分のスペース入れるしかないんじゃないかなぁ……

363:名前は開発中のものです。
09/09/15 09:41:54 sJhim7XN
タブキーでタブ幅分の半角スペースを埋めてくれるテキストエディタ使うしか無いんじゃないかな

364:名前は開発中のものです。
09/09/15 11:58:04 6ymwwxwT
適当なタブ記号を自分で決めて良い塩梅に表示してくれる関数を作るとか

365:名前は開発中のものです。
09/09/15 13:17:33 69n3INhM
タブも改行も認識しないから自分で計算するのが手っ取り早いね
そっちのほうが後で応用も効くし



366:名前は開発中のものです。
09/09/15 16:28:42 hRIyOOrT
昔作ったゲームを久しぶりにやってみようと思ったら
画面が真っ黒になって起動しない、動くけど真っ黒のまま描画されないなどバグが起こりました
SetUseDirectDrawFlag(FALSE);を書くことで解決したのですが描写がガクガクになります

この真っ黒になるのってグラフィックドライバの問題なんですかね??
この前最新版を入れてから動かなくなりました

OSはwindows7 RC 64bit
NVIDIA GeForce 8400 GS
ドライバ 190.38
です・・・

367:名前は開発中のものです。
09/09/15 16:39:06 5pG5mtNU
Win7の64bitじゃない他の環境で試せない?

368:名前は開発中のものです。
09/09/15 17:23:18 tJUBZaDT
プチ動作報告
WinXPHome
NvidiaGeFo9600GT 
ドライバ 171.16

2.25から3.00に移行したけど問題なし

369:361
09/09/15 19:13:06 TVGKkCOT
GetDrawStringWidth  DrawString で描画される文字列の幅(ドット単位)を得る
GetDrawFormatStringWidth  DrawFormatString 関数書式付き文字列の描画幅(ドット単位)を得る
で代用できました。ありがとうございました。

370:名前は開発中のものです。
09/09/15 21:18:45 6ymwwxwT
>>368
ナカーマ
俺も同じ環境で問題なし

371:名前は開発中のものです。
09/09/15 22:17:42 n/ufG8Fn
>>368
同じく問題なし

372:366
09/09/16 00:26:31 JMsMCKxf
VCでコンパイルして、動作が止まった時の出力のところに

'VC弾幕.exe': 'C:\Program Files (x86)\NVIDIA Corporation\3D Vision\nvSCPAPI.dll' を読み込みました
'VC弾幕.exe': 'C:\Windows\SysWOW64\nvapi.dll' を読み込みました
'VC弾幕.exe': 'C:\Program Files (x86)\NVIDIA Corporation\3D Vision\nvSCPAPI.dll' をアンロード
'VC弾幕.exe': 'C:\Windows\SysWOW64\d3dim700.dll' を読み込みました
'VC弾幕.exe': 'C:\Windows\SysWOW64\l3codeca.acm' を読み込みました
'VC弾幕.exe': 'C:\Program Files (x86)\NVIDIA Corporation\3D Vision\nvSCPAPI.dll' を読み込みました
'VC弾幕.exe': 'C:\Program Files (x86)\NVIDIA Corporation\3D Vision\nvSCPAPI.dll' をアンロード
'VC弾幕.exe': 'C:\Program Files (x86)\NVIDIA Corporation\3D Vision\nvSCPAPI.dll' を読み込みました
'VC弾幕.exe': 'C:\Program Files (x86)\NVIDIA Corporation\3D Vision\nvSCPAPI.dll' をアンロード

っとあるのですが、これってうまく読み込めてないってことですかね?


373:名前は開発中のものです。
09/09/16 01:04:28 et2o8FvY
へ?

374:名前は開発中のものです。
09/09/16 01:09:58 k7+NG1+O
DXライブラリでゲーム作る人STGばかりだと飽きるから、他のジャンルも作って欲しいよ

375:名前は開発中のものです。
09/09/16 01:43:03 Tb4Pp2Xw
>>374
そうなの?

376:名前は開発中のものです。
09/09/16 01:52:24 92BlO/bI
ともだちがたいぴんぐげーつくってるお

377:名前は開発中のものです。
09/09/16 02:14:28 xBiF7nCg
5割くらいの人間が某方弾幕ゲーを作りたがる
2割くらいの人間がそれ以外のSTGを作る
3%の人間が別ジャンルのゲームを作る
残りの人間は勉強だけで終わる

体感ではそんな感じ
異論は認める

378:名前は開発中のものです。
09/09/16 02:22:56 Tb4Pp2Xw
>>377
それは流石に極端じゃねえかなあ。
弾幕STGが好きなので、そればかり目に留まるとか、友人も弾幕STG好きが多いとか。

3割が勉強だけで終わる、とかは微妙に納得するが。

379:名前は開発中のものです。
09/09/16 02:33:29 xBiF7nCg
>>378
某方はそこそこ好きだが弾幕ゲーは嫌いだぜ

380:名前は開発中のものです。
09/09/16 03:29:01 3YjzzgXs
同人STGで一山当てるぜみたいな馬鹿が多いんじゃなく
講座や作例はSTGが多いから自然と・・・

381:名前は開発中のものです。
09/09/16 03:36:39 gAyqGQzZ
3D機能もついたことだし斑鳩みたいなの作るか

382:名前は開発中のものです。
09/09/16 03:42:43 yP8KOrYy
作ってみれば分かる
STGが他ジャンルよりいかに敷居が低いかを

383:名前は開発中のものです。
09/09/16 05:27:56 iBs/K6cW
二割でサーセン

384:名前は開発中のものです。
09/09/16 05:52:41 Tb4Pp2Xw
>>382
突っ込みたいところは幾つかあるが、
初級者向けの教材としてSTGが多いのは事実だろうなあ。

385:名前は開発中のものです。
09/09/16 06:00:56 iBs/K6cW
横アクションだと地形との判定とかマップ作ったり素材面倒かも
格ゲーだとドット絵で死ぬ
RPGだとデータベース管理やマップ云々、イベントやらで死ぬ
STG…!

386:名前は開発中のものです。
09/09/16 07:22:31 xBiF7nCg
敵なんかどうせ画面内に入ったら即着弾で消えるし
スライド移動で飛んでくるから全くアニメしなくても問題なし。
素材面では確かに楽で教材としては最適だな。
横アクションだと最低でも歩くアニメが要る。

387:名前は開発中のものです。
09/09/16 08:13:05 3YjzzgXs
センスもいらないしなSTG
最近じゃ障害物すらないし

388:名前は開発中のものです。
09/09/16 09:09:59 LDcV9Lzm
やっぱ横シューもやりてーな

389:名前は開発中のものです。
09/09/16 09:57:18 02RpJa4n
大量に発生する当たり判定もマシンスペックに頼る富豪プログラムでどうにでもなるし
敵や敵弾にもAI的なものは必要なく、軽くランダム混ぜたパターン記述で済ますことができるし。

普通のドラクエタイプRPGは案外難しかったりするけど
SRPGやローグ系は結構楽だったりする。作ってる人も多い。
Wizardry系の3Dダンジョンは、マップ移動まで公開して戦闘ルーチン組み込めずに挫折するのが
見てて笑えるほどいつものパターン。

390:372
09/09/16 10:08:53 JMsMCKxf
すみません、言葉が足りなかったですかね・・・

DXライブラリで作ったゲームプレイしようとしたときに動作が止まるorウィンドウが真っ暗になるのですが
VCの右下の出力のところを見ると
C:\Program Files (x86)\NVIDIA Corporation\3D Vision\nvSCPAPI.dll
の読み込みとアンロードを繰り返しているので、NVIDIAのドライバのdllファイルをうまく読み込めていないんということなんででしょうか?


391:名前は開発中のものです。
09/09/16 10:21:29 +YV+gckZ
作ってる人が多いからってSTG作っちゃいけないわけじゃないだろうと。
DXライブラリ触る以前からSTGばっかり作ってる身にするとこの流れはチクチク痛いぜ

392:名前は開発中のものです。
09/09/16 10:23:53 dMzdtVbz
>>389
戦闘ルーチンって難しいのか?
今まさにそれを作ってるんだが・・・

393:名前は開発中のものです。
09/09/16 10:34:27 vojU8TyD
難しくはないが面倒、ってとこじゃね?

394:名前は開発中のものです。
09/09/16 10:44:25 +YV+gckZ
切り分け方で結構変わるよなー
戦闘ルーチンよりもコマンド入力部を部品化するのが面倒。

395:名前は開発中のものです。
09/09/16 10:45:24 obmU7MWv
基礎部分をつくるまでが面倒くさいな……。

まぁこれをいうなら別に戦闘ルーチンだけとは限らんが。

396:名前は開発中のものです。
09/09/16 11:01:03 02RpJa4n
俺には戦闘ルーチン難しかったぜ。
言葉にすると

・入力受付→敵味方の行動決定
・素早さなんかによる行動順ソート
・リスト順に行動解決

こんなもんだけど、いなくなった相手を攻撃しないように攻撃の振り替えしたり
回復とかグループ・全体攻撃だとか追加するたびに
無神経に肥大化していくのがイヤだった。

397:名前は開発中のものです。
09/09/16 11:45:30 rXzGKmHM
自分の場合は敵味方の行動をそれぞれ行動構造体にまとめて、
再生部は別にすることで結構シンプルにできたな
これなら肥大化していく心配もないし

398:名前は開発中のものです。
09/09/16 12:16:53 6VxYmGzW
一番簡単なのって落ちげーかなって思うけどなー
絵の準備は楽だしゲームとして気を使う部分も少ないし
テトリス流行った時は○○リスってクソゲーが死ぬほどあったよねw

399:名前は開発中のものです。
09/09/16 12:40:34 agcxS8EX
助けてください!string型の文字列を出力するにはどうすればいいんでしようか?
DrawFormatStringで試してみましたが無理でした

#include "DxLib.h"
#include <string>
using namespace std;

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
//ループ開始
while(ProcessMessage()==0 && ClearDrawScreen()==0 ){
//ココ↓//
class message {
public:
string k[30];//string配列30個を用意
};
message mes1;//messageクラスmes1を作成
mes1.k[2]="a";//メンバに代入

DrawFormatString( 50 , 15 , 65535 , "要素2は%s" , mes1.k[2]) ;
//ココ↑//
ScreenFlip();
}
DxLib_End();
return 0;
}

400:名前は開発中のものです。
09/09/16 12:43:21 Tb4Pp2Xw
>>390
公式にでも投げてみれば?

>>399
stringをそのままprintfに渡せると思ってる?


401:名前は開発中のものです。
09/09/16 12:47:28 Qfu5gQHu
>>399
ぐーぐるで「c_str()」を検索

402:名前は開発中のものです。
09/09/16 12:59:16 02RpJa4n
意外になんとでもなるもんだなあ。

mes1.k[2]="a";//メンバに代入

DrawFormatString( 50 , 15 , 65535 , "要素2は%s" , mes1.k[2].c_str()) ;
                                  //ココ↑//


403:名前は開発中のものです。
09/09/16 13:03:19 Tb4Pp2Xw
・ひたすら上から降ってくるモノを取る、もしくは避けるゲーム
・固定画面シューティング
・テトリス(同じ落ちモノでもぷよぷよなどは少し面倒)
・倉庫番

教材として、この辺は何度か見た


404:名前は開発中のものです。
09/09/16 13:06:24 agcxS8EX
>>400
charとstringの違いだと思うんですがよくわかりません・・
>>401>>402
ありがとうございます。自分でも調べてみます

405:名前は開発中のものです。
09/09/16 18:18:29 /Dw41YNe
>>398
5ヶ月前にc言語の勉強はじめて、最初の1ヶ月くらいでぷよぷよの再現に挑戦した
あえて調べずに試行錯誤して泥臭いアルゴリズムながら完成
後から調べて再帰アルゴリズム知った時は驚愕したよ
最初に思い付いたのが誰か知らんけど、勉強量じゃ越えられない壁ってあるんだなって
何年やってても、再帰アルゴリズムの発想には至らなかったと思う
今は勉強2作目としてR-TYPEの1面再現に挑戦してるけど、今んとこぷよアルゴリズムほどの壁には当たってないな
てか俺もSTGかw

406:名前は開発中のものです。
09/09/16 18:30:32 BrsDP8vX
再帰なしでどうやったの・・・

407:名前は開発中のものです。
09/09/16 18:43:51 Cr9ZTBwm
再帰呼び出しって普通に思いつかないか?
本にも載ってるし

408:名前は開発中のものです。
09/09/16 19:08:16 xBiF7nCg
ムリダナ

409:名前は開発中のものです。
09/09/16 19:14:00 Oq85HoiV
昔、下手撃ったら無限ループとかメモリオーバーとかする恐れがあったから避けてたなぁ。

410:名前は開発中のものです。
09/09/16 19:16:19 mR3hYHMX
末尾再帰最適化なんて知らないから怖くてできないよ

411:名前は開発中のものです。
09/09/16 19:23:27 xBiF7nCg
使わないからすぐに忘れる

412:名前は開発中のものです。
09/09/16 19:41:21 /Dw41YNe
>>406
配列を上から下へ、下から上へと検索して隣合った同色をグループ化してゆくの
渦巻き型に繋がった場合とか、検索にかかりにくい型を洗い出したら、ぷよのフィールドの大きさで8往復の検索が必要だったw
フィールドが広くなればねずみ算式に検索回数も増える
他に検索ロボット式ってのも思い付いたけど、往復式でうまくいったから試してない
スレ違いだね、すまそ

413:名前は開発中のものです。
09/09/16 21:21:11 bWSg0bAs
いいかげんにSTG作るのやめてくれ。ホント飽きた。多すぎ
3D関係クソ簡単になってるから3D格闘ゲームとか作ってくれよ


414:名前は開発中のものです。
09/09/16 21:25:10 HkgXDNwX
自分でやった方が早いんじゃないか?簡単なら?

415:名前は開発中のものです。
09/09/16 21:28:36 bWSg0bAs
そういう意味じゃなくて、
もうこれ以上DXライブラリ使って似たようなゲームばかりみたくない、ってこと
せっかく何でもできるんだから別のゲーム作ってくれよ
そんなにお前らSTG好きなのかよ・・・と感じてしまう


416:名前は開発中のものです。
09/09/16 21:45:42 JD4xw+kI
STGプログラマは低脳

417:名前は開発中のものです。
09/09/16 21:47:16 HkgXDNwX
>>415
他ジャンルをみたいだと!ラトルズがアップを始めました。(最近は他のジャンルにも手を付けているが)
そんなジョークは良いとして(案外、3D版とかやりそう)、STGも良いけど、懐かしのアクションゲームとかも
需要はありそうだわな。

418:名前は開発中のものです。
09/09/16 21:57:25 mR3hYHMX
趣味で作るものまで他人に併せなきゃならないなんて

419:名前は開発中のものです。
09/09/16 22:02:10 MfrYy8zd
>>413>>415

それで仮に3D格闘ゲームばっかになったらどうするんだ?

420:名前は開発中のものです。
09/09/16 22:03:27 bWSg0bAs
意味がわからない・・・
現状はSTG90%超えといってもいいんだぜ・・・

421:名前は開発中のものです。
09/09/16 22:08:27 +iPrjktB
比較的簡単に作れるからだろーな
ノベルとかと同じ理由だろ

422:名前は開発中のものです。
09/09/16 22:08:58 3YjzzgXs
STGが9割
残り1割の内訳はAVG9割

423:名前は開発中のものです。
09/09/16 22:12:30 LOrbw0VH
>>420
とりあえずお前が作れ
話はそれからだ

424:名前は開発中のものです。
09/09/16 22:17:07 6VxYmGzW
正直今はSTG以外で遊んでないなぁ

425:名前は開発中のものです。
09/09/16 22:40:48 ggLGM3oL
わたしは画像を表示して軽く動かす所で永遠に足踏みですな

426:名前は開発中のものです。
09/09/16 23:25:09 ANRPrPTG
>>412
配列で力づくってのはいいなぁ
VBの頃はずいぶんとやったもんだ

427:名前は開発中のものです。
09/09/17 00:59:56 9AOKk/kk
趣味でやるプログラミングなんて自己満足だし
やりたいことをやってればいいんじゃないかなぁ

428:名前は開発中のものです。
09/09/17 01:13:38 Qqd7Dsyq
確かに2DSTGは似通った作品増え過ぎたよなぁ
システムも5番煎じで、自分で設計してるのか、サンプルソース写してるのか怪しい
せっかく3D使えるようになったんだから、そろそろ3D奥シューとかTPSとか作ってほしい

429:名前は開発中のものです。
09/09/17 01:14:41 4EXF+yRm
お前らが作ればいいんじゃないかな

430:名前は開発中のものです。
09/09/17 01:22:02 2KHzNp73
>>391
好きで作っているならイイじゃない
そういうひとのは凝ってて面白いし

431:名前は開発中のものです。
09/09/17 01:29:51 wneIbFgp
DXライブラリ3.00ってなんか
動画のFPS60の動画をLoadGraphで読んでPlayMovieToGraphとDrawGraphで使って
表示させるとカクカクで重い ちなみに2.25bではぬるぬる動く
(XP CPUはQ9650 グラボ ラデ3870)


あとSetAlwaysRunFlagをTRUEにしてプログラム実行してタスクにいれると
なんか垂直同期信号待ちが起きずに ウエイトがおかしくなりとんでもない速度になる
ちなみに2.25bではタスクに入れても通常速度で動いてた

432:名前は開発中のものです。
09/09/17 02:23:21 wneIbFgp
下の三行はWindows7で試したら普通の速度だった
つまりXPで起こる Vistaは持ってないから未確認

433:名前は開発中のものです。
09/09/17 07:42:44 i8BcAcRn
ドライバの問題だろ。馬鹿か

434:名前は開発中のものです。
09/09/17 07:56:53 rCqKI7/X
ふと、思ったんだけど
プレイ動画の録画用に、ゲーム側で毎秒の描画回数を半分に落とすオプションとか付けるのアリ?
あくまで描画のみで、実際の入力とかは通常のまま。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch