- 1 名前:名前は開発中のものです。 mailto:sage [04/10/15 19:34:29 ID:q0RdRnIe]
- Delphiでゲームを作ってしまおうという実践形式のスレです。
初代スレ>>1より抜粋: 「プログラム経験無 しかしRPGを作りたいのだ。 叩き煽りにめげず己が道を突き進みたい。 何故あせるのか。 そこには一つの目標が在るから。 とりあえずは本との睨めっこ。 やる気は12分にあるので、駄スレと言わず付き合っていただきたい。」 RPGに限らずがんがん作ってあぷしてきましょう。 過去スレ: 【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 【作れば?】 pc5.2ch.net/test/read.cgi/gamedev/1051110669/ [Delphi] RPG作らねば [Delphi] pc2.2ch.net/test/read.cgi/gamedev/1013976376/ ゲ製作技術板専用あぷろだ集: forgamedev.zombie.jp/wiki/pukiwiki.php?uploader Delphiまとめ gamdev.org/w/?%5B%5BDelphi%A4%DE%A4%C8%A4%E1%5D%5D 関連スレは>>2-10くらい。
- 481 名前:名前は開発中のものです。 mailto:sage [2006/11/26(日) 19:12:21 ID:irZpf+nP]
- いつの話してるんだよ
- 482 名前:名前は開発中のものです。 mailto:sage [2006/11/26(日) 21:03:13 ID:OifyBUW/]
- アドベンチャーゲームを作っています。
メッセージwindowとボタンの半透明処理に悩んでいるのでお力をお貸しください。 メッセージwindowの方はQuadrupleDのTDGCardを使おうと思い、TDGTextureの SetColorKeyでAlpha値を設定し、PushSpriteでsxbAlphaを指定しました。 しかしAlpha値をいくつにしても、半透明にはならず透明になってしまいます。 ボタンの方はTImageでTABitmapを使えばなんとかならないか?と思ったのですが、 それだと背景が透けてみえません。 みなさんは、どのような方法で実現していますか?
- 483 名前:名前は開発中のものです。 mailto:sage [2006/11/26(日) 21:06:40 ID:lj8+lPZj]
- >>480
続きが見たいです・・・
- 484 名前:名前は開発中のものです。 mailto:sage [2006/11/26(日) 22:46:16 ID:AAKyS3Pm]
- >>482
描画されないんだったら 1)座標がおかしいか 2)全てのα値が 0 になってるか のどっちかを疑うのが筋じゃね。 1)はともかくとしても、 例えば真っ黒に塗りつぶされたテクスチャに対して、抜き色を 0, 0, 0 にした SetColorKey を行っているとか。 あるいはビットマップからテクスチャを作ってる場合に、α値が0の32bitビットマップを読み込んでいるとか。 あれ、フォーマットがD3DFMT_A8R8G8B8 のとき24bitビットマップを読み込んだら α値はどうなるんだっけ?
- 485 名前:名前は開発中のものです。 mailto:sage [2006/11/26(日) 22:54:54 ID:irZpf+nP]
- 単に全部不透明になっただけな気ガス
- 486 名前:名前は開発中のものです。 mailto:sage [2006/11/26(日) 23:37:08 ID:F96PV8aR]
- >>482
解決案候補1. 想定原因 アルファ値を指定していない 解決案 SXVertexSPの3番目の引き数を$FFFFFFFFからもっと小さい値にする 4つSXVertexSP全てにそれを行う 解決案候補2 想定原因 正しい色情報をSetColorKeyに渡せていない 解決案 アルファ付きBitmapファイルを作成する
- 487 名前:名前は開発中のものです。 mailto:sage [2006/11/26(日) 23:39:57 ID:irZpf+nP]
- そういえば、TDGTextureのコンストラクタでは当然α付きのフォーマットを指定しているんだろうな?
- 488 名前:482 mailto:sage [2006/11/27(月) 00:45:13 ID:owDjimlR]
- 皆さん、いろいろありがとうございます。
>>484さんの >例えば真っ黒に塗りつぶされたテクスチャに対して、抜き色を 0, 0, 0 にした SetColorKey を行っているとか。 これが原因でした orz かなり考え違いをしていたようです。 この場合(黒いBMPを半透明に)、どういった数値を入れるのがいいのでしょうか?
- 489 名前:名前は開発中のものです。 mailto:sage [2006/11/27(月) 01:14:08 ID:+Ms57j0q]
- この場合、SetColorKey はいらないでしょ。
さらにいえばビットマップも必要ない。 テクスチャを作った後、TDGTexture.Fill とかで $FF000000 に塗りつぶして、 PushSprite の頂点色で半透明にするのがいいと思う。
- 490 名前:名前は開発中のものです。 mailto:sage [2006/11/27(月) 02:20:26 ID:TkVNRXFk]
- こんなので悩むより、自分で合成した方がいい。
- 491 名前:482 mailto:sage [2006/11/27(月) 15:39:51 ID:7WJ1d2Tn]
- >>489
SetColorKeyいらないんですね・・・。 489さんの方法でやってみたいと思います。 ありがとうございました。 >>490 QuadrupleDの使い方になれようと思って、しかし結果は見事にハマってしま いますた。 ボタン等はDelphi Worldでその後いいのが見つかったので、それを使おうと思っ ています。 みなさん、ありがとうございました。
- 492 名前:名前は開発中のものです。 mailto:sage [2006/11/29(水) 11:49:05 ID:GrMuZBJF]
- >>479
CPU占有率たけえ(;´Д`) カラフルアクアリウムっていうのも同じシステムみたいだな
- 493 名前:名前は開発中のものです。 mailto:sage [2006/11/29(水) 12:56:27 ID:L/9MlnSb]
- Ko-taたんは、玄人っぽくインラインアセンブラを結構使っているけど、
どこぞのアセンブラ使いに全然高速化されてないって突っ込まれてたなう。
- 494 名前:名前は開発中のものです。 mailto:sage [2006/11/29(水) 19:17:50 ID:GrMuZBJF]
- ほえー、そうなのか
ところで今、delphi界で参考になるようなコードを書く人/サイトってある? なんかどんどんdelphi使ってる人が少なくなってるような・・・・
- 495 名前:名前は開発中のものです。 mailto:sage [2006/11/29(水) 21:22:14 ID:L/9MlnSb]
- メーリングリストの過去ログかなやっぱり
あとはQuadruple Dのソースとか。
- 496 名前:名前は開発中のものです。 mailto:sage [2006/11/30(木) 02:01:02 ID:Wnepy24V]
- VCLソースが一番参考になる。
- 497 名前:名前は開発中のものです。 mailto:sage [2006/12/12(火) 12:21:28 ID:GrsPInDf]
- 何かがぶつかって画面が揺れるようなエフェクトはみなさんどうやって作っていますか?
Quadruple D等で作るのかな・・・。
- 498 名前:名前は開発中のものです。 [2006/12/12(火) 22:12:38 ID:yBbIoFAM]
- あっ
エスパーレスだ! ↓
- 499 名前:名前は開発中のものです。 mailto:sage [2006/12/12(火) 22:42:57 ID:Xo3b5eEm]
- 描画プレーンの座標変えるだけ。
速度が出ないんならQDだろうな。
- 500 名前:名前は開発中のものです。 mailto:sage [2006/12/12(火) 23:57:56 ID:azQAbvxZ]
- QuadrupleDで質問です。
いくつかのフォームにDG-Caradを貼り付けてみたのですが、メインフォーム以外はすべて マウスのクリックがきかない状態というかフォームがenabled状態(?)になってしまいます。 この場合、どのように回避すればよろしいでしょうか? すべてのフォームをフルスクリーン←→ウィンドウモードに変更可能にするためにG-Carad を使おうと思っています。
- 501 名前:名前は開発中のものです。 mailto:sage [2006/12/13(水) 00:18:38 ID:gkiFYHOM]
- Quadruple Dでマルチウインドウしようとしてんの?
無茶なことしてんなあ 誰かそんなことやってる奴いたっけ? 俺は見たこと無い
- 502 名前:名前は開発中のものです。 mailto:sage [2006/12/13(水) 00:24:56 ID:6LQX0pmw]
- >>501
あ、すいません、出来ないんですね・・・。 素直にウィンドウはシングルでいきます。
- 503 名前:名前は開発中のものです。 [2006/12/13(水) 11:55:04 ID:C9Zkbwpn]
- Delphi持ってるならGLSceneを使え
pc8.2ch.net/test/read.cgi/tech/1163269079/
- 504 名前:500 mailto:sage [2006/12/17(日) 00:10:25 ID:M5k9J6da]
- 再びQuadrupleDで質問です。
マルチウインドウはあきらめ、シングルで作っています。 が、FormKeyPressがなぜかきかない状態になってしまうのですが、これは仕様でしょうか? ノベルゲームなのでEnterクリックで次のページへみたいな事がしたいのですが・・・。
- 505 名前:500 mailto:sage [2006/12/17(日) 00:50:10 ID:M5k9J6da]
- >>504
すいません。QuadrupleDに対するいいがかりでした・・・。 なんか変なものにフォーカスがあたってたっぽいです。 まことに申し訳ない・・・。
- 506 名前:名前は開発中のものです。 mailto:sage [2006/12/20(水) 23:59:16 ID:1h6PxXPo]
- TLISTが遅いってマジデスカ?
- 507 名前:名前は開発中のものです。 mailto:sage [2006/12/21(木) 00:13:05 ID:UlDdTy26]
- いらん機能がてんこもりだからな
ゲームには向いているとはいえないと思う ただ、Quadruple Dの中では、オブジェクトの親子関係を記録するものとして結構使われている。 Quadruple Dの速度が遅くなっている原因の一つかな。
- 508 名前:名前は開発中のものです。 mailto:sage [2006/12/21(木) 14:45:48 ID:S3YP8Kbn]
- やべ、TList使いまくい。便利だから・・・。
- 509 名前:名前は開発中のものです。 mailto:sage [2006/12/21(木) 16:55:15 ID:qxmiawqV]
- TListが遅いかどうかなんて配列が遅いかどうかと同義みたいなもんだろ
用途にあってれば速いしあってなければ遅い。それだけの話。 ランダムアクセスしたければ配列だし頻繁な追加削除があるならリストを使うだけ。
- 510 名前:名前は開発中のものです。 mailto:sage [2006/12/21(木) 21:08:23 ID:eFg0mGD4]
- |l、{ j} /,,ィ//| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
i|:!ヾ、_ノ/ u {:}//ヘ | あ…ありのまま 今 起こった事を話すぜ! |リ u' } ,ノ _,!V,ハ | < 『おれはTListがリスト構造だと fト、_{ル{,ィ'eラ , タ人. | 思っていたらいつのまにか配列を使っていた』 ヾ|宀| {´,)⌒`/ |<ヽトiゝ | 催眠術だとか超スピードだとか ヽ iLレ u' | | ヾlトハ〉. | そんなチャチなもんじゃあ 断じてねえ ハ !ニ⊇ '/:} V:::::ヽ. │ もっと恐ろしいものの片鱗を味わったぜ… /:::丶'T'' /u' __ /:::::::/`ヽ \____________________
- 511 名前:名前は開発中のものです。 mailto:sage [2006/12/21(木) 23:14:34 ID:UlDdTy26]
- >>509
前にも書き込みあったけど、TListは、呼び出すたびに範囲チェックとかしてるんで遅いという話。 TListと同等な機能でそういう余計な処理を省いたクラスを作るか、 あるいは、素直に動的配列とかを効率よくするとかで普通にTListを使うより速い。 というか、TListのソースくらいみんな嫁よ。 Turboにはソースもついていて結構勉強になるんだからさ。
- 512 名前:511 mailto:sage [2006/12/21(木) 23:15:45 ID:UlDdTy26]
- 誤:素直に動的配列とかを効率よくするとかで
正:素直に動的配列とかを効率よく使用するとかの方が スマソ
- 513 名前:名前は開発中のものです。 mailto:sage [2006/12/22(金) 00:09:39 ID:r5hyVZgI]
- TListとリスト型
d.hatena.ne.jp/Ko-Ta/20061217
- 514 名前:名前は開発中のものです。 mailto:sage [2006/12/22(金) 01:01:38 ID:jF/De0Rs]
- >>513
やっぱりTListは余計な範囲チェックをしてくれているな。
- 515 名前:名前は開発中のものです。 mailto:sage [2006/12/22(金) 03:04:55 ID:jF/De0Rs]
- でまあ、だいぶ前の文章なんだけど
ttp://www14.big.or.jp/~amiami/fsk/old/opt/index.html なんていうKo-Taたんのアセンブラの使い方が甘いという批判の文章があったよそういえば。 そのAlphalib16も既に配布されていないけどね。
- 516 名前:名前は開発中のものです。 mailto:sage [2006/12/22(金) 11:03:31 ID:A+PcdcmB]
- 動的配列の話(TStringListも同時に)がタイムリーにDelphi MLに出てるね。
- 517 名前:名前は開発中のものです。 [2006/12/23(土) 16:32:40 ID:n4a5jraM]
- まあ、俺も、ソフトウェアレンダリングやってた時期は、
ペアリングとか意識してやってころもありましたw 若かった もうTListでも十分な速度になったこのごろ
- 518 名前:名前は開発中のものです。 [2006/12/23(土) 16:37:59 ID:n4a5jraM]
- >>516
すごいな。 ・動的配列をSetLength(a, Length(a)+1)で再確保 とか、初心者が陥る罠だな
- 519 名前:名前は開発中のものです。 mailto:sage [2006/12/23(土) 18:05:09 ID:H8lL9szl]
- >>518
え、それだめなの?
- 520 名前:名前は開発中のものです。 [2006/12/23(土) 18:16:41 ID:9Ws+ptOY]
- >>519
一回ぐらいなら、いいんだけど、Delphi MLのは、頻繁に(たぶんループ内で)よんでいるようだから。 動的配列の、SetLength(a, Length(a)+1)は、呼ぶ度に毎回メモリを再確保→コピーするわけで。 TListは、内部は、動的配列なんだけど、 追加するときに、次追加してもいいように、余分にメモリを取るんで、 頻繁に要素を追加してもけっこう大丈夫。 まあ、でもメモリプールっつーか、ゲームで使う場合は、あらかじめ最大値決める方が 速度は速いけど。 と思ってたけど、BDS2006のFastMMが適当にメモリ管理しても速いので楽だ
- 521 名前:名前は開発中のものです。 mailto:sage [2006/12/23(土) 18:17:58 ID:H8lL9szl]
- >>520
サンクス
- 522 名前:名前は開発中のものです。 mailto:sage [2006/12/23(土) 18:25:59 ID:vy9OXCiI]
- だれか>>287のタスクシステムのサンプル保存してる人いない?
ループ内でデータを動的に扱うのが怖くなってきた。
- 523 名前:名前は開発中のものです。 mailto:sage [2006/12/23(土) 18:49:09 ID:NmhLCW8q]
- >>517
そういや、部員弐号たんのAlphaBitmapも インラインアセンブラで高速化しているのを売りにしているにしては、 ペアリングが甘いって誰かが言ってたなう まあ、今更AGIパーシャルストールは気にしなくていいだろうけどさ。 >>522 俺が>>287だけど、何か用? タスクシステムについてはあの頃とまたちょっと考え方が変わってきたもんで、今サンプルを書き直したら別物になりそうなんだけどな。 ああそういえば、アマゲニュースが>>287をネタにしていたな。 自作自演の話を聞いて以来、俺はアマゲニュースが嫌いなんでw 今後アマゲニュースはあのサンプルに言及しないでくれよ
- 524 名前:名前は開発中のものです。 mailto:sage [2006/12/23(土) 19:21:41 ID:vy9OXCiI]
- いや、何か用?っていうか…
参考にしたいので誰か持ってないか聞いてみたのです。 なんか機嫌悪い?
- 525 名前:名前は開発中のものです。 mailto:sage [2006/12/23(土) 20:05:01 ID:NmhLCW8q]
- いやいや全然機嫌悪くないけど。
どうせなら新たに書き直すからちょっと待ってくれ。 つか、あれからも1年半経っているのか。
- 526 名前:名前は開発中のものです。 mailto:sage [2006/12/23(土) 20:07:13 ID:u7jsUpnU]
- 俺1年半前のソース見る勇気ねぇよ・・・
- 527 名前:名前は開発中のものです。 [2006/12/23(土) 21:11:15 ID:n4a5jraM]
- >>525
俺も参考にしたい。upup!!
- 528 名前:525 mailto:sage [2006/12/23(土) 22:21:39 ID:u1UtDTqz]
- 今日は眠いから勘弁
明日はクリスマスだし 週初めくらいに作るよ
- 529 名前:名前は開発中のものです。 mailto:sage [2006/12/24(日) 09:56:40 ID:gaVYJqUB]
- 神光臨
- 530 名前:名前は開発中のものです。 mailto:sage [2006/12/24(日) 10:05:27 ID:xZkcw6Hl]
- タスクシステムってものの考え方であって
その実装方はバラバラで本流がないんじゃなかったっけ?
- 531 名前:名前は開発中のものです。 mailto:sage [2006/12/24(日) 11:25:45 ID:C+J5x0e3]
- >>530
その通り あえて言えば本流は昔のゲーム会社のやり方だろう で、Delphiで良いサンプルを公開しているところがあったんだけどどこにあったかな
- 532 名前:525 mailto:sage [2006/12/26(火) 17:47:36 ID:/KqnqQ4g]
- 新たに書き直そうかと思って、
1年半前書いた奴の元にさせてもらったソースが置いてあったサイト見てたら、 なんか同じ人(達?)が新しく書いていたよ ttp://omoikane.my-sv.net/gcss/tasksystem/index.php こっちの方がいいような気がしてきたのでこっちを見てくれとりあえずスマソ
- 533 名前:名前は開発中のものです。 mailto:sage [2006/12/26(火) 21:49:47 ID:V5IG7f0e]
- ソース読みづれぇえええええええ
- 534 名前:名前は開発中のものです。 mailto:sage [2006/12/26(火) 22:05:02 ID:AESkT9oL]
- 神没落
- 535 名前:名前は開発中のものです。 mailto:sage [2006/12/27(水) 06:30:55 ID:F1YvMG4f]
- 頑張って嫁
- 536 名前:525 mailto:sage 8989 [2006/12/27(水) 07:07:07 ID:iMJZ8Mx5]
- ttp://www.bnbest.net/uploader/upload.html
とりあえず1年半前のソースを再アップしてみた 元々がCマガの記事由来なので再配布禁止とか明言してみる あと、あまげにゅーすは使用禁止w 単純な分、わかりやすいかもね で、これのどこが今思うとあまりよくないかというと、 ワークエリアの使い回しのために、子クラスへのキャストをしているところね。 ここで間違って他クラスとか記述ミスすると、全然関係ないところでデバッグ方法がめちゃくちゃ分かりづらい例外が頻発するのよこれが。 そんなわけで、このソースを元にゲーム作ったら、途中で意味不明バグが頻発して完成どころではなかった。 そういう部分で、>>532のがよさげっぽい。
- 537 名前:525 mailto:sage [2006/12/27(水) 07:54:10 ID:iMJZ8Mx5]
- お、ナイスな時間だった
こりゃ縁起がいいや
- 538 名前:名前は開発中のものです。 mailto:sage [2006/12/28(木) 16:38:44 ID:s6uD4tn3]
- UnDelphiXがジョイスティックを変に認識する…
ボタンに反応しない上に↑キーを押すと←キーに認識する… あきらめてMMSystem使うか…
- 539 名前:名前は開発中のものです。 mailto:sage [2006/12/28(木) 16:41:31 ID:0xep+dCf]
- 入力部だけ、Quadruple DのDDIDEXを使ったら?
- 540 名前:名前は開発中のものです。 mailto:sage [2006/12/28(木) 16:51:38 ID:s6uD4tn3]
- >>539
なるほど!さんくす!
- 541 名前:名前は開発中のものです。 [2007/01/02(火) 09:09:57 ID:0JGKnZK5]
- >>532-536
サンクス。 そのサイトしらなかった。 参考になります
- 542 名前:名前は開発中のものです。 [2007/01/02(火) 09:23:53 ID:0JGKnZK5]
- うーん・・・
>>532を見てみたけど、 データをrecordで持たないといけないとか、クラスメソッドにしないといけないとか クラスの中にクラス持つとか、根本的な問題は回避できてないね。 中途半端にオブジェクト思考している意味がわからないし。 C言語でタスク処理しているのと変わらない雰囲気を受ける。 開発時間や、開発メモリと実行時間とのトレードオフを考えるとと、 普通にオブジェクト指向できた方がいい気が・・・
- 543 名前:名前は開発中のものです。 mailto:sage [2007/01/02(火) 09:43:14 ID:nzIkUmBg]
- >>542
そうけ? 俺は大いに参考になったけど。 結局あれは、オブジェクト指向を、Delphi言語仕様で用意された書き方にこだわらず、 タスクシステムと整合性をとるために自前で実装したものだと理解した。 でもたしかに、クラスメソッドを全部Publicにしている意味はないな。 まあ、既存のオブジェクト仕様言語に乗っかってしか開発しない奴には難しいかもね。 C++じゃなく、C言語でオブジェクト指向なコードをかけるくらいの知識は必要だろうな。
- 544 名前:名前は開発中のものです。 mailto:sage [2007/01/02(火) 09:55:11 ID:nzIkUmBg]
- 蛇足だが、クラスメソッドを全部Publicにしている意味がないってのは、
メソッドポインタに代入されたメソッドを使う場合は、 PublicとかProtectedとかのアクセス権の意味がなくなるから、 それだったら、他のユニットから直接呼び出されないようにPrivateするのが正しいだろってこと。 その部分については、あのソースコードはおかしいな。 誰か作者に教えてやれよ。
- 545 名前:名前は開発中のものです。 [2007/01/02(火) 10:51:05 ID:0JGKnZK5]
- > まあ、既存のオブジェクト仕様言語に乗っかってしか開発しない奴には難しいかもね。
> C++じゃなく、C言語でオブジェクト指向なコードをかけるくらいの知識は必要だろうな。 いや、時代に逆行した書き方が生理的に合わないんですよ・・・ 書けないわけじゃなくて、見てて(書いてて)イライラするというか
- 546 名前:名前は開発中のものです。 mailto:sage [2007/01/02(火) 14:00:56 ID:nzIkUmBg]
- >>545
いまっぽく富豪的に書きたいという言うならそれはそれで正解だろう でも、速度を優先する書き方は、ゲームに限らず知識として持っておくと普通の開発でも便利に使える タスクシステムもその一つ 富豪的プログラミングというのが、ハードウェアの進化速度を前提に、プログラミングによる高速化を否定するところから始まっているからな
- 547 名前:545 [2007/01/02(火) 20:49:52 ID:0JGKnZK5]
- 変な言い方した。
昔風に作ってる人、気を悪くしたらスマソ。 >>546 100MHz時代から、富豪的にやってるので、どうもクセが抜けないのですよ・・・。 当時でも動的確保で、普通に動いたましたから・・・
- 548 名前:名前は開発中のものです。 mailto:sage [2007/01/02(火) 22:12:32 ID:nzIkUmBg]
- ADVなんかだと速度にあまりナーバスになる必要もないしな
- 549 名前:名前は開発中のものです。 mailto:sage [2007/01/03(水) 02:29:26 ID:uxX4wf1/]
- 結局、描画とMIDIがべらぼうに遅いって訳ね。
- 550 名前:名前は開発中のものです。 mailto:sage [2007/01/03(水) 10:54:08 ID:4jEdIOwT]
- >>549
外部MIDIは遅くないだろ あと、描画は確かに重い処理だけど、それを言い訳にしてボトルネックが描画以外である状態を見過ごすのも進歩が無い。 実際、ゲーム開始直後とか、ボス出現直後とか、メモリを大量に確保しに行く場面でFPSが落ちている、 メモリ確保について無頓着っぽいゲームとかあるしな。
- 551 名前:名前は開発中のものです。 mailto:sage [2007/01/07(日) 02:26:46 ID:wwxaiatr]
- QDでゲームのスクリーンショットを保存したいんだけど、単純に Form の Canvas を保存すればいいのかな?
ここなんかを見るとスクリーンショットを撮るためにいろいろやってるんだけど。 www.c3.club.kyutech.ac.jp/~sukiyaki/index.php?%A5%B9%A5%AF%A5%EA%A1%BC%A5%F3%A5%B7%A5%E7%A5%C3%A5%C8
- 552 名前:名前は開発中のものです。 [2007/01/08(月) 22:07:03 ID:dC5e7Xrd]
- QD3のサンプル(\tutorial\DGCarad\hello)で現在時刻を取得しようとしたらうまくいかねえ・・・
時間が進まないし、最初に取得した時間もちょっとずれてる だれか試してみてくれないか? procedure TForm1.ApplicationEvents1Idle(Sender: TObject; var Done: Boolean); begin caption := FormatDateTime('yyyy/m/d hh:mm:ss', Now);//追加
- 553 名前:名前は開発中のものです。 mailto:sage [2007/01/08(月) 22:42:13 ID:mkyamgmh]
- 浮動小数点数の演算精度を落としているからかな
- 554 名前:名前は開発中のものです。 mailto:sage [2007/01/08(月) 22:54:47 ID:dC5e7Xrd]
- >>553
おお、それかも。 これで問題ないように見えるけど、さすがに毎フレームごとにこんなことはできないなぁ。 uses Math; var fpu: TFPUPrecisionMode; begin fpu := GetPrecisionMode; //変更前のFPUモードを取得しておく SetPrecisionMode(pmExtended); //倍精度に変更 caption := FormatDateTime('yyyy/m/d hh:mm:ss', Now); SetPrecisionMode(fpu); //元に戻す end;
- 555 名前:名前は開発中のものです。 mailto:sage [2007/01/08(月) 23:00:24 ID:dC5e7Xrd]
- おっとヘルプに
> SetPrecisionMode は,以前の精度制御モードを返します。 って書いてあるな。 >>554のGetPrecisionModeは要らないね。
- 556 名前:名前は開発中のものです。 mailto:sage [2007/01/08(月) 23:24:18 ID:mkyamgmh]
- ゲーム開始時にTimeBeginPeriod(1)・TimeGetTime()・Now()を使って初期値を求めておいて、
ゲーム中はTimeGetTime()で差分を取ればいいんちゃう? 当然最後は、TimeEndPeriod(1)も忘れない
- 557 名前:名前は開発中のものです。 mailto:sage [2007/01/08(月) 23:59:36 ID:dC5e7Xrd]
- >>556
なるほど。こんな感じでいいのかな? ゲーム中に日付や時間を変更されたらお手上げだけど、そこまで面倒見なくてもいいか。 uses DateUtils; begin //nは起動時のNow //tは起動時のTimeGetTime Caption := FormatDateTime('yyyy/mm/dd hh:mm:ss', IncMilliSecond(n, TimeGetTime-t)); end;
- 558 名前:545 [2007/01/10(水) 18:09:11 ID:o7h3y59i]
- >>549
俺の経験では、処理食うのは、描画と、当たり判定(シューティングとかだと)くらいだなー。 あとはほとんど無視できる。 物理エンジンとか使ってない人のたわごとですが。
- 559 名前:名前は開発中のものです。 mailto:sage [2007/01/16(火) 19:19:20 ID:21nZzUdF]
- WindowsMe&Delphi6で
with MediaPlayer1 do begin //ExePathはString型の変数で実行ファイルのフォルダのパスが入ってます FileName := ExePath + 'Music\a.mp3'; Open; Rewind; Play; end; こう書いて実行するとなぜかフリーズ&パソ落ちする… しかもXpが入ったPCで実行した時は正常に動く… 何故でしょうか…
- 560 名前:名前は開発中のものです。 [2007/01/17(水) 02:30:49 ID:/mCixqQc]
- >>559
マルチポストは嫌われるよ・・・ 無効でレスしといた
- 561 名前:名前は開発中のものです。 mailto:sage [2007/01/17(水) 18:01:01 ID:IsVwqnkQ]
- >>560
すいません
- 562 名前:名前は開発中のものです。 mailto:sage [2007/02/10(土) 22:42:19 ID:Qkni2dae]
- www.pascalgamedevelopment.com/competitions.php?p=details&c=3
- 563 名前:名前は開発中のものです。 mailto:sage [2007/02/11(日) 22:54:53 ID:061ESCjQ]
- QuadrupleDで3Dをやってみようと思ってgameSpaceLightってのを使ってみたのですが、
とりあえず適当においてSeve→
- 564 名前:名前は開発中のものです。 mailto:sage [2007/02/11(日) 22:58:51 ID:061ESCjQ]
- 間違えた…
Seve As→Object→*.X で保存。 で、それを Xsimplify.exe で変換しようとしても変換出来ないと出てしまうのですが、どうすればいいのでしょう? それとは別に、フリーの六角大王で作った場合、 それの面の部分にBmpなどの画像を貼り付けたり出来ますか?
- 565 名前:名前は開発中のものです。 mailto:sage [2007/02/16(金) 16:15:57 ID:udoHt2Dx]
- >>564
Xに変換するオプションがおかしいんじゃない? 一旦メタセコ経由するとか
- 566 名前:名前は開発中のものです。 mailto:sage [2007/02/17(土) 17:43:33 ID:dX8E43qX]
- メタセコ使って無事に変換出来ました。
こっちの方が分かりやすいし、メタセコで作ってみる事にします。 ありがとうございました。
- 567 名前:名前は開発中のものです。 mailto:sage [2007/02/20(火) 20:07:13 ID:/aq4Yfd4]
- デジタルロケってほぼdelphiだな
QD3やるより簡単そう
- 568 名前:ぬ mailto:sage [2007/02/21(水) 00:01:27 ID:HobpijDV]
- OpenGLつってもやることはあんまDirectGraphicsと変わんないな
- 569 名前:名前は開発中のものです。 mailto:sage [2007/02/22(木) 22:38:01 ID:DK8hfBpo]
- 特定のフォルダ内の全てのテキストファイルを探す処理はどうすれば良いですか?
具体的にはwindowsのファイル検索のような処理をしたいのです FindFirstのワイルドカード(*.txt)を使うと forやwhileを使ってもいつも同じファイル名を返し フォルダ内のファイル名一覧になりません どうすれば良いか教えて下さい
- 570 名前:名前は開発中のものです。 mailto:sage [2007/02/22(木) 22:38:49 ID:DK8hfBpo]
- すいません
くだスレの勘違いして誤爆したorz スレ汚しスマソ。・゚・(ノ∀`)・゚・。
- 571 名前:名前は開発中のものです。 [2007/03/07(水) 21:58:34 ID:F1sR2Ln9]
- ゲーム部分とかタイトル画面とかの個別の物は作れるけど、それを組み合わせるのが難しいな。
シーンクラスを継承していく方法を使ってるが・・・。 例えばゲーム中にコンフィグを出すことを考えると、設定が終わったら当然ゲームクラスを復帰させなくちゃいけないので ゲームクラスはメモリに残したまま、コンフィグクラスを作ってメインとして走らせるだろ。 その辺の実現方法って、タイトル画面とは違うものになるよな。 タイトル画面はメインに復帰させる必要ないし。 みんなどうやってる? コードの見通しが利いていい方法あるかな あんまdelと関係ない話題ですまん
- 572 名前:名前は開発中のものです。 mailto:sage [2007/03/07(水) 23:51:12 ID:0BZm52xV]
- >>571
タスクシステム派なので、タイトルからゲーム中から全てタスクで書いてる
- 573 名前:名前は開発中のものです。 [2007/03/08(木) 10:03:17 ID:/liPAkSl]
- タイトル画面のコンフィグと同じものを出したいなら、少し手間だな。
シーンを入れ子にできるようにしておくとできると思う。 リプレイ実装するときにやったことがある。 リプレイのメニュー → メインのゲーム といったように
- 574 名前:名前は開発中のものです。 mailto:sage [2007/03/08(木) 16:42:22 ID:AFx10kX4]
- >>572
今タスクを使う利点って何?
- 575 名前:名前は開発中のものです。 mailto:sage [2007/03/08(木) 17:54:27 ID:cjd6YQpm]
- >>574
思いついたことを羅列すると すべてをタスク単位で考えられる 毎フレームcase文でゲームモードごとに違う関数を呼び出すとか格好悪い仕様にしなくて良い 同時に敵何体までとか敵弾何発までとか考える必要が無い 描画がどうせボトルネックだなんて言う人たちがこだわらなくなってしまっている部分を高速に動かせる
- 576 名前:名前は開発中のものです。 mailto:sage [2007/03/08(木) 21:09:06 ID://HWddsM]
- >すべてをタスク単位で考えられる
クラス単位でも一緒のことじゃね? >毎フレームcase文でゲームモードごとに違う関数を呼び出すとか格好悪い仕様にしなくて良い 多態でもいいね >同時に敵何体までとか敵弾何発までとか考える必要が無い それはタスクシステムではなくリスト構造の利点だね >描画がどうせボトルネックだなんて言う人たちがこだわらなくなってしまっている部分を高速に動かせる ベンチマークまで作って速度差が無いって結論でたよな クラスとリスト構造をCで実現したのがタスクシステムであって 処理系がそれらをサポートした現在となってはわざわざ偽物を使う必要はない
- 577 名前:名前は開発中のものです。 mailto:sage [2007/03/08(木) 21:18:53 ID:MH4gYc6n]
- タスクシステムはアセンブラが必須だった頃にオブジェクト指向プログラミングを
実現するための画期的な発明だった。 プログラング言語自体がオブジェクト指向プログラミング向けになった昨今、 タスクシステムをわざわざ使う必要はない…そう>>576は言いたいのかな? じゃあ、個々人で使いたい方使えばいいんじゃね? どっちも同じオブジェクト指向プログラミングなんだし。
- 578 名前:名前は開発中のものです。 mailto:sage [2007/03/08(木) 21:24:06 ID:cjd6YQpm]
- >>576
>クラス単位でも一緒のことじゃね? ぜんぜん一緒じゃない。 Delphiのオブジェクト指向だけではクラスごとに使用するメモリを定量的に扱えない。 >多態でもいいね ぜんぜん良くない。 理由は上といっしょ。 >それはタスクシステムではなくリスト構造の利点だね タスクシステムはワークスペース付きリンクリストを使います。 >ベンチマークまで作って速度差が無いって結論でたよな お前の脳内で? >クラスとリスト構造をCで実現したのがタスクシステムであって >処理系がそれらをサポートした現在となってはわざわざ偽物を使う必要はない おまえさんに学習意欲が無いだけとも言えるよそれ。 少しくらい調べてみろよ。あるいはゲーム作っているところでバイトするとか。 いまどきのオブジェクト指向とタスクシステムの融合を試みてそれを実践している人たちがいるからぐぐってみろ。 既存のオブジェクト指向で十分だってなら、それを本物だと思ってずっと使い続けてればいい。 俺はそう思わなかったし、他人の今時のタスクシステムのソースを読んだら面白かったからそれを実践している。
- 579 名前:名前は開発中のものです。 mailto:sage [2007/03/08(木) 21:25:00 ID://HWddsM]
- >>577
実装の話してるのになんで設計の話してるの?
- 580 名前:名前は開発中のものです。 mailto:sage [2007/03/08(木) 21:25:59 ID:cjd6YQpm]
- >>577
>タスクシステムはアセンブラが必須だった頃にオブジェクト指向プログラミングを >実現するための画期的な発明だった。 は、まったくもって的外れな発言だと思うけど、 >じゃあ、個々人で使いたい方使えばいいんじゃね? は激しく同意だね。 みんな使いたいものを使えばいいのであって、自分の使っていないものをわざわざ偽者呼ばわりする必要はない。
- 581 名前:名前は開発中のものです。 mailto:sage [2007/03/08(木) 21:27:16 ID:cjd6YQpm]
- というわけで、こんなところで論議したってみんな引くだけなので俺は逃げる。
ノシー
|

|