2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

DXライブラリ 総合スレッド その3

1 :名前は開発中のものです。:2009/03/31(火) 01:14:36 ID:IgyJcgap
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。

DXライブラリの詳細ついては
http://homepage2.nifty.com/natupaji/DxLib/
を参照して頂きたい。

DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

過去スレ:DXライブラリ 総合スレッド
      http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
     DXライブラリ 総合スレッド 2008
      http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/

2 :テンプレ:2009/03/31(火) 02:12:19 ID:kzwE1qo1
DXライブラリに関係のない、例えば「C++のlistはどう使えばいいの?」といった
質問はその言語の初心者質問スレで。
教えたがりの中級者も極力答えないように。

3 :名前は開発中のものです。:2009/03/31(火) 02:54:13 ID:9fS7KbI9
>>1


次スレがないのに埋めるなボケ

4 :名前は開発中のものです。:2009/03/31(火) 06:34:45 ID:JAbAC3Od
俺はテンプレの>>2を見て、失望した。
STLを質問するのは確かにスレ違いではあるが、
それを言うのなら以前のコンストラクタ処理の話だって、float/doubleの話だってもスレ違いとなってしまうだろうに。
さらに言うと、あたり判定の作り方や、マップチップの表示の仕方やFPS管理の仕方などもゲーム製作に必要な知識が、DXライブラリと直接関係無いとぶった切られてしまうよね。
本当にDXライブラリ関数の使い方"だけ"しか質問できなくなってしまう過疎スレにしたいん?

俺は、DXライブラリを使ってゲーム製作をしている人たちによるゲーム製作全般における質問もアリだとおもうのだが。
あくまでDXライブラリ利用前提でどう実装すべきなのか話を進めたい時も多いだろうし。

5 :名前は開発中のものです。:2009/03/31(火) 06:38:14 ID:I+gLZXeE
>>4
俺も同意だよ。
特に最後の2行のためのスレだと思ってたけど…。
DXライブラリ関数の使い方だけの質問スレだったら公式BBSの方が的確だしね。
結局このスレ、「公式行け」だけになっちゃう。

6 :名前は開発中のものです。:2009/03/31(火) 07:47:10 ID:rSL6H2VD
むしろ過疎でいい

7 :名前は開発中のものです。:2009/03/31(火) 09:32:48 ID:6nFXdL0R
公式掲示板ですら、プログラム全般の質問OKなのに。

8 :名前は開発中のものです。:2009/03/31(火) 09:46:42 ID:IkcCkAe5
程度の問題。STLの話も当り判定の話も別に問題ない。
前スレのlist君が異常だっただけ。

9 :名前は開発中のものです。:2009/03/31(火) 12:42:37 ID:VlKogdKM
>>4-5
お前らは公式で質問してろよ
なんで質問する事前提になってるんだ

10 :名前は開発中のものです。:2009/03/31(火) 12:53:06 ID:uUlB7HHu
>>9
じゃあ質問じゃないネタ提供よろしく

11 :名前は開発中のものです。:2009/03/31(火) 12:54:18 ID:6nFXdL0R
>前スレのlist君が異常だっただけ。

具体的にどう異常だった?

12 :名前は開発中のものです。:2009/03/31(火) 14:13:05 ID:IkcCkAe5
>>11
前スレ少しでも見れば分かる程度のことだけど。
見た上で聞いてるなら、君やlistくんが全て正しいってことでいい。

13 :名前は開発中のものです。:2009/03/31(火) 15:36:27 ID:EoCekJlW
10レスにも満たないやりとりで異常って言われても。

14 :名前は開発中のものです。:2009/03/31(火) 16:31:47 ID:IkcCkAe5
>>13
俺は知識披露してた年寄(ID:8c8Vy+u+、ID:wJL07IJT )のことを言ってるんだが。
>>920を見てlist君という表現を使った。紛らわしかったならすまん。

15 :名前は開発中のものです。:2009/03/31(火) 18:20:23 ID:3yX1QyX+
116 名前: 名前は開発中のものです。 Mail: sage 投稿日: 2009/02/07(土) 16:18:41 ID: Pn1Dl7Zh
アフォBlog C言語勉強したけどゲーム作れないぞコラって人向けに
http://afoafodayo.blog84.fc2.com/blog-entry-549.html

やっとみつけた
はてなブックマークの検索性の悪さは異常・・・

16 :名前は開発中のものです。:2009/03/31(火) 18:54:09 ID:I/qO2uGs
>>14
list君と呼ばれたびっくりした。自分が年寄りの老害です。
知識披露するにも前>>920は、前>>916で聞かれたから素直に答えただけで……。
長文が目についてウザいのは判るが、聞かれたことに答えてるだけで話題は(自分からは)逸脱してないとおもうけどなあ。
自称中級者が懇切丁寧に説明するのはこのスレじゃアウトなん?
正直叩かれるのにビックリだ。

17 :名前は開発中のものです。:2009/03/31(火) 19:04:48 ID:clln3x8F
GetHitKeyStateAllを手動でやってたおれバカス

18 :名前は開発中のものです。:2009/03/31(火) 19:11:27 ID:EoCekJlW
多分、流れ的に文句言ってるのは一人だと思うんだが
なぜそこまで否定するのかが解らない。
普段ならスルーされる程度の話題だと思うんだけど。

19 :名前は開発中のものです。:2009/03/31(火) 20:47:39 ID:Ad7RXl/L
タイミングの問題じゃね?
スレ立てじゃない>2が勝手にテンプレとか言って持ち越しにしただけ。

20 :名前は開発中のものです。:2009/03/31(火) 21:13:43 ID:Es/JEStY
2はテンプレじゃないから無視でいいよ

21 :名前は開発中のものです。:2009/03/31(火) 22:29:49 ID:9fS7KbI9
テンプレもちょっと修正しておこうか

--
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。

DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

【公式】
http://homepage2.nifty.com/natupaji/DxLib/

【過去スレ】
DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/

22 :名前は開発中のものです。:2009/03/31(火) 23:50:48 ID:yOP/w+uJ
さすがに早すぎて次作る時に見逃しそうだけどw

23 :名前は開発中のものです。:2009/04/01(水) 02:25:50 ID:fUEkL36W
>>16
気にしなくていいと思うよ。
ためになるレスだったし、スレ違いでもなんでもないと思うよ。
DXライブラリを取り巻く事って、ゲーム作りのちょっとしたTIPSなんかも含むと思うし、
それにまつわる雑談なんかもいいと思うよ。
それこそDXライブラリ限定だとしたら公式がある限り誰もこのスレを使う必要ないしね。

24 :名前は開発中のものです。:2009/04/01(水) 07:29:47 ID:99TD3Xse
前スレ916であるところの私は、ポインタはおろかクラスすら使った事なかったので、
せっかく教えていただいた知識も役立ててませんけどね……。

ああ、でもクラスは勉強して使ってみました。けど三行目がさっぱりわからず
結局1フレームに一回、自前でソートさせてます。

25 :名前は開発中のものです。:2009/04/01(水) 07:29:56 ID:zX+vyCNM
>>16
あんた最高にかっこいいぜ。

26 :名前は開発中のものです。:2009/04/01(水) 09:02:30 ID:k4OaMNtU
もうDXライブラリのことなんかどうでもいいんだろ?
正直に言えよおまいら

27 :名前は開発中のものです。:2009/04/01(水) 17:21:42 ID:BYfton9F
up or downのゲームすら作れません

28 :名前は開発中のものです。:2009/04/01(水) 17:31:54 ID:WMtkg65d
まず、最初に
up or downのゲーム を日本語で説明する文章を書きます。



29 :名前は開発中のものです。:2009/04/01(水) 18:01:07 ID:BYfton9F
>>27だけど、確立チェッカー作って眺めてるだけで満足だわ
勝率と敗北率がお互い50%絶対超えないし、引き分け率も0.074-0.075の間いったり来たり。

数学やっぱ楽しいです^p^

30 :名前は開発中のものです。:2009/04/01(水) 18:22:56 ID:iMcacUMw
>>27

グー チョキ パーの画像作って
じゃんけんぽい ズコ!ってゲームつくるんだ

31 :名前は開発中のものです。:2009/04/01(水) 18:30:15 ID:OtGOIqcO
やっぴー
も必要ではなかろうか

32 :名前は開発中のものです。:2009/04/01(水) 18:43:39 ID:hayLCRBv
>4月3日にたぶんあるものを公表します。楽しみにしておいてください。
>...COMING SOON

>なんか新聞社を敵に回してしまったかもしれません。あのサイトに数日前に導入した機能が・・・なにかあったらなにかあったと思ってください

何があったんだJEX氏

33 :名前は開発中のものです。:2009/04/01(水) 20:24:21 ID:BYfton9F
http://www8.uploader.jp/user/notorious/images/notorious_uljp00320.jpg

もっと良いプログラム組めるようになりてぇ
次はじゃんけんゲームでも作ってみるか

34 :名前は開発中のものです。:2009/04/01(水) 20:45:45 ID:LaqgGHZH
>>33
あの、、、1点だけ失礼します。
×確立
○確率

35 :名前は開発中のものです。:2009/04/01(水) 22:03:55 ID:iMcacUMw
>>34

おっとIMEの悪口はそこまでだ



36 :名前は開発中のものです。:2009/04/01(水) 23:29:46 ID:BYfton9F
やだ・・・恥ずかしい////

37 :名前は開発中のものです。:2009/04/02(木) 00:11:44 ID:CktrGb4U
>>35
本当にIMEたんのこと想っているなら、誤変換をIMEたんのせいにしないであげて。

38 :名前は開発中のものです。:2009/04/02(木) 17:53:48 ID:QCCv4XDG
0から99の数字を高速で+1させていきボタン押した時のタイミングに出た
数字で内部判定すれば自力抽選みたいなことができる

子供のころあったゲーセンのメダルゲームのジャンケンマン初期のやつは
またコレがとんでもない上記のプログラムをさらに単純にしたプログラムで
なんとデモ画面のグーチョキパーの動きで勝率8割まで攻略可能だったという
(8割というのは10円いれる時の物理的なタイミングの誤差。よく10円つまるしww)
http://dgm.hmc6.net/museum/jyankenman.html


39 :名前は開発中のものです。:2009/04/02(木) 22:59:56 ID:fVGveLIS
確立の多さは異常

40 :名前は開発中のものです。:2009/04/02(木) 23:26:05 ID:QVNrnR8y
以外もな。

41 :名前は開発中のものです。:2009/04/02(木) 23:49:51 ID:libAlu/0
定番の誤変換に突っ込むというお約束なのか、それともマジ指摘なのか。
いつも判断つかないんだが、何か良い方法は無いだろうか。

42 :名前は開発中のものです。:2009/04/02(木) 23:53:46 ID:fVGveLIS
マジだぜ。
概出と違って。

43 :名前は開発中のものです。:2009/04/03(金) 00:05:19 ID:XCYlTU58
>42
そうか、あれってマジなのか。
なんだか見るたびに変な応酬があって、うんざりしてたんだ。

44 :名前は開発中のものです。:2009/04/03(金) 00:16:55 ID:jC+E2iBn
普通に書けば全て解決

45 :名前は開発中のものです。:2009/04/03(金) 02:10:31 ID:7QUZderU
2.25bを使いたいけどBCC5.5な俺涙目w

46 :名前は開発中のものです。:2009/04/03(金) 02:11:05 ID:jC+E2iBn
VCを導入しようぜ。タダなんだし。

47 :名前は開発中のものです。:2009/04/03(金) 16:55:04 ID:GX2/ISHC
10年も前のコンパイラ(BCC)を使い続ける理由を教えてくれ

48 :名前は開発中のものです。:2009/04/03(金) 18:32:18 ID:1bPcLAM2
SP2をいれるとパソコンろくに動かない

49 :名前は開発中のものです。:2009/04/03(金) 18:37:35 ID:UxNIEp1w
そろそろPCの買い替え時だと思われ

50 :名前は開発中のものです。:2009/04/03(金) 19:01:42 ID:sN5oQCLD
今日、公表される何かを楽しみに待っているのですが。。。
依然、何も無し。。。

51 :名前は開発中のものです。:2009/04/03(金) 20:16:20 ID:s4gdwShB
完全に初心者向け雑談スレになったな

52 :名前は開発中のものです。:2009/04/03(金) 20:20:44 ID:bOoPhqNd
初心者向けのライブラリだから仕方がない

53 :名前は開発中のものです。:2009/04/03(金) 20:21:34 ID:B6jkiksS
なるほど。PCが重いからBCC使ってるわけね。若干斜め上の意見だった。
統合環境無くても、bcc.exeの代わりにcl.exe使えばいいんじゃない?

54 :名前は開発中のものです。:2009/04/03(金) 20:23:00 ID:DsLE17Ac
そこまで他人の環境に口を出す理由を知りたい。

55 :名前は開発中のものです。:2009/04/03(金) 20:24:44 ID:B6jkiksS
>>54

>>45を読んでくれ

56 :名前は開発中のものです。:2009/04/03(金) 22:33:16 ID:jC+E2iBn
流れを読まずにネタ。
VCでDXライブラリ使っているとインテリセンスが働かなくて不便だなと感じるようになった。
自分で関数やクラスを作るようになってからは。

57 :名前は開発中のものです。:2009/04/03(金) 23:17:11 ID:XCYlTU58
最後にVC触ってから何年も経ってるから記憶は曖昧だし、
当時使ってたのがVC6だから、出来るかどうかは分からないが。

DXライブラリのソースを読み込む(コンパイルも?)と、内部用の辞書ファイルが生成される。
その辞書ファイルを、自分のプロジェクトのところにコピペ(上書き)。
こうすることでDXライブラリの関数群も、インテリセンスが使えたと思う。
もちろん自前の関数も問題なく使える。

辞書ファイルの拡張子はncbとかだったと思うが自信は無い。

58 :名前は開発中のものです。:2009/04/03(金) 23:45:57 ID:jC+E2iBn
>>57
thx
ちょっと試してみる

59 :名前は開発中のものです。:2009/04/04(土) 00:30:58 ID:zQfs6Ss5
VS2008だけどDXライブラリの関数も自前関数もインテリセンス働くよ。
もちろん働かないときもあるけどそれはVC++の気分次第っていうのはちょっとした常識じゃない?
そういう時は何も考えずにまずncb消す。

60 :名前は開発中のものです。:2009/04/04(土) 00:34:18 ID:MwhC2F5h
あら、そうなの。
VC2003だからかな。
2008の無料の奴に替えよかな

61 :名前は開発中のものです。:2009/04/04(土) 00:38:22 ID:bhHC3g+R
そだな2003はインテリ働かないよ

62 :名前は開発中のものです。:2009/04/04(土) 03:27:09 ID:zQfs6Ss5
いや多分VC++6の頃からVC++のインテリセンスは進化してないと思うよ。多分。
VC++のインテリセンスに関してはあまり期待しないっていうのが普通じゃないかな。
2010ではインテリセンスも含めてVC++とかMFCにも力入れるみたいだね。(2008SP1もMFCに力入れてきたし)
だから多分2003から2008にしても変わらないと思うよ。
まあまずは終了させてncb消して起動しなおしてごらん。

63 :名前は開発中のものです。:2009/04/04(土) 03:43:24 ID:NVBO+V4R
>>62
知ったかぶり乙

64 :名前は開発中のものです。:2009/04/04(土) 08:27:41 ID:zQfs6Ss5
>>63
知ってるなら教えてあげなよ。
俺は経験談と知ってる範囲で答えたまで。

65 :名前は開発中のものです。:2009/04/04(土) 09:53:30 ID:eurKE9M4
1人ほど煽り荒らしが居るな

66 :名前は開発中のものです。:2009/04/04(土) 13:21:59 ID:NVBO+V4R
>>64
VS2005からヘッダに書いてあるだけでインテリセンスが効く
59の書き込みでインテリセンス効くって書いてあるんだから
確かめもせずに「多分」程度の確証で他人の書き込みを否定するのってどうよ?

67 :名前は開発中のものです。:2009/04/04(土) 13:27:27 ID:NVBO+V4R
なんだ59と62の書き込みは同じ人か、勘違いした
・VC6〜VC2003 ヘッダに書いてあるだけじゃインテリセンス効かない
・VC2005〜 ヘッダに書いてあるだけでインテリセンス効く

68 :名前は開発中のものです。:2009/04/04(土) 13:54:17 ID:2TEB3sSo
前ここにうpされてた奴がニコニコに上がってた

69 :名前は開発中のものです。:2009/04/05(日) 17:39:32 ID:8VF6BH4E
雪が降ってるエフェクト出したいのですが、
実装ほうほうがさっぱりなのですが……。

ランダムに画像を表示させても少しも雪っぽくなりませんでした……。

70 :名前は開発中のものです。:2009/04/05(日) 18:09:44 ID:oraQAGe0
>69
サンプルプログラムのパーティクル基本が参考になると思われ。

71 :名前は開発中のものです。:2009/04/05(日) 18:12:03 ID:8VF6BH4E
>>70
ありがとうございます!

72 :名前は開発中のものです。:2009/04/05(日) 21:16:09 ID:ey93yQqE
>>69
ttp://toku.xdisc.net/cgi/up2/oiu/xs8571.zip
自分のプログラムに組み込むついでにやってみた

73 :名前は開発中のものです。:2009/04/05(日) 21:26:22 ID:jzXObq/Y
>72
降ってる最中に移動量や方向は変わらないのか。

透明度が変わるのは面白いな。
あとたまに、真横や上方向に雪が飛んでくんだがw

74 :名前は開発中のものです。:2009/04/05(日) 21:49:08 ID:8VF6BH4E
>>72
おおサンクス。
C#使ってるからそのまま使えないのが残念……。
つかこれ勝手に使って良い?

75 :名前は開発中のものです。:2009/04/05(日) 22:41:49 ID:ey93yQqE
>>73
変な方向に行くのは元のアルゴリズムが花びらだった名残だったり

>>74
どうぞ

76 :名前は開発中のものです。:2009/04/05(日) 22:53:50 ID:HuaUBP84
>>72
綺麗だなぁ。
横だが自分も使わせて貰う。

77 :名前は開発中のものです。:2009/04/05(日) 23:24:32 ID:8VF6BH4E
>>75
thx!

78 :名前は開発中のものです。:2009/04/11(土) 23:15:22 ID:wcB4somL
もうDXライブラリ3Dに頼る必要すらなくなった
次はシェーダーについて学ぼう

79 :名前は開発中のものです。:2009/04/12(日) 16:12:18 ID:/tRhsb/a
ScreenFlip()の重さってどうにかならないの?
http://dixq.net/g/#s5
↑これ導入しても無理だった

80 :名前は開発中のものです。:2009/04/12(日) 17:11:30 ID:lSUbUSsj
馬鹿は発言するな

81 :名前は開発中のものです。:2009/04/12(日) 17:13:14 ID:mpmptjcJ
これってドレよ。

てかScreenFlipが重いなんて話あったっけ?

単に君の作ってるプログラムが遅くて、60FPSを保ててないのに
垂直同期信号待ちをさせたままって話じゃなくて?

82 :名前は開発中のものです。:2009/04/12(日) 17:17:52 ID:XXYdX/zb
シェーダーって使えるの?

83 :名前は開発中のものです。:2009/04/12(日) 17:40:07 ID:29TC1pPK
プログラム優先度変更オヌヌメ

84 :名前は開発中のものです。:2009/04/12(日) 17:49:43 ID:9LgVxSaT
ノートPCでVistaだったら俺と一緒。
実行ファイルのプロパティ開いて、「互換性」→「WindowsXP SP2互換」にチェックを入れてみる。
もしかしたら幸せになれるかもしれない。

85 :名前は開発中のものです。:2009/04/12(日) 17:53:25 ID:43thkbhn
>>79
遅くするための処理を導入して重くなったとはどういうことなんだ?

86 :名前は開発中のものです。:2009/04/12(日) 19:31:53 ID:4cs7HNP3
>>79
たぶん初心者っぽいからこんなことをあえて言うけど
まずリフレッシュレートとプログラムのfpsを比較しないとね

87 :名前は開発中のものです。:2009/04/13(月) 00:15:55 ID:GN8f0M0n
ここぞとばかりに食いつく初心者たちの群れ

88 :名前は開発中のものです。:2009/04/15(水) 15:18:06 ID:I8P/Rh48
そういやDXライブラリがDirectX9ベースに移植してるって話はどうなった?
あのコード量を移植するのは並大抵じゃないとおもうが、作者ガンバレ!

89 :名前は開発中のものです。:2009/04/15(水) 16:13:43 ID:3g1BJoyH
うーん、>>79 じゃないけどただ ScreenFlip してるだけで CPU 使用率が 60% くらいになるのはなんで?
Pen4 の 1.6GHz だけど

90 :名前は開発中のものです。:2009/04/15(水) 16:37:47 ID:I8P/Rh48
それはScreenFlipの仕様。VSyncがくるまで待機するんだが、その待機時間もCPU使用率に含まれる。(実質アイドリングループなのだが)
CPUが100%になるのがいやならVsync待ちを切ればいい。(ティアリングが発生するし、ゲームの速度も変わってしまう)

正しい設計はVsync待ちは有効で、なおかつFPS管理をし60fpsになるようにフレーム毎に適度にsleepを入れること。


91 :名前は開発中のものです。:2009/04/15(水) 18:32:01 ID:lTpXHjBQ
1か所sleepするだけでもだいぶ変わりそうだねぇ

92 :名前は開発中のものです。:2009/04/15(水) 20:06:35 ID:OTuGa66k
>正しい設計はVsync待ちは有効で、なおかつFPS管理をし60fpsになるようにフレーム毎に適度にsleepを入れること。

モニタのリフレッシュレートが60でない時はどうなるのかな。

93 :名前は開発中のものです。:2009/04/15(水) 20:43:14 ID:1cQMYjlB
公式より引用:
>前回の ScreenFlip から 10ミリ秒以下しか時間が経過していない場合のみ Sleep で処理を一時停止するようにしています

>>92
60fpsになるように管理してるんだから60fpsになるだろーがw

94 :名前は開発中のものです。:2009/04/15(水) 21:18:20 ID:I8P/Rh48
>>93
フルスクリーンにできる or デフォルトのリフレッシュレートが50 であるのであれば、Vsync有効。
ウィンドウモードでリフレッシュレートが60以外の場合は、ティアリングを犠牲にしてVsync切る。
(ウィンドウモードで垂直同期に合わせてしまうとティアリングの線が毎フレーム同じようなところにできてしまって、逆にきたなくなってしまう)

現状、DirectX7ベースのDXライブラリではウィンドウモードでのVsync無効だから、どうしようもないぜ。

95 :名前は開発中のものです。:2009/04/15(水) 21:20:12 ID:I8P/Rh48
すまん。誤字がすごい。レスは>>92へだ。
あと、50じゃなくて60。

96 :名前は開発中のものです。:2009/04/15(水) 21:20:56 ID:lTpXHjBQ
ん? 50?

97 :名前は開発中のものです。:2009/04/15(水) 21:21:42 ID:lTpXHjBQ
リロードしろ俺 orz

98 :名前は開発中のものです。:2009/04/15(水) 21:43:40 ID:OTuGa66k
>>60fpsになるように管理してるんだから60fpsになるだろーがw

だからどう管理するのかなーと。

単純に「1/60秒 - 前回のScreenFlipから経過した時間」でSleepかけると
モニタのリフレッシュレートが70の時、いざScreenFlipしようとした時には
すでに1フレーム経過しちゃうんだから、次のVsync信号待ちまで待っちゃうよね。
そしたら1フレーム 2/70 秒になって 35FPSって事なっちゃうのでは。

いや、当然こんな事解決する方法はあるんだろうけど
俺の頭じゃ難しくて。

99 :名前は開発中のものです。:2009/04/16(木) 02:52:38 ID:12a1chsH
>>94
>ウィンドウモードでのVsync無効だから

って言われるけどウィンドウモードで、どう見てもScreenFlipでVsync待った方が明らかにティアリングなしできれいなんだがなぜ?
リフレッシュレートを変えても同じ。
ただ、fps調整無しでリフレッシュレートのfpsになるように単純にVsyncを待った場合、
ウィンドウモードよりフルスクリーンの方が明らかに滑らか(高fps)を体感できる。もうよくわかんない。


100 :名前は開発中のものです。:2009/04/16(木) 02:58:08 ID:uc3ezfKA
70の時は1/70だから1/60よりも速いからその分だけ待てばいいのでは

101 :名前は開発中のものです。:2009/04/16(木) 05:02:47 ID:XS+5u9bO
>>99
OSはVistaかい?
VistaだとDesktopWindowManagerが自動でティアリング防止するように描画順を待機するようになるからティアリング無いかもね。(未検証でゴメン)
詳しくはここ。http://d.hatena.ne.jp/enra/20081014#p2
で、XPでDirectX7環境だとティアリングが発生します。でもXPでもDirectX9が検出できた場合に限ってScreenFlipで垂直同期待ちになる模様。
(もしくはティアリングが発生していても、線がウィンドウの領域と被ってないので見えてないだけかもしれない)

102 :名前は開発中のものです。:2009/04/16(木) 05:18:57 ID:WR6HuXg0
>>90
なるほどなるほど
VSync まちでいろいろやってるループより sleep の方が軽いのは当然てことか

103 :名前は開発中のものです。:2009/04/16(木) 05:27:06 ID:12a1chsH
>>101
2000/XPです。
下方向に高速スクロールする画面で、Vsync同期/非同期を切り替えられるようにしてます。
明らかに違いが出てきますね。
ティアリングに敏感な人なら確実に分かると思います。
同期してないとガリガリしてるような気がします。

でも、フルスクリーンの方がさら〜って感じでさらにきれいに見えるのも謎。
60Hzと70Hzじゃ描画回数が違うので当然なんだけど。(見た目にも描画回数が多いのがはっきりわかる)
でもこれはウィンドウモードとフルスクリーンじゃ絵柄自体の大きさが違うので錯覚してるだけかも。

>でもXPでもDirectX9が検出できた場合に限ってScreenFlipで垂直同期待ちになる模様。

これはかなり興味深いですね。初めて聞きました。
ウィンドウモードでも間違いなく同期してると思ってる派なので調べてみます。

104 :名前は開発中のものです。:2009/04/16(木) 15:55:17 ID:U7PVHoMj
>>100
>70の時は1/70だから1/60よりも速いからその分だけ待てばいいのでは

そしたら70FPSになるんじゃないか。

70FPSは60FPSより1秒間に10フレーム多い事になるから、
6フレームごとに1回、空待ちさせれば60FPSを実現させる事はできるけど、
ゲームの処理時間が、「60FPSだと余裕があるが、70FPSだと足りない」
って時に処理落ちがひどくなる。

105 :名前は開発中のものです。:2009/04/16(木) 19:22:11 ID:/YbqE5Rh
14歳からはじめるC++ わくわくゲームプログラミング教室

って本に間違いってないですか?
何度書き直しても、サンプルプログラムにエラーが発生します
(P118です)

106 :名前は開発中のものです。:2009/04/16(木) 19:37:00 ID:D5YSrYi0
なにそれこわい

よくわからないけど、4章-01の最後、P125まで全部入れてひとつのプログラムだぞ。
・main.cpp
・gameframe.h
・gameframe.cpp

107 :名前は開発中のものです。:2009/04/16(木) 19:41:32 ID:D5YSrYi0
なんかわかった気がする。

gameframe.h の先頭で、#include "DxLib.h" 宣言しておかないとむりぽ

これ、本文に書いてない。
P120上の画面写真のプログラムには、しれっと入ってるけど。

108 :名前は開発中のものです。:2009/04/16(木) 20:44:04 ID:uc3ezfKA
エラーが発生したならその内容も書いておかないと

109 :名前は開発中のものです。:2009/04/16(木) 23:14:39 ID:BmH0FmoL
その本動画あったよ
誤植多いそうです

110 :名前は開発中のものです。:2009/04/16(木) 23:53:51 ID:LfSelEBA
確かに、誤植は多いな。まぁ、ソースも付いているんだからWinMergeを使うのも勉強だと思えばいい。

111 :名前は開発中のものです。:2009/04/17(金) 00:52:02 ID:EZBCVXFE
>>104
int nowtime = GetNowCount();
static int oldtime = 0;
static int frametime = 1000 / 60

int diftime = nowtime - oldtime;

while(1)
{
if(diftime >= frametime)
{
oldtime = nowtime;
break;
}
else
{
Sleep(1);
nowtime = GetNowCount();
diftime = nowtime - oldtime;
}
}
こんな感じでScreenFlip()の前に書いてみて。
今ちょっと60Hz以外選べない環境なので今は確かめられないけど、
たしか以前試したときはちゃんと60Hz以外でも60fps出てたはずだよ。

112 :名前は開発中のものです。:2009/04/17(金) 05:23:57 ID:WaZv4/Kc
たぶん>>104が言わんとしていることと、>>111が出したコードには相関性が無い

113 :名前は開発中のものです。:2009/04/17(金) 05:51:08 ID:Zvoaz6Vb
>112
俺もそんな気がしてきた

114 :名前は開発中のものです。:2009/04/17(金) 09:10:19 ID:Ulw/lN4/
今回の流れで試しに自作ゲームのタイトルのキー入力待ちでSleep(1)入れてみたら
CPU使用率100%から0%になった/(^o^)\ナンテコッタイ

例えばタイトル画面とか即時性のない入力待ちの時って
ちょっと長めにSleep入れたりするほうがいいのかな?
20msぐらいなら問題ないのだろうか・・・

115 :名前は開発中のものです。:2009/04/17(金) 09:45:55 ID:0V/Re1GH
>例えばタイトル画面とか即時性のない入力待ちの時って
>ちょっと長めにSleep入れたりするほうがいいのかな?

少なくとも俺は入れてる。

>20msぐらいなら問題ないのだろうか・・・

全然問題ないと思う。
もっと入れてもいいくらいでしょ。
実際にやってみて自分でストレス感じるなら減らせばいい。

116 :名前は開発中のものです。:2009/04/17(金) 13:46:09 ID:WaZv4/Kc
入れすぎると、キー入力が飛ばされる可能性もあるので、注意したほうがいいよ。
20msぐらいなら大丈夫だけどね。

117 :名前は開発中のものです。:2009/04/17(金) 16:20:15 ID:Zvoaz6Vb
むしろ、何故キー入力待ちだけでループさせてることに突っ込もうぜ

118 :名前は開発中のものです。:2009/04/17(金) 19:34:30 ID:LNYxAbHW
タイトル画面が動くゲームもあるのだよ
あと音楽のループ再生する時はScreenFlipを毎フレーム呼ぶ必要があるみたいだし

119 :名前は開発中のものです。:2009/04/17(金) 20:21:09 ID:jcPGGnUF
>>111はオレ的には神です
マジサンクス

120 :名前は開発中のものです。:2009/04/17(金) 20:22:40 ID:xbUmRi3d
WaitKey(笑)

121 :名前は開発中のものです。:2009/04/17(金) 20:22:58 ID:erDEgGZV
まぁ少なくともProcessMessage()はいれておくべきだよな。

122 :名前は開発中のものです。:2009/04/17(金) 22:03:28 ID:EZBCVXFE
>>118
音楽再生とScreenFlipは関係ないと思うよ。
CPUが100%になるのは明らかに異常だからちゃんとProcessMessage()かSleep()出来てるか確かめた方がいいよ。
たぶんウィンドウ自体をドラッグすらままならない状態だと思うから。
OSにタスクさえ返してあげられてればCPUが多少高くても気にしなくていいと思うけどなぁ。
ゲームって常駐させたり多重起動させたりするものじゃないし。

123 :名前は開発中のものです。:2009/04/17(金) 22:17:35 ID:ZoeUfmZ7
ProcessMessageさえ入れとけば大丈夫だと思ってた

124 :118:2009/04/18(土) 02:18:14 ID:k17DhjXo
うへあーw
素で間違えてたorz
何と言う勘違い 恥ずかしい限りです しばらくROMってます

125 :名前は開発中のものです。:2009/04/18(土) 21:37:09 ID:okbqytId
ディスプレイ2台の環境でウィンドウを左右に振ると
片側のディスプレイだけ明らかに画面がぼやけるんだけど
DirectXの設定かビデオカードの設定がおかしいんだよなこれ?

126 :名前は開発中のものです。:2009/04/18(土) 22:23:48 ID:okbqytId
言い忘れ
SetEmurationやSetGraphModeで画面を引き延ばすと起こるっぽい
ディスプレイの設定なのかよく分からん・・・

127 :名前は開発中のものです。:2009/04/19(日) 00:37:44 ID:BefQR+3B
ディスプレイ二台の環境使ってる人はそういないだろうから
同意求められても答えられる人ほとんどいないんじゃない?

128 :名前は開発中のものです。:2009/04/20(月) 22:52:47 ID:eX32oi4P
保守

129 :名前は開発中のものです。:2009/04/21(火) 15:00:56 ID:UkM4PCid
最初 ScreenFlipとScreenCopyの違いがわからんかった
ScreenFlipは裏画面と表の内容を交換するで
ScreenCopyは裏画面の内容を表に上書きコピーなんだったんだなー

130 :名前は開発中のものです。:2009/04/24(金) 01:45:21 ID:Zjz+Ahwz
C#の練習にDXライブラリ使ってみよう

131 :名前は開発中のものです。:2009/04/25(土) 02:57:38 ID:jgu2I7ss
>>125
シャギるな。俺もだ。
設定次第ではどうにかなるのかもしれんけど。

どっちにせよわざわざウィンドウを引っ張って画面を跨らせることもなかろう。

132 :名前は開発中のものです。:2009/04/27(月) 18:31:23 ID:FIDn8lAk
かっこいい爆発がつくれない

133 :名前は開発中のものです。:2009/04/27(月) 21:58:22 ID:z25pzrXj
それはスレチ

134 :名前は開発中のものです。:2009/04/28(火) 00:04:23 ID:eksjqOvu
DXライブラリの本を読んだけど、とても14歳から始めるような話じゃねーな
大学生が入門書に読んでちょうどいいレベルだろコレ


135 :名前は開発中のものです。:2009/04/28(火) 00:10:39 ID:HkJlrRjH
14歳から始めて30歳くらいで読み終わるっていう意味じゃないかな

136 :名前は開発中のものです。:2009/04/28(火) 00:34:07 ID:m4cMSkq6
14歳っつーと中二くらいか。
俺はBASICがせいぜいだったが、
マシン語とかやってる友人もいたし
決して無理じゃないだろう。

137 :名前は開発中のものです。:2009/04/28(火) 00:45:01 ID:NnZtX6wz
やっぱ0x14歳だったか

138 :名前は開発中のものです。:2009/04/28(火) 01:53:08 ID:OFMPoMrl
むしろ厨二がガツンとやられるための本

139 :名前は開発中のものです。:2009/04/28(火) 08:20:28 ID:6tVcbqW6
14歳の新版(VS2008対応版)は、3章までと4章以降のレベル差がひどい。
簡単に作れるように自前ライブラリ用意してるけど
そのせいでDxLib関数なのか自前関数なのかごっちゃになってるし。

間に20章ぐらい入れて10本以上ゲーム作って、本の厚さが倍になってもいいぐらい。

140 :名前は開発中のものです。:2009/04/28(火) 09:19:39 ID:nBjz8W9W
>>139
そしたら、値段も倍になるがな

141 :名前は開発中のものです。:2009/04/28(火) 10:17:56 ID:eksjqOvu
世間一般の流れ

小学生 ゲーム遊ぶのおもしれえwww
中学生 ツクールおもしれえwww
高校生 VisualBASICとかC言語を始めるか
大学生 C++とかJAVAで2Dゲームでも作るか
20代 3Dゲーム、オンラインゲーム作るよ!
30代 何でこんな仕事を選んだんだろう……
40代 クビになった。新しい仕事探すか……
50代 息子よ。おれは昔、ゲーム開発をやっててなあ
60代 年金安いのう……
70代 孫よ。わしは昔、ゲーム開発を(ry
80代 開発の仲間……もうみんなこの世におらん……
90代 ゲーム? 何のことかいね
100代 「おじいちゃん! それはご飯じゃないよ、ゲームだよ!」
晩年 「おじいちゃんは亡くなる前に、大好きな『ハレハレユカイ』を唄っていました」


142 :名前は開発中のものです。:2009/04/28(火) 10:28:58 ID:FvUt88Xp
大往生だな。いい人生だった

143 :名前は開発中のものです。:2009/04/28(火) 16:15:43 ID:6TTz0S/c
>30代 何でこんな仕事を選んだんだろう……

いまここ

144 :名前は開発中のものです。:2009/04/28(火) 22:07:41 ID:MfOPTYG9
なんか画面のドット範囲が640×480で固定されてるんですが
これいじる方法はDXライブラリには無いんですか?

145 :名前は開発中のものです。:2009/04/28(火) 22:15:25 ID:GpFUP3xe
公式のリファレンスくらい嫁と言いたいが
つSetGraphMode

146 :名前は開発中のものです。:2009/04/28(火) 22:24:39 ID:MfOPTYG9
>>145
ありがとうorz
すみません。ウインドウモードの項ばかり探してました


147 :名前は開発中のものです。:2009/04/28(火) 23:44:24 ID:AAXsWLBJ
「これいじる方法はDXライブラリには無いんですか?」って訊くくらいなら全部読めよ!

148 :名前は開発中のものです。:2009/04/29(水) 00:04:40 ID:fznxD5WL
>>143
やあ、俺

149 :名前は開発中のものです。:2009/04/29(水) 00:57:49 ID:8JDzhdlg
>21歳 卒業とともに小さな会社に一人だけ入社
     何でこんな仕事を選んだんだろう……相談する同僚がいない

>30歳 ←いまここ




150 :名前は開発中のものです。:2009/04/29(水) 12:12:40 ID:0KNrHYhz
小学生 ゲーム好きだけどファミコン買ってもらえなかったから友達んちに通ってうざがられる
中学生 PC98買ってもらってtakeruとかでゲーム買ったりベーマガ買ってBASICで遊ぶ
高校生 女遊びでPCなんていじらない
大学生 にはならずにバイト生活。PCなんて無縁
20代   実家に帰るとWindows98とネットがあったので暇だったのでいじってみる。
      ここでwebの世界やプログラミング熱再発。色々物色する。
      そしてそのまま引きこもり。
30代   ←もうすぐここ


151 :名前は開発中のものです。:2009/04/29(水) 12:23:18 ID:Id8MNKk3
それは報告しなくてもいいです

152 :名前は開発中のものです。:2009/04/29(水) 13:15:43 ID:0KNrHYhz
してもいいです

153 :名前は開発中のものです。:2009/04/29(水) 14:34:34 ID:DcEbzAT6
そうですか

154 :名前は開発中のものです。:2009/04/29(水) 14:49:56 ID:eqm+L+6k
そうでづよ

155 :名前は開発中のものです。:2009/04/29(水) 15:17:03 ID:GO8Ds4lj
そうでちゅわ

156 :名前は開発中のものです。:2009/04/29(水) 19:22:33 ID:sy8jjFeI
プログラマーは35歳で引退だからな
プランナーや絵描きなどで生きられるだけの資産がなければ、そのままスクラップだ
ゲーム会社も高齢化が進んでて、新しい概念が作れなくなってきている


157 :名前は開発中のものです。:2009/04/29(水) 19:25:35 ID:eqm+L+6k
なぜ35なのかというと、部下ができたりしてプログラムどころじゃなくなるから。
新しい概念が作れないのはゆとりが増えたから

158 :名前は開発中のものです。:2009/04/29(水) 20:32:14 ID:2b50vk1R
それでも将来は……。

159 :名前は開発中のものです。:2009/04/29(水) 21:37:02 ID:Dpfb2ylv
それはスレ違い

160 :名前は開発中のものです。:2009/04/30(木) 00:27:05 ID:JN4PBkev
ドラッグ&ドロップで音楽を再生したいのですが
DXライブラリで実現できますでしょうか?
GetDragFilePath()の使い方がいまいちわかりません。
ご教授お願い致します_ _

161 :名前は開発中のものです。:2009/04/30(木) 00:58:25 ID:qZvDrEy3
>>160
D&Dに関しては、GetDragFilePathでググって出てきたページの内容を見る限り、
この関数は毎フレーム呼び出し、戻り値はD&Dされていれば0、されていなければ-1となる。
D&Dされてたら、引数で渡したバッファにD&Dされたファイルのパスが入ってくる。
ちなみにD&Dされたファイルの個数はGetDragFileNum()で取得できる。
複数ある場合は、その数だけGetDragFilePathを呼べば1つずつファイルパスを取得できる。
ちなみにこれらは毎フレームに一度DragFileInfoClear()で初期化してから使うべき。

ただ情報が古い可能性もあるし、実際試したわけじゃないから、
今のDXライブラリでできるかどうかは知らない。

162 :名前は開発中のものです。:2009/04/30(木) 01:05:34 ID:qZvDrEy3
読み返して気付いたが、ひどい日本語だ・・・まぁいいや

163 :名前は開発中のものです。:2009/04/30(木) 01:56:07 ID:JGk3snwA
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow){
ChangeWindowMode(TRUE);
SetMainWindowText("(´・ω・`)");
if(DxLib_Init() == -1 ){return -1;}
int open,tdn,cc;char file[256];
SetDragFileValidFlag(TRUE);SetDrawScreen(DX_SCREEN_BACK);SetFontSize(32);
while(ProcessMessage()==0){
ClearDrawScreen();
open=GetDragFilePath(file);//D&Dでファイル獲得する open:ファイル獲得が成功か失敗か判定
if(open==-1&&CheckMusic()==0)DrawFormatString(0,100,-1," なんか音楽を食わせろ!ESCキーで終了");
if(CheckMusic()==0&&cc==0){SetMainWindowText("(´・ω・`)");cc=1;}
if(CheckMusic()==1)DrawFormatString(0,100,-1," 音楽を止めるのならスペースを押せ!");
if(CheckHitKey(KEY_INPUT_SPACE)==1)StopMusic(); //スペースで音楽を止める
if(CheckHitKey(KEY_INPUT_ESCAPE)==1)break; //エスケープで終了
if(open!=-1){ //ファイル獲得成功
cc=0;SetMainWindowText(file);tdn=PlayMusic(file,DX_PLAYTYPE_LOOP);}
ScreenFlip();Sleep(20);
//音楽ファイル以外を食わせた場合w
if(tdn==-1){MessageBox(NULL,"(゚Д゚)ゴルア!"," それ再生できねーし",0x0000030);StopMusic();break;}
DragFileInfoClear();
}
InitSoundMem();
DxLib_End() ;
return 0 ;
}

164 :名前は開発中のものです。:2009/04/30(木) 02:04:43 ID:JN4PBkev
>>161-163 ありがとうございます!!
>>163さんにはサンプルまでご用意いただいて感激です!
これでBGMをプレイヤーに指定させることができます。
即レス感謝!ありがとうございました!!

165 :名前は開発中のものです。:2009/04/30(木) 09:08:28 ID:QAaf0WGA
個人的にはAPI使って、ファイル開く形式を勧めたいが……


166 :名前は開発中のものです。:2009/04/30(木) 13:16:31 ID:Nu0gAO10
最初からサンプル書いてくれと露骨に頼めば可愛げもあるのに。

167 :名前は開発中のものです。:2009/05/01(金) 08:16:49 ID:OvJuayUs
暫定的にDrawStringで文字を描いていたんだけど、
見栄えや諸々の理由で画像ファイルとして文字を作ることにした。
インストールされてるフォントを使って12x16のサイズのカタカナを
ほぼそのまま描いてるんだけど、どうしてもエッジが目立っちゃう。
縁取りとか、影とか、ぼかしとか色々試したんだけど難しい。
みんなはどうやってるの?あと、デザインとか凝ったりするの?

168 :名前は開発中のものです。:2009/05/01(金) 09:46:27 ID:g5JaOboh
>>167
その辺は、普通に。 まずは、見栄えとかよりも、完成が先だしね。
「文字 CG 講座」とか「ロゴ 制作」とかで検索すrば、やりたい事の方法が見つかると思う。

169 :名前は開発中のものです。:2009/05/01(金) 10:22:40 ID:SX1l7Niw
なんの為の文字かってのにもよるだろうけど、
セリフとかそんなヤツなら、何も工夫せずにそのままDrawStringで表示してる。

>デザインとか凝ったりするの?

デザインが大事なのは理解してるが、センスが壊滅的なので
あきらめて最低限で済ませてる。

170 :名前は開発中のものです。:2009/05/01(金) 14:38:00 ID:OvJuayUs
>>168-169
ありがとう。俺もデザインが壊滅的です。
しょぼ画像で今まで普通にやって来たんだけど、
先日ゲーセンで業務用のゲームを見たのがいけなかったw
最近はフォントを一文字ずつ手打ちでドット修正して、
気付いたら4、5時間経ってて結局上手くいかなかったとかあって。
まあでも、「この方法では出来ない」っていうのが少し分かったのは収穫だけどw
ゲーム作るのってやっぱり色々な知識が必要だね。

171 :名前は開発中のものです。:2009/05/01(金) 21:45:00 ID:n+u5dqvm
その試行錯誤が楽しくもあり面倒くさくもあり

172 :名前は開発中のものです。:2009/05/02(土) 08:08:52 ID:Sn/Kauil
ロゴはなぁ…
それで飯食っている奴がいるくらいだから奥が深いよな。
フォントの選定とか字間とか決めるだけでも大変。

173 :名前は開発中のものです。:2009/05/02(土) 13:50:47 ID:BkuXnv3v
英数字だけ程度ならフォトショとかで作るけど、
台詞に使って日本語漢字とかまでなるとやってられないから普通に既存フォントのでやってるな。
フリーのフォントいくらでもあるから、それ使えばいいんじゃないか?
テキストに文字書いておけば、指定フォントのを画像ファイルにして出力するソフトなかったっけか。


174 :名前は開発中のものです。:2009/05/02(土) 14:40:37 ID:M7HWaCGQ
2009/5/1更新 2.25b

175 :名前は開発中のものです。:2009/05/04(月) 16:41:52 ID:FkdRsV2L
ちょいと質問です。
SetAlwaysRunFlagで非アクティブでも処理を実行し続けるようにして
アクティブ時はCPU使用率15〜20%ぐらいでスムーズに動いてるけど
非アクティブ時は、CPU使用率が0近くになってしまいます。
処理もカクカクになってしまうのですが、
どうにも原因や解決法について手詰まりになってしまったので
何かアドバイスをいただけませんでしょうか?

176 :名前は開発中のものです。:2009/05/04(月) 16:47:43 ID:dGZpGfbH
>>175
これが参考になるかも
ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1224


177 :名前は開発中のものです。:2009/05/04(月) 17:21:31 ID:FkdRsV2L
>>176
Σ (゚Д゚;)うおー解決したー!!
DXライブラリ自体の仕様的問題だったとは・・・
ありがとうございましたー

178 :名前は開発中のものです。:2009/05/05(火) 23:39:46 ID:klIXgzed
GetRandを使って1回だけ乱数を取得するってどうやるの?

179 :名前は開発中のものです。:2009/05/06(水) 01:59:46 ID:36dZu90f
意味がわからないけど、一回だけGetRandすればいい……って事じゃないの?

180 :名前は開発中のものです。:2009/05/07(木) 01:34:26 ID:cIvk0VJg
do while文使うとループ処理終わらないんだけど俺だけ?
どんな簡単な条件でもだめ
whileは全然問題なし、仕方ないからfor文で代用した

181 :名前は開発中のものです。:2009/05/07(木) 01:39:44 ID:AtAjM9gE
環境とかソース示してくれない事にはなんともいえん。


182 :名前は開発中のものです。:2009/05/08(金) 13:06:52 ID:H40Fz4tQ
>>180
条件を逆にしてみれば?

183 :名前は開発中のものです。:2009/05/08(金) 17:28:23 ID:mPd9shMx
>>180
hello world的なコンソールアプリだとなんともないのに
DXライブラリだと動かないのか?

またまたご冗談を○ノ

184 :名前は開発中のものです。:2009/05/08(金) 21:29:41 ID:1gmuUpcC
DXライブラリで遊んでて、
3Dも触ってみたくなったら次はどの辺のライブラリがお勧めかな?

185 :名前は開発中のものです。:2009/05/08(金) 21:43:28 ID:mPd9shMx
直に叩くのマジお勧め。
ライブラリを使うにしても。

186 :名前は開発中のものです。:2009/05/08(金) 23:03:24 ID:1gmuUpcC
>>185
直かー、興味はあるけど難しそうだね
その辺もライブラリのソースを見てみたい感じ
DXライブラリ3Dを引き継いでる(?)のがSiv3Dで公開はまだしていないのか

187 :名前は開発中のものです。:2009/05/09(土) 03:40:25 ID:lfg6KlkW
真・女神転生のようなダンジョンマップ一度作ってみたい

188 :名前は開発中のものです。:2009/05/09(土) 10:18:06 ID:K91OINFM
>>184
現時点ではDarkGDKがお勧め。
DarkBasicをC言語で使えるようにしたライブラリだが、DXライブラリ並に簡単に3Dが使える。
資料もDarkBasicのものが使えるから検索すればかなり見つかると思う。


189 :名前は開発中のものです。:2009/05/09(土) 11:47:43 ID:kLkdvUF6
>>185
直叩きはいいけど、ウインドウズと付き合うのがイヤなんだ俺は。

今の俺の技術なら、WinProcの多重switch〜caseの悪夢から逃れられるかもしれないけど。
ここが奇麗にラッピングできたら、DxLibから離れられる。

190 :名前は開発中のものです。:2009/05/09(土) 19:21:56 ID:jAmZ4VAa
このライブラリってc++でしか開発できないの?
cでも動く?

191 :名前は開発中のものです。:2009/05/09(土) 19:40:27 ID:E8u7Mo3p
>>190
意味も分らずに質問してるのか?それとも釣りか?荒らし?
>(使用する際はC言語の知識だけで大丈夫です)
と、Topページにすら書いてあるが・・・・・

192 :名前は開発中のものです。:2009/05/09(土) 19:55:55 ID:lCTV4YZ7
>191
その回答だと、それはそれで微妙じゃないか?

193 :名前は開発中のものです。:2009/05/09(土) 20:07:46 ID:IQdWMaEz
Cのコンソールで一通りの基礎を抑えたレベル(ポインタは微妙だけど)
OpenGLも基礎の基礎ぐらいは分かる。

しかしC++は全くやったことないから、Cのソースコードでも動くのかなぁって思ってさ

つうかこの俺のこの程度のレベルで開発できるのか?w

194 :名前は開発中のものです。:2009/05/09(土) 20:14:03 ID:trjZI4JP
心配するな。
BASICくらいしかまともに使えなかった俺でも作れてる。

195 :名前は開発中のものです。:2009/05/09(土) 20:46:52 ID:eADherQO
予想どおりだけど、Cではコンパイル通らなかったよ。

196 :名前は開発中のものです。:2009/05/09(土) 20:58:33 ID:IQdWMaEz
>>195
自分も通らなかったから、やっぱりcppでやらないとダメか…。

でもcとc++の違いって引数の所とかreturn 0;を入れる事ぐらいだよね
それなら俺にも作れそうだ

197 :名前は開発中のものです。:2009/05/09(土) 21:35:15 ID:mrxl7P60
DarkGDKのサンプルコードをUPしとく
http://gamdev3.hp.infoseek.co.jp/cgi-bin/up/No_0415zip.html

198 :名前は開発中のものです。:2009/05/09(土) 21:37:34 ID:lCTV4YZ7
最初は、C++はCの文法がまんま使えると思ってていいと思うよ。
そりゃ細かいところは違うけど。


199 :名前は開発中のものです。:2009/05/09(土) 22:24:26 ID:yqvEK1Ux
俺はmainがwinmainに変わったぐらいしか意識せずに
Cのつもりで書いてるけど特に問題は起こってない。

200 :名前は開発中のものです。:2009/05/09(土) 22:42:09 ID:trjZI4JP
俺はCとC++の違いなんて知らんけど、少なくともBASICとC++の差に比べたら無いも同然だろう。
きっぱり乗り換えた方が早いと思うよ。

201 :名前は開発中のものです。:2009/05/09(土) 22:43:16 ID:5QjZvH8C
Cでも書けるけどコンパイルはC++としてしなければいけない
ってことでしょ
CからC++の関数呼べないだろうし

202 :名前は開発中のものです。:2009/05/09(土) 23:17:11 ID:mrxl7P60
DarkGDKの3Dデモ
http://gamdev3.hp.infoseek.co.jp/cgi-bin/up/No_0416zip.html

203 :名前は開発中のものです。:2009/05/10(日) 01:23:34 ID:ZcEG6Uji
テキスト読み込ませるにはどうしたらいいんだろ?

204 :名前は開発中のものです。:2009/05/10(日) 03:57:46 ID:LkvOOs8Z
>>202
184じゃないけど良いなコレ
まあスレ違いだからここではやめとくが

205 :名前は開発中のものです。:2009/05/10(日) 09:08:13 ID:rPuqylL4
>>203

それはDXライブラリと関係ない、C言語の領域だからぐぐって探せばみつかるでしょう。

まぁひとつ言っておくなら、読み込むだけなら
テキストファイルだろうとバイナリファイルだろうと関係ねーって事でしょうか。

それがテキストファイルかバイナリファイルかを区別するのは人間の仕事。
コンピュータにとってはどっちも数字の羅列です。

206 :名前は開発中のものです。:2009/05/10(日) 09:16:50 ID:rPuqylL4
>>202

おお、簡単そうでいいな。
と思ったが商用だとライセンス必要なのか。

207 :名前は開発中のものです。:2009/05/10(日) 09:27:04 ID:SuvqbuIW
>>206
メーカーのひと?

208 :名前は開発中のものです。:2009/05/10(日) 10:31:11 ID:fyec3Pfk
「同人は金とるけど商用ではありません」って理屈がアメリカに通用するかどうか。

209 :名前は開発中のものです。:2009/05/10(日) 15:37:12 ID:3Fci4lbQ
あれー? exeクリックしても何も起こらないや。
動かすのに必要な環境とかあるのかな

210 :名前は開発中のものです。:2009/05/10(日) 15:49:58 ID:pxkMQo3W
何の話?

211 :名前は開発中のものです。:2009/05/10(日) 15:54:27 ID:QdEuQjX4
>>203
>>205
せっかくだから DxLib でやろうぜ。
以前、なんかダサイ感じのやつを作った記憶あったのでうp

int MapInit()
{
int FileHandle = FileRead_open("StageData.txt");// ファイルのオープン
int FileSize = FileRead_size("StageData.txt");// ファイルサイズを取得して
char* FileImage = new char[FileSize];// その大きさだけ領域確保
FileRead_read( FileImage,FileSize,FileHandle);// 一気読み
FileRead_close(FileHandle);// ファイルを閉じて終了

const char* d = FileImage;

while(*d != '\0'){ // NULL文字(終端)ではない間
switch( *d ){
  :
  :

212 :名前は開発中のものです。:2009/05/10(日) 16:04:32 ID:pxkMQo3W
それ、NULL文字はどこでセットされるのさ?

213 :名前は開発中のものです。:2009/05/10(日) 16:27:43 ID:hIOF9W71
PlaySoundMemでmp3の音楽ファイルをループ再生した時、
曲がはじめに戻る時に一瞬無音部分が挿入されてしまうのは仕方の無い事なんですかね?

214 :名前は開発中のものです。:2009/05/10(日) 16:53:15 ID:jnxHmucW
指定秒数から再生みたいな関数無かったっけ

215 :名前は開発中のものです。:2009/05/10(日) 18:54:17 ID:rCuDH3cs
あるよ。
俺使ってるから間違いない。

216 :名前は開発中のものです。:2009/05/10(日) 19:18:26 ID:hIOF9W71
いや頭は正常だけど終わりの部分と頭の間に微妙な空白期間があるんだけど。

217 :名前は開発中のものです。:2009/05/10(日) 20:22:30 ID:rCuDH3cs
それはMP3自体にはまったく空白が無い状態で?

てか空白が頭なのか終わりなのか区別つくのか?

俺はoggでやってるけどそんな現象は出ていない。
oggでなくてmp3だから空白が出てるってのも考えにくいし……。


たとえば、


// 音声をループ再生する
PlaySoundMem( SoundHandle, DX_PLAYTYPE_LOOP ) ;

// キーの入力待ち
WaitKey() ;


こんな感じで音楽鳴らしてWaitKeyで待たせてるだけの状態でも空白は出る?

218 :名前は開発中のものです。:2009/05/10(日) 21:46:31 ID:a1w4zsI+
空白をカットすれば

219 :名前は開発中のものです。:2009/05/10(日) 21:59:26 ID:CorOGe62
MP3とかoggを直接編集できるフリーソフトとかあるから
それでまず音楽データ自体に空白が入ってないか確認するのが先かな。
(俺は古いけどspwaveっての使ってる)

220 :名前は開発中のものです。:2009/05/10(日) 23:33:01 ID:UtduPSoD
ゲーム開発って、ファイル分割がキチンと綺麗に出来るかどうかで難易度グッと変わるよね?

いまいちヘッダーファイルに何書けば良いのか分からん。
ヘッダーファイルに書くのって基本的に
構造体、グローバル変数、クラス

で良いんだよな?

でもグローバル変数はそのまま書くより、メインの実行処理を書いたソースでグローバル宣言して、externしたのをヘッダーに書いた方が良いのか?

中々難しい

221 :名前は開発中のものです。:2009/05/11(月) 00:02:53 ID:MkdOym7I
ヘタレプログラマな俺は何も考えずにやってる。
必要性を感じたらやればいいなと。

222 :名前は開発中のものです。:2009/05/11(月) 00:25:28 ID:HAsszTiW
再利用性ってのがあるだろ
他のプロジェクトで同じヘッダーを使いたいって時があるはず
stdlib.hやwindows.hなどは、頻繁に共有して使う定義をまとめてあるわけだな

ゲーム開発では、バージョンアップや拡張版を作る時に意識する
そういうのが前提になくて、ただ使い捨てのマイナープログラムを作りたいだけなら
ヘッダーに書こうがソースに書こうが大した違いにはならん

集団開発ではこういう実動的な概念を知ってないと、プロジェクトに致命的な遅れを引き起こす原因になる
読めないソース、意味のわからない変数名、再利用性の全くないヘッダー
そういうのを書く奴はとても多い
同僚から「早くクビになれ」と睨まれてるのに、大抵は自覚がない


223 :名前は開発中のものです。:2009/05/11(月) 00:37:43 ID:h5MMChCx
mp3の仕様上、変換した時点で前後に無音部分が入るのは避けられないんじゃなかったか?
無音部分のないoggを作れば大丈夫だと思う

224 :名前は開発中のものです。:2009/05/11(月) 01:25:34 ID:SJM28vd6
wavの状態で編集→mp3にエンコ
これでmp3にした場合だけループに空白が出来る。
でも編集ソフトでmp3ファイルを見てみても無音が入っていないので
ファイル自体じゃなくてループ再生時に無音が入っちゃってると予想してる。
>>223のような情報もあるのでwavからoggでやってみようと思います。
むしろmp3でちゃんとループしてる人がいるなら是非そのファイルをくれませんか?

225 :名前は開発中のものです。:2009/05/11(月) 01:55:23 ID:vfkeltZY
まー、mp3使う理由なんてないだろ

226 :名前は開発中のものです。:2009/05/11(月) 10:32:30 ID:Y/ATwNUT
>>220
グローバル変数を何の工夫もなくヘッダに書くのはありえない。
でも、1つのソースファイルからしかincludeしないなら
ヘッダの意味もないが、トラブルも出ないし好きにしたらいい。

227 :名前は開発中のものです。:2009/05/11(月) 23:27:48 ID:+oDxJ+XL
>ヘッダ
例のセガの人の本によれば
ヘッダファイルは、そのモジュールの顔のようなものなので、
自分からしか参照しないものはヘッダに書くな、だそうな。

228 :名前は開発中のものです。:2009/05/12(火) 20:59:39 ID:TP6i3fOM
OPムービーをつけたいのですが動画挿入ってできます?

229 :名前は開発中のものです。:2009/05/13(水) 00:34:03 ID:S36sOxw7
>>228
リファレンス嫁

230 :名前は開発中のものです。:2009/05/13(水) 00:45:59 ID:Vux89+qG
普通にありましたすみません

231 :名前は開発中のものです。:2009/05/13(水) 02:31:33 ID:SfL0C2tM
みんなDXライブラリをなんて読んでる?
ディーエックス?デラックス?

232 :名前は開発中のものです。:2009/05/13(水) 02:39:25 ID:SMqynftr
ディーエックスかな
てかそもそもデラックスなんて意味込められてたっけか?

233 :名前は開発中のものです。:2009/05/13(水) 04:37:24 ID:+PRxmC7L
よし!
今度、自分用のライブラリを作る時は超合金ライブラリという名前にしよう。

234 :名前は開発中のものです。:2009/05/13(水) 04:45:57 ID:S6Vidvv6
ぼくはダブルエックス!

235 :名前は開発中のものです。:2009/05/13(水) 05:27:57 ID:WYplVFDZ
俺はデラックスって呼んでるな。カービィDX的なノリで

236 :名前は開発中のものです。:2009/05/13(水) 11:01:09 ID:+PRxmC7L
DXライブラリ…… それは裏切りを意味する言葉。

237 :名前は開発中のものです。:2009/05/14(木) 23:52:26 ID:JXz6JeNm
wav変換
http://www.vector.co.jp/soft/dl/win95/art/se202196.html
アドウェア臭いのついてるから本体以外キャンセル(Jwordとかプレーヤーとか)
http://www.vorbis.com/files/1.0/tobias/OggDS0995.exe
これインスコすればOGGをメディアプレーヤーで直再生できる

238 :名前は開発中のものです。:2009/05/16(土) 18:21:08 ID:RrtE4NOX
DXライブラリってProcessMessageでメッセージをひとまとめに扱ってますが
このことによって何か出来なくなる(制限される)ことってありますか? ウインドウズプログラム的に。

239 :名前は開発中のものです。:2009/05/20(水) 18:05:19 ID:XKq5DK9V
画像を多く使う予定なのですが、
DrawRectGraphでその都度座標を指定して描画するのと
LoadDivGraphやDerivationGraphで新しくグラを作成するのってどっちがいいとかありますか?
面倒なのですがDrawRectGraphの方が軽そうな感じがして…

240 :名前は開発中のものです。:2009/05/20(水) 19:14:49 ID:cd8SaRtc
後者の方が速かった気がする
実際に試してみるのが一番いいと思うけど

241 :名前は開発中のものです。:2009/05/20(水) 22:50:34 ID:XKq5DK9V
ありがとうございます。両方試して比べてみます。

242 :名前は開発中のものです。:2009/05/21(木) 01:24:36 ID:nDXZOisY
結果の報告お待ちしております

243 :名前は開発中のものです。:2009/05/21(木) 14:53:13 ID:f26CXGR7
いちいち画像読み込むとハードディスク使うから遅い
メモリに読み込んでハンドル返す方法は高速に描ける
速度を必要とする場面かどうか検討するといい
使い捨ての場面ならメモリに確保しない方が開発の負担が小さいし
何度も使うのならメモリに読み込んだ方が処理の負担が小さい
一般的には後者に統一することが多い

似たような話で、画像にjpgやpngを使ったり、mp3を使うのはCPUに負荷を掛けるので
通常素材にはbmp、効果音にはwavを使うのを勧める
(企業開発で形式を隠蔽したいわけでもないし)


244 :名前は開発中のものです。:2009/05/21(木) 17:07:42 ID:nDXZOisY
大した負荷じゃないんじゃない?

245 :名前は開発中のものです。:2009/05/21(木) 17:31:35 ID:d1JBtW4A
HDDからいちいち読み込んでるとアホみたいに遅くなるぞ

246 :名前は開発中のものです。:2009/05/21(木) 19:45:39 ID:uQ1uMZZL
下三行への突っ込みだと思う

247 :名前は開発中のものです。:2009/05/21(木) 20:03:43 ID:PVitCZoM
jpgやpngはロードした時点でbmpに変換されるんじゃなかったっけ。

248 :名前は開発中のものです。:2009/05/21(木) 23:37:28 ID:SY9MChf5
pngやらはゲーム処理が遅くなるかもしれんが、
bmpを使うとゲーム容量が馬鹿デカクなる気がする

実際にどれほど処理・容量の違いがあるのかが知りたいNe!

249 :名前は開発中のものです。:2009/05/21(木) 23:43:38 ID:Lde+nmZH
いまどきbmpで作ったからって容量が多くなりすぎて困るって事はないと思うけどなぁ。
3Dゲームとかノベルゲームとかならまだしも。

むしろ容量食うのは音楽。

250 :名前は開発中のものです。:2009/05/22(金) 00:30:16 ID:opiwTOF8
ある程度DL数が多かったり、自宅サーバだったりする場合は
けっこう容量も気になってくるのだそうな。

251 :名前は開発中のものです。:2009/05/22(金) 00:49:48 ID:rdJ4/1mO
bmpじゃないと透過色が定まらない…

252 :名前は開発中のものです。:2009/05/22(金) 13:26:24 ID:Ttltxn7S
俺はpng一択。αチャネルを1ファイルで処理できるのが便利すぎる
(bmpやjpgだとチャネル用の別画像を用意しないといけない)

ちなみに読み込みだけにCPU負荷がかかるだけで、
テクスチャになってしまえば転送速度は同じ。
bmpの場合はファイルサイズも大きくなり、読み込みに時間が逆に掛かることもあるので、適材適所が良いと思います

253 :名前は開発中のものです。:2009/05/22(金) 21:09:50 ID:opiwTOF8
質問。
32x32の画像があって、これを2倍に拡大して表示するのと、
64x64の画像があって、これを等倍で表示するのとでは、どっちが高速?

拡大する手間がある分だけ遅くなると見るべきか、元々の画像が小さいから有利と見るべきか。
実測してみたけど、いまいちよく分からん。


254 :名前は開発中のものです。:2009/05/22(金) 21:24:41 ID:xxFjO+BK
実測してわからないのならどうしようもないような……。

255 :名前は開発中のものです。:2009/05/23(土) 00:55:35 ID:1QCRwyZH
>>253
前者の方が早いでしょう
拡大表示処理はハードウェア(Direct3D)で行うので、とても高速ですよ

256 :239:2009/05/23(土) 12:29:43 ID:A4cQi3hh
2000*4000くらいの大きな画像や、小さい画像を1000個くらい描画してみて
DrawRectGraphとDerivationGraphの違いを検証してみましたが、
メモリ、ビデオメモリ、処理速度に目立った違いは見受けられませんでした。
なので扱いやすいDerivationGraphを使って行こうと思います。

257 :名前は開発中のものです。:2009/05/23(土) 13:25:24 ID:ORU4uz0n
自分や友人がDxLibを使って作ったゲームを俺のPCで起動させると、始めはいいんだが、しばらくしてから必ず30フレームになってしまうのはなぜかわかる人いるか?
俺のPCは「VGN-AW71JB」っていう型なんだが…。PC版のスプリンターセルはヌルヌル動き続けるし、スペックの問題ではないと思うんだが…。64bitのvistaってのがなにか影響してるのかな?


258 :名前は開発中のものです。:2009/05/23(土) 17:37:42 ID:XAnqJ6HC
257 名前:名前は開発中のものです。[] 投稿日:2009/05/23(土) 13:25:24 ID:ORU4uz0n
自分や友人がDxLibを使って作ったゲームを俺のPCで起動させると、始めはいいんだが、しばらくしてから必ず30フレームになってしまうのはなぜかわかる人いるか?
俺のPCは「VGN-AW71JB」っていう型なんだが…。PC版のスプリンターセルはヌルヌル動き続けるし、スペックの問題ではないと思うんだが…。64bitのvistaってのがなにか影響してるのかな?

259 :名前は開発中のものです。:2009/05/23(土) 20:01:55 ID:5w7OxnoQ
インデックスカラー方式の画像描画はどうやったらいいんでしょうか。パレットを切り替えて色を途中で変えたりしたいんですが。

260 :名前は開発中のものです。:2009/05/23(土) 20:38:13 ID:JcHBq+Qd
一度メモリに読み込んでからパレット部分を書き換えて、グラフィックハンドルに登録する。
つまり、途中で自在に色換えはできない。

わかる、君のやりたい事はわかる。
スプライトの色変えみたいに自在にやりたいんだよな。でもできない。

261 :名前は開発中のものです。:2009/05/23(土) 22:53:41 ID:5w7OxnoQ
PCってファミコン以下の糞環境なんですねラスタースクロールもできないし

262 :名前は開発中のものです。:2009/05/23(土) 23:00:23 ID:KtGbScqt
DirectXでも弄ってろよ

263 :名前は開発中のものです。:2009/05/24(日) 00:14:29 ID:wnjrF3Q2
ラスタースクロールなんて10年ぶりに聞いた

264 :名前は開発中のものです。:2009/05/24(日) 00:17:36 ID:mQM6vOM4
>しばらくしてから必ず30フレームになってしまうのはなぜかわかる人いるか?

処理速度が低下するような時は、メモリーリークの可能性がある、
簡単に書くと、メモリを解放せずループで使いっぱなしにすると
メモリーがどんどん不足してゆき処理速度低下として症状が現れる。

265 :名前は開発中のものです。:2009/05/24(日) 00:42:23 ID:3op8nAnx
>>259
一色ごとに画像を抽出してそれを全部白くして、表示時に色をいじってだね・・・
コストはかかるが、あくまで自由自在に色をいじりたい奴だけそうしてみるとか

266 :名前は開発中のものです。:2009/05/24(日) 04:14:52 ID:7GmmmL9x
FilmtnとBCCつかうとコンパイルとプログラム実行一瞬でめちゃくちゃ速いな
VC2008は豪華だけど重い

267 :名前は開発中のものです。:2009/05/24(日) 17:40:43 ID:seD1hHi/
>>264
同じソースでも、友人のPCだったら落ちないという…
落ちないようにするにはどうしたらいいかな?

※と、書いてる途中でタスクマネージャーを見たら、CPU使用率が90%以上に張り付いてた。
他何も起動してないし、アプリケーションを停止したら0%に戻る。意味不明。

268 :名前は開発中のものです。:2009/05/24(日) 19:21:41 ID:e3aiszR0
そりゃ友人のPC環境が良いだけって話にならんかね。

269 :名前は開発中のものです。:2009/05/24(日) 20:01:22 ID:PboGdTn+
まぁ、ソースを見ないとなんともいえないな。
文字描画するのに、毎回文字の大きさ変えて描画してるとか

270 :名前は開発中のものです。:2009/05/24(日) 23:50:08 ID:seD1hHi/
自分
CPU:Core 2 Duo 2.66GHz
RAM:4.00GB

友人
CPU:Core 2 Duo 2.40GHz
RAM:2.00GB

ソースとして挙げるなら、DxLibのホームページの、ゲーム作成講座のソース。
四角君が自分に向けて弾を撃って来るあのソースですらなりました。


271 :名前は開発中のものです。:2009/05/25(月) 00:30:41 ID:41gxgfIl
いちいちageるなぼけ

272 :名前は開発中のものです。:2009/05/25(月) 01:34:29 ID:eHx6nkcb
c++教室の2Dアニメーションのプログラムを書いたんだが、表示されない
何が悪いのか……


273 :名前は開発中のものです。:2009/05/25(月) 01:53:57 ID:UZHs9GNu
それは愚痴か、質問か。

質問だったら「エスパーじゃないんだから、そんな事知らん」


274 :名前は開発中のものです。:2009/05/25(月) 02:16:31 ID:/EmhtAKe
DirectXを最新版にしてみたら?

275 :名前は開発中のものです。:2009/05/25(月) 07:48:45 ID:qL901e+j
指定ファイル名が違うとかダブルバッファの処理がおかしいかメモリに読み込まれてないかじゃね

276 :名前は開発中のものです。:2009/05/25(月) 10:55:40 ID:yXpMtdiR
俺はScreenFlipでの垂直同期周りだと予想
グラボと設定によっては同期待ちのタイミングでCPU処理に加算されとても重く「感じる」ことがある。

277 :名前は開発中のものです。:2009/05/25(月) 15:09:43 ID:bb62p5Sd
SetWaitVSyncFlag(FALSE);

でカオスになるぜ!

278 :名前は開発中のものです。:2009/05/26(火) 17:43:21 ID:WrI50zFN
>277
誰もが一度は通る道www

279 :名前は開発中のものです。:2009/05/27(水) 04:36:49 ID:cQqUnwcL
3D背景を実装するのって難しいかね

280 :名前は開発中のものです。:2009/05/27(水) 04:47:29 ID:klPEh/z6
あなたの実力による

281 :名前は開発中のものです。:2009/05/29(金) 00:03:12 ID:vY9ARI7K
チラ裏。
Dxライブラリをうまく名前空間に突っ込めないかなー、と思ったが
自前で改造しなきゃならない量を考えると挫折しそうだって愚痴。


>279
3Dで作った背景を2D画像に落として、
無理やりパターンアニメで表示させてるって作品があったような気がする。


282 :名前は開発中のものです。:2009/05/29(金) 01:20:12 ID:4j6tq9JR
>>279
実際にいじってないのでなんとも言えないが
ここに映像つきのサンプルあるよ。
http://dixq.net/rp/

283 :279:2009/05/29(金) 06:57:39 ID:Vqjs1m4E
>>280
ふむ…努力次第でどうにでもなるという解釈でおkかな。時間はかかりそうだがやってみないことにはわからないな

>>281
横シューのなら見たことあるwwものすごい労力の割に拡張性が無さそうでなぁ…

>>282
おお、こんな感じで動かせられるなら…


とりあえずテクスチャを簡単にくりくり動かせるような関数でもつくってみることにする

284 :名前は開発中のものです。:2009/05/29(金) 21:51:58 ID:izoQPgWw
VC2008って無意味に重いなあ
関数かいてカーソル合わせると宣言が表示されるから便利なんだけどなあ

285 :名前は開発中のものです。:2009/05/29(金) 23:04:59 ID:ATWupmEU
ツール→オプション→環境→自動バックアップ→自動バックアップの実行間隔→60分ごと

286 :名前は開発中のものです。:2009/05/30(土) 23:32:29 ID:3JWvpnu4
>3Dで作った背景を2D画像に落として、
>無理やりパターンアニメで表示させてるって作品があったような気がする。

いいねこれメガテンの3Dダンジョンみたいなのに使えるな

287 :名前は開発中のものです。:2009/05/31(日) 03:54:51 ID:/tj3gvKS
int state = 0;
swith(state){
case 0:
if(CheckHitKey(KEY_INPUT_RETURN)){
文字表示
state++;
}
case 1:
if(CheckHitKey(KEY_INPUT_RETURN)){
文字表示
state++;
}
case 2:
if(CheckHitKey(KEY_INPUT_RETURN)){
文字表示
}
}

という風にすると、全部一気にキー判定されて、同時にすべての文字が表示されます。
WaitKeyとかWaitTimerを使う以外で、エンターを押すごとに順番に表示させるにはどうすればいいでしょう?

288 :名前は開発中のものです。:2009/05/31(日) 04:07:26 ID:WdCW0LKP
>>287 コンパイルしてないから、実際に動くかは知らんが、
enterが押しっぱなしの時は、flagを0にシナイので、
enterが離されて、再度flagが0になってからswitch文の実行が行われる。ように改造すれば
望みの結果が得られると思う。

int state = 0;
int flag =0;
if(flag == 0){
switch(state){
case 0:
if(CheckHitKey(KEY_INPUT_RETURN)){
flag =100;
文字表示
state++;
}
case 1:
if(CheckHitKey(KEY_INPUT_RETURN)){
flag =100;
文字表示
state++;
}
case 2:
if(CheckHitKey(KEY_INPUT_RETURN)){
flag =100;
文字表示
}
}
}else if(flag != 0)
{f( !CheckHitKey(KEY_INPUT_RETURN) ){
flag =0;
}


289 :名前は開発中のものです。:2009/05/31(日) 04:49:59 ID:j4yiAyL2
/*>>287 の意図する動作かどうかわからんが、俺がいつも使ってる方式
キーバッファを設けることによって、押された瞬間を判定することができる*/
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
ChangeWindowMode(TRUE);
if (DxLib_Init() == -1) {return -1;}
SetDrawScreen(DX_SCREEN_BACK);
char key_buffer[2][256]; // キーバッファ
int state = 0;
while (ProcessMessage() != -1) {
ClearDrawScreen();
// 前のフレームの入力状態を保持
for (int i = 0; i < 256; i++) {
key_buffer[1][i] = key_buffer[0][i];
}
// 現在のフレームの入力状態を取得
GetHitKeyStateAll(key_buffer[0]);
// 「現在のフレームで押されている」かつ「前のフレームで押されていない」ならば
if (key_buffer[0][KEY_INPUT_RETURN] && !key_buffer[1][KEY_INPUT_RETURN]) {
state++; // 次の状態へ
}
// state の値によって分岐するなり何なり
DrawString(0, 0, "Press enter key!", GetColor(255, 255, 255));
DrawFormatString(0, 20, GetColor(255, 255, 255), "状態%d", state);
// 適当なところで終了
if (state == 10) {break;}
ScreenFlip();
WaitTimer(10);
}
DxLib_End();
return 0;
}

290 :名前は開発中のものです。:2009/05/31(日) 05:11:01 ID:YoqdwaI9
とりあえずbreakしようぜ

291 :名前は開発中のものです。:2009/05/31(日) 08:31:50 ID:JGIiJgnT
if((CheckHitKey(KEY_INPUT_RETURN))&&LeftFlag==0){
LeftFlag=999;
文字表示}else LeftFlag=0;
押したときだけ処理するようにすればいけそう?

292 :名前は開発中のものです。:2009/05/31(日) 08:46:00 ID:P4ttxSKS
static
break

293 :名前は開発中のものです。:2009/05/31(日) 15:21:06 ID:jTyG44wW
if(CheckHitKey(KEY_INPUT_RETURN)){
if(enter_cnt<100){enter_cnt++;}
}else{
enter_cnt=0;
}

if(enter_cnt)//押している間
if(enter_cnt==1)//押された瞬間

294 :名前は開発中のものです。:2009/05/31(日) 15:22:27 ID:jTyG44wW
if(CheckHitKey(KEY_INPUT_RETURN)){
 if(enter_cnt<100){enter_cnt++;}
}else{
 enter_cnt=0;
}
半角消えるのか

295 :名前は開発中のものです。:2009/05/31(日) 20:06:14 ID:kvaGbtb9
>>286
DOGA最盛期にうんざりするほどあったよそういうの

296 :名前は開発中のものです。:2009/06/01(月) 03:53:44 ID:ojIQArFl
CheckHitKeyで押された回数を数えるにはどうしたらいいでしょう?

297 :名前は開発中のものです。:2009/06/01(月) 03:59:15 ID:YGv3z7sb
>296
if文とインクリメント


298 :名前は開発中のものです。:2009/06/01(月) 04:02:48 ID:7hVJjQOF
>>296
今話題の押された瞬間を数えて適当な変数に保存しときゃいいんでね?

299 :名前は開発中のものです。:2009/06/01(月) 04:12:11 ID:ojIQArFl
下のプログラムを改良して、エンター押すごとにA,B,C,Dを表示させていくにはどうしますか。
下のままだと、ABCDっていっきに表示されます。

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode(TRUE);
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;

int col1 = GetColor(255, 255, 255);
char input[4];
int i = 0;



300 :名前は開発中のものです。:2009/06/01(月) 04:13:52 ID:ojIQArFl
>>299続き
while(ProcessMessage()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0){
if(CheckHitKey(KEY_INPUT_RETURN)){
switch(i){
case 0:
input[i] = 'A';
break;
case 1:
input[i] = 'B';
break;
case 2:
input[i] = 'C';
break;
case 3:
input[i] = 'D';
break;
}
i++;
}
if(CheckHitKey(KEY_INPUT_SPACE)){
ClearDrawScreen();
DrawString(0, 0, input, col1);
}
ScreenFlip();
}

DxLib_End();
return 0;
}


301 :名前は開発中のものです。:2009/06/01(月) 08:41:57 ID:7hVJjQOF
キーを1回押されるごとに処理したい場合の
あるごりずむ体操

(ループはじめ)
    ↓
<前回キーが押されていたか?> YES→ (ループおわり)
    ↓ NO
<キーが押されているか?>    NO → (ループおわり)
    ↓ YES
[キーが押された時の処理]
    ↓
(ループおわり)

302 :名前は開発中のものです。:2009/06/01(月) 08:43:59 ID:OkPmCHq7
iの値も0に戻してあげようね

303 :名前は開発中のものです。:2009/06/01(月) 09:36:50 ID:hCSvJ7Y8
リアルタイム処理でないのならScreenFlipのあとにでも↓を追加しときゃいいんじゃね?


while( ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0 && CheckHitKey(KEY_INPUT_RETURN) == 1 ){
Sleep(16) ;
}


304 :名前は開発中のものです。:2009/06/01(月) 10:52:22 ID:YGv3z7sb
>>301
昔、組み込みプログラムでやったな、そういう処理。


305 :名前は開発中のものです。:2009/06/01(月) 16:12:49 ID:rm5/xw9E
クラス化するとか
class Key {
private:
int keyCode, state;
public:
Key( int KeyCode ) : keyCode( KeyCode ), state( 0 ) {}
int CheckHit() { int tmp = state; state = CheckHitKey( keyCode ); return tmp ? 0 : state; }
};

//WinMain
...
Key enter( KEY_INPUT_RETURN );
if(enter.CheckHit()){
...

306 :名前は開発中のものです。:2009/06/01(月) 21:33:29 ID:lE2okL9b
無駄すぎ糞ワロタ

307 :名前は開発中のものです。:2009/06/01(月) 22:14:20 ID:MR6y8v2X
そこで無駄のないソースの登場ですね。

308 :名前は開発中のものです。:2009/06/01(月) 22:52:38 ID:aqGzCF5U
俺もクラス化してるから、簡潔な方法があるなら教えて欲しい。

309 :名前は開発中のものです。:2009/06/01(月) 22:57:02 ID:eaj8yaj9
そもそもこのプログラムはスペースを押さないと表示させないようにしてるのかな
それはともかく言われたように押してくごとにABCD表示させようと思ったら
>>300を変更するとしたら
int returnOn = 0;  // ←
while(ProcessMessage()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0){
if(CheckHitKey(KEY_INPUT_RETURN) && !returnOn){  // ←
switch(i){
case 0:
input[i] = 'A';
break;
case 1:
input[i] = 'B';
break;
case 2:
input[i] = 'C';
break;
case 3:
input[i] = 'D';
break;
}
i++;
returnOn = 1;  // ←
}
if( !CheckHitKey(KEY_INPUT_RETURN)) returnOn = 0;  // ←
        (以下略)

とかやるとか


310 :名前は開発中のものです。:2009/06/01(月) 23:27:38 ID:FdTrWJbB
static変数のフラグ使うのが一番単純だと思うなあ

311 :名前は開発中のものです。:2009/06/02(火) 09:36:41 ID:9M4SMxHr
hsp時代にも散々似たような処理書いたなぁ…

なんかゲームのメインループ()


if((Aボタン==1)&&(Aボタンバッファ==0))

   なんか押された瞬間だけ1回やりたい処理


Aボタンバッファ=Aボタン



最初からKEY_DOWN、KEY_UP的なものがライブラリに有れば楽なんだが
ゲームじゃしょっちゅう使うし

312 :名前は開発中のものです。:2009/06/02(火) 09:48:11 ID:fOpSnwq/
32ビットか64ビットの整数をバッファにしてビット演算で書き込み、取り出しが一般的だろ
そのバッファに生でアクセスすることはあまりないが、
かといってキーごとにオブジェクト化するのもありえない

313 :名前は開発中のものです。:2009/06/02(火) 11:07:30 ID:lqyt4myq
299にいきなりそんな話してもわかんないでしょ。

314 :名前は開発中のものです。:2009/06/02(火) 11:08:32 ID:fOpSnwq/
抜けてたが、
上の例の場合、バッファは二つ以上ないとあまり意味ない
キーがマッピングしきれないって人はchar配列とか使えばいい

よりこだわる人はRawInputで

315 :名前は開発中のものです。:2009/06/02(火) 21:23:19 ID:CgQN485t
>キー入力

自分が使ってるルーチンのコードを記事にまとめました
http://d.hatena.ne.jp/kokarage/20090602/p2

316 :名前は開発中のものです。:2009/06/02(火) 22:46:42 ID:D2ufpiqQ
入力の話題が出たので

キーコンフィグの実装で悩んでるんだけど、
>>315とかだと KEY_INPUT_なんとか の部分は変えられないし
どうやってキーコンフィグ実装するんだろうか・・・
同じようなソースでenumを弄っても根本的には変わらないし

317 :名前は開発中のものです。:2009/06/02(火) 23:00:27 ID:fOpSnwq/
少しは頭使えよww

318 :名前は開発中のものです。:2009/06/02(火) 23:00:38 ID:vp7xQIPq
>>315の例で言うならkeyb_keyを動的に書き換えりゃよかんべよ
KEY_INPUT_なんとかとスクリーンに表示する文字との対応表は作らにゃならんが

319 :名前は開発中のものです。:2009/06/02(火) 23:19:31 ID:rGe8VGDA
抽出 ID:fOpSnwq/ (3回)

312 名前:名前は開発中のものです。[sage] 投稿日:2009/06/02(火) 09:48:11 ID:fOpSnwq/
32ビットか64ビットの整数をバッファにしてビット演算で書き込み、取り出しが一般的だろ
そのバッファに生でアクセスすることはあまりないが、
かといってキーごとにオブジェクト化するのもありえない

314 名前:名前は開発中のものです。[sage] 投稿日:2009/06/02(火) 11:08:32 ID:fOpSnwq/
抜けてたが、
上の例の場合、バッファは二つ以上ないとあまり意味ない
キーがマッピングしきれないって人はchar配列とか使えばいい

よりこだわる人はRawInputで

317 名前:名前は開発中のものです。[sage] 投稿日:2009/06/02(火) 23:00:27 ID:fOpSnwq/
少しは頭使えよww

320 :名前は開発中のものです。:2009/06/02(火) 23:23:59 ID:9M4SMxHr
>>316
自分の場合:
ちょっと>>315と関数の仕様が違うけど

KEY_STATE getKeyState(int pad_num, KEY_FUNC key_func);


if(getKeyState(1, shot_btn) == KEY_DOWN){
ショット処理
}

コンフィグのiniファイルかなんかを読んで
shot_btnとかjump_btnとかの数字を適当に書き換える

今パッと思いついただけでコンフィグ実装したことないけど

321 :名前は開発中のものです。:2009/06/03(水) 01:33:47 ID:BENUHFDk
>320
俺も大体そんな感じでやってる

322 :名前は開発中のものです。:2009/06/03(水) 01:35:57 ID:ZbYk0Q0K
変な質問。
ウインドゥモードにした場合、勝手にウインドゥを作成して表示ではなく、あるウインドゥを使うように
することってDXライブラリではできますか?

323 :名前は開発中のものです。:2009/06/03(水) 02:49:29 ID:jjOgvpoK
>>322
例えばIEのウィンドウに表示したりとか?
意味がよくわからんが何より意図がわからない

324 :名前は開発中のものです。:2009/06/03(水) 04:00:28 ID:bNYd6KiM
どうせならGetHitKeyStateAllの方使った方がよくね

325 :名前は開発中のものです。:2009/06/03(水) 10:50:20 ID:tN/MRQC4
MDIにしたりとかだろ。
無理じゃないか?

326 :名前は開発中のものです。:2009/06/03(水) 12:26:59 ID:jjOgvpoK
>>324
ジョイパッド無理じゃなかったっけ?
まぁ可能かどうかは別にして

それをどうラッピングして押下げや押上げの判定を楽にしようかって話なんじゃ

327 :名前は開発中のものです。:2009/06/03(水) 14:28:21 ID:/YZEGe2A
俺の場合はGetJoypadInputState と GetHitKeyStateAll を併用で一括入力管理して
押上判定は個々の部分でやってるな。


328 :名前は開発中のものです。:2009/06/03(水) 17:51:51 ID:JOR7X/qw
クラス化するとしたらこんな感じですかね?
ttp://www.dotup.org/uploda/www.dotup.org90647.zip.html
考え方は>>315と同じ

329 :名前は開発中のものです。:2009/06/03(水) 18:54:40 ID:jjOgvpoK
みんな色々なやり方で面白いな。
自分はWin32APIのイメージが強すぎたせいか
KEY_UPとかキー状態の列挙体を戻り値で返す方法前提で考えていたけど
メンバにアクセスして真偽だけ返すという手もあるのか…

330 :名前は開発中のものです。:2009/06/03(水) 20:15:41 ID:n5yqAu71
>>319
意味わからん。>>307さんですか?

331 :名前は開発中のものです。:2009/06/03(水) 20:41:08 ID:RNCUnVzX
いや307は俺。

332 :名前は開発中のものです。:2009/06/03(水) 22:22:44 ID:DNn913L5
おいおい勝手に俺を名乗るなよ

333 :名前は開発中のものです。:2009/06/03(水) 23:55:15 ID:ZbYk0Q0K
俺も307です

334 :名前は開発中のものです。:2009/06/04(木) 00:44:33 ID:4zSVCft7
じゃあオレも307

335 :名前は開発中のものです。:2009/06/04(木) 00:56:02 ID:uCnhFctq
俺がこんなにいるなんて……作業がはかどるかなぁ。

336 :名前は開発中のものです。:2009/06/04(木) 03:42:53 ID:pMlbkkXE
能力は1/5だけどな

337 :名前は開発中のものです。:2009/06/04(木) 04:45:47 ID:EMFSgqr3
天津飯かよ

338 :名前は開発中のものです。:2009/06/04(木) 07:23:29 ID:pMlbkkXE
>337
名乗ったのが4人なら、もっと天津飯ネタを取り入れていた

339 :名前は開発中のものです。:2009/06/04(木) 19:12:58 ID:EMFSgqr3
で、
>>328式がベストでおk?

340 :名前は開発中のものです。:2009/06/04(木) 21:55:52 ID:94jaKxLF
2Dに限ってなんだが
結局の所
DXライブラリで作ったゲームと
OpenGLで作ったゲームと
DirectXで作ったゲームって

どこがどうちがうの?ほぼ一緒だろ?

341 :名前は開発中のものです。:2009/06/04(木) 23:58:41 ID:NBcwy8pb
>>340
名称が違う
難易度も違う

342 :名前は開発中のものです。:2009/06/05(金) 00:24:06 ID:LjYKB7R9
>>340
DXライブラリ:楽。動作実績が大きい。
OpeGL:日本のゲーム作りに関しては情報少ない。
DirectX:DXライブラリと似たようなラッパーを書く事になる。動作検証要。

343 :名前は開発中のものです。:2009/06/05(金) 00:26:20 ID:jQ78PNQ2
DXライブラリのサポートは金とってもいいレベル

344 :名前は開発中のものです。:2009/06/05(金) 00:29:54 ID:MVmrQAbM
世界的な実績で言うなら、その3つの中で一番下のような気もするけどなーw

345 :名前は開発中のものです。:2009/06/05(金) 00:39:57 ID:fb3Bnpon
ツクールシリーズ
→日本人からプログラミングの素養を奪い取るキラーソフト
DXライブラリ
→日本人から3Dプログラミングの素養を奪い取るキラーソフト

漢ならLinux環境でC+OpenGLでvi+gdbするべし

346 :名前は開発中のものです。:2009/06/05(金) 01:17:49 ID:k3aCK9Tq
>>345
それなら薦めるべきはSDLな気がする
それだけだとせっかくCとGL使ってもキー入力まわりで移植性がなくなる
GLUTのキー処理は論外だし
SDLからGL叩けるし

メジャーなプログラミング言語のほとんどがSDL対応してるし

でもこのスレ的にどうかと思うぜこの話題

347 :名前は開発中のものです。:2009/06/05(金) 01:22:53 ID:gGshfnNu
それだけ解っててなぜDXライブラリスレにいるのかと。

348 :名前は開発中のものです。:2009/06/05(金) 01:48:22 ID:byAKAyX7


「作ったゲーム」に関していう違いなら

DXライブラリで作ったゲーム
 動作実績があるライブラリだから動作する環境が多い
 速度は各ソフトの特性に合わせて最適化できないぶん遅い
 ライブラリで実装されていてDirectX直叩きなら使える機能が使えないから表現力はDirectX直叩きした場合より劣る

OpenGLで作ったゲームとDirectXで作ったゲーム
 エンジンの動作検証は作者PCのみだからプレイヤー環境で動作しない可能性はライブラリを使った場合より高い
 作るソフトに合わせて最適化できるのでDXライブラリ作者と同レベルのプログラム力を持っていれば確実にDirectX直叩きのエンジンの方が動作速度が速い
 DirectX直叩きできるから表現力はDirectXの表現力とイコール

349 :名前は開発中のものです。:2009/06/05(金) 02:19:36 ID:byAKAyX7
追記
基本的にゲーム製作を助けるためのものだからプレーヤー側から見ればDirectX直叩きで
DXライブラリと同等かそれ以上の性能のオリジナルエンジンを使ってソフトを作ってくれた方が嬉しいのは確かだろう
(それが製作者が支払う労力に見合うかどうかはさておき)

ただ、DXライブラリの存在があったことによって世に出ることができたゲームソフトもあるだろうから
端的にプレーヤー側にとっては動作安定以外にはデメリットしかないという結論に達することはできない

345的な理論はBASIC言語についても似たようなことが言われていたね、まあ3D対応すれば多少は改善されるんじゃないか

350 :名前は開発中のものです。:2009/06/05(金) 06:01:05 ID:/qtS2mAS
俺の場合はC++を重点的に学習したいからこれ選んでる
DirectXとか使おうもんならC++の上にこれも覚える負担に駆られるためかなり厳しくなる
DXLIBだと覚えること比較的少なく済むからC++に労力割けれるしね
だからその人その人の状況次第でしょう
あとこう書くといちゃもんつけてくる奴がいるから言っとくけど
全半角に突っ込むのなしね
俺タイプ苦手だから一々直すの面倒いからそれだけは言っとく

351 :名前は開発中のものです。:2009/06/05(金) 07:44:06 ID:Jb6PFwRw
クソスレ晒し上げ

352 :名前は開発中のものです。:2009/06/05(金) 08:16:16 ID:2+rjN8tB
面倒って……MS-IMEなら無変換キーを二回押すだけだし
ATOKだってファンクションキー一回押すだけだろうに……。

ていうかタイプ苦手だから面倒なんじゃなくて
それくらいを面倒がるからいつまでたってもタイプ苦手なんじゃないか。

353 :名前は開発中のものです。:2009/06/05(金) 11:48:16 ID:KAzeFILe
DXライブラリに関する書籍はないものでしょうか?

354 :名前は開発中のものです。:2009/06/05(金) 12:27:22 ID:/qtS2mAS
俺は全角のが落ち着くの

355 :名前は開発中のものです。:2009/06/05(金) 14:40:29 ID:pZVc1EDu
苦手というか、面倒という気持ちはわかる。
プログラミングしてて全角でコメントした後半角になおしたりとか正直邪魔くさい。

356 :名前は開発中のものです。:2009/06/05(金) 17:58:00 ID:b0tlHB//
>>353
初心者用でいいなら14歳から始める〜 とか

357 :名前は開発中のものです。:2009/06/05(金) 21:40:13 ID:k3aCK9Tq
>>348
>>349
一通り触ったことはなさそうなことだけ伝わってくる文だな
その割に長くてうざい

358 :名前は開発中のものです。:2009/06/05(金) 21:56:05 ID:WwCy/X5Y
>>342
OpenGLならラッパー書かずに済むの?

359 :名前は開発中のものです。:2009/06/05(金) 23:07:05 ID:1schIxWd
OpenGLはラッパーどころかゲーム作りに必要な他の部品も必要。音楽再生とかキー入力とか画像読み込みとかどっかのライブラリ持ってくるなりしないといけないから超めんどくさいそりゃ普及せんわ

360 :名前は開発中のものです。:2009/06/05(金) 23:14:10 ID:KAzeFILe
>>356

明日あたり立ち読みしに行ってみます

361 :名前は開発中のものです。:2009/06/05(金) 23:49:13 ID:LjYKB7R9
14歳は名著でもあり地雷でもあるから気をつけろ。
誤字脱字内容間違い多いからな。

362 :名前は開発中のものです。:2009/06/06(土) 00:03:30 ID:H/iQ8fyW
>>359
むしろ技術力がつく

363 :名前は開発中のものです。:2009/06/06(土) 00:06:10 ID:sFhdVHFw
んなこと言い出しゃ自分でOpenGL、DirectX相当つくったり
自分で言語やコンパイラつくったり

364 :名前は開発中のものです。:2009/06/06(土) 00:44:32 ID:yKGSZjfM
>>322
俺もこれやりたい
ウィンドウ周りは.NET Frameworkにまかせて、あるPictureBoxコントロールの中で描画とか

365 :名前は開発中のものです。:2009/06/06(土) 00:57:21 ID:sFhdVHFw
LunaかなんかのサンプルにMDIのウィンドウで動いているのなかったっけ?

366 :名前は開発中のものです。:2009/06/06(土) 02:23:33 ID:0RWuIZ8X
ある程度プログラムさえ分かってりゃある程度の誤字脱字には気付くんじゃまいか
と言うよりあれはそんな初心者向きじゃないような気モス
ある程度基本はできていた方がいいかも
俺は大分参考になったし俺のやり方はそれがベースになってる

367 :名前は開発中のものです。:2009/06/06(土) 14:28:01 ID:9zaJ0Qz/
マップスクロールってどうやるんだ?

プレイヤーがx座標400ぐらいまで行ったら、背景画像をスクロールさせる感じで組んでみたら
動いてるようには見えるけど自身の座標は当然変わらず、後ろのハリボテが動いてるだけになったw

どんな感じでマップスクロールって作ってる?

368 :名前は開発中のものです。:2009/06/06(土) 14:45:01 ID:mp6p4QK3
>>367

基本的のその考え方で間違ってない。
気に入らないならもっと考え方を進めていけばいいだけ。

369 :名前は開発中のものです。:2009/06/06(土) 15:02:08 ID:triYp4O5
アクションゲームなら、マップの座標は固定にしてカメラを動かすという考え方のほうがいいかもしれない。

370 :名前は開発中のものです。:2009/06/06(土) 16:34:01 ID:4wIgR8zN
よく2Dクォータービュー型の箱庭ゲームで画面の拡大・縮小というのがあるけど、
あれは裏バッファ2に描いておいて、裏バッファに縮小転送、フリップというやり方
なのでしょうか?
それとも拡大・縮小の段階毎に元絵を用意しておいて、現在の段階に応じた元絵
を裏バッファに描画、フリップというやり方なのでしょうか?

371 :名前は開発中のものです。:2009/06/06(土) 17:22:10 ID:mp6p4QK3
やった事ないけど、俺がもしやるなら
普通にそれぞれの画像を描画する際に縮小描画するだろうな。
当然、表示座標も縮小計算して。

372 :名前は開発中のものです。:2009/06/06(土) 17:26:21 ID:Fiwfc+rD
俺は普通に描画時に拡大縮小してる
>>370だと後者になんのかな

373 :名前は開発中のものです。:2009/06/06(土) 17:40:50 ID:mp6p4QK3
ひょっとして、拡大縮小描画の命令を知らんとか?

374 :名前は開発中のものです。:2009/06/06(土) 18:10:53 ID:94tz/m1F
>373
拡縮機能使ってる? それとも予め画像用意しとく?
って聞きたいだけじゃないかな。

375 :名前は開発中のものです。:2009/06/06(土) 18:59:26 ID:9zaJ0Qz/
当たり判定って三角関数使って作ったほうがいい?
それともXY座標だけのでもいい?

376 :名前は開発中のものです。:2009/06/06(土) 19:42:33 ID:94tz/m1F
ちょっと質問。

 >int SetWaitVSyncFlag( int Flag ) ;
 >ScreenFlip関数 実行時にCRTの垂直同期信号待ちをするかのフラグセット

ってあるんだけど、
これって液晶モニタだと関係ない(常にtrue扱いになる?)んだろうか。

手元に液晶しか無いんで、プログラムが間違ってるのか仕様なのか判断できないんだ。


>375
なんの当たり判定だよと。
x,yだけで処理できるなら三角関数使わなくてもいいんじゃないの?


377 :名前は開発中のものです。:2009/06/06(土) 21:33:11 ID:gMk4d0ex
よくは判らんが、垂直同期信号って別にモニタが返してきてるわけじゃないんじゃない?
とりあえずうちの液晶モニタじゃ普通に動いてるし。

グラボ(RADEON)で垂直同期信号のON/OFF設定ができてるから
問題となるのはグラボの設定って気がする。

378 :名前は開発中のものです。:2009/06/06(土) 21:49:45 ID:94tz/m1F
ビデオカードか、言われてみればそりゃそうだよな。
なんかすまん。

色々と試してみた結果、
グラボの設定を変更&フルスクリーンでFPSが60Hzの上限を突破することが出来た。

まあ、実際に使うことはないだろうけれど。

379 :名前は開発中のものです。:2009/06/06(土) 21:52:06 ID:9zaJ0Qz/
>>376
横スクロールの当たり判定

380 :名前は開発中のものです。:2009/06/06(土) 22:08:08 ID:gMk4d0ex
>>379

君はもう少し自分の考えてる事を他人にわかって貰う努力をしろw

スクロールと当たり判定と三角関数がどう関わってくるのか、の説明とか
どうして「三角関数が必要かも」と思ったか、とか。

381 :名前は開発中のものです。:2009/06/06(土) 22:46:25 ID:sFhdVHFw
円形か四角か

382 :名前は開発中のものです。:2009/06/06(土) 23:14:29 ID:vskJtjA7
>>380
おまえ、偉そうジャン?

383 :名前は開発中のものです。:2009/06/06(土) 23:46:26 ID:+AmloxXp
ジャン()笑

384 :名前は開発中のものです。:2009/06/07(日) 00:27:15 ID:jsaQKHFo
>>380
努力しろとか、おまえ、何様ジャン?

385 :名前は開発中のものです。:2009/06/07(日) 00:43:22 ID:7g+XVYWN
MessageBox(NULL,"なんとか","かんとか",MB_YESNO)
これのメッセージの中身って、%dで変数表示したりできるんですか?
できるならどうやってやるんでしょうか、教えてください。

386 :名前は開発中のものです。:2009/06/07(日) 00:47:04 ID:jsaQKHFo
>>385
リファレンス読む努力しろ
こんな簡単な事ができなきゃやめちまえ

387 :名前は開発中のものです。:2009/06/07(日) 00:57:18 ID:WlXcjgXY
>>371-374
返答ありがとうございます。
どうも、うまく伝わってなかったみたいですね。

そうか、1つの建物なり乗り物を描画する時に縮小描画してるというわけですね。
それが普通ということですね。

>>386
あんたも努力しろって言ってるジャン


388 :名前は開発中のものです。:2009/06/07(日) 00:57:54 ID:fLd/zS9/
>>384
俺も379読んで380と同じ意見だ
384は379だけでわかるのか?

>>385
できない、sprintfを調べてみるといい

389 :名前は開発中のものです。:2009/06/07(日) 02:35:15 ID:3sx78L/g
当たり判定に三角関数が必要か?三平方の定理のことじゃないか
まあ俺は2次元しか知らんから分からんが

390 :名前は開発中のものです。:2009/06/07(日) 10:52:33 ID:OFYyutYg
いつからウミガメのスープスレにw

391 :名前は開発中のものです。:2009/06/07(日) 11:57:27 ID:caHBoLjZ
ウミガメノスープスレって何のことかと思って調べちまったじゃないかw

ある問題について出題者が回答者の質問にYes/No形式でヒントを与えつつ
解答を推理していくゲームか。

なるほど確かに、質問者がちゃんと状況を説明できず、情報も小出しにしかできないで
質問に答えようとする人間が、なんとか回答するに足るだけの情報を
引き出そうと四苦八苦するところが似ているな。

392 :名前は開発中のものです。:2009/06/07(日) 12:07:51 ID:OFYyutYg
>>391
ゲーム化したぜ(原作がスレって意味じゃないが)
スローンとマクヘールの体験版をプレイする作業に戻るんだ

393 :名前は開発中のものです。:2009/06/08(月) 08:25:05 ID:LOgaJ0S5
2Dスクロールゲームでさ
敵を出すときって、マップ座標の一定値までプレイヤーが来たら敵を出現させるって感じでいいのかな?
今敵の出現関数の引数にマップ座標渡してやってるんだけど、それだと思った所に出すのがめんどくさい。
もっといい方法ない?

394 :名前は開発中のものです。:2009/06/08(月) 08:29:40 ID:sCESisPc
なんかDXライブラリと直接関係ない質問が連発されるなぁ。
他にもっと適切なスレがあると思うんだが。

>>393

それで特に間違いはないと思うが、
マップデータに敵の存在情報を埋め込むという手もあると思うな。

自由スクロールかどうか等で、いろいろ工夫がいるようになるだろうけど。

395 :名前は開発中のものです。:2009/06/08(月) 09:03:31 ID:5KFTi9VQ
だったら誘導してやれば

2Dスクロールゲームと言ってもいろいろあるからそれにもよる

396 :名前は開発中のものです。:2009/06/08(月) 10:40:15 ID:tSfMBcni
というかどのスレか誘導して欲しい。
確かにDXライブラリ以外の話題はスレ的によくないと思うし。

397 :名前は開発中のものです。:2009/06/08(月) 11:12:30 ID:WLx6NXXx
2Dスクロールで敵が出ると言ってもシューティングや他のアクションゲームもあるし
それらで別れるからなあ。

398 :名前は開発中のものです。:2009/06/08(月) 11:33:19 ID:cazy22G6
DXライブラリに関係ないゲームアルゴリズム系総合なら、ここでいいんじゃね?

【初心者】スレを立てる前にココで質問を【Part19】
http://pc11.2ch.net/test/read.cgi/gamedev/1236761855/

399 :名前は開発中のものです。:2009/06/08(月) 13:24:46 ID:5KFTi9VQ
でもまあアルゴリズムと言ってもDXライブラリ的なアプローチもあるやも知れん

400 :名前は開発中のものです。:2009/06/08(月) 13:44:11 ID:1Ns/D0F7
DXライブラリ的なアプローチって何やねん

401 :名前は開発中のものです。:2009/06/08(月) 17:09:17 ID:Q/bmJU+V
DXライブラリを使ったアルゴリズムなら?

402 :名前は開発中のものです。:2009/06/08(月) 20:15:15 ID:fnZML6Vn
前に教えてもらった14歳からはじめるシリーズを立ち読みして
その中で、わくわくゲームプログラミングを買ってきました
ゆくゆくはRPG作れたらいいなぁ、なんて
しかし最近の14歳は凄いな、ざっと見たけどこの本理解できんだろうか・・

403 :名前は開発中のものです。:2009/06/08(月) 20:22:53 ID:kVsTXpwy
スレチだが、サルでもわかるXXの本があるのだから、人間はサル以下と

404 :名前は開発中のものです。:2009/06/08(月) 21:19:56 ID:ScR8iayc
PC-6001版ゼビウス(タイニーゼビウス)を作ったのは小学六年生だと聞いて愕然とした。

405 :名前は開発中のものです。:2009/06/08(月) 23:13:08 ID:4xXNhiJa
小学生なめんな
年齢で知識の量は違っても論理力はたいして変わらないと思う

406 :名前は開発中のものです。:2009/06/08(月) 23:22:34 ID:gmTgYuK1
>>402
昔は小中でハンドアセンブルとかふつうだったし
テキストエディタ無かったし
アセンブラやコンパイラ無かったし

それでもゲーム作ってたからね

資料がネット無い時代だけど毎月大量の雑誌があったおかげで
今の10倍は情報量があると思う

14歳からはじめる〜の内容が毎月5冊くらい雑誌としてあったと思いねぇ

407 :名前は開発中のものです。:2009/06/08(月) 23:31:36 ID:VwdPN9TR
テキストエディタがないってどうやってコーディングしてたんですか

408 :名前は開発中のものです。:2009/06/08(月) 23:35:38 ID:1Ns/D0F7
>>406
モノがあふれてない方がかえって集中できてよいことの典型的な例ですな

409 :名前は開発中のものです。:2009/06/08(月) 23:38:00 ID:rJGFypi7
当時でも、機械語でゲーム製作できる小学生は相当凄い。
情報も今のほうが圧倒的に多いし楽に手に入る。
逆に、情報や手段が多いせいで入りにくくなってる。


410 :名前は開発中のものです。:2009/06/08(月) 23:58:56 ID:gmTgYuK1
>>407
方眼用紙もってドット絵かいたりハンドアセンブルばっかりしてた
変換表の半分くらいは暗記してたけど今じゃもう何も覚えて無い
c9がretだっけとかそんな感じ
ミスすれば暴走>リセットだったから実行するにも緊張した

結果机上デバッグにみんな慣れてソースやバイナリ見るだけですぐわかるようになってくる
バイナリ見たときのビッグエンディアンのわかりやすさはあこがれた
なんせ俺の暴走原因の90%は上位と下位のスワップし忘れがほとんどだったから


あと当時はPCの楽しさは俺達しかしらないんだぜ的なものもあったかな

というか全然普及して無いから虐げられてた
マイコン触れる=ネクラの変人で運動も何も出来ないんだろ的な

だからDXライブラリのように敷居を下げるライブラリにはがんばってもらいたい

今のほうが情報が入手しやすいというのはどうだろうね
CPUそのものとかOSとかデザパタとかそういうオカタイ情報は入手しやすいけど
ゲームを作りたい場合の情報の敷居の高さは半端じゃないよね?

徳間のM-FANみたいなのが必要かなと

411 :名前は開発中のものです。:2009/06/09(火) 00:57:34 ID:S/a6iR+n
ゲームプログラミングが初めてだという人、特にゲームを作りながら言語も覚えようという人は
最初は出来る限りシンプルなゲームから作った方がいい…と、僕は思うんだ。

80年代前半より前の生まれなら、ゲーム&ウォッチが通じるんだが
最近の子(20歳以下)だと、どのへんが分かりやすい例え何だろうか。

412 :名前は開発中のものです。:2009/06/09(火) 01:10:43 ID:oifuXaCW
>>407
>>410

俺も方眼紙にドット絵描いたり、
ノートにニーモニックでプログラム書いてから、ニーモニック→マシン語変換表見ながらマシン語に書き換えて、
それをバイナリエディタで入力とかやってたなぁw

ところで当時バイナリエディタって読んでたっけ? なんか別の呼び方だったような気がするが……。

413 :名前は開発中のものです。:2009/06/09(火) 01:17:12 ID:gC7kpoXP
モニタ

414 :名前は開発中のものです。:2009/06/09(火) 01:46:37 ID:PMo4RsPh
ここにいる人は40歳前後が多そうだな

415 :名前は開発中のものです。:2009/06/09(火) 02:52:08 ID:3VeuGuyA
そんな知識のある父がほしかった

416 :名前は開発中のものです。:2009/06/09(火) 03:20:38 ID:C8Rc41AV
今思い出すと俺も16,7の時もツクールで
なんであんなに創作意欲があったんだろうと思う

年取るとアイデアうかばない症候群になった
ただの鬱なのかもしれんが

417 :名前は開発中のものです。:2009/06/09(火) 04:40:20 ID:ur7it59g
>>411
VCもあることだしファミコンでいいんじゃね?

418 :名前は開発中のものです。:2009/06/09(火) 05:12:36 ID:6uG82dMD
高校でパソコン部を作りたいと申請したら
教師に「そんなおもちゃが一体何の役に立つんだ」と
即却下されたのもなつかしい

419 :名前は開発中のものです。:2009/06/09(火) 09:36:31 ID:S/a6iR+n
>>417
ファミコンだと、スーパーマリオ3やドラクエ3も含まれるんだぜ?
ケータイアプリとかなら行けるのかな? やったことないから分からんのだが。

420 :名前は開発中のものです。:2009/06/09(火) 09:50:17 ID:ur7it59g
どんなタイトルでもいいだろ

421 :名前は開発中のものです。:2009/06/09(火) 11:52:23 ID:S/a6iR+n
そうか、別にそう思うならそれでいいんだが。

422 :名前は開発中のものです。:2009/06/09(火) 13:07:47 ID:IuPr0Cmy
>>416
俺もツクールに数百時間費やしたくちだが、今思うと凄いな。
アイデアは今でも思い浮かぶんだが、頭の中だけで終わってそれを表に出そうっていう気にならない。
誰かが作ってくれるならアイデアとかは言うんだけど自分でやるってなるとめんどくさくて。

ちなみにその数百時間かけたのはセーブデータぶっ飛んで電子の藻屑に\(^o^)/
数百時間かけてすら、まだ1/5程度な完成度だったけど・・・


423 :名前は開発中のものです。:2009/06/09(火) 14:14:05 ID:+TNFSrzk
DXに関係ない話題がどうとかってかいてあったくせに、早速関係ない話題にあふれてる件

424 :名前は開発中のものです。:2009/06/09(火) 14:29:51 ID:/uwI++Tj
2chなんてそんなもんさ

425 :名前は開発中のものです。:2009/06/09(火) 14:45:39 ID:/EtnpSFu
どうとか言った人間と話題に出してる人間が別人だからこそだろ。

426 :名前は開発中のものです。:2009/06/09(火) 23:50:55 ID:ggNV6tYD
DXライブラリで、選択肢並び替え問題を作っているんですが、ちょっと行き詰ってしまったので、質問させてもらいます。
プログラムとしては、選択肢を選んだ順番に配列に格納して、正しい解答と比較することで正誤判定をしています。
一応、選択肢を選んで決定するところまではできたのですが、正誤判定の部分?がうまくいかないんです。
正しい順に選択肢を選んでも、間違っているということになっているみたいです。
なぜでしょうか?
あと4回目に選択肢を選ぶと、変な文字が表示されるのはなぜでしょうか?

自分の作ったプログラムです。
ヘッダファイルとメイン部分、会話(選択肢並び替え)部分に分かれています。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9402.cpp

C言語をはじめて1年、DXライブラリをはじめて2か月くらいなので、やさしく教えてください。
お願いします。

427 :名前は開発中のものです。:2009/06/10(水) 01:02:39 ID:EOc9oIq+
>>426
char input[5][1];
をグローバルにすればとりあえず動くと思う

ところで、要素数1だったら配列の意味なくね?

アドバイスとして、
↓の関数あたりを使えばもう少しスマートに書けると思う
sprintf、strcmp (C言語)
DrawFormatString (DXライブラリ)

428 :名前は開発中のものです。:2009/06/10(水) 15:37:12 ID:UXlA/6A3
>>427
inputをグローバル変数にしたら、うまくいきました。
アドバイスしていただいたことも参考にして、もう少しスマートなプログラムが書けるように努力します。
本当にありがとうございました。

429 :名前は開発中のものです。:2009/06/10(水) 22:45:00 ID:kJPqJciV
はじめてだから優しくしてねって言うと
かえって乱暴に扱われるってばっちゃが言ってた

430 :名前は開発中のものです。:2009/06/10(水) 23:47:48 ID:yn44iXp9
こんなとこでじっちゃの性癖を暴露せんでもよかろう。

431 :名前は開発中のものです。:2009/06/11(木) 23:55:55 ID:GA3GCHk+
int keiken;


if(keiken==0)printf("童貞乙");


432 :名前は開発中のものです。:2009/06/12(金) 00:00:02 ID:ADvlYAyg
>431
初期化しとけ

433 :名前は開発中のものです。:2009/06/12(金) 00:04:48 ID:M4d3vxIH
>>432
こうですか?分かりません><

#define KEIKEN 0

if(KEIKEN==0)printf("童貞乙");

434 :名前は開発中のものです。:2009/06/12(金) 04:04:32 ID:Yy7W6LDG
こうでしょ

int keiken=0;

if(keiken==0)printf("童貞乙");

435 :名前は開発中のものです。:2009/06/12(金) 07:22:27 ID:9cqRM4P7
const int keiken=0;

if(keiken==0)printf("童貞乙");

436 :名前は開発中のものです。:2009/06/12(金) 08:37:17 ID:yeEoVlcI
これだからプログラミングはやめられないw

437 :名前は開発中のものです。:2009/06/12(金) 11:39:23 ID:jHstWpts
int keiken = 0;

keiken ++ ;
keiken ++ ;
keiken ++ ;
keiken ++ ;

if ( 1 ) printf ( "童貞乙" ) ;


これで。

438 :名前は開発中のものです。:2009/06/12(金) 12:18:42 ID:xPu8mGZk
雑談するにしても、せめてDrawFormatStringを使うぐらいには気を回してくれよ。

439 :名前は開発中のものです。:2009/06/12(金) 12:22:38 ID:Upl7Se9G
動くわけねーと思ったら動いた。
インクリメントってスペースがあってもいいの?

440 :名前は開発中のものです。:2009/06/12(金) 12:33:12 ID:5rESS90A
半角スペースは無視されるだろ

441 :名前は開発中のものです。:2009/06/12(金) 12:48:39 ID:l4TbPUJW
if(keiken)
とか
if(!keiken)
ってみんなあんま使わない?
視認性重視で「==1」「==0」なのかな?
某神録のサイトでも今見たらそんな表記だった。

442 :名前は開発中のものです。:2009/06/12(金) 13:02:13 ID:jHstWpts
>441
よく使うと思うが、今回は単に>431に合わせただけじゃない?
あとは掲示板で見やすい書き方というのはあるかもしれんね。


443 :名前は開発中のものです。:2009/06/12(金) 13:08:28 ID:AJoYy9jz
あんま面白くなかったけど、今回のは0回かどうかが重要だから
あえて==0使ったんでしょ。
実際のコードでもそういうことはやる。

444 :名前は開発中のものです。:2009/06/12(金) 13:48:30 ID:6cWATceQ
>>441
0であることを強調するため。

あと文化圏の違いもある。
0が偽じゃない言語も多数存在するから、そういう言語出身の人は
if(keiken)というコードは気持ち悪く感じる。
逆に生粋のC/C++の人はif(keiken==0)というのは冗長に感じる。

俺は簡潔性よりもわかりやすさを重要と考えてるから、==で比較する。
使う言語がC++だけじゃないってのもあるけど。


445 :名前は開発中のものです。:2009/06/12(金) 13:57:03 ID:+pEtBUBP
http://www.youtube.com/watch?v=vYuqJPUIfRA
こういうのDXライブラリで作ってるのかな

446 :名前は開発中のものです。:2009/06/12(金) 13:58:09 ID:+pEtBUBP
>>441

while(!CheckHitKey(KEY_INPUT_ESCAPE)){

}

おおこういう表記もできるのか

447 :名前は開発中のものです。:2009/06/12(金) 14:39:12 ID:Nk+ds+Ow
変数自体の評価なら「==」で結ぶけど、
関数の戻り値なら>>446みたいな感じで書くかな。

448 :名前は開発中のものです。:2009/06/12(金) 15:36:56 ID:CIdl30UY
2値もしくはそれに準じるものなら>>446
3値以上なら(不)等号あるいはswitchを使うかな
 if (!strcmp(str, "hoge")) // 一致したら
とかは気持ち悪い


449 :名前は開発中のものです。:2009/06/12(金) 16:05:58 ID:wLR5hiQv
スタイルは人それぞれ。自分に合ったやり方で書けば良いよ。

450 :名前は開発中のものです。:2009/06/12(金) 18:56:18 ID:g9ISpJC5
if (0==keiken)
やっぱこれは見づらいのかな

451 :441:2009/06/12(金) 19:00:21 ID:l4TbPUJW
>>450
俺自身はそれ。
会社でfalse==keikenって書いたら!に修正されていたけど

452 :名前は開発中のものです。:2009/06/13(土) 10:14:12 ID:yreqn12m
具体的な数値や列挙が書いてあるだけマシ
世の中には条件式を省略しようとする輩がいるから


453 :名前は開発中のものです。:2009/06/13(土) 10:24:26 ID:yreqn12m
だいたい

if(hoge()){

}

じゃ返値をひとつだけ判定することができないじゃないの
あとでhoge()の返値を増やしたら予期せぬ動作をする可能性が高い
hoge()の返値を絶対に増やさない!なんて自信満々に言える奴は少ないでしょ
==で結べば必ず1つの返値で動作するから安全




454 :名前は開発中のものです。:2009/06/13(土) 13:01:19 ID:khmiiTOM
>>453
C++は多値返せないよ

戻り値のとり得る値が増減する、とエスパーすると、

関数の戻り値っていうのは、関数本来の意味を参照すると、
関数の作用そのもの、すなわち関数が実装する機能そのもの。
(わからないならSchemeやHaskellとか関数型プログラミング言語を一度触ってくれ)

これが変更されるということは、すなわち関数の機能が変わったか、設計の錬度が全く足りてない
(どんな機能を実装するかすらあやふやだった)かどちらか。
どちらにせよその変更は、その関数を使用するコード全体に波及する。

だから
>あとでhoge()の返値を増やしたら予期せぬ動作をする可能性が高い
この指摘はずれてる。
繰り返しになるけど、戻り値の変更はそれを使用するコード全体に波及するから、
予期せぬ動作をする可能性が高い、じゃなくて、予期せぬ動作をしないようにコード
を変更しないといけない。

455 :名前は開発中のものです。:2009/06/13(土) 15:58:30 ID:MRDz7JnU
>>453
実装の修正は何度もやるとして
インターフェースや振る舞いはなかなか変えないもんだ

というか、戻り値の意味が2通りを超える時は
関数名も変えざるを得ない気がするが

456 :名前は開発中のものです。:2009/06/15(月) 23:58:33 ID:FuxW1Dfe
Windows 7 のペイントでpng保存しても
透明色指定しても透明にならない
bmp2pngが必要

457 :名前は開発中のものです。:2009/06/16(火) 01:46:16 ID:H4jkoMGr
文字列を画面の中央に表示したいけど
何かいい方法あるかな?
x座標を調整するの面倒だ

458 :名前は開発中のものです。:2009/06/16(火) 02:10:16 ID:1CAlzcIC
>457
自分は使ったことないんで分からないけど、

 GetDrawStringWidth
 GetDrawFormatStringWidth

というのはどう?
で、長さを調べてxを調整して、文字列を出力するところまでを1つの関数にしちゃうの。

459 :名前は開発中のものです。:2009/06/16(火) 02:19:38 ID:qN6akUYZ
ドラクエみたいに停止してるキャラに足踏みさせるいい方法ないかな?
countを0と1でオンオフしてSleep(300)とかで歩行と同じように調整はできたんだけど、
歩き出しが時々ぎこちないので悩んでます。sleepじゃなくていい方法が思いつかない

460 :名前は開発中のものです。:2009/06/16(火) 02:28:14 ID:H4jkoMGr
>>458
フォントを変えないならいける
CreateFontToHandleで作ったフォントデータだと駄目っぽい

>>459
countを範囲でオンオフ切り替えてみては
if(count%40<20)//ドロー
else //ドロー2
count++;

461 :名前は開発中のものです。:2009/06/16(火) 02:34:01 ID:wxVXqeT5
>>460
GetDrawStringWidthToHandleがあるじゃん

462 :名前は開発中のものです。:2009/06/16(火) 02:36:09 ID:H4jkoMGr
>>461
うわ・・・恥ずかしい・・ごめんなさい
ありがとねん

463 :名前は開発中のものです。:2009/06/16(火) 03:45:39 ID:1CAlzcIC
>459
そもそもSleep使ったら何も出来なくなるんじゃ?

464 :名前は開発中のものです。:2009/06/16(火) 08:51:37 ID:mvp6g5dM
歩行絵+右足踏み出し絵と左踏み出し絵を描けばいいだけじゃね?

465 :名前は開発中のものです。:2009/06/16(火) 09:09:09 ID:q6YxOHAd
while(ProcessMessage()!=-1){
ClearDrawScreen();

if(count<20) 右足が前に出てるキャラ表示
if(count>=20&&count<40)左足が前に出てるキャラ表示
ScreenFlip();
WaitTimer(10);
count++;
if(count==40)count=0;

}

うーんよくわからん

466 :名前は開発中のものです。:2009/06/16(火) 09:54:16 ID:1CAlzcIC
>465
基本的な考え方はそれでいいと思うよ。
あとせっかく答えてくれた>460の答えも読んどいた方がいいんじゃね?


467 :名前は開発中のものです。:2009/06/16(火) 10:06:16 ID:yTy6SiIo
>>465
基準FPS値決めて、フレーム数と秒が変換できるようにしてみるといい
あとWaitTimer(10)とかいうのはジョークだよね?w

468 :466:2009/06/16(火) 10:16:47 ID:1CAlzcIC
とりあえず>466の日本語がおかしいってのはスルーしてくれると嬉しい。

>>467
おや、見逃してたw
もしかして>463(俺)の発言を勘違いしちゃったのかな……? だとしたらちょっと責任感が。

469 :名前は開発中のものです。:2009/06/16(火) 12:57:31 ID:zt3Tshey
>>467
たぶんWaitTimer等の関数を使わないと高速足踏みに見えると感じて、
こういう手段で自然に見えるようにしたんじゃないかな。
一秒でひとつの動作をループさせる必要はないからこれはあまり良くないと思うけど。

470 :名前は開発中のものです。:2009/06/16(火) 13:19:46 ID:1CAlzcIC
>469
count値20ごとに表示を変えてるみたいだし、それは大丈夫なんじゃないかしら?

471 :名前は開発中のものです。:2009/06/16(火) 14:04:12 ID:KbLsp5Ay
ScreenFlipで垂直同期信号待ちが行われているかどうかで変わってくるような。

472 :名前は開発中のものです。:2009/06/16(火) 14:17:30 ID:MjcTUWQv
WaitTimer使う位なら count<20 の値を増やした方がよくね

473 :名前は開発中のものです。:2009/06/16(火) 16:03:45 ID:rewLOGjy
時分割で状態変移したいのなら、コルーチン使ってみては?
と上級者ぶってみるわ

474 :459:2009/06/16(火) 18:26:00 ID:qN6akUYZ
いろいろ意見ありがとう。
WaitやSleepは使わずにFPSとかFrameやらを使って試行錯誤してみます。
countを0と1でオンオフにしてたけど>>465のようにフレームカウントにしてやってみます。

475 :名前は開発中のものです。:2009/06/16(火) 18:35:39 ID:1CAlzcIC
別人だったんか!

476 :名前は開発中のものです。:2009/06/16(火) 23:35:34 ID:8GILQKQT
リフレッシュレートの概念がわからないと変なの書いちゃうぞ
レートは60ヘルツかも100ヘルツかもしれないし
65とか75とか微妙な数値になることもある
DXライブラリの教本にあるように書かないと、動作環境が変わった時に同じように動く保証がない

俺が以前に見た酷い例
FPSが60切ると点数がどんどん減る意味不明なゲーム
しかもどんなアルゴリズムか知らんが、FPS60でも点数が減りっぱなし
ああいう「自分の環境しか見ない」人間は駄目だな


477 :名前は開発中のものです。:2009/06/16(火) 23:40:46 ID:fYBFrBfu
ゲーム機のゲームってその辺固定だからなにも考えなくていいんだよなー。

478 :名前は開発中のものです。:2009/06/16(火) 23:56:34 ID:1CAlzcIC
>>476
と言っても、個人レベルの開発でどこまで他の環境を考えられるやら。

定番のアルゴリズムとかは書けるかもしれないけど、それだけじゃ意味ないし。
結局のところ「知らね」って言いきるしかできない。

479 :名前は開発中のものです。:2009/06/16(火) 23:59:57 ID:+nd9Tj3k
俺今作ってるゲームはリフレッシュレート無視しちゃってる。
ティアリングが気になるんだよなぁ。

他人が作ったゲームは60FPS超えるやつとかあるけど
ティアリングあまり気にならないんだよな。どうやってんだろ。

480 :名前は開発中のものです。:2009/06/17(水) 00:27:22 ID:gsrBiXQc
>>469
WaitTimer(10); 入れるとCPU使用率が下がる ただそれだけw


481 :名前は開発中のものです。:2009/06/17(水) 00:32:32 ID:s0zhQi6M
>>479
君みたいな人が駄目らしいよ
自分の環境しか見ない人間は駄目なんだってさ

ていうかさ、FPSが60切ると点数がどんどん下がるゲームかどうか
ソースもアルゴリズムも考えずにどうやって判別したのかねwプッw
偉いなぁこの人wプレイしただけでバグの原因分かっちゃうって>>476は神だねwプッw

482 :名前は開発中のものです。:2009/06/17(水) 03:56:59 ID:moXGEW/H
環境を合わせる方法としては
1,Sleepを使ってFPSを30ほどに落としてやる。
2,時間と同期をとる。
くらいしか思いつかない。

483 :名前は開発中のものです。:2009/06/17(水) 07:52:50 ID:zFwmddUq
関係ないけど、テクスチャに描画する場合ってZバッファ効かないんだね

484 :名前は開発中のものです。:2009/06/17(水) 08:55:08 ID:Sg+3JQO3
リフレッシュレートをAPIを使ってある固定値に設定する

485 :名前は開発中のものです。:2009/06/17(水) 15:01:39 ID:v4ECr6VG
セガの新人教育の本の人いわく、
作りやすいのは固定フレーム、性能を活かしやすいのは可変フレーム。


自分は面倒なので、60固定前提でやってるんだが
 (1)タイマ(ミリ秒)を取得して1フレームの規定時間(16msec)が過ぎるまで待つ
 (2)モニタのVSYNCを待つ
 (3)モニタのリフレッシュレートを変更する
の3パターン用意して、あとはユーザに適当に選んでもらおうかなと。

まずいかな?


486 :名前は開発中のものです。:2009/06/17(水) 18:17:49 ID:V4BAg+VP
ScreenFlip使えばFPS保たれるんじゃないの

487 :名前は開発中のものです。:2009/06/17(水) 18:47:03 ID:A2Hqv0+b
>ScreenFlip使えばFPS保たれるんじゃないの

・環境(グラボの設定)によっては垂直同期信号待ちがOFFになってる場合があるのでFPSは保たれない。

・垂直同期信号待ちがONだとして、FPS保てる状態でも、
 モニタのリフレッシュレートを60にしてたり70にしてたりってのはユーザーの好き好きなので、
 作り手の望んだとおりのFPSになってくれるとは限らない。


488 :名前は開発中のものです。:2009/06/17(水) 20:28:42 ID:00woQzQy
めんどくさいからゲーム機のゲーム作ろうぜ

489 :名前は開発中のものです。:2009/06/17(水) 20:53:25 ID:00woQzQy
http://www.gbadev.org/
http://www.pqrs.org/tekezo/gba/index.html.ja
http://omoshiro-joho.com/tech-center/cgi-bin/wiki/index.php?Linux%A4%C7GBA%A5%B2%A1%BC%A5%E0%B3%AB%C8%AF
http://nocash.emubase.de/gbatek.htm
http://belogic.com/gba/directsound.shtml

490 :名前は開発中のものです。:2009/06/18(木) 01:52:47 ID:lg5GVuaj
>>481は得点表示も見れないようです

491 :名前は開発中のものです。:2009/06/18(木) 04:16:26 ID:eqFlz8O1
勝手にリフレッシュレート60に切り替える命令とかあればいいのに

492 :名前は開発中のものです。:2009/06/18(木) 04:54:12 ID:U/ILN7Qk
>>491
一応あるっしょ。

493 :名前は開発中のものです。:2009/06/18(木) 05:03:47 ID:4gTcdCic
別に少々速度違ってもいいじゃない

494 :名前は開発中のものです。:2009/06/18(木) 05:07:59 ID:U/ILN7Qk
>493
アクションゲームのゲーム速度2割アップとか結構きついですぜ

495 :名前は開発中のものです。:2009/06/18(木) 07:25:22 ID:8Inai5Jq
DXライブラリ3Dってどうなったの?
開発中止?

496 :名前は開発中のものです。:2009/06/18(木) 09:48:52 ID:obCaTvEe
60FPSのゲームを70FPSとか、とんでもないぜw

497 :名前は開発中のものです。:2009/06/18(木) 16:23:14 ID:FAWLSPyh
たまに弾幕シューティングが75FPSになったりするけど、
気づくのはいつもしばらくプレイしてからだった

498 :名前は開発中のものです。:2009/06/18(木) 16:53:46 ID:U/ILN7Qk
>497
気付かぬうちに難易度が上がってたり、タイミングが変わってミスを誘発させたりするって
ちょっと怖いよな。

499 :名前は開発中のものです。:2009/06/18(木) 17:10:57 ID:4gTcdCic
一般的に表示上のFPSが上がるとゲーム速度も上がるものなの?

ってことは2次元アクションでいえば1フレーム毎の移動量が固定なのか。
自分自身も楽だからそういう作り方をしているけど…

例えばあるゲームで
60FPSだと重いのでコンフィグで30FPSに変更って場合は
ゲーム速度そのものは変わらないものだと思っていた。

500 :名前は開発中のものです。:2009/06/18(木) 17:35:08 ID:u8KJWVMz
>>499
時間で処理、描画だけFPSで更新なら変わらないよ。
全体をFPS60処理だと60より上に上がらないようにしてるのが一般的かなぁ。
ツールで簡単に上げれたり、処理間に合わないとFPS下がって全体の速度も低下する。

501 :名前は開発中のものです。:2009/06/18(木) 17:56:28 ID:U/ILN7Qk
>499
フレームではなく時間単位で処理してるなら
ゲーム速度云々の話題にすらならんと思うよ。

502 :名前は開発中のものです。:2009/06/18(木) 21:48:15 ID:3XyNBKLr
しかし時間単位で処理すると確実にティアリングが発生するので画質面で劣るという

503 :名前は開発中のものです。:2009/06/18(木) 21:57:55 ID:y4gPpvjp
そんなの関係なくバッドノウハウ使わない限り起きるだろw

504 :名前は開発中のものです。:2009/06/18(木) 22:12:42 ID:4gTcdCic
発想を逆転させるんだ
ユーザーをゲームに合わしちまえばいいんだ

505 :名前は開発中のものです。:2009/06/18(木) 23:01:35 ID:7QIAxIr+
まともにゲーム作ったことある人手あげて〜?

506 :名前は開発中のものです。:2009/06/18(木) 23:19:36 ID:cOrVzTjy
>>502

違うんじゃない?
モニタのリフレッシュレートが60だろうが70だろうが時間単位で処理するからこそ
スピード一定でティアリングも発生しないようにできるんでしょ。

垂直同期信号が切ってあるなら、そもそもティアリングは発生してあたりまえだろうし。

507 :名前は開発中のものです。:2009/06/18(木) 23:47:20 ID:3XyNBKLr
モニタの画面更新のタイミングを無視してメモリ上の画面データを書き換えると言うことだから
1画面分のデータの構築途中でそのメモリイメージが画面に表示されて画面上部と下部でフレームがずれるということだから
ティアリングが発生するということじゃないの

508 :名前は開発中のものです。:2009/06/18(木) 23:58:10 ID:cOrVzTjy
「モニタの画面更新のタイミングを無視する」なら、時間単位で処理する意味ないでしょ?

なぜ時間単位で処理する必要があるかって言ったら、
垂直同期信号待ちをして、ティアリングを起こさないようにしたいけど、
ユーザーのモニタのリフレシュレートが60なのか70なのかが判らない、からでしょ?


509 :名前は開発中のものです。:2009/06/19(金) 00:03:49 ID:Wkij18nv
間違えた。逆だった。
実際の画面の更新途中でメモリ上の画面データが更新された場合に、描画済み画素と未描画画素でフレームがずれるためティアリングが発生する、だった。
要するにAPIでリフレッシュレートを60に設定して60前提で作ればよい。60に対応してないモニタを使ってるやつのことは知らない。

510 :名前は開発中のものです。:2009/06/19(金) 00:08:11 ID:AlkmRsbh
なんか「時間単位で処理」と「フレーム単位で処理」の認識が逆になってる気がするw

511 :名前は開発中のものです。:2009/06/19(金) 00:12:38 ID:s7w0uGNM
>509
FPS指定APIは過信してはいけない
上のほうにあるようにドライバ側の設定が優先される

512 :名前は開発中のものです。:2009/06/19(金) 00:22:34 ID:Wkij18nv
じゃあPC環境は糞

513 :名前は開発中のものです。:2009/06/19(金) 00:47:10 ID:pN8o6lEn
>509
「60以外は知らん」と言いきっちゃうのも、それはそれでアリな気がする

514 :名前は開発中のものです。:2009/06/19(金) 02:05:59 ID:7uKPrG8o
最近は液晶が殆どだしそれもありだな

515 :名前は開発中のものです。:2009/06/19(金) 03:38:42 ID:AlkmRsbh
液晶がどう関係するのか。

516 :名前は開発中のものです。:2009/06/19(金) 08:04:02 ID:huFKHnzQ
一般的な普及価格帯のやつは選択肢が60Hzや59Hzしかない

517 :名前は開発中のものです。:2009/06/19(金) 09:00:27 ID:Dq7L9OoN
>>516
20世紀へお帰り下さい

518 :名前は開発中のものです。:2009/06/19(金) 09:40:02 ID:4AnMu6gm
自己中心的なハード理論を押し付けるもんじゃない
動作環境をテキストに書いたら、それを満たすあらゆる環境で同じように動いてもらわないと困る
デフォルトで不具合が出る可能性があるなら、設定で変えられるようにしなきゃ駄目
なるべくたくさんの環境でテストするのも大事


519 :名前は開発中のものです。:2009/06/19(金) 12:28:29 ID:8D0wDPEb
難しいことしなくても、垂直同期かウェイトかはオプションで選べようにすれば問題ないだろ


520 :名前は開発中のものです。:2009/06/19(金) 12:57:07 ID:ciGq9GNb
全くその通りだと思うんだが、
そういう選択式になってるゲームってほとんどみないよな?

普通はどうやってんだろ、ってのが話題の焦点じゃないかな。

521 :名前は開発中のものです。:2009/06/19(金) 15:25:14 ID:pN8o6lEn
>>517
実際、60Hz固定のモニタも多いんじゃね?

522 :名前は開発中のものです。:2009/06/19(金) 16:07:46 ID:L4Ogxl+D
他に話題ねーのかよ
飽きた

523 :名前は開発中のものです。:2009/06/19(金) 16:47:37 ID:8D0wDPEb
何か話したい話題があるなら自分から振れと

524 :名前は開発中のものです。:2009/06/19(金) 23:33:13 ID:Dq7L9OoN
>>521
だから帰れってww

525 :名前は開発中のものです。:2009/06/19(金) 23:50:46 ID:L4Ogxl+D
んー
じゃぁDxLibの今後

俺はもう少し発展してくれてもいいと思う、3Dを強化して欲しいね

526 :名前は開発中のものです。:2009/06/20(土) 00:41:17 ID:ynTX3CaL
無理じゃね
3D強化するなら作り直しレベルだろ

527 :名前は開発中のものです。:2009/06/20(土) 00:42:51 ID:FZJG9pXN
デスクリムゾンレベルなら作れるw

528 :名前は開発中のものです。:2009/06/20(土) 00:53:36 ID:gQS8hglY
上からくるぞっ!気をつけろ!

529 :名前は開発中のものです。:2009/06/20(土) 01:03:05 ID:X3CDDO5o
>>526
いま3D機能作ってるって公式掲示板で言ってたけど・・・
意外とみんなチェックしてないんだな

530 :名前は開発中のものです。:2009/06/20(土) 01:08:17 ID:ppcvkMn4
>>529
なん…だと?

531 :名前は開発中のものです。:2009/06/20(土) 01:49:27 ID:FZJG9pXN
俺のクリムゾンは下からくる設定で作るわ

532 :名前は開発中のものです。:2009/06/20(土) 02:34:40 ID:gQS8hglY
せっかくだから俺はこの赤い扉を選ぶぜ!!

533 :名前は開発中のものです。:2009/06/21(日) 02:15:20 ID:dtFx8GuN
Platinumっていうマップエディタで、15*20マスのマップを作って
csv形式で出力して、読み込んで描画したいんだけど上手くいきません

#include "DxLib.h"

int WINAPI...
{
if( DxLib_Init() == -1 ) return -1 ;

int mapchip[256];
char mapdata[15][20];
int filehandle;

LoadDivGraph("a.bmp",256,16,16,16,16,mapchip);
f = FileRead_open("a.csv");
FileRead_gets(mapdata,num,filehandle);

このあとfor文でFileRead_getsで読み込んだ1行を15回くりかえして
mapchipに入れていきたいんだけど・・・
FileRead_getsのnumに何を入れていいのかが??状態。
リファレンス読んでもメモリ領域のサイズて書いてあるけど・・・

日本語おかしくてスマン

534 :名前は開発中のものです。:2009/06/21(日) 02:35:09 ID:ffHKmVPn
numはメモリ領域のサイズってリファレンスに書いてあるじゃん。

てか、a.csvの内容はどんな感じになってんの?

535 :名前は開発中のものです。:2009/06/21(日) 02:48:44 ID:aQAsxkjf
>>533
int mapdata[15][20],mapwidth= 0, mapheight= 0, mapchipwidth, mapchipheight, bitcount;
int filehandle;
char buf[1024];
filehandle = FileRead_open("a.csv");
if (filehandle==0){エラー処理}
int gyoucount = 0,retucount = 0, iVal,layercount;
while((FileRead_eof(filehandle) == 0)&&( gyoucount < mapheight+1 ))
{
FileRead_gets(buf, 1023, filehandle);
if (gyoucount == 0){
sscanf_s(buf, "%d,%d,%d,%d,%d,%d", &mapwidth, &mapheight, &mapchipwidth, &mapchipheight, &layercount, &bitcount);
}else{
while(retucount<mapwidth){
char *next_token;
if (retucount==0){
iVal=atoi(strtok_s(buf, ",",&next_token));
}else{
iVal=atoi(strtok_s(NULL, ",",&next_token));
}
mapdata[gyoucount-1][retucount] = iVal;
retucount++;
}}
gyoucount++;
retucount = 0;
}
FileRead_close(filehandle);
if( ( gyoucount != mapheight+1 ) || ( retucount != 0 ) ){エラー処理}

536 :名前は開発中のものです。:2009/06/21(日) 02:49:49 ID:dtFx8GuN
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 0 0 0 0 0 0 0 1 1 3 3 0 0 0 0
1 1 1 1 1 1 0 0 0 0 0 0 0 0 3 3 0 0 0 0
1 1 1 1 1 1 1 0 0 0 0 0 3 3 3 0 0 0 0 0
1 1 1 1 1 1 1 0 0 0 3 3 3 3 3 3 0 0 0 0
0 0 0 0 0 0 0 0 0 0 3 3 3 3 3 0 2 2 0 0
0 0 2 2 2 2 2 2 0 0 0 0 3 3 0 2 2 0 0 0
0 0 0 0 0 2 2 2 0 0 0 0 2 2 2 2 0 0 0 0
0 0 0 0 0 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0が草原で1が川で2が森で3が山です
1行ずつ読み込んでchar chip[ ][ ]に入れて
その番号をint型の数字に変換してmapchip[ ]で描画させたいんですが・・orz

ごめん、メモリ領域のサイズってどうやって調べるの?

537 :名前は開発中のものです。:2009/06/21(日) 04:17:54 ID:jkwbtsZu
コーディングしたのはおまいさんだろ?

538 :名前は開発中のものです。:2009/06/21(日) 08:29:25 ID:vb/GsENJ
FileRead_gets(mapdata,sizeof(mapdata),filehandle);


539 :名前は開発中のものです。:2009/06/21(日) 09:37:49 ID:SurdRKYg
>>507
遅れたけど正確にはダブルバッファリングしてるからティアリングはおきないよ。
データの構築中に画面に表示される事は無い。
あと垂直同期を待ちつつタイマーで調整する事も可能。
具体的にはタイマーでfpsを調整すれば、ゲームが基準にするのはタイマーじゃなく、
一定間隔が保障されてるフレームを基準にすればおk

540 :名前は開発中のものです。:2009/06/21(日) 13:35:35 ID:QJhUeuVR
マップの縦横が固定長なら
ifstream+For2重ループで読み込んでしまえば良い
都合のいいことに半角スペース無視ってくれるからね

c++知らなければスルーしてよし

541 :名前は開発中のものです。:2009/06/21(日) 13:59:11 ID:E25maqZD
垂直同期を待つってことは動作速度がリフレッシュレート固定になるってことじゃないの?
最期の2行の意味をくわしく。

542 :名前は開発中のものです。:2009/06/21(日) 14:24:01 ID:ZO5ct3aw
可変レートの場合、
60の時は、前回の1/60秒後の世界を描くし50の時は1/50秒後の世界を描くんだろう。

543 :名前は開発中のものです。:2009/06/21(日) 14:40:01 ID:/SjwP+Lm
ググってると公式サイトのリファレンスに載ってない関数が時々出てくるんですけど、
そういうのが載ってる詳細なリファレンスは無いんですか?

544 :名前は開発中のものです。:2009/06/21(日) 15:01:10 ID:E25maqZD
擬似コードでいいからプログラムで説明してくんない?
下記に追記する形で。

while(1){
  main_loop();
  flip();
}

545 :名前は開発中のものです。:2009/06/21(日) 15:55:05 ID:gvSWV/Tl
1秒間に100ドット移動させたい時。

  :
ScreelFlip()
時間計測A(ミリ秒)
  :
ScreenFlip()
時間計測B(ミリ秒)
  :
移動距離算出 100 * ( B-A ) / 1000
  :
ScreenFlip()
時間計測〜

って感じ?

546 :名前は開発中のものです。:2009/06/21(日) 17:22:04 ID:nC5CYBlY
ぼくのイメージではこんなだけど合ってる?

垂直同期が取れるなら

while(1){
  main_loop();
    sleep until 垂直同期60hz;
  flip();
}

取れないなら

A = GetTickCount();
while(1){
  main_loop();
  B = GetTickCount();
  sleep(17 - ((B - A) % 17)); //1tick = 0.001秒, 17tick = 1/60秒と仮定
  flip();
  A = B;
}

ただ、こうするとsleepしてる時間が無駄だから…


547 :名前は開発中のものです。:2009/06/21(日) 17:24:40 ID:nC5CYBlY
無駄を減らすために

main_loop()の処理時間が十分に短いなら

A = GetTickCount();
while(1){
  do {
    main_loop();
    B = GetTickCount();
  } while (B-A < 17);
  flip();
  A = B;
}

あるいはタイマーを使うか…

A = GetTickCount();
while(1){
  main_loop();
  B = GetTickCount();
  SetTimer(17 - ((B - A) % 17), flip());
  A = B;
}

それとも描画と計算は別スレッドにするか…


548 :名前は開発中のものです。:2009/06/21(日) 20:10:23 ID:SurdRKYg
>>541
そうとは限らないよ。
まずfps制限と描画を完全にわけて考える。
fps制限は60に設定したとする。
int nowtime = GetNowCount();
static int oldtime = 0;
static int frametime = 1000 / 60;

int diftime = nowtime - oldtime;

while(1)
{
if(diftime >= frametime)
{
oldtime = nowtime;
break;
}
else
{
Sleep(1);
nowtime = GetNowCount();
diftime = nowtime - oldtime;
}
}
これで垂直同期しようがしまいが60で固定された。
1ループで1フレーム1/60秒が保障されたので、1秒で100ドットキャラを進ませたいのなら、60フレームで100ドット進ませればおk
5秒後に何かをしたいときも、5秒をタイマーで計測するんじゃなくて300フレーム後に行えばおk
だから>>539で「ゲームが基準にするのはタイマーじゃなく、一定間隔が保障されてるフレームを基準にすればおk」と書いた。
ただ、これだとスペック不足によって60fpsが出ない場合や、リフレッシュレートが60以外でかつ垂直同期を待った場合中途半端な同期によって60fpsが出ない場合(これは垂直同期を待たない事で解決出来る)、
フレームがゲームスピードの基準になっているのでゲームスピードが遅くなってしまう。(処理落ち)
これはこれでおkならそのままでいいが、ゲームスピードだけは死守するのならフレームスキップ(コマ落ち)が必要になる。
この方法も色々あるので今回は割愛。

549 :名前は開発中のものです。:2009/06/21(日) 20:20:31 ID:E25maqZD
結局ティアリング発生するじゃん

550 :名前は開発中のものです。:2009/06/21(日) 20:27:19 ID:SurdRKYg
せっかく説明したのになにその全然読んでないようなレスは。
ティアリングの話がしたいの?
>垂直同期を待つってことは動作速度がリフレッシュレート固定になるってことじゃないの?
これを解決したいの?
どっちなの?
てか548を読んで解決出来なかったの?
質問しといてなんなの。

551 :名前は開発中のものです。:2009/06/21(日) 20:38:53 ID:E25maqZD
ティアリングを発生させずにどんなリフレッシュレートのモニタでも同じ処理速度で動作させる方法があるかを聞いてる。

552 :名前は開発中のものです。:2009/06/21(日) 20:52:15 ID:dtFx8GuN
14歳からのゲームプログラミング読めよ
書いてあるよ

553 :名前は開発中のものです。:2009/06/21(日) 20:52:45 ID:n8mlBebR
>>551

>>539に書いてあんじゃん
SurdRKYgがかわいそすぎる、援護するぜ

んでぐぐったらすぐにわかりやすいのでてきたぞ
ちょっとは自分で調べろ
ttp://spitfire.client.jp/program/fps.html

554 :名前は開発中のものです。:2009/06/21(日) 20:55:52 ID:dtFx8GuN
馬の耳に念仏だろうがな

555 :名前は開発中のものです。:2009/06/21(日) 21:15:08 ID:E25maqZD
なるほど。
リフレッシュレートをAPIで固定する、か
リフレッシュレートを何らかの方法で取得して、1フレームの移動量をリフレッシュレートに合わせて変更する
しかないわけか。

556 :名前は開発中のものです。:2009/06/21(日) 21:26:14 ID:nqKSgOSf
>>555
何が「なるほど」なんだか・・・
548をどう読めば
「リフレッシュレートを何らかの方法で取得して、1フレームの移動量をリフレッシュレートに合わせて変更する 」
の説明になるんだよ
読む気がないなら質問なんてするな

557 :名前は開発中のものです。:2009/06/21(日) 21:33:30 ID:E25maqZD
>>548は垂直同期を待たない事で解決出来るとか言ってるから話にならないじゃん
ダブルバッファリングしてるからティアリングはおきないとか言ってるし。

558 :名前は開発中のものです。:2009/06/21(日) 21:41:05 ID:OYxJ3LRg
ダブルバッファリングとティアリングは関係ないよな。

垂直同期信号待ちしないと、裏画面と表画面切り替える瞬間にモニタ画面更新される事もあるから結局ティアリングは発生する。

559 :名前は開発中のものです。:2009/06/21(日) 21:59:20 ID:SurdRKYg
>>557
垂直同期を待たない事で解決出来るのは60fpsにならない場合の話だから下5行は読まなくていいよ。
しかもコマ落ちさせれば同期待ちでも解決出来るって書いてあるのに…。

120Hzのモニタで同期待ちするけど60fpsに制限すればゲーム速度も一定になるでしょ?
1フレームの移動量を変更するんじゃなく、移動量をフレームに合わせれば常に一定でしょ?

>>558
flipする時はコピーするんじゃなくてVRAMの参照先を変えるだけだから、VRAM上のデータを書き換え途中って事は無いと思うけど。
だからどの瞬間においても描画途中で画面更新される事は無いと思うんだけど違うのかな?
もちろんこれはティアリングの厳密な意味でのことなので、広義の意味の 画面のちらつき=ティアリング として使われる事についてはそれでいいけど。

560 :名前は開発中のものです。:2009/06/21(日) 22:03:54 ID:nqKSgOSf
>>559
残念だけど垂直同期を待たない場合はビデオカードがモニタに映像を送信している間でも
参照先のVRAMアドレスを変えてしまうからティアリングは発生する

561 :名前は開発中のものです。:2009/06/21(日) 22:08:13 ID:OYxJ3LRg
>>559

DXライブラリで裏画面への描きこみ、ScreenFlipってほとんどデフォだよね?
これが君のいうダブルバッファリングでしょ?

ScreenFlipの垂直同期信号待ちをOFFにして、
タイマーだけでスピード固定するようにして、フルスクリーンで動かしてごらん。
ティアリング一目瞭然だから。

562 :名前は開発中のものです。:2009/06/21(日) 22:11:13 ID:SurdRKYg
>>560
そうなんだ。どうもありがとう。
同期しない事によるちらつきは画面更新部分と非更新部分の時間がばらばらな事による現象かと思ってた。
モニタのVsync信号の方が偉くて、そのタイミングでflipした時は次のVRAMの更新先を強制的に参照するみたいな認識でいいのかな。

563 :名前は開発中のものです。:2009/06/21(日) 22:16:46 ID:SurdRKYg
>>561
ややや、ちらつくのは一目瞭然だけど、ティアリング(=上半分表画面で下半分裏画面のような状態)かどうかっていのは人間の目では判別不可能でしょ。
そのちらつきの原因は、更新部分と更新して無い部分の時間差によるものだと思ってた。
例えば背景が流れる画面の場合、1場面を■、次の場面を□とした場合、
■□■□■□■□■□
と見えればちらつかないが、
■■□■□□□■■□
のように見えるとちらついてみえると思うんだ。

でも>>560のレスで、ティアリング自体も起きているとのことなので一応解決出来た。
これはもうちょっと自力で調べてみようと思う。

564 :名前は開発中のものです。:2009/06/21(日) 22:23:40 ID:OYxJ3LRg
「垂直同期信号待ち」ってのは要するに画面が全部描き終わるまで待つって事だから。
描き終わって、次の画面が描き始められるまでの一瞬の間にVRAMのアドレスを切り替える、って事だね。

そうする事で初めてティアリングを防げる。

>>563

ちらつくというより画面が波打つ、と言った方がよかったかな。

>ティアリング(=上半分表画面で下半分裏画面のような状態)かどうかっていのは人間の目では判別不可能でしょ。

ぴったりには合わないとは言え、だいたい60FPSで固定しようとしてスピード調整してるわけだから
ズレが生じるのも大体画面更新の同じタイミングになるわけ。
当然、人間の目にもはっきり判るよ。

565 :名前は開発中のものです。:2009/06/21(日) 22:40:54 ID:Fv4f33jD
>>563
固定フレームレートの2Dゲーははっきりとわかる
キャラだけならともかく背景のスクロールもよくつかわれるからくっきりと

3Dとかで可変フレームレートだとわかりにくくなるかな

でも2Dメインでしょ、DXライブラリ

566 :名前は開発中のものです。:2009/06/21(日) 22:52:23 ID:i9HN6tkr
問)
 垂直同期を待たずにティアリングを抑制する方法を答えよ
答)
 垂直同期信号の発生周期をフリップのタイミングの合わせればよい

567 :名前は開発中のものです。:2009/06/21(日) 23:06:19 ID:FjFdKqe+
誤字があるから△だな

568 :名前は開発中のものです。:2009/06/21(日) 23:09:10 ID:SurdRKYg
>>564
CRTの場合は走査線があるので画面の上半分と下半分で違う場合もあると思うんだけど、
液晶の場合は1画面をいっぺんに更新するわけだけど、それでも上半分と下半分で違うようなものになるってことなのですか?

VRAMから送られるデータは画面の左上から右下のデータが順次送られてるのかな?
そしてその送られてる時間がネックになっていてその間にflipしたらバックバッファの途中のアドレスから参照されるってこと!?
それってそもそもおかしくないですか?
バックバッファが出来上がっていない可能性もあるし、どうせ同期待ちしていないんだからとりあえずフロントバッファのデータを送りきってからバックバッファ分を送ればいいわけだし。
じゃあ将来例えば物凄くリフレッシュレートが高くなった場合、VRAMからモニタにデータを送る時間よりもモニタの更新速度の方が速かったりしたら
"同期待ちしてるのにティアリングが起きてる"っていう最悪な状態になっちゃいそうですが。
なのでやっぱり液晶の場合はティアリングは起きていないと思いますがどうでしょう?

>>565
えと、だから、画面更新に合わせずに好き勝手にflipしたら、
ある1枚が長く見えてるかもしれないしある1枚が欠損しているかもしれない。
だからちらつくように見えると思うんだけど、
肉眼でただちらつくように見えるからってそれはティアリングが起きてる証明にはなってないよ。

569 :名前は開発中のものです。:2009/06/21(日) 23:33:13 ID:E25maqZD
とりあえず3行以内に要約する癖をつけてくれ

570 :名前は開発中のものです。:2009/06/21(日) 23:41:01 ID:nqKSgOSf
>>568
>VRAMから送られるデータは画面の左上から右下のデータが順次送られてるのかな?
Yes

>そしてその送られてる時間がネックになっていてその間にflipしたらバックバッファの途中のアドレスから参照されるってこと!?
Yes

>バックバッファが出来上がっていない可能性もあるし、どうせ同期待ちしていないんだからとりあえずフロントバッファのデータを送りきってからバックバッファ分を送ればいいわけだし。

何を言いたいのか良くわからないけど
VRAMのデータをモニタに送るタイミングはPC側からは操作できない
リフレッシュレートに依存する

>じゃあ将来例えば物凄くリフレッシュレートが高くなった場合、VRAMからモニタにデータを送る時間よりもモニタの更新速度の方が速かったりしたら
>"同期待ちしてるのにティアリングが起きてる"っていう最悪な状態になっちゃいそうですが。

縦解像度nの画面データをモニタに送る流れ

0lineを転送→水平同期期間→1lineを転送→水平同期期間→
nlineを転送→垂直同期期間→0lineを転送→水平同期期間

つまり、垂直同期間は1画面分のデータを転送した後にくるので、
「VRAMからモニタにデータを送る時間よりもモニタの更新速度の方が速い」
というのはそもそもありえないよ、nline分送る前に垂直同期期間に突入する事はないから・・・

571 :名前は開発中のものです。:2009/06/21(日) 23:45:26 ID:nqKSgOSf
2点修正

>リフレッシュレートに依存する
厳密には設定した解像度とリフレッシュレートに応じて発生する
水平同期信号と垂直同期信号に依存する

>0lineを転送→水平同期期間→1lineを転送→水平同期期間→
>nlineを転送→垂直同期期間→0lineを転送→水平同期期間
0lineを転送→水平同期期間→1lineを転送→水平同期期間→
(n-1)lineを転送→垂直同期期間→0lineを転送→水平同期期間
の誤り

572 :名前は開発中のものです。:2009/06/22(月) 00:07:43 ID:kame7wv0
>>569
おまえ顔真っ赤だぞ?

573 :名前は開発中のものです。:2009/06/22(月) 00:08:14 ID:1Ugl+7iQ


574 :名前は開発中のものです。:2009/06/22(月) 00:09:59 ID:ErP4dB7R
>>570-571
そういうことだったんですね。
詳しい説明どうもありがとうございます。

>VRAMのデータをモニタに送るタイミングはPC側からは操作できない
>厳密には設定した解像度とリフレッシュレートに応じて発生する
>水平同期信号と垂直同期信号に依存する

ビデオカード側がモニタに送るタイミングを主導しているんだと思ってましたけど、そこが間違っていたようです。

575 :名前は開発中のものです。:2009/06/22(月) 00:14:49 ID:kAGY284T
>>568
>だから、画面更新に合わせずに好き勝手にflipしたら、
>ある1枚が長く見えてるかもしれないしある1枚が欠損しているかもしれない。
>だからちらつくように見えると思うんだけど、

ちらつくっていうよりも、それはがたつくというか、コマ落ちとかそういう心配でしょ?
ティアリングってのは君が言ってるように上と下の画像にズレが生じる現象だから、
横に対して線が入って(実際にはドット単位でずれてる)波打ってるようにみえる。
コマ落ちだったらこうは見えないはずでしょ?

実際にプログラム動かしてみてみれば一目瞭然だと思うんだが……。

576 :名前は開発中のものです。:2009/06/22(月) 00:17:48 ID:VZ3co5HH
>>552
14歳のやつ
計算式思い切り間違えているぞ。
実際にリフレッシュレートの違うモニタで確かめたから間違いない。

577 :名前は開発中のものです。:2009/06/22(月) 00:28:31 ID:XZV3fJ2J
あれ分母と分子逆になってるのかなあ

578 :名前は開発中のものです。:2009/06/22(月) 09:11:17 ID:4PYRYd3U
>>576
何がどう違うのか具体的に例をつけて書け
改良案も書け


579 :名前は開発中のものです。:2009/06/22(月) 14:34:23 ID:N6BYq6eh
>>578
ママにでも頼め。

580 :名前は開発中のものです。:2009/06/22(月) 15:54:58 ID:VZ3co5HH
>>578
自分で考える癖をつけよう。

適当な数字を入れて検証してみ。
明らかにおかしいのがわかるから。
どうおかしいのかわかれば治し方は自明だと思う。

581 :名前は開発中のものです。:2009/06/22(月) 17:39:07 ID:oZ+8nNkj
>>575
学生さんなのかな?
デジタル写真に法的な証拠能力は無いわけだが

582 :名前は開発中のものです。:2009/06/22(月) 17:40:41 ID:pV5yAQzs
なんの話だw

583 :名前は開発中のものです。:2009/06/22(月) 18:16:54 ID:VZ3co5HH
どこの誤爆だw

584 :名前は開発中のものです。:2009/06/22(月) 20:45:11 ID:C5JJD30U
これが若さか。

585 :名前は開発中のものです。:2009/06/22(月) 20:51:20 ID:CIAC500Z
いいや幼さだ

586 :名前は開発中のものです。:2009/06/22(月) 20:51:55 ID:kame7wv0
中年オヤジは黙っとけよクズ
いい年こいて2chやってんじゃねえよカス

587 :名前は開発中のものです。:2009/06/22(月) 21:05:11 ID:CIAC500Z
こんなヤツもDXライブラリ使ってるのか……

588 :名前は開発中のものです。:2009/06/22(月) 21:10:13 ID:kame7wv0
悪いの?使うのに制限あるなら教えてくれませんかね?

589 :名前は開発中のものです。:2009/06/22(月) 21:11:51 ID:CIAC500Z
初心者向けライブラリのスレなんだし、カリカリしないでまったり行こうぜ?

590 :名前は開発中のものです。:2009/06/22(月) 21:32:05 ID:6Vl6l2Pm
クソスレ晒しアゲ

591 :名前は開発中のものです。:2009/06/22(月) 21:58:40 ID:kame7wv0
まったく・・
オッサンにもなってゲームでも作ってんスかね?w

592 :名前は開発中のものです。:2009/06/22(月) 22:52:27 ID:wZqXAX7r
世界のゲームプログラマーの殆どがオッサンですよ

593 :名前は開発中のものです。:2009/06/22(月) 23:27:33 ID:PR8N99oV
そもそもおっさんって何歳以上?

594 :名前は開発中のものです。:2009/06/22(月) 23:37:18 ID:6Vl6l2Pm
http://hideyoshi.2ch.net/test/read.cgi/lovesaloon/1235930554

595 :名前は開発中のものです。:2009/06/23(火) 00:57:26 ID:JW/qeXlf
DXライブラリはDixq氏のゲームプログラミングの館の影響で東方厨が流れ込んできてるからこんなのはゴマンと居るよ

596 :名前は開発中のものです。:2009/06/23(火) 01:04:40 ID:/wkYhisO
いちいち煽らない。

597 :名前は開発中のものです。:2009/06/23(火) 09:24:14 ID:eUvBMQ0G
おっさんでもガキでも宇宙人でも何でもいいから、
DXライブラリでおもしろいゲーム創っていこう。

598 :名前は開発中のものです。:2009/06/23(火) 09:52:25 ID:dhA25QDv
>>580
こういう奴は駄目だな……
デバッグ報告になってない
再現例も書けない奴は現場に出てこないでほしいと思う

そもそも「適当な数字を入れたら」ってのは、「適当な数字が必ず入る」という前提なのか?
プログラムの動作の中で「適当な数字」が入らざるを得ないような状況を説明できるのか?
例えばOSやモニタやリフレッシュレートを変えたらおかしい、と言うなら説明になるが
チート使ったらゲームがバグった、レベルの議論は論外だ
こういう人に限って動的な数値に固定値を代入したりしてるんだから


599 :名前は開発中のものです。:2009/06/23(火) 09:57:56 ID:NMdhocxd
自分で調べようともしないで、他人に訊けば答えが返ってきて当然と思う人間の方が
現場では嫌がられると思うぞ。

600 :名前は開発中のものです。:2009/06/23(火) 09:58:29 ID:NvkMU1Q4
>>598
わからないなら、わかりません教えてくださいって素直に言えばいいんだよ。

601 :名前は開発中のものです。:2009/06/23(火) 10:49:50 ID:4P883XyE
嘘なら嘘でしたといったほうがいい

602 :名前は開発中のものです。:2009/06/23(火) 12:18:26 ID:A0fh8Dl0
作ってて楽しいからゲーム製作してるんだろ?
なんでこんなカリカリしてんのさ

603 :名前は開発中のものです。:2009/06/23(火) 12:28:04 ID:btxPW8HG
分をわきまえず背伸びしてるから疲れてるんだろ

604 :名前は開発中のものです。:2009/06/23(火) 15:57:39 ID:+DVKp8CT
>>598
わからないなら素直にそういえばいいじゃない。

>例えばOSやモニタやリフレッシュレートを変えたらおかしい、と言うなら説明になるが
>>576

疑うならリフレッシュレート変えて実際に試してみ。

605 :名前は開発中のものです。:2009/06/23(火) 17:46:43 ID:ifo/8btq
ソース見せてくれたら第三者にも判断つくんだけどね。

606 :名前は開発中のものです。:2009/06/23(火) 22:32:28 ID:BZp72+wO
ここ現場じゃねーし
掲示板だし
そもそも教えない奴にこそ性格に問題抱えてる事がほとんど

607 :名前は開発中のものです。:2009/06/23(火) 22:34:58 ID:BZp72+wO
わからない、とそいつが言ったら言ったで責めんの目に見えてるし
ググレとかそれ以前のことでしょとか嫌味吐くのおまえらじゃん

608 :名前は開発中のものです。:2009/06/23(火) 23:13:33 ID:joZZV7Mo
フレーム単位で処理してモニタのリフレッシュレートに合わせて移動量を変えればリフレッシュレートによらず処理できることは分かるけど、
例えば、タイトル画面でスタートボタン押してから次の画面が表示されるまでの待ちの処理ってのはどうやってフレーム単位で処理すればいいんだろう。

609 :名前は開発中のものです。:2009/06/23(火) 23:19:45 ID:+iWMMldZ
>>607
これだけ色々答えてくれる場でなんでそういう考えに至るのか。
あまりにガキ過ぎる。

610 :名前は開発中のものです。:2009/06/23(火) 23:21:51 ID:UNSoodNB
そんなもん無視しろ

611 :名前は開発中のものです。:2009/06/23(火) 23:24:00 ID:ifo/8btq
>>608

どういう意味?

待ちの時間って、本当に何もしないって事?
それともデータロードとかしてる時の事?

612 :名前は開発中のものです。:2009/06/23(火) 23:53:01 ID:95CP5Nno
ゆとり乙
ガキは教えて貰うのが当たり前だと勘違いしてるから始末が悪い。

613 :名前は開発中のものです。:2009/06/24(水) 00:21:16 ID:9O2FRRtx
移動量だけでなく待ちのフレーム数も可変にしないといけないとなるとちょっと面倒だな

614 :名前は開発中のものです。:2009/06/24(水) 00:45:52 ID:km6ob3xz
>>607
//14歳本より
//リフレッシュレートの高い環境ほど1フレームあたりの移動量を小さくしfloatの配列にセットする
void SetFrameRate()
{
  float frametime = 0;
  unsigned int s = GetNowCount();//計算開始時刻をsに代入
  for(int i=0; i<30; i++)
  {
    ScreenFlip();
    unsigned int e = GetNowCount();//計測終了時間をeに代入
    frametime += e - s ;
    s = e;
  }
  frametime = frametime/30;//30回採取した経過時間の平均を取る
  for(int i=1; i<20; i++)
  {
    idouryou[i] = i / frametime * 16.67;//←ここの式が間違い!自力で治そう!
  }
}

解説文は間違っていないから単純ミスだろう
適当な数字を入れてみって言ったのは
frametimeの値が小さくなればどうなるか式に入れて考えてみってこと
試すまでもなくこの式がおかしい事が判る筈

615 :名前は開発中のものです。:2009/06/24(水) 01:14:19 ID:OqjteeH5
FPS計測するとき同じミスよくやったなぁ

616 :名前は開発中のものです。:2009/06/24(水) 01:20:49 ID:zu36k+NF
俺もそこおかしいと思ってずっと悩まされてた
答え言っちゃいけないのかな
あそことあそこ入れ替えるでおk?

617 :名前は開発中のものです。:2009/06/24(水) 01:31:30 ID:km6ob3xz
>>616
うん。
それでおk。

ちなみに初版で気付いてラトルズに付属の葉書で出したが
C++本でも後の版でも訂正されなかった。
サポートページに訂正箇所のpdfがあるが読んだら全然違う箇所のことだった。

618 :名前は開発中のものです。:2009/06/24(水) 02:15:36 ID:6DfYO0Sm
14歳から〜って読んでる人結構いるんだな

619 :名前は開発中のものです。:2009/06/24(水) 10:34:44 ID:QnhT+AWI
知らぬは、著者ただ一人だけ

620 :名前は開発中のものです。:2009/06/24(水) 15:00:37 ID:iWb66gX0
「14歳〜」って読んだこと無いのだけれど、
これ買ったらDXライブラリの作者さんに何らかのお金が行くんだろうか?
行くなら買ってもいいかなあ。

621 :名前は開発中のものです。:2009/06/24(水) 19:31:31 ID:iPuVSgwO
>>616
何で答えを言っちゃいけないとかいう言葉が出るの?お前は?
バカなの間抜けなの?なにがそんなに秘密にしたがんの?死ねば?

622 :名前は開発中のものです。:2009/06/24(水) 20:29:05 ID:2pcTgAck
釣りだとわかってるけど笑ってしまったw

623 :名前は開発中のものです。:2009/06/24(水) 20:33:55 ID:cCHdRy2i
ティアリングに拘るよりやることがあるだろw
釣りであってくれw

624 :名前は開発中のものです。:2009/06/24(水) 20:53:30 ID:km6ob3xz
ネタじゃなかったら日本が滅ぶw

625 :名前は開発中のものです。:2009/06/25(木) 00:07:29 ID:lGFh6/SQ
ティアリングサーガだな

626 :名前は開発中のものです。:2009/06/25(木) 00:30:15 ID:z4Ht8mWs
こだわるのはプログラマの性だしなあ


627 :名前は開発中のものです。:2009/06/28(日) 16:38:04 ID:Mn3+4Pod
例えば
class Enemy{};

class Player{};
ってのがあったとして、両方とも座標用変数がpribate:になってる場合、両者の当たり判定はどうやって組んだらいいかな?

あと、Enemyをたくさん出したい場合って、class Enemy型の配列をつくっていいの?
それとも他になにか良い方法があるのかな?


今現在、練習を兼ねてミニゲームのようなものを作ってて行き詰っちゃって。
よかったら教えてください。

628 :名前は開発中のものです。:2009/06/28(日) 18:36:01 ID:zlbWct1+
俺は面倒だからpublic でやってるけど
まあ普通は getx(){return x;} という public なメンバ関数から座標を取得するのかな

もう一方の方は俺はEnemy型のlist でやってるけど
配列でも別にいいんじゃないかな

まあ俺みたいなへぼいのから聞くより出来る奴から聞いたほうがいいと思うが

629 :名前は開発中のものです。:2009/06/28(日) 18:52:38 ID:L4rlBUkj
Enemy中でplayer->touch_p(this->x,this->y)とかどうかな

630 :名前は開発中のものです。:2009/06/28(日) 19:48:47 ID:Mn3+4Pod
>>628-629
返答ありがとうございます。
さあ当たり判定を作ろう。と思ったときに上記のことでつまづいて書き込ませもらったんだけど
返答があるまでちょこっとなにか加えようかなと思っていじってたら、上から降ってきたものが
地面についたとたん固まるという想定外の現象に見舞われて、コードの半分ほどを書き直す
羽目になってしまって。

いまだ復旧作業の途中なので、せっかく返答してくれたけどその知識を使うのはもう少しあとになりそうです。


とりあえず、HitEnemy()というメンバ関数を作って、Playerのポインタを渡す感じでいこうかと思ってます。
…出来ないかもしれないけど。返答ありがとうございました。

631 :名前は開発中のものです。:2009/06/28(日) 20:07:12 ID:FGL1jWKo
ポインタを渡しても直接値を参照することはできないから
privateならget使うことになるんじゃないかな。
めんどいなら一時的にfriendしてやるとか。

632 :名前は開発中のものです。:2009/06/28(日) 21:45:36 ID:J3SLmnCX
>privateになってる場合
って書いてあるけどprivateにする意味があるからprivateなんじゃないのかな。
参照したいならprivateにする意味がないって事なので、
publicにするかアクセサメソッド作ればいいのでは。
まあ後者がいいと思う。

633 :名前は開発中のものです。:2009/06/29(月) 00:05:45 ID:ExNjCSjV
仕様がワカランからアレだけど、Enemy同士の当たり判定は必要ないのかな。
後、これも仕様がワカランからあれだけど Direction(方向)の情報とか必要ないのかな。

634 :名前は開発中のものです。:2009/06/29(月) 00:08:39 ID:0NdYoqqQ
シューティングだとそれらのことあまりやらないんじゃないか
無駄にそういうの増やすと負荷増やすだけだし
ゲームによってはそういうこともやるだろうが

635 :名前は開発中のものです。:2009/06/29(月) 23:41:07 ID:0tScVOcn
Enemy同士もPlayerと同じ方法で判定すればよくないか?

636 :名前は開発中のものです。:2009/06/29(月) 23:46:20 ID:4d+M4K38
playerとenemyなら1対多だけど、enemyとenemyだと多対多になって
判定回数が飛躍的に増えるって事でしょう。

637 :名前は開発中のものです。:2009/06/30(火) 00:59:39 ID:2TdNpUsa
そもそも何でprivateなのか分かってんのかと
理屈がわかんなきゃ全部publicにしてもstaticにしてもいいじゃないかって話になる
クラスの意味をまず勉強した方がいい


638 :名前は開発中のものです。:2009/06/30(火) 12:36:26 ID:YPE4/kWn
GraphLock

GraphUnLock
って以前はリファレンスに載ってたと思うんだが、見つからない。

サンプルが見たかったんだけど、以前のリファレンスってもう見れないのか。
インターネットアーカイブはダメだった。

639 :名前は開発中のものです。:2009/06/30(火) 12:48:34 ID:EGHH7lwt
>>639
過去スレにそれっぽいものが
http://www.2chsearch.jp/?b=gamedev&d=1224923873#kiji_828

640 :名前は開発中のものです。:2009/06/30(火) 13:51:06 ID:A8eMVGin
タヒチで日本の即席めん大人気

 リゾート地として知られる南太平洋のタヒチ(仏領ポリネシア)で、たつの市の食品メーカー「イトメン」が製造するインスタントラーメンが売り上げを伸ばしている。
ここ10年で輸出量が倍増しているほか、現地商社の依頼で2年前からカップめんの販売も始めるなどファンを増やしている。
 イトメンによると、タヒチへの輸出量は1998年が155万食だったが、2008年には356万食に倍増。
神戸税関によると、神戸港の即席めんの輸出量は07、08年と連続で全国一。
うちタヒチへの輸出は08年が303トンで、同税関は「タヒチ向けはほとんどがイトメンの製品」という。
 イトメンの即席めんがタヒチへ渡るようになったのは40年ほど前で、神戸の貿易会社がタヒチに住む中国人向けに輸出したのが始まりという。
タヒチには118の島に23万人が住む。今はシェア6割ほどを占め、イトメンが直接輸出している。
 即席めんは、国ごとの味覚に合わせるケースが多く、現地生産が主流。
同社は日本で販売している「チャンポンめん」と味は同じで、パッケージを変え「ALL-IN-ONE」の商品名で販売しているが、現地でも受け入れられている。
 人気が高い理由について、同社の伊藤充弘社長(53)は「香港製などライバルの製品が少ないためでは」と分析。
タヒチで日本の旅行会社現地法人で10年間働く日野到さん(36)は「日本のラーメンは最も品質が良くて人気。よく売り切れている。
長年、安定して輸入が続いているイトメンの商品が定着している」という。
 伊藤社長は「最近は原料の高騰で利益はほとんどないが、親しまれている味を届け続けたい」としている。

http://www.kobe-np.co.jp/news/keizai/0002072011.shtml

【グルメ】タヒチで日本の即席めん「イトメン」が人気
http://tsushima.2ch.net/test/read.cgi/newsplus/1246257826/
【イトメン】 イトメンのチャンポン麺 【総合スレ】 Part2
http://gimpo.2ch.net/test/read.cgi/nissin/1185419295/

641 :名前は開発中のものです。:2009/06/30(火) 14:07:23 ID:6Cj5H8P6
貴重な小麦粉をインスタントラーメンなんかに使うな馬鹿たれ。

642 :名前は開発中のものです。:2009/06/30(火) 14:12:28 ID:IiroK7Eg
ここはニュー速じゃないぞ

643 :名前は開発中のものです。:2009/06/30(火) 21:08:32 ID:O5h6+0gK
私がニュー速だ。ここをあけろ!

644 :名前は開発中のものです。:2009/07/01(水) 00:09:56 ID:g4kBRgyq
DXLibを使う場合、全体を

int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP, LPSTR lpc, int nC){

  while(ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0){
    〜

  }
}

こう言う風に作れって本に書いてあったんですが
この構造と本格的なwinプログラムの場合のウインドウズプロシージャとかとの関係がイマイチわからないのですが
どういう風になってるんでしょうか?


645 :名前は開発中のものです。:2009/07/01(水) 00:15:05 ID:UhT4qFyx
>644
関係ないと思っておk

646 :名前は開発中のものです。:2009/07/01(水) 00:21:01 ID:tzxPZ+Bo
初めてDXライブラリ使った時、小難しいwinプログラムがなんでこんなツクールみたいになるのかと愕然としたよ

647 :名前は開発中のものです。:2009/07/01(水) 00:31:13 ID:9VzVKeVm
俺も最初WinMainではウインドウ作成とメッセージループしかしちゃいけないと思ってた
知人がタイマーイベント仕掛けてWM_TIMERがきたときにループ処理してたからそういうもんだと思って疑わなかった

648 :名前は開発中のものです。:2009/07/01(水) 05:08:47 ID:aia3X3LP
BorlandC++BuilderやDelphiのソースを読むともっとビックリするよん。

649 :名前は開発中のものです。:2009/07/01(水) 09:35:30 ID:LrL8gFoC
落ち目会社だしどうでもいい

650 :名前は開発中のものです。:2009/07/01(水) 19:59:44 ID:eeCacGXj
>>646
きちんと関数化、ライブラリ化すれば難しいゲームでも綺麗に書けるってこと
DXlibの機能には制限があるし、余計な機能もついているので、
最終的に自分で最適なライブラリを書くようになれるのがいいよ


651 :名前は開発中のものです。:2009/07/03(金) 20:54:33 ID:BsjXjKQw
SetMainWindowTextが未定義関数扱いされるんだがどういうことなの・・・
他の関数は普通に使える

652 :名前は開発中のものです。:2009/07/04(土) 18:08:40 ID:p2ue3IYD
>>651
うちでは正常に動くが。ヘッダから消してしまったとか。


653 :名前は開発中のものです。:2009/07/06(月) 22:42:09 ID:AVbDbUwf
ステータスバーってどうやって付けれるのよ?
おせーて

654 :名前は開発中のものです。:2009/07/08(水) 01:56:14 ID:OgMSMAZ5
ファイルから再生する音楽のループ位置を設定することはできますか?

655 :名前は開発中のものです。:2009/07/08(水) 02:25:32 ID:94Ripojr
>>654
SetLoopPosSoundMemではだめなの?


656 :名前は開発中のものです。:2009/07/08(水) 02:58:22 ID:OgMSMAZ5
>>655
ありがとうございます。すみません、説明不足でした。
PlayMusicでストリーム再生し、ループ位置を設定したいのです。

657 :名前は開発中のものです。:2009/07/08(水) 11:53:36 ID:Qn1Es1Py
>>655
SetLoopPosSoundMemとSetCreateSoundDataTypeを使って解決しました。
ありがとうございました。

658 :名前は開発中のものです。:2009/07/08(水) 22:05:37 ID:qTICtjjx
CPU Core 2 Duo 2.66GHz
RAM 4GB

GPU GeForce 9600M GT
VRAM 2GB

OS Windows Vista 64Bit

DxLibで作られたソフトをこいつで動かすと、始めは60fpsでなめらかにも関わらず、
しばらくすると30fpsになるのはなぜなんだ?
ガクガクするならまだしも、ぴったり30fpsなんだ。
またしばらくすると治ったりもするし、なにかひとつの関数が原因になってたりするのかな?

659 :名前は開発中のものです。:2009/07/08(水) 22:17:02 ID:i+ja7A8H
ScreenFlip()を2回呼んでいるとか

660 :名前は開発中のものです。:2009/07/08(水) 22:40:16 ID:uhEtjIe1
Vistaのいたずらじゃないかな?
うちも24か30で安定、フルスクリーンだと60fpsありがとうございます状態。

661 :名前は開発中のものです。:2009/07/08(水) 23:16:39 ID:tUPC3dXe
なんか最近どっかで見たような質問だな……。

662 :名前は開発中のものです。:2009/07/08(水) 23:26:07 ID:Sk8AIN2R
ビデオカードとそのドライバと設定だな
60、30、24ってよく見る数字だし

663 :名前は開発中のものです。:2009/07/09(木) 01:06:35 ID:h1wYunUV
60hzに同期して描画したとする
(1) 1フレームの処理が1/60秒未満なら1秒間に60回描画できる
(2) 1/60秒以上2/60秒未満なら30回描画できる

つまり瞬間的には30か60のどちらかになる
1のケースと2のケースが混ざったとすると長期的には平均することで30と60の間の値になりうる
しかし大抵の場合は1フレームの処理が1/60秒で収まるか、あるいは超えるかで30と60に分かれる

と予想

664 :名前は開発中のものです。:2009/07/09(木) 02:46:07 ID:IPUdantx
ていうか垂直同期信号待ちをしてるのかしてないのかを先に明記してくれないと。

665 :名前は開発中のものです。:2009/07/09(木) 22:24:55 ID:9TUAw73M
GPUの垂直同期をオフにしてもオンにしても結果が変わらず。
というか、GPUの設定をどう変えてもまったく同じ・・・

666 :名前は開発中のものです。:2009/07/09(木) 23:12:54 ID:PnCCkvgD
もともとDXライブラリ側でOFFにしてるんじゃないの?

667 :名前は開発中のものです。:2009/07/10(金) 06:17:28 ID:On7fn4n8
画像を半透明で描写する方法ってDXライブラリにありますか?

668 :名前は開発中のものです。:2009/07/10(金) 06:55:03 ID:aqVpLVfM
リファレンスも読めんのか…

669 :名前は開発中のものです。:2009/07/10(金) 09:02:40 ID:G7FiBYYu
あるよ。リファレンスにある。
全部読んでそれでもわからなかったらまたおいで。

670 :名前は開発中のものです。:2009/07/10(金) 12:51:04 ID:xhZ5jDJO
座標ってxyで行うから構造体でセットにして扱うのってなんか不都合ある?

671 :名前は開発中のものです。:2009/07/10(金) 13:23:29 ID:Pbfo1cNY
無いよ。
bullet[i].locate.x = 320; とか多重に扱うと見た目が重く感じるぐらい。

672 :名前は開発中のものです。:2009/07/10(金) 13:23:43 ID:GMEf2Yqs
全然ないから、POINT を使うと良いよ。

673 :名前は開発中のものです。:2009/07/10(金) 15:09:18 ID:xhZ5jDJO
>>671-672
thx

多重に気をつけて、メンバ変数は極力そのクラス内で処理するようにしますわ

674 :名前は開発中のものです。:2009/07/10(金) 23:17:50 ID:kvfVpi7w
EnemyManager.Small.Flying.Bullet[i].Location.x = GameCanvas.TopLayer.ViewObject.Set(320);
とかなら、ちょっとは考えろよwwとか思うけど。
普通に組んでる限りじゃ、そんな気にする必要はないかと。

どうしても気になるなら、POINTなりをpublicで継承すりゃ、
bullet[i].x=320にできるし、どうせゲームだからこれで問題無いでしょ。

675 :名前は開発中のものです。:2009/07/11(土) 01:55:20 ID:UeAE0WWV
アクセス権が気になるなら参照を返すアクセサ作ればいいしな
bullet[i].x()=320;
これくらいなら見た目もタイプ量も許容範囲だろ

676 :名前は開発中のものです。:2009/07/11(土) 01:56:20 ID:UeAE0WWV
あ、もちろんインライン展開される書き方前提でな

677 :名前は開発中のものです。:2009/07/11(土) 07:49:08 ID:wBBMdddU
そういったセットになり易いものって他にどんなのがあるかな?

678 :名前は開発中のものです。:2009/07/11(土) 18:21:58 ID:SvZlB+M+
セットって?

679 :名前は開発中のものです。:2009/07/14(火) 04:20:59 ID:wRlAP6qv
たまにタスクが応答なしになるという原因不明のバグに悩まされ
再起動してみると普通に実行されるのは何だろう

680 :名前は開発中のものです。:2009/07/14(火) 04:40:19 ID:mFQZCpWd
>>679
何を言いたいのか分らんが・・・
(エスパー希望の相談なのか、只の雑談なのか、愚痴なのか?)

とりあえず、タスク がタスクマネージャーとかのタスク(application)の事なら、
単純にどっかが無限ループに嵌ったか、画面書き換えの部分を通らなくなったか(orキー入力の部分を・・・)
だろう。

とりあえず、printfを色んな所に仕込んでおいて、デバックを掛けるとかするのが基本。
怪しい所がどうみてもライブラリ側だったら、公式に書き込めばいいし、
そうでないなら、再現性を高めて、その変な挙動をここででも、公式ででも聞いてみればいい。


大概は、配列でindexが超えて・・・・とか、switchでbreak;が抜けてて・・・とか
if文の後に変なモノがあって、ifでの抜けだしが効かなくなってたりとか、
{}の対応が微妙にずれてて・・・とか、初期化してないのを使っていて、タイミング次第で・・・とか
(後は、WindowsUpdateしてなさ過ぎて、リターンが遅れてるのを応答なしに解釈されてるとかもあるか、)


681 :名前は開発中のものです。:2009/07/14(火) 04:49:20 ID:wRlAP6qv
>とりあえず、タスク がタスクマネージャーとかのタスク(application)の事なら、
その通り

>単純にどっかが無限ループに嵌ったか、画面書き換えの部分を通らなくなったか(orキー入力の部分を・・・)
>だろう。
そういった部分は見当たらなかった

何せOSを再起動させてそのプログラムを再び実行させたら何の問題もなく動いたのですからプログラムに原因があるとは思えないのですが

682 :名前は開発中のものです。:2009/07/14(火) 05:07:49 ID:pOq3rm7P
そういう現象が出てるのが君だけなんだから君のプログラムに問題があるか、
あるいは君だけが体験できるくらいレアな現象って事になるだろう?

調べる事ができるのは君だけなんだから
素直に>>680の忠告に従って、きちんと調べていけばいい。

「これで合ってるはず」なんて余計な「思い込み」はデバッグ作業の邪魔にしかならないぞ。

683 :名前は開発中のものです。:2009/07/14(火) 05:36:27 ID:mFQZCpWd
>>681
それだけの事で、プログラムに問題があるとは思えないって・・・・

とりあえず、
初期化なしでつかってる場合にはOS再起動とかで簡単に変わるし、
時間取得なんかをちゃんと処理してないと、
日にち跨ぎや時間跨ぎで、発生したりしなかったりする。

>>682も言うとおり、思い込みよりも手を動かしてデバックしなぁ。
プログラムは書いた通りに動いても、思った通りには動くとは限らないんだからさぁ。

684 :名前は開発中のものです。:2009/07/14(火) 06:46:29 ID:wRlAP6qv
だってデバッグしたけど分んないんだもん
まあ動くようになった訳だからそのまま何事もなかったかのように過ぎていくのだろう

685 :名前は開発中のものです。:2009/07/14(火) 07:14:55 ID:MgrfsfEm
forやwhileで使ってる変数の初期化忘れあたりが怪しいけどどうなんだろうな

686 :名前は開発中のものです。:2009/07/14(火) 07:53:46 ID:wRlAP6qv
それはないと思うがなあ
その可能性のあるコードって、(実行時に処理を通ってるコードの中で)
while( (!ProcessMessage()) && (!keybuf[KEY_INPUT_ESCAPE]) )
しかなかったんだが(変な書き方でスマソ)
確かに keybuf はグローバル変数にしてしまってるし
char keybuf[256] = {0};
で初期化したつもりになってるけどどうなんか分らん
まあ動くようになったし確認しようにももうできないからな、動くから
まあ良しとして続けるしかないな

687 :名前は開発中のものです。:2009/07/14(火) 08:07:50 ID:1FTDe9TM
こうしてバグが量産され、ついにはうんともすんとも動かなくなりねあげる姿が


688 :名前は開発中のものです。:2009/07/14(火) 09:43:25 ID:MgrfsfEm
裏画面の内容をテクスチャにコピーする関数ってあったっけ?

689 :名前は開発中のものです。:2009/07/14(火) 20:58:42 ID:2Fk/wASW
「無いと思う」とかじゃなくて確かめないと。
プログラムに思い込みは絶対あかん。

690 :名前は開発中のものです。:2009/07/14(火) 23:37:46 ID:wRlAP6qv
だって動くようになったから確かめようがないじゃん
この先動かなくなる可能性ないわけではないが
そうなったところでこれ以上バグは見つからんだろうな、俺の力では

691 :名前は開発中のものです。:2009/07/15(水) 00:00:28 ID:MHxGaYOY
だからprintfとかで一つ一つ処理の中身を吐き出して見るんじゃん。
外見上動いてても、バグがあれば意図してないデータが含まれてる。

692 :名前は開発中のものです。:2009/07/15(水) 01:08:24 ID:ouOmT7td
うーん、やっぱりバグがあるとはどうしても思えないし
多分printfとかで一つ一つ処理の中身を吐き出して見てもどの道今の俺の能力では
バグを発見できるとは思えないから忠告はありがたいがこのままいくことにするわ
以前も同じようなこと何回かあったしそんときもちゃんと完成まで漕ぎ付けているし

693 :名前は開発中のものです。:2009/07/15(水) 01:17:22 ID:Pli3pE87
ID:wRlAP6qv
ID:ouOmT7td
お前さ、そんなスタンスなら、なんでわざわざここに書き込んだわけ?はじめから書き込むなよ。
なに、構って欲しかった?わざわざお前の書き込みに一生懸命考えてレスしてくれた
人達に失礼だと思わないの?

694 :名前は開発中のものです。:2009/07/15(水) 01:49:11 ID:9zT2ADv7
実際問題、再現性のないバグを修正するのは難しいよ。
プログラムを書いた本人に見当がつかないなら、他人の経験に頼るのも良いと思うよ。
自分がそんなバグにぶち当たったとしても根気だけで調べようとは思わないな。
時間が余ってるなら別だけど。

で、他人の立場から言うと、あれだけの情報で問題のありそうな点を指摘するのは無理だ。
アドバイスとしてはバグ発見を諦めるのではなく自分用バグリストを作ってそこに追加しろ。

695 :名前は開発中のものです。:2009/07/15(水) 02:09:56 ID:ouOmT7td
何かヒント得られると思って…
でアドバイス通りに考えてみたけど駄目だった

696 :名前は開発中のものです。:2009/07/15(水) 02:15:50 ID:oAaV9htY
>>695
そうか、お疲れ。
コード晒す勇気があれば、案外デバックしてくれる人が居るとおもうけど…
(自分一人だと考えがなかなか間違いに気付きにくいからコードレビューは有効だと思う)

 「アドバイス通りに考えてみた」ってのは、
もちろん、printfとかでデバック情報をポコポコ吐き出させたけど、バグらしき場所が見あたらなかった
って意味だよね。念のため。

697 :名前は開発中のものです。:2009/07/15(水) 02:28:23 ID:HAQqwNAf
ソースうpしろ
無理なら帰れ

698 :名前は開発中のものです。:2009/07/15(水) 06:33:25 ID:jzF+qqts
最小のコードを切り出してる最中に問題が解決することって結構あるよね?
俺だけ?

699 :名前は開発中のものです。:2009/07/15(水) 07:55:06 ID:OJRObvUW
あるある
意外とバグって見当つけてたとこ以外にあったりするもんなんだよなぁ

700 :名前は開発中のものです。:2009/07/15(水) 08:38:43 ID:MHxGaYOY
>>696
>>692でデバッグしてないと言ってるじゃん。


701 :名前は開発中のものです。:2009/07/15(水) 10:08:04 ID:kzUIqF8J
バグを直接見つけようとしないで、確実にそのバグを再現できるようにするのが第一歩

702 :名前は開発中のものです。:2009/07/15(水) 10:45:30 ID:jzF+qqts
>>701
分かる分かるw
そしてバグを再現させるのは非プログラマに丸投げする俺

703 :名前は開発中のものです。:2009/07/15(水) 11:25:55 ID:aCtz8rQi
で少しずつ条件を変えてあたりをつけていく。

704 :名前は開発中のものです。:2009/07/15(水) 20:48:39 ID:vgHuQMIa
おまえら仕様書切らないから
テストも作れないし
そもそもバグなのか想定なのかも混乱するんだろ?

705 :名前は開発中のものです。:2009/07/15(水) 21:06:50 ID:SOTm+sdF
分け入っても分け入ってもバグの山

706 :名前は開発中のものです。:2009/07/15(水) 21:09:53 ID:MHxGaYOY
仕様書、製造終了してから書いた記憶しかないなぁ…

707 :名前は開発中のものです。:2009/07/15(水) 23:03:43 ID:MZkEPg1i
>>704
最終的にうまく動作するものが仕様です。
どだい、仕様書でバグが防げると思ってる法が異常。
仕様書の想定だろうが、結果駄目ならバグだろ!

708 :名前は開発中のものです。:2009/07/15(水) 23:17:51 ID:OJRObvUW
個人製作だし仕様書なんて全部脳内の香港式です
仕様の段階でバグ出すレベルの人はちょっとヤバイ。

709 :名前は開発中のものです。:2009/07/16(木) 00:10:27 ID:ZK0MxNzH
脳内でまとめようとして、てこずるものを
紙に書いてみたらあっさり解決ってのはよくあることだけどな。

710 :名前は開発中のものです。:2009/07/16(木) 03:15:22 ID:1/ar+JW7
そういえば話はずれるけど、「仕様を全てきっちり書いて、それを紙に印刷しておく
のが重要なんです!」と力説する新人が入った時を思い出した

711 :名前は開発中のものです。:2009/07/16(木) 10:03:06 ID:qgWixxR7
人それぞれで、
仕様書がなければダメになる人とそうでない人がいる。
始めた時は正しい方向に向かっていたが、
出来上がった時には違った方向を向いている、
世の中にはそんな人も多くいる。
チームで進めるとき、意思の統一が重要で
依頼しても、出来上がりが違うものになるのは困り者。
人それぞれなので、きちんとできるひともいるので、そのような人は不要と言われる


712 :名前は開発中のものです。:2009/07/16(木) 10:53:13 ID:glHWB671
もし、違うものが出来上がってきたら、
「言った、言わない」の問題になってしまうから
あらかじめ、ちゃんと紙にして保存しておくって事だろう。

できるできないの問題じゃないよ。
自分のため、相手のための保険みたいなもんだ。

713 :名前は開発中のものです。:2009/07/16(木) 11:11:34 ID:qgWixxR7
掛け捨て保険ではない。
チームで行う時の基盤になる、開発ドキュメントとして
取り扱い説明書として、保守業務の基準として必須のものである。

714 :名前は開発中のものです。:2009/07/16(木) 11:30:46 ID:Frg8+T60
チームでやるなら仕様書必須
作り方が違うだろ
ttp://marupeke296.com/DXCLS_BottumUpStructingOfClass.html

715 :名前は開発中のものです。:2009/07/16(木) 13:48:32 ID:JxCE3uCo
コメント見ただけで仕様が把握できるようなソースが書けるようになりたい
いつかは。

716 :名前は開発中のものです。:2009/07/16(木) 16:20:01 ID:MA5d2Bm1
コメント書かなくても把握できるソースが理想かな。

717 :名前は開発中のものです。:2009/07/16(木) 16:29:44 ID:K0RdyJ0x
どうも英語のコメントは読むのも書くのも苦手で……

718 :名前は開発中のものです。:2009/07/16(木) 17:36:09 ID:sfuED1R6
悪ノリではっちゃけたコメント書いてるのは俺だけではないはず

719 :名前は開発中のものです。:2009/07/16(木) 21:20:58 ID:0qzmxnba
>>715
ダウト
仕様はソースと答え合わせする為のもの
ソースみて内容がわかるのと、本来どうあるべきなのかは別問題

720 :名前は開発中のものです。:2009/07/16(木) 22:04:34 ID:sfuED1R6
そうか個人製作の場合ととチーム製作の場合と仕様書と仕様と仕様バグとバグを
はっきり切り分けないで話してるからこんなにカオスなのか

721 :名前は開発中のものです。:2009/07/17(金) 09:45:51 ID:iPNwCeP8
みんな自分の話してるだけだからな

722 :名前は開発中のものです。:2009/07/17(金) 09:47:37 ID:ZC/cxW1d
メンバ関数でモジュール化するだけだよ、基本的には
それにコメントは確かに大事だが
関数名をgetScreenFrameParSecondみたいにきちんと書けば、仕様が明らかにわかる

クラス・変数名も同じ
例えばiteratorをitとか省略して書くのはダメ
タイプ速度は速くなるが、後のコーディングで詰まるから、作業は全く速くなってない。むしろ遅くなる
省略しなければiteratorという言葉を知らない他人が見ても、ググれば意味がわかる

あとは、日本語で名前つける人がいるけど
ネットに和英辞書あるんだから使ってほしい
英語の勉強になるし国際化にも対応できる


723 :名前は開発中のものです。:2009/07/17(金) 10:08:40 ID:fic4arti
そこまで欧米コンプレックス持ってないし…。
国外にソース晒すほど立派なもん作れるなんてうぬぼれてない。

724 :名前は開発中のものです。:2009/07/17(金) 10:48:52 ID:XzHK2st6
自分で分かりやすいのが一番

725 :名前は開発中のものです。:2009/07/17(金) 11:36:53 ID:71PbqEZA
趣味の範囲内だし態々・・・

726 :名前は開発中のものです。:2009/07/17(金) 14:37:53 ID:AtGtaSaV
熊々翻訳しなきゃわからないレベルの英単語は使わないかな

727 :名前は開発中のものです。:2009/07/17(金) 14:42:09 ID:vX9OmGXP
FileHandle ofh ( FileName, ">" );
とかは問題ないと思うけどな。宣言のクラス名で大体分かるし。
宣言が遠すぎて分からんような関数ならその時点で問題だし。

728 :名前は開発中のものです。:2009/07/17(金) 15:20:17 ID:vX9OmGXP
というか、「ローカルスコープの」識別名は短いのが主流な気がするんだけど。
定番の良書とかでも普通みんなそうだし、Linuxカーネルみたいな大物ソースでも
そうだし。
結局、識別名だけで理解できる情報は限られるのも現実。そうでなければ、それこそ
アプリケーションハンガリアンなんかを全識別名に徹底すれば最高なのかもしれない
けど、実際は関数エントリにはしっかりした出入り仕様のコメントが欲しい訳で。

まぁ、スレ違いなんだけどね。
正直、D3DXのせいで、「扱いやすくする」という使命のラッパーライブラリの系統
は居場所を失ってるから、このスレの居場所も同様によく分からないんだよなぁ。

729 :名前は開発中のものです。:2009/07/17(金) 15:37:38 ID:/TZL4Vnl
   ∩___∩
   | ノ      ヽ
  /  ●   ● |     クマ知ってるか。
  |    ( _●_)  ミ    出雲地方では、木と岩と水の在る場所を「熊々しい谷」と呼ぶ。
 彡、   |∪|  、`\    「熊々しい」とは、神々しいの意味だ。
/ __  ヽノ /´>  )
(___)   / (_/
 |       /
 |  /\ \
 | /    )  )
 ∪    (  \
       \_)


730 :名前は開発中のものです。:2009/07/17(金) 22:02:14 ID:Z3s3jxcY
>>722レベルの長文関数名を記述すると
引数がある場合とかに
複数行にわたってしまって
なんだか見づらくならない?

今まで見たソースだとgetScrFPS程度には略してるけど
おまえらどうなの?

731 :名前は開発中のものです。:2009/07/17(金) 22:12:33 ID:3aIuRMAB
略すと判んなくなる時以外は略してる。

732 :名前は開発中のものです。:2009/07/17(金) 22:12:54 ID:a1yK0hIN
目的や用途によって使い分けてる。

733 :名前は開発中のものです。:2009/07/17(金) 22:29:41 ID:PpX+kDe1
クラスの中に座標XとYをまとめてクラスか構造体にしておいて、他の関数などに渡すときに
ひとつのGetPos()って関数で渡すにはどうしたらいいかな?
考えてみたんだけど、どうしても一つでいろいろなところで使える方法がみつからないんだよ。
まだプログラム経験が短いもんで。

734 :名前は開発中のものです。:2009/07/17(金) 22:47:07 ID:a1yK0hIN
構造体を返せばいいと思うけど、そういうことではない?

735 :名前は開発中のものです。:2009/07/17(金) 23:03:35 ID:TRJ/ynqn
まあ状況によるけど。
基本Getは単一変数を返す方がいい。
内部の構造体のデータを返すのは間違っている。
その場合はとるのではなく、チェックしてもらう。
bool chk_XXXX (pos *dat);  が正しい。
で、この関数はインラインであれば、スピード的には何の問題も無い。

考え方が逆。

736 :名前は開発中のものです。:2009/07/17(金) 23:06:22 ID:TRJ/ynqn
補足、クラス内のデータの処理はそのクラスの関数で行う!
これ基本中の基本

737 :名前は開発中のものです。:2009/07/17(金) 23:31:36 ID:cB4HhxMP
皆が何言ってるかさっぱりわかんないぜ!

でもゲームは作れてるぜ!

738 :名前は開発中のものです。:2009/07/17(金) 23:36:29 ID:iPNwCeP8
FPSはそれ自体で意味がわかるから使うけどScrは無いわ

739 :名前は開発中のものです。:2009/07/18(土) 00:03:32 ID:pCmtYAM2
class A があって xが public なメンバの場合 A.xでアクセスするのと
private の場合 getx(){return x;} でアクセスするのと速度変わらんのか

740 :名前は開発中のものです。:2009/07/18(土) 08:04:35 ID:QevxnE5g
>>739
詳しい事はしらんが、常識的な範囲でコンパイルを考えれば、
最適化が普通だったら遅くなる理由は無いと思う。

最適化をしないなら、クラスから関数のアドレスに飛んで、
そこで値:xを取得して、それをどっかに格納な分
遅くなるんだろうけど・・・。

741 :名前は開発中のものです。:2009/07/18(土) 08:54:43 ID:UXbVEGUE
>>740
ちょっと違う
getx(){return x;} がクラスの中に書かれ、そのクラスがヘッダーファイルなら。
インライン展開されるので
aa = getx(){return x;}
 ||
aa = A.x と同じ
最適化は関係ない

742 :名前は開発中のものです。:2009/07/18(土) 08:56:36 ID:UXbVEGUE
あ、ちょっとまて、C++のみの話な、他の言語は知らん

743 :名前は開発中のものです。:2009/07/18(土) 10:41:55 ID:PwgwIsF1
それはヘッダに直接定義書いてるからinline付いてるだけじゃね
ソース側で定義でもinlineつけて展開できるなら同じじゃないっけか
後、クラス内での処理はインラインしてくれるのが普通だったきがする
メンバ関数内で別のメンバ関数呼び出して処理とか
まー、>>736

744 :名前は開発中のものです。:2009/07/18(土) 14:09:33 ID:xlxZEQtn
インスタンスが確保されてる状態なら、参照を返せばいい。
class Foo {
 Pos pos_;
public:
 Pos& GetPos() { return pos_; }
 const Pos& GetPos() const { return pos_; }
};

スコープの外側にインスタンスを返すなら、参照渡しじゃ無理なので、コンパイラの
NRVOに期待して、例えば以下のように書くことになる。
inline Pos GetPos() {
 Pos result;
/* code */
 return result;
}

NRVO非対応でRVOだけ対応のコンパイラだと、
inline Pos GetPos() {
/* code */
 return Pos( /* code */ );
}
こういうコードじゃないと>>741の言うような最適化は掛からない。
コンパイラーメーカーもC++標準化委員会もNRVOが掛かるように頑張ってるはずだが、
実装状況はコンパイラによってまちまちなんで調べてくれ。多分検索すればすぐ分かる。
VC++なら2005からNRVO行けるっぽい。/O1くらいでもNRVOは掛かる模様。
プロファイラで後から最適化ってのも常道だけど、I/F設計段階の話はそうもいかないし
なぁ。
まぁ、俺なら基本的には参照渡し、リターンで解体される自動変数なら値渡しで返して、
後者がボトルネックになるならインライン化でたぶんNRVO発動でおk、って書く。で、
「この設計だと遅そうだしポインタ渡そう」って言われたら、実際どうなるか興味ある
んでベンチでも書いたり、ついでに↓みたいなのも一緒に見たりしながら相談する。
http://msdn.microsoft.com/en-us/library/ms364057(VS.80).aspx

745 :名前は開発中のものです。:2009/07/18(土) 14:20:17 ID:xlxZEQtn
>>744補足
スコープの外に「自動」インスタンスを返すなら、だな。

つーか、二つめと三つめは最初の質問のシチュエーションから逸脱してるな。すまん。
まぁでも、メンバ関数でもNRVOは重要なんで、仕組みは知っておいた方が。

746 :名前は開発中のものです。:2009/07/19(日) 05:29:35 ID:TXlg+NUw
//●ジャンぷ

if(key & PAD_INPUT_B){
for(double t=0; t<10; t=t+0.1){
int vo = -60;
int ay=10;
jikidata.y = vo * t + 1/2 * ay * t*t + jikidata.y;
WaitTimer( 1000 );
jikidata.ghandle = LoadGraph("media\\imgbb4792ea7ec6f3d_frame_0009.bmp");
}
}


DXライブラリを使ってアクションゲームのジャンプをプログラムしたいんですが
これで実行すると、キャラが止まったり、動かなくなってしまうんですが、どこを改変すればいいんでしょうか?

747 :名前は開発中のものです。:2009/07/19(日) 05:51:18 ID:EpiDWLJN
>>746
正直どこにつっこめばいいかわからないので
公式のサンプルを参考にすればいいとだけ言っておく
http://homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N2

748 :名前は開発中のものです。:2009/07/19(日) 11:01:02 ID:7iXtFi1U
WaitTimerは使っちゃだめれす><

749 :名前は開発中のものです。:2009/07/19(日) 21:11:12 ID:mJh1WCZZ
フラッシュマン

750 :名前は開発中のものです。:2009/07/20(月) 01:05:51 ID:pleKhZHB
>>748
リアルタイム処理で使うのは駄目に決まってるな
フェードアウト後の待ち時間とかに使うのが正しい
でも個人的にはウェイト系の関数やら処理体系作って、それを使えばいいと思う
while(……){
 //ここにwaitから切り放したい処理を書く
 //例えば、ゲームは止まっても風景は動かしたい
 //処理ごとにwaitを分ければさらに色々なことができる
 if(waitFlag==FALSE){
  //ここにwait前にやりたい処理を書く
  //waitTime、waitFlagは本来条件式で設定するのが望ましい
  waitTime=1500;//1500ミリ秒=1.5秒
  waitFlag=TRUE;
 }else{
  if(1ミリ秒経過したら){
   waitTime--;
  }
  if(waitTime==0){//1.5秒経った
   waitFlag==FALSE;
  }else{
   //waitTime=0未満;を描いたな?と怒る
   //エラーフラグを大量に埋めるのは開発の最適化とアンチートに役立つ
  }
 }
}

こんな

751 :名前は開発中のものです。:2009/07/20(月) 01:09:47 ID:pleKhZHB
最後のとこはelse if(waitTime<0)だた

752 :名前は開発中のものです。:2009/07/20(月) 18:56:48 ID:u2THICPq
ジャンプするたびに画像をロードしまくってどうする

753 :名前は開発中のものです。:2009/07/20(月) 23:05:51 ID:hrqPLvNB
>>750
これならどの環境でもキッチリ結果が出るね
カウンタ回すしかやったことないから参考になるわ
だけどアクションとかだと遅延おきてカクカクにならないかな

754 :名前は開発中のものです。:2009/07/22(水) 14:20:11 ID:23EfZ5Te
同じフォルダ内にあるTTFフォントを使って文字列描画したいんですけどそれはDXライブラリでできますか?
フォントのファイル名を指定して読み込みするような関数が見つからなくてどうすればいいか困ってるんですが

755 :名前は開発中のものです。:2009/07/23(木) 01:22:02 ID:w7s2/iav
なんかソレっぽいサンプルどっかで見かけたような気が……

756 :名前は開発中のものです。:2009/07/23(木) 01:49:57 ID:w7s2/iav
ごめん適当なこと言った
DXライブラリでは出来ないような気がする
でもフォントファイルを一時的に開くプログラムがあれば通常のフォントと同じように
名前の指定だけで使えるはず……

757 :754:2009/07/23(木) 02:35:05 ID:M1f3xhTA
ありがとう!!探してみて解決したよ!!

結果はWin32APIのAddFontResourceEx関数を使えば一時的にTTFファイルからフォントリストに登録できるみたい
第二引数に0x10(FR_PRIVATE)を渡せばそのプロセスだけで使えるようになるぽ
使い終えたらRemoveFontResourceExで開放する必要もあるみたい。登録時とまったく同じ引数で呼び出す必要あり

AddFontResourceEx("hoge.ttf", 0x10, 0); // これでhogeフォントを登録。DxLibのEnumFontNameでも表示されるはず。
RemoveFontResourceEx("hoge.ttf", 0x10, 0); // 削除。引数を↑と同じにしないといけないらしい

いくらDxLib関係でググっても見つからなかったので少々冗長気味に解説してみたよ
正直この機能はDxLibにラップされてても違和感無いと思うんだけど

758 :名前は開発中のものです。:2009/07/23(木) 03:39:18 ID:8ujD6dNo
確かに自動対応してもいいレベルではある

759 :名前は開発中のものです。:2009/07/23(木) 21:34:58 ID:PImKyCUU
暗転ってどうやってやってる?

760 :名前は開発中のものです。:2009/07/23(木) 21:51:01 ID:tLjhSV6z
普通に画像を表示して、その上にかぶせるように真っ黒な画像を少しずつ濃くしながら表示。
完全に濃くなったら、表示する画像を切り替える。
真っ黒な画像を少しずつ薄くしながら表示する。完全に薄くなったら、以後、真っ黒な画像は表示しない。

これでいいと思う。

761 :名前は開発中のものです。:2009/07/23(木) 23:37:10 ID:JVsH2uDi
SetDrawBlendModeとDrawBoxでやってるな。


762 :名前は開発中のものです。:2009/07/24(金) 02:52:41 ID:sonMl0Vt
これ一旦止めた音楽止めた場所から再開させることできないのか

763 :名前は開発中のものです。:2009/07/24(金) 03:42:20 ID:nwWosEk7
できるけど
Dxlib.h内を、サウンドハンドルの再生位置で検索

764 :名前は開発中のものです。:2009/07/24(金) 04:08:03 ID:sonMl0Vt
ありがとうございます
やってみました
PlaySoundMem でやってるときは GetSoundCurrentPosition で取得すればいいのかな
でやってみましたが GetSoundCurrentPosition がいくら再生してるときでも0しか返ってこないのですが
ちゃんと引数に正しい SoundHandle 入れてますよ

765 :名前は開発中のものです。:2009/07/24(金) 04:20:10 ID:nwWosEk7
ごめん、検証してなかった
PlaySoundMemのTopPositionFlagを0にすれば
取りあえずは途中から再生できるはず

766 :名前は開発中のものです。:2009/07/24(金) 06:13:08 ID:sonMl0Vt
ありがとうございました、できました

767 :名前は開発中のものです。:2009/07/24(金) 08:59:47 ID:5C3gkZxn
DXライブラリ卒でD3D9使ってるけど、久々にDXライブラリ時代のソース引っ張り出して
ちょっと懐かしかった。pchも使ってなかったんだなぁとか。
つーかpch使ってない奴も多そうだから勝手に手順説明するぜ。

1. プロジェクト→新しい項目の追加→ヘッダーファイルでstdafx.hをプロジェクトに追加
2. プロジェクト→新しい項目の追加→C++ファイルでstdafx.cppをプロジェクトに追加
3. DxLib.hや標準ライブラリなど、自作でない巨大ヘッダのinclude文を*.cppから全部削除して、
代わりにstdafx.hの中に全部突っ込む(自作ヘッダは普通に*.cppで各自includeする方がいい)
/* stdafx.hの例 */
#pragma once
#include <DxLib.h>
#include <string>
using std::string;
/* ここまで */
4. 全ての*.cppの最初に#include "stdafx.h"を書く(コメントは前に入れてもおk)
ちなみにstdafx.cppは、#include "stdafx.h"の一行だけでおk
5. ソリューションエクスプローラでプロジェクト名を右クリックしてプロパティを開き、左上の
構成を「すべての構成」にして、構成プロパティ→C/C++→プリコンパイル済みヘッダー→
プリコンパイル済みヘッダーの作成/使用を「プリコンパイル済みヘッダーファイルを使用する
(/Yu)」に変更する
6. ソリューションエクスプローラで「stdafx.cpp」を右クリックしてプロパティを開き、左上の
構成を「すべての構成」にして、構成プロパティ→C/C++→プリコンパイル済みヘッダー→
プリコンパイル済みヘッダーの作成/使用を「プリコンパイル済みヘッダーファイルを作成する
(/Yc)」に変更する

これで、stdafx.hを変更する時以外は、ビルド速度がかなり劇的に上がるはず。
大した作業にはならないはずだから一度試すといい。

768 :名前は開発中のものです。:2009/07/24(金) 09:09:49 ID:5C3gkZxn
ああ、気付きにくいかもしれないことを補足。
自作ヘッダから<string>とか<math.h>とか使いたい場合も、「必ず全ての*.cppの最初で
stdafx.hがインクルードされる」という規則だから、結局は自作ヘッダがインクルードされる
時点ではstdafx.hが既に読み込み済みになってる。
なので、自作ヘッダに#include <string>とか書く必要も無し。自作ヘッダで使いたい標準の
ライブラリなんかのincludeも、全部stdafx.hに逃がせばおk。

769 :名前は開発中のものです。:2009/07/24(金) 17:40:08 ID:JWiEj2kH
これは便利そうですね
デメリットとかはありますか?

770 :名前は開発中のものです。:2009/07/24(金) 18:12:52 ID:HmqJ54co
今の俺には何のことだかさっぱりだがメモっておく

771 :名前は開発中のものです。:2009/07/24(金) 19:26:36 ID:5C3gkZxn
デメリットは思い当たらないなぁ。
「使いたい外部ライブラリのヘッダを全部何も考えずにstdafx.hに入れまくれ」
「全てのcppファイルの頭でstdafx.hをインクルードしろ」
ってルールが縛りといえば縛りだけど、むしろ楽になるだけだと思う。コンパイルも
別次元に速くなるし。

原理的には、stdafx.hの中身をコンパイルし終わったとこでいったん止めちゃって、
中間情報として拡張子pchのファイルに保存しておき、*.cppをコンパイルする時に
その情報を使い回して、#include "stdafx.h"まで読み飛ばして、それ以降のソース
だけコンパイルするイメージ。実際に内部がどう動いてるかは知らないけど。
なので、cppの頭で#include "stdafx.h"を入れ忘れると、
「プリコンパイル済みヘッダーの検索中に予期せぬ EOF を検出しました」
とか言われる。
stdafx.hの中には、C++のソースなら何書いても多分平気だから、大抵の使い方には
対応できると思われ。あまり頻繁に書き換えると、そのたびにpch作り直しで効果が
薄まるけど、自作ヘッダでも「更新少ない」「かなり色々なソースから参照される」
みたいな奴はstdafx.hに入れちゃってもいいと思う。

772 :名前は開発中のものです。:2009/07/25(土) 15:25:58 ID:3qZ+q5uI
当たり判定はこうすればいい。
プレイヤーキャラクターを移動させたければこうすればいい。

といった部品部品は作れるけど、いざゲーム自体を作ろうとなったら全然作れないんだ。
いったいどうしたらいいのかな・・・?

773 :名前は開発中のものです。:2009/07/25(土) 15:36:28 ID:hVdocGyY
その部品を組み立てればゲームになるはずなんだが
一体何が問題なんだ?

それを言わずして質問されてもわかるはずがない。

774 :名前は開発中のものです。:2009/07/25(土) 15:37:45 ID:tEWYFYw5
>>772
とりあえず目標を決めてはどうか。

ただし、あまり大作でも作れなきゃ意味がないので、
初期の携帯電話用ゲームや、初期のファミコン、インベーダゲーム、倉庫番あたりを目指す。
矢印キーだけ、せいぜいそこにボタン1個くらいで遊べるゲームが楽でいい。

目標が決まったら、それを「部品」に分解する。
うまく部品単位になればお前さんの勝利。

775 :名前は開発中のものです。:2009/07/25(土) 17:05:50 ID:OnXN/lFa
綺麗な部品作りの楽しさとゲーム作りの楽しさは、何というかちょうど90度くらい
ずれた方向性がある。両方うまい人はすごくいい。
最初の一歩はとにかく単純に、ゲーム内容どうでもいいから一本のゲームとして
成り立ってる物を作る、つーこと。極端な話、全部WinMain()に入ってても一向に
構わない。(綺麗な部品作りに慣れてるならそうはならないだろうが)
部品は必要性を実感してから作る方が最適になりやすい。いわゆるシーズじゃなく
ニーズで作る。先に需要を予測して部品を作る、ってのはほどほどにすべき。
で、「クソゲー作ってもなぁ」と思うなら、いっそ最初から真面目に本気ゲーを
作り始めてしまっても全然問題ない。

776 :名前は開発中のものです。:2009/07/26(日) 08:48:42 ID:Hw5xOpYa
個々の部品の作り方が分かっていても、それらを全部組み合わせて、うまく動くようにするのは結構大変。
特にシーンやリソースの管理が入ってくるとかなり面倒になる。
そういう点ではやっぱり最初は1面のみの単純なゲームから始めた方がいいね。
プログラムが大きくなればなるほどバグ取りも大変になるから、最初は小規模から始めた方がいい。
自分はいつも最初からあれこれ入れようとして墓穴を掘ってる。


777 :名前は開発中のものです。:2009/07/26(日) 11:40:31 ID:AWfgbmGQ
プログラムを書く能力とゲームを組み立てる能力は、全くの別物
紙にステータスを書いて遊ぶとか、人形をいじって遊ぶとか
そういうアナログな手法でイメージを立てて設計する
何も考えずにプログラムを先に書くのは意味がない。

ゲームを考える(妄想する)、ゲームを作る、ゲームを遊ぶ
この3つのどれが欠けてもうまくいかない
まず面白いシステムや世界観を考える
次にプログラム、シナリオ、絵、音楽などで形にする
最後に完成品を遊び倒して面白いゲームに近付ける
ゲームは工業製品だから、作り手の職人気質がもろに出るよ


778 :名前は開発中のものです。:2009/07/26(日) 11:57:44 ID:aBNM0ylQ
>>772は単に大枠の設計が分からないとかそういうことなんじゃね?
>>776のいうシーン管理とかそういう骨組みの構造とか

779 :名前は開発中のものです。:2009/07/26(日) 23:48:51 ID:AGlm2m1e
stdafx.hにいれた上で、そのソースに必要なヘッダはあえて書くソースに書くようにしてる

780 :名前は開発中のものです。:2009/07/27(月) 00:01:10 ID:GCep4g8b
俺は何も考えずにいきなりプログラム作るぞ。
特に最初のうちは、あんまり考えないほうがいいと思うんだけどな。
緻密に設計していくのは、ミニゲームを何本か完成させた後のほうがいいと思う。

781 :名前は開発中のものです。:2009/07/27(月) 00:11:13 ID:bEbQPsi9
俺は「これできるかな? ……できた。んじゃこれはできるかな……? よしできた」とかやってるうちに
肥大化してゲームになってる。

782 :名前は開発中のものです。:2009/07/27(月) 00:16:38 ID:VenKtjMK
俺は「これできるかな? ……できた。んじゃこれはできるかな……? よしできた」とかやってるうちに
肥大化してまとまらなくなってやめる。

783 :名前は開発中のものです。:2009/07/27(月) 00:30:42 ID:aQ/IFL1X
俺は「これできるかな? ……できない。んじゃこれはできるかな……? できない……」とかやってるうちに
肥大化することなく寝る。

784 :名前は開発中のものです。:2009/07/27(月) 01:20:08 ID:VJq6W4rL
>>781-783
フイタwwwww

785 :名前は開発中のものです。:2009/07/27(月) 01:49:38 ID:pfTBKVpb
>>781-783がそれぞれ昔の俺、少し昔の俺、今の俺な件

786 :名前は開発中のものです。:2009/07/27(月) 04:39:26 ID:GaH2TMCV
昔はコードが汚いだとか構造が嫌だとかの細かいことが気にならなかった
今はゲームが完成しない

787 :名前は開発中のものです。:2009/07/27(月) 04:44:35 ID:aJcGKYvD
習作はできるが完成はできん

788 :名前は開発中のものです。:2009/07/27(月) 08:01:02 ID:sP35fefq
> 「○ ○の作り方」という本を読んで「この本に××が足りない」と考え、
> そこで今度は××に冠する解説をよみ「これには△△が抜けている」という印象をもち、
> そしてなかなか自分のゲームが完成しない、というパターンに陥った人は少なくないでしょう。
> さまざまな技術書や解説書、入門書を読みつくし、最先端技術に精通しているはずなのに
> 自作アプリケーションがほとんど作れないというのは、決して珍しくありません。

789 :名前は開発中のものです。:2009/07/27(月) 08:53:03 ID:CBwVvngl
そういうのを「頭でっかち」というんだな。

790 :名前は開発中のものです。:2009/07/27(月) 13:31:26 ID:1REfJ+es
どこの引用なんだ

791 :名前は開発中のものです。:2009/07/27(月) 17:02:26 ID:cEG3tUqV
本を読めば作れると考えるのが間違い

792 :名前は開発中のものです。:2009/07/27(月) 21:15:32 ID:C0govEpu
昔どっかのゲームクリエイターが「やってみるのが一番勉強になる」的なこと言ってたから
俺はそれを胸に頑張ったよ…。

793 :名前は開発中のものです。:2009/07/27(月) 23:14:17 ID:aJcGKYvD
男は度胸
何でも試してみるもんさ

794 :名前は開発中のものです。:2009/07/27(月) 23:41:51 ID:1REfJ+es
女は豊胸?

795 :名前は開発中のものです。:2009/07/28(火) 02:18:15 ID:0RhUYUoP
股だな

796 :名前は開発中のものです。:2009/07/28(火) 05:12:13 ID:uYQPfFdp
DXライブラリPortable、次のバージョン来ないかな
3Dポリゴン描画したいです……

797 :名前は開発中のものです。:2009/07/28(火) 12:23:42 ID:YL4nqTsX
そういやDX3Dってどれくらいできたのかな?

798 :名前は開発中のものです。:2009/07/28(火) 13:20:14 ID:aQj264s2
>>797
逃げたんじゃないか?
大学中退するやつだし

799 :名前は開発中のものです。:2009/07/28(火) 19:50:25 ID:lbcOkIrb
DX3DってD3DXと紛らわしいな。
3D描画をDXライブラリみたいに単純化するのは無理。3D描画のフレームワークは
D3DXで十分。それ以上やるとライブラリの独自色が付く。
2DもD3DXSpriteで構わないし、ちょっと調べればテクスチャにαの付いた板ポリを
D3DXで描画する方法はいくらでも出てくるけど。
DirectX6はDreamcast向け、DirectX8はXbox向けに作り直されてる訳で、そのまま
でも十分行けるライブラリ。DXライブラリの最大の意義は、WinMainのすっきり感
だと思う。

800 :名前は開発中のものです。:2009/07/28(火) 20:50:59 ID:LTJXvZ7v
本家の名前の紛らわしさに比べたら…

DXライブラリでも使えよ!って言われて固有名詞だとは夢にも思わず
なかなか存在に気付けなかった俺

801 :名前は開発中のものです。:2009/07/28(火) 20:52:30 ID:bkreYxYW
3Dなんかいくら敷居を下げたところでDXライブラリしか使えないような子には扱えないよ
ゲームフレームワークみたいな方向に簡単にするなら別だけども

802 :名前は開発中のものです。:2009/07/28(火) 21:36:50 ID:C3k1GCCB
あの・・・
流れを断ち切った横レスなんですが、
C言語+dxlibで作ったプログラムをC++のクラスってのを使って
まとめようと思い、メインループを書いてみたんですが、
書き方があっているのかすごく不安なのでお聞きしたいと思いました。

もし、スレチならいいスレ教えて・・・
よし!見せてみろ!ならソース張る。


803 :名前は開発中のものです。:2009/07/28(火) 21:37:39 ID:lZJGMEL/
DXライブラリに親でも殺されたのか

804 :名前は開発中のものです。:2009/07/28(火) 21:43:58 ID:LTJXvZ7v
>>802
ヨシみせてみろ

805 :802:2009/07/28(火) 21:52:18 ID:C3k1GCCB
ワーイ ID GCCってw

#include "GV.h"

int WINAPI WinMain(
HINSTANCE hI,HINSTANCE hP,
LPSTR lpC,int nC
)
{
ChangeWindowMode(TRUE);
if(DxLib_Init() == -1) return -1;
//↓このあたりがめっちゃ不安なのですが。
Flame* T = new Flame;
//
SetDrawScreen(DX_SCREEN_BACK);

//MainLoop()内で処理を書いてます
while(!(ProcessMessage()) && !(CheckHitKey(KEY_INPUT_ESCAPE))
&& (T -> MainLoop()) && !(ScreenFlip()) && !(ClsDrawScreen()));
//
DxLib_End();
return 0;
}

ヘッダファイルも見てもらえるのなら・・・・☆彡ってレスしてくらさい



806 :名前は開発中のものです。:2009/07/28(火) 22:00:28 ID:bkreYxYW

それだけならそんなにおかしいところはないと思う
細かいどうでもいいことを突っ込ませてもらうと,


FlameじゃなくてFrame
あと大文字一字の変数名はやめてくれ紛らわしい

807 :801:2009/07/28(火) 22:09:21 ID:C3k1GCCB
フレイム・・・フレーム・・・
一文字違いが大違いでした・・・
参考にした本(セガ本?)にそういう記述があったのでつい (Tの件は)

T* <=この変数を使う場合

T->A
T->B
とか、
for(int i=0;i<1000;i++){
T-> X[i]
}
みたいに変数の中身をwhileの中で更新しまくっても問題ないですか?


808 :名前は開発中のものです。:2009/07/28(火) 22:10:29 ID:YL4nqTsX
ゲームプログラマーになる前に〜ってタイトルの本か

809 :名前は開発中のものです。:2009/07/28(火) 22:14:47 ID:C3k1GCCB
そうです。
ちなみに2章を読み始めてから進まないまま二ヶ月目

810 :名前は開発中のものです。:2009/07/28(火) 22:16:24 ID:bkreYxYW
>>807
ダメダメ
それならCの構造体と変わらない
クラスの外からメンバ変数にアクセスするのは避ける
クラスっていうのは,外からはボタンを押すだけで中で勝手に処理してくれる
便利な機械みたいな感じ(そういう風に作るのが理想)

811 :名前は開発中のものです。:2009/07/28(火) 22:19:08 ID:TfpzHMPf
先にEffectiveC++とデザインパターンの本読むべき

812 :名前は開発中のものです。:2009/07/28(火) 22:26:10 ID:bkreYxYW
クラスを利用したこともないのにいきなり作れるわけがない
ためしに他の人が作ったC++のクラスライブラリを触ってみればいいんじゃない
ゲームエンジンならSeleneとか
英語大丈夫ならIrrlichtなんかも簡潔でおすすめ
どういう風にクラスを使えばいいのかわかるよ

813 :802:2009/07/28(火) 22:29:42 ID:C3k1GCCB
なるほど。。

本高い・・・。
すでに
14才から・・・、
OS自作・・・
やさしいC・・・
よくわかるC・・・
IP!
Cプログラミング講座、
アルゴリズムマニアックス、
はじめてのアルゴリズム入門、
とかの本を買っては進めないところがあって止まるを繰り返してもう資金が・・・

来月余裕があったら買ってみます。

814 :名前は開発中のものです。:2009/07/28(火) 22:31:58 ID:TfpzHMPf
買う前に一冊読みきれwww
それか図書館だな

815 :801:2009/07/28(火) 22:35:44 ID:C3k1GCCB
これだけ本読んだらもしかしたらオレゲーム作れるんじゃね?
と勘違いして作り始めたのさ!

もう・・・タイムリミットがちかずいている・・・・・・
やつが・・・・来る!

816 :名前は開発中のものです。:2009/07/28(火) 22:36:54 ID:LTJXvZ7v
マクドに注文する側がバイトのシフトとかパンズの在庫を気にしちゃ駄目だぜ

817 :802:2009/07/28(火) 22:41:24 ID:C3k1GCCB
>>815
そういうことなのか!

なんかよくわかった気がしました。
クラスの中で処理を完結すればいい感じになれるってことですね♪ 

アレ?ッてことは今書いるプログラムは・・・・



818 :名前は開発中のものです。:2009/07/28(火) 22:50:21 ID:lbcOkIrb
スタックフレームとヒープとスタティック領域が分かってないとC/C++は辛い。
どっかに親切な解説ねーかな。ここじゃ正直めんどい。

とりあえず今から風呂→ネトゲでギルド潜りするんで、一分でそれっぽいとこ探して
おいた。
ttp://gihyo.jp/dev/serial/01/antique_assembler
初心者に分かるかはシラネ。でもこれが分かればCのメモリでつまづくことはたぶん
無くなりそうな記事に見えた。15秒くらいしか読んでないけど。

819 :名前は開発中のものです。:2009/07/28(火) 22:55:24 ID:lbcOkIrb
すまん、面白そうなんで↑の記事をちょっと読んでみたが、初心者でWindows環境だと
素直に読めるもんじゃないかも。
ある程度「ふんふんそんなもんか」って飛ばし読みするには悪くないとは思うけど、
真面目にサンプルコードを走らせたりするタイプだと微妙にきつそう。

820 :名前は開発中のものです。:2009/07/28(火) 22:57:31 ID:bkreYxYW
あんまり低レベルなことは気にしなくていいと思うよ
オブジェクト指向をちゃんとやりたかったらJavaのような
思いっきり抽象的な世界でリフレッシュした方がいいかもしれない
ゲーム作るのだって簡単

821 :名前は開発中のものです。:2009/07/28(火) 22:58:28 ID:C3k1GCCB
えっと・・・
関数を呼び出したときには元の場所に帰ってくるための情報が
どこかよくわからないない場所に
スタックの構造をした形でつまれているんだよ、ってこと?

822 :名前は開発中のものです。:2009/07/28(火) 23:11:05 ID:lZJGMEL/
しかしゲームを作るのにそれほど必要ない知識なのであった

823 :名前は開発中のものです。:2009/07/28(火) 23:14:09 ID:C3k1GCCB
java・・・・
とりあえずおいらゲームを作って見るよ!
クラスの中でクラスを宣言したりnewする方法がまったく理解出来ないけど。
時間切れなので・・・ノシ


ご指導ありがとうございました!


824 :名前は開発中のものです。:2009/07/28(火) 23:29:31 ID:0RhUYUoP
さて、そろそろD言語に手を出そうか…

825 :名前は開発中のものです。:2009/07/28(火) 23:32:38 ID:LTJXvZ7v
そして一向にゲームが完成しない罠
勉強もいいけど取り敢えずサクッと作った方がよいかも

826 :名前は開発中のものです。:2009/07/28(火) 23:40:38 ID:gMpP2gLw
上から降ってくる「モノ」を、ただひたすら画面下部で避けるだけのゲームとか、そういうの?

827 :名前は開発中のものです。:2009/07/28(火) 23:45:05 ID:C3k1GCCB
あら??
ニコニコ動画にうpしたのならあるけど・・・・
それよりヘッダファイル見る?

828 :名前は開発中のものです。:2009/07/28(火) 23:53:41 ID:KFmBMjPZ
見てあげないこともない

829 :名前は開発中のものです。:2009/07/29(水) 00:07:48 ID:6Y8+8XuP
ttp://www.nicovideo.jp/watch/sm7736340

とりあえず張ってみる。
これ以上スレすると荒らしになってしまいそうな気ガスる


830 :名前は開発中のものです。:2009/07/29(水) 00:22:10 ID:sFXJxN65
つーか、やろうとしてることから考えると、ちゃんとメモリの意味が分かってないと
トンチンカンになる。
余計なことやろうとせず、意味の分かってる仕様だけ使っていればいい。いわゆる
better CとしてのC++。newとか罠満載なものにやたらと触らない。

831 :名前は開発中のものです。:2009/07/29(水) 00:37:52 ID:1WJmBm/8
俺は昔アセンブラかじったことあったからメモリの意味はある程度わかってるつもりだったが、
最近までポインタが理解できずに使えなかった……。

どっかのサイトで「int *p」は「int* p」だって書いてあるのを読んでやっと少しだけわかった気がした。

「なんで *p で宣言してるのに使うのは p なんだ???」とずっと疑問だった。

Cって俺にはわかりづら過ぎる……。わかる奴凄い。

832 :名前は開発中のものです。:2009/07/29(水) 00:46:49 ID:e3ckjdq+
>>831
68系のアセンブラを知っていればポインタを知っているとおもう。

ここを読んでみなさい。C++について詳しく解説してある。
http://www.asahi-net.or.jp/~yf8k-kbys/


833 :名前は開発中のものです。:2009/07/29(水) 02:17:12 ID:IM9p+Dbm
ポインタなんて最初あまり分からずに大分年月経ったらやっと分かり始めた
いろいろ試行錯誤とか苦労しないと分からないのでは
話変わるがちょっと上のレスに関連することだが俺結構メンバ公開にして外からアクセスしてた
何かアクセサ使うとその分遅くなるような気がしてしまうんだよなあ

834 :名前は開発中のものです。:2009/07/29(水) 04:42:03 ID:sFXJxN65
ぶっちゃけアセンブラが分かってれば、ソフトウェアレベルの出来事なら一番下の構造
から透けて見えるから、ポインタなんかは概念も挙動も一発で飲み込める。
下の構造が見えないと、どんな処理が速いとか遅いとか効率いいとか悪いとかは経験の
繰り返しで飲み込むしか無いけど、下から見えていれば論理的に自然に飲み込める。
だが、アセンブラを理解する段階での苦労が大きいし、今のご時世でどんだけ報われる
かは自信ないからお勧めもしない。
とは言っても、昔は「まずアセンブラで」とか「BASICかアセンブラしか開発環境は
ありません」とかが普通だったから、そこまで難しいもんでも何でもないけどな。

835 :名前は開発中のものです。:2009/07/29(水) 05:06:48 ID:KJv9oy2N
アセンブリ言語自体はそらもう単純なもんだからな
ただ今のプログラミング環境に慣れ親しんでると、ちょっとした事すら書くのが面倒ってだけで


836 :名前は開発中のものです。:2009/07/29(水) 06:22:35 ID:gEGcx4CR
newとかdeleteとか
必要性がよくわからなくて結局殆ど使っていない。

使った方がカッコいいんだろうけど

837 :名前は開発中のものです。:2009/07/29(水) 07:15:08 ID:cb/+Lg0n
動的に確保するときだけ使ってる

838 :名前は開発中のものです。:2009/07/29(水) 09:17:36 ID:IM9p+Dbm
俺も必要性よく分らなかった時は使わずにやってた
使い方覚えたら結構便利だ
すぐでなくともそのうち覚えればいいんじゃないか

839 :名前は開発中のものです。:2009/07/29(水) 10:34:12 ID:jVZkfrqg
使わないでなんとかできてると
覚えようとしないんだよなぁ……。

プログラム言語の解説サイトとかで命令の説明とかはいくらでも読めるけど、
「ゲームを作る際にこうやって使ったら便利!」とかまで書いてある事ないじゃん?
だから「ふーん」で終わっちゃうんだよね……。

いや俺が不勉強なのはわかってるんだが。

840 :名前は開発中のものです。:2009/07/29(水) 10:40:16 ID:p52lIH/W
必要になったときに学ばないと覚えないんだよなぁ……
ポインタもメモリの確保もよく分からなかったけど、
一度必要になってから調べなおしたら結構使いこなせるようになった

841 :名前は開発中のものです。:2009/07/29(水) 11:05:54 ID:IM9p+Dbm
俺もテンプレート使う気なかったけどある時どうしても使う必要に駆られて使ってみたらすんなりいって便利だったなあ
まあ使わないでいけるんならいいんじゃまいか

842 :名前は開発中のものです。:2009/07/29(水) 11:45:25 ID:oi3ivzjY
C++は文法習得〜良いコーディングの間が長すぎる
いろいろ覚えるとC++のほうがゲーム作りやすく感じるんだけどな

843 :名前は開発中のものです。:2009/07/29(水) 13:08:33 ID:B4ng0Zvn
Javaだと手軽にクラス使えるから結構細かいこともクラス使って実装したりするけど
C++はクラスが使いにくくて返って面倒になったりするからつい細かいことはC風に書いてしまう

844 :名前は開発中のものです。:2009/07/29(水) 13:15:13 ID:tcSJ+b5u
STLはすげー便利

845 :843:2009/07/29(水) 13:17:37 ID:B4ng0Zvn
いや出来合いのクラスを使うのはいいんだけど
作るのがめんどくさいんだよね

846 :名前は開発中のものです。:2009/07/29(水) 13:47:45 ID:IM9p+Dbm
そもそもJavaはクラス使わずに書けないのでは

847 :名前は開発中のものです。:2009/07/29(水) 13:54:50 ID:B4ng0Zvn
そりゃもちろんそうだけど,「すべての変数や関数がクラス内に収められている必要がある」
というだけのことであって,クラスを単なる名前空間と考えるならCと変わらん
クラス使ったからってオブジェクト指向になるわけじゃない

848 :名前は開発中のものです。:2009/07/29(水) 14:11:50 ID:p52lIH/W
まあ、intだってクラスだし、C++は設計的に変数は全部クラスっちゃクラス

さまざまな動きするものをまとめて管理するにはクラス使う方がラクだと思う
シューティングの弾とかRPGのNPCとか。
というか俺はクラス使った半オブジェクト指向でしかゲーム作れなかったりする

849 :名前は開発中のものです。:2009/07/29(水) 14:20:10 ID:gEGcx4CR
JAVAでひとつのクラスの中に全ての処理を
手続き型で書いちゃうプログラマを思い出した。

850 :名前は開発中のものです。:2009/07/29(水) 14:22:40 ID:mG6Pind/
ああ、俺がやりそうだな、そういう事。

851 :名前は開発中のものです。:2009/07/29(水) 14:53:37 ID:KJv9oy2N
>>848
>まあ、intだってクラスだし
おいおいそれはJavaの事を言ってるんだろうな?
C++でのintはコンストラクタもデストラクタも持たないPODだが

852 :名前は開発中のものです。:2009/07/29(水) 15:03:26 ID:cAIJJmev
Javaのintはプリミティブ・・・

853 :名前は開発中のものです。:2009/07/29(水) 15:05:31 ID:KJv9oy2N
>>852
すまん
Javaの事>Javaのintegerクラスの事


854 :名前は開発中のものです。:2009/07/29(水) 15:05:32 ID:B4ng0Zvn
Javaでもintはクラスではなくプリミティブな値型
むしろJavaのほうがクラスとプリミティブ型の間に明確な振る舞いの違いがある
intをクラスの一種(正しくは構造体)として扱うのは.NETだな(C#やVB.NET)

855 :名前は開発中のものです。:2009/07/29(水) 15:09:10 ID:cAIJJmev
Rubyもね

856 :名前は開発中のものです。:2009/07/29(水) 15:12:55 ID:p52lIH/W
あれ?違ったっけ? と思ったら
C++では「intにもコンストラクタとデストラクタがある」ってのを間違えて覚えてたみたい……
恥ずかしい///

857 :名前は開発中のものです。:2009/07/29(水) 18:42:39 ID:PJW2UirX
>>826
俺、それさえも途中で投げたんだが

858 :名前は開発中のものです。:2009/07/29(水) 19:09:50 ID:QQ6cQOKX
>>857
まてまてまて。流石にそれは話にならんぞ。

料理が出来ないって人に、
「出汁とかその辺無視してもいいから、とりあえずお味噌汁から作ってみようか」
ってアドバイスして、無理って言われたようなもの。

859 :名前は開発中のものです。:2009/07/29(水) 20:04:55 ID:DQFan6Z4
教えて偉い人
爆発とか衝撃波みたいなエフェクトを管理するクラスを作ったのよ
メンバ的にはコンストラクタとデストラクタと描画中かどうかのフラグ管理と実際に描画する関数といった具合
コンストラクタでエフェクト用の画像をメモリに読み込んでるんだけど
このクラスのオブジェクトを作る度にロードされるのが気持ち悪くてしかたない
画像リソースを読むところだけ外に出せないだろうか


860 :名前は開発中のものです。:2009/07/29(水) 20:14:58 ID:p52lIH/W
前もって画像を読んでおいて、そのグラフィックハンドルを
コンストラクタでクラス内の変数に代入すればいいんじゃないの?
グラフィックハンドルってただの数値だし

861 :名前は開発中のものです。:2009/07/29(水) 20:29:24 ID:RdHjB4sC
クラスAのコンストラクタで画像を読んで、
クラスBのコンストラクタでそのグラフィックハンドルを得るようにした場合、

どちらのコンストラクタが先に呼び出されるか分かりませんが問題ないですか

862 :名前は開発中のものです。:2009/07/29(水) 20:33:36 ID:tcSJ+b5u
その場合クラスAは動的に確保しとくべきじゃないの

863 :名前は開発中のものです。:2009/07/29(水) 20:49:35 ID:vU/WuoP5
// あらかじめ画像を読み込んでおく
Image *image = new Image("effect.png");

// 複数のインスタンスでハンドルを使いまわす
Effect *explode1 = new Effect(image->handle);
Effect *explode2 = new Effect(image->handle);

864 :名前は開発中のものです。:2009/07/29(水) 21:21:10 ID:sFXJxN65
どこでdeleteするんだ?

865 :名前は開発中のものです。:2009/07/29(水) 21:31:15 ID:cAIJJmev
画像管理するクラス作っておいて以前ロードしたものと同じものがあったらそれ使いまわす

866 :名前は開発中のものです。:2009/07/29(水) 22:04:56 ID:oi3ivzjY
shared_ptrで画像を共有する

867 :名前は開発中のものです。:2009/07/29(水) 23:32:20 ID:IM9p+Dbm
画像管理クラスなんて態々作らずメイン処理のクラスにハンドル持たしてるわ俺
そっからオブジェクトクラスに渡すのはそのハンドルのポインタにしてる
そうすれば途中でウィン→フルに変えるときとかもそのメインの画像読み込みメソッド呼び直すだけで済む

868 :名前は開発中のものです。:2009/07/30(木) 12:04:22 ID:OvoMaJfI
ハンドラをスタティックにしちゃだめなのか?

869 :名前は開発中のものです。:2009/07/30(木) 12:18:43 ID:OvoMaJfI
上げちまったすまね
むしろグローバルでハンドラを作れってことか
再利用性が皆無になるが

870 :名前は開発中のものです。:2009/07/30(木) 13:34:41 ID:9rAtPdyT
コンストラクタで画像を読み込み+デストラクタで開放するだけのクラスImageを
そのステージで必要ならshared_ptrで読み込む
エフェクトを実際に使う箇所ではそのshared_ptrをコピーして使う
ステージを通して読み込みは1回だけで、コピーもshared_ptrのコピーだけですむから軽い
しかもステージが終わったら勝手に安全に開放される
何よりコードがすごい簡単で見やすくなる
ってじっちゃがいってたけど、俺GUIのゲームまだ作ったこと無いからわからねーわ

871 :名前は開発中のものです。:2009/07/30(木) 22:13:59 ID:650NzX62
>>870とかを見るとさらに、
class ImagePool : noncopyable {
 typedef shared_ptr<Image> ImageSP;
 typedef unordered_map< wstring, ImageSP > ImageHash;
 ImageHash ih_;
public:
 ImageSP get( wstring name ) {
  ImageHash::iterator it = ih_.find(name);
  if ( it == ImageHash.end() ) {
   it = ( ih_.insert( make_pair( name, ImageSP( new Image(name) ) ) ) ).first;
  }
  return it->second;
 }
 void clear() { ih_.clear(); }
};
みたいな感じのも書きたくなるな。パフォーマンスどうなるかはシラネ。

872 :名前は開発中のものです。:2009/07/30(木) 22:20:25 ID:650NzX62
ああ、もちろんステージの頭で必要そうなイメージはget()しまくっておくんだけどな。
ステージ始まってるのにいちいち止まってたらうぜーし。

873 :名前は開発中のものです。:2009/07/30(木) 22:20:35 ID:hh3V9W8K
どうせステージ読み込むときに何回か呼ぶだけだろ
そんなもんにパフォーマンスもクソもあるかよ

874 :名前は開発中のものです。:2009/07/30(木) 22:24:47 ID:650NzX62
参照時のパフォーマンスだぜ
まぁhash検索のとこが重いだけだから、何度も何度も何度も何度もshared_ptr拾い直す
ようなアホなことをしなきゃ問題無いだろうけど
つーかぶっちゃけ超絶やっつけだから先に言い訳で書いた>パフォ

875 :名前は開発中のものです。:2009/08/01(土) 14:00:04 ID:QXWHJ91E
class effect
{
private:
int x,y,kasokudo,flag,type,r,g,b,xt,yt;
int static swgraph,slgraph,slgraph2,slgraph3,vcgraph,ptgraph,ptgraph2;
double angle,timer,spread;
public:
effect(){}
Load_resorce()

(中略)

~effect(){}
};

int effect::swgraph=0;
int effect::slgraph=0;
int effect::slgraph2=0;
int effect::slgraph3=0;
int effect::vcgraph=0;
int effect::ptgraph=0;
int effect::ptgraph2=0;

結局こんな解決に落ち着いたよ ありがとう
無理に外へ出さないでヘッダと画像ファイルだけ移植すれば使いまわせる方がいいかなと
画像ロードするメソッドを1回だけ呼ぶようにしてスタティックなハンドラへぬっこむ感じで

876 :名前は開発中のものです。:2009/08/01(土) 14:00:25 ID:Qfg9axiN
ウィンドウとフルスクリーンの切り替えって、設定と読み込んだもの全部どこかに記録しておいて、切り替えた後に読み直さないといけないの?

877 :名前は開発中のものです。:2009/08/01(土) 14:02:27 ID:QXWHJ91E
メモリに読み込んでたものは切り替えで開放しちゃうんじゃなかったっけ?
呼びなおすようにはしてる

878 :名前は開発中のものです。:2009/08/01(土) 14:09:47 ID:hsxXyy+h
画像の情報とハンドルをラップするクラスを作るのがスマートかなあ
でもそういうことしだすと何のためにDXライブラリ使ってるのかいまいち分からなくなってくる
どうせラップするんだから中身は別に複雑でもいいよねみたいな

879 :名前は開発中のものです。:2009/08/01(土) 14:37:35 ID:fM5CMo54
グラフィックを読み込む処理はひとまとめにしてる。

グラフィックを読み込んだ時にエラーだと-1が返ってくるそうだから、
グラフィックハンドルに-1はありえないって事で
各グラフィックハンドルの初期値は-1にしておいて、
-1でないやつだけを読み直すとかやってるな。

880 :名前は開発中のものです。:2009/08/01(土) 17:19:13 ID:Qfg9axiN
ProcessMessageの返すエラーと×印を押した時の終了メッセージを見分ける方法
あるいは、右上の×印をクリックできないようにする方法はありますかね?

881 :名前は開発中のものです。:2009/08/01(土) 18:11:57 ID:XBQ0j9Rg
×をクリックできないようにするのはあまりよろしくないんじゃないか

882 :名前は開発中のものです。:2009/08/01(土) 18:13:18 ID:fM5CMo54
クリックできなくさせる事になんの意味があるのかわからん。

883 :名前は開発中のものです。:2009/08/01(土) 18:23:08 ID:XBQ0j9Rg
閉じるボタンは GetWindowUserCloseFlag で取得できるかも

884 :名前は開発中のものです。:2009/08/01(土) 18:23:30 ID:M1rtP1+j
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=658

885 :名前は開発中のものです。:2009/08/01(土) 18:31:27 ID:Qfg9axiN
サンクス
なんとかなりそうです

886 :名前は開発中のものです。:2009/08/01(土) 18:49:30 ID:XBQ0j9Rg
>>884
真面目に読んでて途中からワロタ

887 :名前は開発中のものです。:2009/08/01(土) 22:58:32 ID:Qfg9axiN
GetWindowUserCloseFlagってエラーが起こった時の返り値ってわかりますか?

888 :名前は開発中のものです。:2009/08/02(日) 04:05:26 ID:ioGay+hN
エラーって?

889 :名前は開発中のものです。:2009/08/02(日) 13:21:29 ID:raZxXOJp
>>888
だいたいほかの関数だと成功:0、エラー:-1を返してるじゃないですか?
そいうのがこれにも無いのかなとおもって

890 :名前は開発中のものです。:2009/08/02(日) 15:42:36 ID:kM+dLyLX
TRUEかFALSEか取得して返すのにエラーが出るとは思えないけど。
でも一応DxLibは関数の共通規約が-1=エラーぽいから-1だけ特別扱いでいいと思うよ

891 :名前は開発中のものです。:2009/08/02(日) 15:47:58 ID:VhKHrAIb
エラーが起きない関数だってあるんだから、余計な処理はしなくていい。

892 :名前は開発中のものです。:2009/08/02(日) 18:18:51 ID:kM+dLyLX
GetWindowUserCloseFlagってエラー起きないの?
ドキュメントに載ってない関数だから知らないんだけど
ソース見る気はしないし

893 :名前は開発中のものです。:2009/08/03(月) 13:33:57 ID:Bkg1TOoK
暗号化した画像ファイルからDrawGraphで描画するまでの手順って

ファイルから読み込み複合化した色情報を配列にセット
→MakeARGB8ColorSoftImageなどでSoftImageのメモリ確保
→DrawPixelSoftImageなどで配列からSoftImageに書き込む
→CreateGraphFromSoftImageなどでグラフィックハンドルを作成
→DeleteSoftImageでメモリ開放
→DrawGraphとかで描画

でおk?

894 :名前は開発中のものです。:2009/08/03(月) 18:31:28 ID:Iq3WkgiH
自分も用意したフォントが使いたくなったので>>757の方法を試してみたんだけど、
開放に成功しないんだよなぁ……
仕様上プログラムが終了すると開放されるみたいだし、大丈夫なのかなコレ

895 :894:2009/08/03(月) 18:43:55 ID:Iq3WkgiH
うわー引数ミスってただけでした……
こめんなさい

896 :名前は開発中のものです。:2009/08/04(火) 01:23:43 ID:zuu4zu8S
おまいら名前空間ってどうしてる?
微妙にグローバルなのが邪魔くさいんだが、Dxライブラリのソースをまるっと書き換えるしかない?


897 :名前は開発中のものです。:2009/08/04(火) 01:44:29 ID:HZG+0EA+
WIN98前後にプログラミングやってみたくなって、
とりあえずCだけ独学してすぐにDirectX見て
挫折した自分には今更ながら、ピッタリじゃないか。

実際の所はオブジェクトで書いていけないと、ツラいの?

898 :名前は開発中のものです。:2009/08/04(火) 02:36:14 ID:I3xbLsIe
さぁ?
俺はオブジェクトが何かも知らないが
DXライブラリのおかげでゲームは作れてる。

899 :名前は開発中のものです。:2009/08/04(火) 03:09:27 ID:2NLtwfy5
main.cppとヘッダファイルだけでゲーム作ってる俺もいるし

900 :名前は開発中のものです。:2009/08/04(火) 06:22:55 ID:6mk+vC8F
>>897
あると便利

901 :名前は開発中のものです。:2009/08/04(火) 07:58:54 ID:jjYfmP92
何か途中でフル⇔ウィンドウ変えれるようにしたらフルにした時に画面がチラつくんだが
画像を読み直すだけでは駄目なのか

902 :名前は開発中のものです。:2009/08/04(火) 08:02:04 ID:jjYfmP92
と思ったら事故解決した
SetDrawScreen( DX_SCREEN_BACK ) ;死直さないと駄目なのか

903 :名前は開発中のものです。:2009/08/04(火) 10:32:21 ID:sPOvaCTT
>>897
ちょっと勉強すればいいだけのことを避けて
ずいぶんと無駄に自分の幅を狭めてると思わない?

904 :名前は開発中のものです。:2009/08/04(火) 17:23:09 ID:gMr+p3zp
みんなDxLibのラッパークラスとか作っちゃったりするの?

905 :名前は開発中のものです。:2009/08/04(火) 17:27:28 ID:xk/uaGqe
>>904
ラッパーというか、あのまんまじゃゲーム作りに面倒だから、
あれにもうちょっと色々と処理類を追加して、作りやすくはしてる。


906 :名前は開発中のものです。:2009/08/04(火) 17:27:59 ID:zuu4zu8S
ラッパを作らずに、ゲームを作れるのだろうか。

907 :名前は開発中のものです。:2009/08/04(火) 19:53:27 ID:sPOvaCTT
device->DrawImage((Image*)image); みたいな?
さすがにこんなラッパーが必要になるようなら他のC++用のライブラリ使った方がいいと思うよ

908 :名前は開発中のものです。:2009/08/04(火) 20:01:54 ID:vP8Ikyop
ゲームなんてラッパみたいなもんだ

909 :名前は開発中のものです。:2009/08/04(火) 20:43:25 ID:ODeu4gp1
そんなことせんでもゲーム作れるようにするのがDXライブラリが目指す所だと思うし

910 :名前は開発中のものです。:2009/08/04(火) 20:48:39 ID:YerTetmP
そんなことしたいならDirectX覚えろっていう

911 :名前は開発中のものです。:2009/08/04(火) 21:06:21 ID:nYiQO+FG
併!用!

912 :名前は開発中のものです。:2009/08/04(火) 22:48:47 ID:tCn5IwcP
誰がラップ歌えと。

913 :名前は開発中のものです。:2009/08/04(火) 22:57:08 ID:ODeu4gp1
>>912のお陰でやっと気付いた

914 :名前は開発中のものです。:2009/08/04(火) 23:06:20 ID:l5hPySed
うまいな

915 :名前は開発中のものです。:2009/08/05(水) 00:19:33 ID:SP3G2Rzn
>>911
は、その才能を別のところに生かすべきだったと思う

ところで、あえてゲームのジャンルを指定せずに聞くが
ChangeFontType( この辺とか ) ;
ChangeFont( "この辺て" ) ;
何入れてる?

ChangeFontType( DX_FONTTYPE_ANTIALIASING_EDGE ) ;
ChangeFont( "MS P明朝" ) ;

とかだと、どうにも汚い
メイリオとかオーサカつかえりゃいいんだろうけど


916 :名前は開発中のものです。:2009/08/05(水) 01:41:03 ID:6IxCn2Gg
640x480のwindowモードで1秒に60回メインループを回してClearDrawScreenとScreenFlipするだけのプログラム
書いたらCPU使用率が20%超えてるんだけどこんなもん?WaitTimer(10);は入れてます。

917 :名前は開発中のものです。:2009/08/05(水) 02:13:38 ID:tpv/Q7sN
>>915
>>757使ってBDF M+やVL Gothic使うと汚くはないしライセンス的なものもきれいで好きです

918 :名前は開発中のものです。:2009/08/05(水) 02:27:07 ID:uKOy3PVl
>>916
そんなものじゃない?自分の環境でも、だいたい20%前後で推移してるし。
ScreenFlipには、アイドリングループもやってるような事を>>70-95当りに書いてるし
きっと大体そんな感触。
だから、多少負荷を掛けたループを入れても、いきなり100%とかにはならないし。

919 :名前は開発中のものです。:2009/08/05(水) 05:21:50 ID:Nty2bj+r
A:あるXというパソゲーがあったとして、そのゲームをDXライブラリで再現したとしたら
 どっちの方が処理速度が速い?

管:それはおそらくオリジナルのゲームになるでしょう。
  しかしそれは仕方ありません。DXライブラリは DirectX を意識しないでプログラムを
 組めるように出来ているので、どうしても DirectX を意識して、DirectX にとって最適な
 方法を念頭にいれて作られたソフトには敵いません。
  ですが、それは DirectX と密接に関わらないと出来ない表現や処理が出きるか出来
 ないか程度の違いで、処理速度的には目を凝らさない限りわからない程の差だと
 思います。

これみて思ったが前に

hot スープ なんとかってベーシックみたいなやつ使ったことあるけど

あの処理の遅さには萎えた


920 :名前は開発中のものです。:2009/08/05(水) 06:49:21 ID:pLHczCar
HSPのことかあああああああああ

921 :名前は開発中のものです。:2009/08/05(水) 07:07:46 ID:m9BmQxuD
そもそも比較対象とするほうがおかしくないか。

922 :名前は開発中のものです。:2009/08/05(水) 07:11:20 ID:b5+ghAk/
HSPはインタプリタだし

過去にGameMaker使ってた俺はC++に乗り換えて処理の早さに感動した
弾10000個出しても一切処理落ちなしとか

923 :名前は開発中のものです。:2009/08/05(水) 09:28:27 ID:6IxCn2Gg
家庭用ゲーム機ってCPU使用率どのくらいなの

924 :名前は開発中のものです。:2009/08/05(水) 09:35:09 ID:b5+ghAk/
>>923
ゲームによる
PS2の後期作品は常に100%近いものも多いと思う

925 :名前は開発中のものです。:2009/08/05(水) 10:03:45 ID:BDIkZ1Lk
メイリオはXPならダウンロード可能になってるから、
・XP以上でやれ
・メイリオ自分で落とせ
と割り切った動作環境なら使えなくもない
まぁ、そこまでするより>>917がベターな気はする

926 :名前は開発中のものです。:2009/08/05(水) 13:28:59 ID:rAOud/k3
>>919
初期化に関してはDXライブラリの方が遅い
なぜなら使わない機能まで実装してしまうから
初期化のプロセスさえ我慢してしまえば、DirectXを使っている以上、ほとんど処理に差は出ない


927 :名前は開発中のものです。:2009/08/05(水) 13:40:07 ID:b5+ghAk/
初期化も他のライブラリに比べればかなり早くないか?
初期化→モデル読み込み→表示ってプログラム組んでるけど
起動から表示まで1秒も掛からないぞ

928 :名前は開発中のものです。:2009/08/05(水) 16:15:24 ID:OhVzEwVo
え?

929 :名前は開発中のものです。:2009/08/05(水) 20:39:22 ID:QIPk2n9v
クライアントがウィンドウのタイトルバーをつかむとかして処理が停止したことを判別する方法はある?

930 :名前は開発中のものです。:2009/08/05(水) 21:20:02 ID:5Y+5L7IB
アクティブかどうか判定する関数があったような

931 :名前は開発中のものです。:2009/08/05(水) 21:57:12 ID:tpv/Q7sN
>>929
もし直接DxLibのAPIになかったとしても、
最悪隠れAPIのSetHookWinProcを使っていけちゃうのであきらめずに頑張ってください

932 :名前は開発中のものです。:2009/08/06(木) 00:09:50 ID:HbTQ3knb
フルスクリーンにすればいいのに

933 :名前は開発中のものです。:2009/08/06(木) 00:17:40 ID:jDGBXq4e
フルスクリーン・ウィンドウの切り替え時って画像はDeleteGraphする必要なし?

>>932
でもやっぱウィンドウのほうがやりやすいゲームとかあるよ

934 :名前は開発中のものです。:2009/08/06(木) 15:04:25 ID:jDGBXq4e
グラフィックハンドルが有効かどうかを調べるにはどうすればいいんだろう
GetGraphSizeしてエラーだったら無効なハンドル?

935 :名前は開発中のものです。:2009/08/06(木) 15:39:23 ID:8f5EjUmV
消したら-1を入れておくとか

936 :名前は開発中のものです。:2009/08/07(金) 07:56:39 ID:C0s8VGZe
ttp://burakura.hp.infoseek.co.jp/Folder.html
これってファイル隠蔽に使えないかな
パスの指定の際にも.{87D62D94-71B3-4b9a-9489-5FE6850DC73E}とか
つけなきゃいけないけど

937 :名前は開発中のものです。:2009/08/07(金) 09:16:54 ID:XMny16vo
・アンインストーラー必須になる可能性がありそう
・ユーザーから見たら普通に気持ち悪い
・コマンドプロンプトからコピー余裕でした

938 :名前は開発中のものです。:2009/08/07(金) 09:40:07 ID:iOeiMAXC
というわけで素直にDxEncodeしてSetDXArchiveKeyString使え

939 :名前は開発中のものです。:2009/08/07(金) 10:02:45 ID:C0s8VGZe
よく考えたらvistaじゃ意味ないしやっぱり駄目かな
面白そうだったんだけど……

940 :名前は開発中のものです。:2009/08/07(金) 10:10:30 ID:CmW3m8K+
DxEncodeって安全なの?

941 :名前は開発中のものです。:2009/08/07(金) 10:24:55 ID:XMny16vo
ゲームのデータの暗号化なんてのは、玄関の鍵を植木鉢に隠す程度のもの。どうせ
何をやっても安全じゃないから諦めが肝心。ネトゲの通信も同じ。
ちなみに銀行やネットショッピングなんかの暗号は別物で、「解読方法は理論的に
鯖にしか分からない(に等しい)」という仕様だから安全に使える。

ゲームの暗号化が脆弱なのは、クライアント側が解けなきゃ仕様上どうしようも
ないから。どう解くかを解析すればそれで終了。ただ、一般人には無理だから、
誰かがツールでも配らない限り一般人は見ることができません、ってだけ。

942 :名前は開発中のものです。:2009/08/07(金) 10:35:31 ID:6dDwwnG+
使用してるデータよりもセーブデータの暗号化の方が大事だよな

943 :名前は開発中のものです。:2009/08/07(金) 10:39:51 ID:CmW3m8K+
そうかー
まあなんにしろ俺が自分で作るよりかは安全だろうな・・・

944 :名前は開発中のものです。:2009/08/07(金) 10:49:59 ID:XMny16vo
逆に、広く使われてるライブラリはツールが作られやすいから、自作した方が安全な
可能性もあるけどな。
まぁどっちにしろ、本気出せばすぐ解けるから。市販ゲームのデータ抜き出しツール
なんてごろごろしてるだろ。商売でやっててもあんなもんだ。
要するに、そんな労力があれば他に割いた方がいい。

945 :名前は開発中のものです。:2009/08/07(金) 10:50:21 ID:d+3hvGJn
>>942

それこそネトゲでもない限りどうでもいいかとw

946 :名前は開発中のものです。:2009/08/07(金) 11:05:54 ID:6dDwwnG+
セーブデータメモ帳で開いてみてチラチラ生データが見えたり、
適当に文字書き込むだけで要素全開放とかできちゃうと萎えるのは俺だけ?

947 :名前は開発中のものです。:2009/08/07(金) 11:34:05 ID:nv30ydBi
ふつうそんなことしないし

948 :名前は開発中のものです。:2009/08/07(金) 11:43:52 ID:Qwqa7qWf
小説って実はいきなりオチから読むことができる

949 :名前は開発中のものです。:2009/08/07(金) 12:40:00 ID:d+3hvGJn
>>946
そんなのやるヤツの勝手だし。
それによって他人に迷惑かけるのでなければどうでもいい。
つーかテキストでセーブデータ作るなよw

950 :名前は開発中のものです。:2009/08/07(金) 13:17:28 ID:CmW3m8K+
原点回帰してセーブ無しのゲームを作ればおk

951 :名前は開発中のものです。:2009/08/07(金) 13:25:06 ID:6vUntQWV
暗号化なんてしなくてもチェックサムつけとけばいいじゃん。

952 :名前は開発中のものです。:2009/08/07(金) 20:59:10 ID:V6Jr42BU
チーとされてもいいゲーム作るとかな

953 :名前は開発中のものです。:2009/08/07(金) 22:16:20 ID:R/yU7/kg
ちょいごめん。
DXライブラリで作ったゲームって、DirectX9.0以上ないと動かないよね?

954 :名前は開発中のものです。:2009/08/07(金) 22:49:20 ID:FR9Ry4Z7
>>953
ムービー機能使わない限りは7.0a以降でおk

955 :名前は開発中のものです。:2009/08/07(金) 22:51:06 ID:R/yU7/kg
>>954
mjd? ありがとう、助かった。完全に9.0いるって思いこんでたわ。

956 :名前は開発中のものです。:2009/08/08(土) 12:13:43 ID:HzUDJDzb
98ででも動かすつもりなのか

957 :名前は開発中のものです。:2009/08/08(土) 16:03:22 ID:jt7y/fVk
ファイルをロードするときにパスに代数使えたりしないだろうか
キャラクター名の画像を開くとか

958 :名前は開発中のものです。:2009/08/08(土) 16:08:15 ID:irbfFcCJ
ちょっとゲームは置いといて文字列操作勉強してみよう

959 :名前は開発中のものです。:2009/08/08(土) 16:45:54 ID:jt7y/fVk
こんなかんじで
いいんだろか
ほんとに?


char Filename[20]=hoge
file_hundl = fopen( Filename , "rb" ) ;


960 :名前は開発中のものです。:2009/08/08(土) 17:00:40 ID:qbEagQ+F
こうなんじゃないの?
char Filename[20]="hoge.ext";
FILE *file_hundl = fopen( Filename , "rb" ) ; // ファイル名が hoge.ext のファイルをバイナリ読み込みモードで開く


961 :名前は開発中のものです。:2009/08/08(土) 17:02:51 ID:TUp5Mpej
>>959
2chにどれだけ書いてもコンパイル通らないぜ。
実際に書いて動かしてみたら?

962 :名前は開発中のものです。:2009/08/08(土) 17:35:29 ID:jt7y/fVk
なるほどポインタを指定しなきゃだめなのか
コンパイル通ったぜ!ありがとう
必要ないかもだけどフィードバック
char Filename[20]={"hoge\\piyo.ext"};
File *hndl=fopen(Filename,rb)

963 :名前は開発中のものです。:2009/08/08(土) 17:41:02 ID:7PEYw4hg
        まもなくここは 乂1000取り合戦場乂 となります。

      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )

964 :名前は開発中のものです。:2009/08/08(土) 18:09:55 ID:VZIInWJO
さすがにここじゃなくてC言語の超初心者向けのスレに行くべきだなぁ。

965 :名前は開発中のものです。:2009/08/08(土) 18:33:34 ID:jt7y/fVk
FileRead_openで使いたかったの
できればいらんAPI読みたくないなと

966 :名前は開発中のものです。:2009/08/08(土) 21:09:05 ID:irbfFcCJ
勉強したくないだけだろ?
パスの文字列を直接いじればどうとでもなる
Cの標準ライブラリを使うだけだから使用を避ける意味は全く無い

967 :名前は開発中のものです。:2009/08/08(土) 21:09:52 ID:VZIInWJO
ぶっちゃけC言語として致命的にまともに書けてない。C言語そのものを勉強しなきゃ
いけない段階。
あまり初心者を無碍にしたくないが、C言語そのものの取り扱いが全然駄目となると、
ライブラリを語るスレとしては対象外。

968 :名前は開発中のものです。:2009/08/08(土) 22:59:48 ID:WpR4R+bj
プログラムって、調べて書いてコンパイル通らなかったら直して……
を繰り返して覚えるもんだと思うんだけどなぁ
勉強っていうと知識だけ集める感覚があって言語習得とはなんか違う気が。

969 :名前は開発中のものです。:2009/08/09(日) 02:08:32 ID:NNOs+ttH
きっと、>>968は教科書や参考書を一度読めば全部覚えられた天才だからそう思うだけだよ。
普通、大学受験だって、教科書や参考書を読んで、問題集をやって
間違ったら、もう一度参考書読んで、間違わなくなるまでやって、知識を身につけていくもんだ。
プログラミング言語も自然言語も数学も社会も美術も学習過程はそんな感じで、みんな一緒っしょ。

970 :名前は開発中のものです。:2009/08/09(日) 03:07:59 ID:PEaokWcC
文法くらい間違えずに書いてほしいんだが
そうでなくても、明らかにバグの原因になるような考えの足りないコード書く奴多いのに


971 :名前は開発中のものです。:2009/08/09(日) 06:41:01 ID:yY5+Xf3s
よく ; を忘れてコンパイラに怒られます

972 :名前は開発中のものです。:2009/08/09(日) 09:41:37 ID:/uJahesY
面倒だからstd::stringとかboost::formatとか使っちゃうよ
そりゃsprintfだろうがsnprintfだろうがstrcatだろうが、絶対必要なら書くけどさぁ…
PCでそこまで切迫すること無いしなぁ

973 :名前は開発中のものです。:2009/08/09(日) 12:33:09 ID:TMuPKyBy
なに話してるんだ?

974 :名前は開発中のものです。:2009/08/09(日) 13:41:42 ID:gf1YMdsn
>>757のほう方法で読み込んだフォントをプロジェクト内全域で使いたい場合
何かスマートな方法ないものだろうか
フォントのハンドルをグローバルに定義するとかしかないかな

975 :名前は開発中のものです。:2009/08/09(日) 14:31:25 ID:hOV2IouW
俺はそのままフォントハンドルをグローバルにして使ってる
文字表示多用するゲームだと、どうせフォント開放するのは終了時になるしね

976 :名前は開発中のものです。:2009/08/09(日) 16:37:23 ID:gf1YMdsn
絶対に破棄し忘れるから複数のハンドル作るとかは避けたいしね
やっぱりグローバルで宣言しちゃうのが一番か

977 :名前は開発中のものです。:2009/08/09(日) 17:05:48 ID:/uJahesY
下手にシングルトンとかやると逆にマルチスレッドでこけたりするしな。
使いすぎなければグローバルはシンプルで軽くて便利。罠もあるけど。
一番の罠は、RAIIによるAPI隠蔽と相性悪いとこだな。

978 :名前は開発中のものです。:2009/08/09(日) 17:49:29 ID:/Pr5d8OB
質問です
http://monoganac2.sakura.ne.jp/src/milktea26846.txt
裏画面を初めて使ってみたのですが、何も表示されません
どなたかミスの指摘をお願いします

979 :名前は開発中のものです。:2009/08/09(日) 18:07:09 ID:vaLESxnj
なんという気持ち悪いインデント
DxLib_Initを使う前にGetColor使っちゃだめだ

980 :名前は開発中のものです。:2009/08/09(日) 18:14:34 ID:/Pr5d8OB
できました
ありがとうございました

981 :名前は開発中のものです。:2009/08/09(日) 20:25:54 ID:gf1YMdsn
コンパイル通ることにびっくりした俺ガイル

982 :名前は開発中のものです。:2009/08/09(日) 21:00:54 ID:TrjuCGgx
ところで>>21のテンプレで次スレ立ててきていい?
個人的にはスレタイとテンプレのDXの表記を公式と同じ全角にしたいんだけど

983 :名前は開発中のものです。:2009/08/09(日) 21:39:58 ID:JommlOMg
俺は半角のままがいいなぁ。
検索する時、アルファベットは大抵半角で検索するから。

984 :名前は開発中のものです。:2009/08/09(日) 21:41:12 ID:DNAG5Uj0
俺も半角がいい

985 :名前は開発中のものです。:2009/08/09(日) 21:42:43 ID:9DTU34Ts
半角に一票

986 :名前は開発中のものです。:2009/08/09(日) 21:52:51 ID:TrjuCGgx
んじゃそのままで立ててきます

987 :名前は開発中のものです。:2009/08/09(日) 21:56:53 ID:TrjuCGgx
次スレ
DXライブラリ 総合スレッド その4
http://pc11.2ch.net/test/read.cgi/gamedev/1249822550/

大丈夫かな?

988 :名前は開発中のものです。:2009/08/09(日) 22:42:06 ID:TMuPKyBy
【DXライブラリ】【DxLib】とかつけるのはどう?

989 :名前は開発中のものです。:2009/08/09(日) 23:01:58 ID:JommlOMg
スレタイ長くなりすぎるし、
そこまで全角にこだわる必要なかろう。

990 :名前は開発中のものです。:2009/08/09(日) 23:18:13 ID:gf1YMdsn


991 :名前は開発中のものです。:2009/08/10(月) 00:06:00 ID:Lw44AAUl
char name[100];
strcpy(name,"日本語でおk");
DrawFormatStringToHandle(100,210,cr,FontHundle,"%d",name);//crの値は割愛

とやると数字の羅列が出てしまう
半角文字を指定しても数字が出てしまうんだが何故だかわかるだろうか

992 :名前は開発中のものです。:2009/08/10(月) 00:07:13 ID:C6KOuFEu
%d

993 :名前は開発中のものです。:2009/08/10(月) 00:07:31 ID:8KXel7xl
ぶっちゃけC言語として致命的にまともに書けてない。C言語そのものを勉強しなきゃ
いけない段階。
あまり初心者を無碍にしたくないが、C言語そのものの取り扱いが全然駄目となると、
ライブラリを語るスレとしては対象外。

994 :名前は開発中のものです。:2009/08/10(月) 00:08:48 ID:Lw44AAUl
すまね、自己解決した
パラメタの指定がまちがってんだな %dじゃないじゃないか
見なかったことにしてくれ

995 :名前は開発中のものです。:2009/08/10(月) 00:10:13 ID:Lw44AAUl
2分でレスがつくとかはやすぎるだろjk
ありがとうorz

996 :名前は開発中のものです。:2009/08/10(月) 00:21:50 ID:JBHIU/3t
Hundle

997 :名前は開発中のものです。:2009/08/10(月) 00:54:32 ID:Lw44AAUl
handleじゃね?

998 :名前は開発中のものです。:2009/08/10(月) 00:55:18 ID:/L63eAtq
いい加減、スレ違いだから。DXライブラリと全然関係ないじゃん。
頼むから、この流れは次スレにもちこさんでくれ。

999 :名前は開発中のものです。:2009/08/10(月) 00:59:58 ID:Kvj0IrNz
自治厨カッコいいです^^

1000 :名前は開発中のものです。:2009/08/10(月) 01:00:08 ID:bFMOlul4
1000

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

248 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)