Delphiゲームプログラミング相談室

このエントリーをはてなブックマークに追加
1名無しさん@お腹いっぱい。
Delphiを使ってのゲーム製作に関する話題。

begin
 game := TGame.Create;
 game.Execute;
end;
2名無しさん@お腹いっぱい。:01/11/20 18:48 ID:dEhL3Xq/
取り合えず初心者はDelphi6PersonalをDLしてきて、
Googleディレクトリの、
コンピュータ > プログラミング > Delphi
を見て回ろう。

DelphiX:
http://www.yks.ne.jp/~hori/
Quadruple D:
http://www-fu.magma.ne.jp/~hayase/dddd/index.html
3名無しさん@お腹いっぱい。:01/11/20 19:04 ID:HdVpXyl7
>>1
解放しろゴラァ!!

って、実は・・・
var
game: IGame;

だったりして
4名無しさん@お腹いっぱい。:01/11/20 20:19 ID:???
英語だけどここなんかもいいね。
http://www.3dlinks.com/3dprogramming_delphi.cfm
5名無しさん@お腹いっぱい。:01/11/21 01:44 ID:???
>>3
Execute の中で自爆( Self.Free; )してるとか。
61:01/11/22 12:16 ID:???
begin
 game := TGame.Create;
 game.Execute;
 game.
end;
7ごめん:01/11/22 12:19 ID:???
begin
 game := TGame.Create;
 try
  game.Execute;
 finally
  game.Free;
 end;
end;
8名前は開発中のものです。:01/11/23 02:01 ID:/5CWUig5
書きこみ少なくて寂しいage

ゲーム用途に特化したコンポーネントってどんなものがあるのですか?
DelphiXとQuadruple Dくらいしか知りません。

個人的にはTGWが好みなのですが(DirectX不要、機能が絞られているが手軽等)
バージョン3でしか使えないのが痛い…ソースも添付されてなかったし。
これの代わりになるようなものが有れば紹介してください。
9KID_A:01/11/23 11:05 ID:tO/y/bFh
>>8
俺もTGW使ったことあるYO
マップ作るのが面倒だったから
TGW用のマップエディタ作ったりしたなぁ。

っていうか、ゲーム作成だったらDelphiXとQuadruple Dで充分しゃない?
10名前は開発中のものです。:01/11/23 14:22 ID:q4RkzzLH
>>2
Delphi6PersonalでDelphiXが使えないのですが・・・
11名前は開発中のものです。:01/11/23 16:21 ID:???
12名前は開発中のものです。:01/11/23 17:47 ID:???
13名前は開発中のものです。:01/11/23 22:04 ID:???
何気にDelphiXのページ古くなってない?
14名前は開発中のものです。:01/11/24 01:49 ID:???
>>13
うむ。何気に古い。
15名前は開発中のものです。:01/11/25 01:04 ID:???
デルファイでゲーム製作したいage
16名前は開発中のものです。:01/11/25 03:27 ID:???
>>14
URL古かったです。スマソ。
http://www.yks.ne.jp/~hori/DelphiX.html
17名前は開発中のものです。:01/11/25 14:13 ID:???
>>16
あ、ああいやいや、多分更新されていないという意味だろう。
18名前は開発中のものです。:01/11/29 04:49 ID:6GJtphfZ
誰かdelphiの'クラス'についてわかりやすく教えて・・・
いくつかページ読んだけどよくわからんもんで
19名前は開発中のものです。:01/11/29 09:09 ID:???
>>18
しばらく Delphi やってれば、そのうち解ってくる
20名前は開発中のものです。:01/11/29 09:16 ID:???
>>19 そうだね
ある日突然、ギターのFが弾けるようになるように解る日が来る。
21名前は開発中のものです。:01/11/29 10:58 ID:???
>>18
type
kurasu = class
end;
22名前は開発中のものです。:01/11/29 11:30 ID:GzG00Mj3
>>18
私もつたない理解だけど、答えられる範囲で答えよう。
で、どこがわからないの?全部、は無しね。
23名前は開発中のものです。:01/11/29 17:59 ID:zUTAKRMT
>>19-20
なるほど、そんなもんなんすかね

>>21-22
全部、と言いたい所なんですが、それじゃ答えようがないと思うんで
何が便利で具体的にどんな使い方ができるんですか?
関数とかをファイル別に分けておけるって事ですかね?
24名前は開発中のものです。:01/11/29 18:10 ID:???
>>23
本屋に行って「オブジェクト指向」についての入門書を
探してみましょう。その方が早いです。
25名前は開発中のものです。:01/11/29 18:18 ID:???
>>24
あー、はい。そゆことね。
2618&23:01/11/29 18:26 ID:zUTAKRMT
>>24-25
オブジェクト指向はなんとなく解るんですけど
それをどんな風に使えばいいのか解らないんですYO!
クラスってのはオブジェクトを作るって事?
早くなくても良いから教えてYO!
27名前は開発中のものです。:01/11/29 19:32 ID:kzVykY2n
フォーム使ってれば自分でも知らないうちにオブジェクト指向
してる事になるよ。まあ、コンポーネントをただ使うだけと
自作するのでは労力もかなり違う。

はじめのうちは使うだけの人に徹したほうがいいと思う。
そこから徐々に既存のコンポーネントを拡張していけばいいんじゃ
ない?
28名前は開発中のものです。:01/11/29 20:13 ID:???
>>26
OOPの捉え方は覚え方、プログラミングの目的なんかで変わってくる
と思いマス。
とりあえず最初はクラス=オブジェクトと決め付けるのが得策。

オブジェクト(=クラス)={

○オブジェクトの持っている情報。(「X=3」「Y=”ワイや。”」等)

○オブジェクトの取る行動。(「Xを1増やす」「Yの文を教える」「Xの値を教える」等)

}

 :使い道:3に1足した数を教えてもらう。文を教えてもらう。等。
 :応用:別のプログラムに持ち込む。等。 

最初は「オブジェクトの中身はこの2つの要素だけ。」
とでも思って初心者入門ページなどを訪れてみては。
29名前は開発中のものです。:01/11/30 23:02 ID:???
30名前は開発中のものです。:01/12/02 01:31 ID:ScTA5nhP
>>29
なんか良いとこあった?
31名前は開発中のものです。:01/12/02 06:38 ID:???
せっかくだから、リンクでも

OpenGLのチュートリアル。Delphiどころがさまざまな環境用のソースあり
http://nehe.gamedev.net/

3D関連のリンク
http://www.3dlinks.com/3dprogramming_delphi.cfm
32名前は開発中のものです。:01/12/08 00:02 ID:XLZX5Dqq
http://delphigl.cfxweb.net/
ええと、OpenGLとDirect3Dじゃ、どっちがレンダリング速いの?
33名前は開発中のものです。:01/12/10 04:00 ID:???
RPGの敵キャラのデータは何型に入れたら一番いいですか?
34名前は開発中のものです。:01/12/10 07:19 ID:???
>>33
構造体かクラスで敵キャラの型を自分で作る。
35名前は開発中のものです。:01/12/11 02:59 ID:???
>>34
わかりました。ありがとうございます。
36名前は開発中のものです。:01/12/12 01:33 ID:???
TEnemy = class(TGameCharacter)
public
procedure Move; override;
procedure Attack(target:TGameCharacter); override;
procedure Damage(HitCount: Integer); override;
end;
3735:01/12/15 11:11 ID:???
>>36
あ、あ、参考にさせていただきます。サンク!
38名前は開発中のものです。:01/12/16 04:17 ID:5AxsYv/G
delphiわけらからんあげ
39名前は開発中のものです。:01/12/16 18:55 ID:???
YaneuraoGameScriptからDelphi6Personal乗り換える。
ダウンロードしてアップデートしてHelloWorld完了。
ifとかforなどを確認する。だいたいわかった。
けれどもクラスやオブジェクトやメソッドが意味不明。
しかしどの書籍を参考にすればいいかは知っているから
バイト代が入ったと同時に本屋に走ればいい。問題ない。
たぶん。ム板のスレにも同じような質問があるだろうし……。

Quadruple Dをダウンロードしてくる。いじってたら絵が出た。ヤター!!
サンプルのソースを見る。FPSの計算にQueryPerformanceCounter();という
命令が使われているけど、ヘルプを検索してもどういうわけか見つからない。
ム板のDelphiスレをひととおり捜してみても、そんな質問は出ていない。
Googleで検索したらVC++についてのページが出てきた。あれえ?
DelphiよりもWindowsに近い基本的な命令なんだろうか。
すいません。お手上げです。質問させてください。

1.QueryPerformanceCounter();がDelphiのヘルプにないのは何故なのですか?
2.またどのような書籍(またはサイト)で説明されているのでしょうか?
3.命令が網羅されている辞典のような書籍(リファレンス?)を
  紹介してください。ヘルプよりも紙媒体の方が好きなので…。

よろしくおねがいします。
4039:01/12/16 19:02 ID:???
訂正。
QueryPerformanceCounter();が使われているのは
「サンプルのソース」ではないです。
Extreme Shootersという、Quadruple Dの作例の、
ソースが公開されているシューティングゲームです。
41名前は開発中のものです。:01/12/16 20:22 ID:V2T+L2Ma
>>39
YGSをやめた理由は?
漏れYGSで作ろうかと思ってたんだけど。
42名前は開発中のものです。:01/12/16 20:52 ID:???
>>39
WindowsAPIだからDelphiのヘルプにないのはあたりまえ〜。
QueryPermanceCounterの上にカーソル置いて、F1押してみたまえ。WinAPI用ののヘルプがでる。

とはいえ、付属のヘルプは最新のものではないので
MSのオンラインヘルプもチェックしておくことをオススメする。
http://www.microsoft.com/japan/developer/library/default.asp
43名前は開発中のものです。:01/12/16 23:15 ID:UIW9iU9y
ゲームに限定されないけど、
関数のヘッダにかくコメントって
Delphiではどんなの書いてる?
44名前は開発中のものです。:01/12/17 00:49 ID:???
>>43
{----------------------------------------------}
{ Function: hogehoge }
{ Argumrnts: a: xxx(^^;) }
{ b: xxx(x_x) }
{ Return: 1: hoge 2: hage(-_-) }
{ History: 1990/10/10 Created }
{----------------------------------------------}
45名前は開発中のものです。:01/12/17 01:38 ID:???
コンポーネントの何たるかも、オブジェクト指向の何たるかも
分かっていない者からの質問です。

ラベルコンポから派生した、マウスカーソルと重なっている間は
色が変化するコンポがあるとします。
それを何個か並べてゲーム中の選択肢を選ばせる場面で使います。
どれかがクリックされたら全てのラベル共通のOnClickハンドラに
飛んで、どのラベルが押されたかを判断するようにしようと思います。

ラベル本来の使い道とは違うので、こういう事するのは有りなのか
な?と疑問が沸きました。
お行儀が悪ければ、具体的に指摘していただけませんか。
4639:01/12/17 02:57 ID:???
>>42
おかしいなあ。語句にカーソルを合わせてF1押すことも
もちろん試したのですが(つうか最初に書くべきだった)
QueryInterfaceが選択されて出てきませんでした。
探し方が悪いのかダウンロード版にはヘルプが無いのか。
MSDNのページをあさってみます。
ありがとうございました。

>>41
大学の都合でOOPを身につける必要が生じたので、
その勉強を兼ねて。
別にYGSが悪いとか考えたわけじゃないです。
4742:01/12/17 07:05 ID:???
>>46
ごめん、試してみたらF1で出ないわ(w
とりあえず、ネットつなげない時用に、
ツールバーの上で右クリック、「カスタマイズ」→「コマンド」→「ヘルプ」→「Windows API」
でツールバーの上にWindowsAPIのHelpのアイコン出せるので。
# デフォルトでメニューから選べるようにしといて欲しいもんだけど
48名前は開発中のものです。:02/01/11 03:34 ID:4gfbUP+R
かなり良さげなページハケーン
http://www.suzuka-ct.ac.jp/studentlife/club/com/members/okumura/
49名前は開発中のものです。:02/01/11 12:46 ID:???
>>41
C言語の腐ったような、おままごと見たいな言語よりは、
まともな言語使っておいた方が自分のためにもいいぜ。
けっこうまともなデバッガも付いてるしさ。
別に乗り換え先の言語はDelphiじゃなくてもいいけど。
50名前は開発中のものです。:02/01/15 22:00 ID:no/G6LIu
ゲームを作ってみようと思って最近Delphi入手してプログラムの勉強を始め、
とりあえず画面にスプライトをたくさん表示してみたりしてるとこなんですが
どうにも画面のちらつきが気になってしまう。
自分の持ってる知識では
1.裏バッファに描画。
2.V-ブランクを待つ。
3.表バッファと裏バッファの入れ替え(ん?考えてみたらフルスクリーンじゃなきゃダメなのかな?だと裏→表バッファへコピーかな)
って感じでやれば良いと思うんですが、
V-ブランクのタイミングを調べる関数がどうしても見つかりません。
そもそもDelphiにはそんな関数は存在しないんでしょうか?
よく知らないんだがWIN32APIってのを使わないといけないのだろうか。
51名前は開発中のものです。:02/01/15 22:08 ID:aT6JIdrh
>>50
http://home4.highway.ne.jp/ora_soft/main/ora_prog.htm
ここのサンプル見てみた?
5250:02/01/15 23:50 ID:Ix5dcxBu

>>51
え〜と、そのサンプルは見てみましたが、
Vブランクのチェックとか裏バッファ使うとかやってませんし,残念ながら画面もちらつきまくってます。

ちょっと話がずれますが
サンプルでBitbltって関数を使ってますが、これはWin32APIの関数なのかな?
自作のコードではCanvas.Transparent:=TrueにしてCanvas.Draw()でスプライトを表示してました。
多分、BitBltを使うほうが速いのか? これから処理メーターでも作って比較してみます。

あぁ、でも処理メーター作るのには時間を計る関数を調べなきゃならないなぁ。
Delphiのヘルプって使いずらくてしんどいです。
Delphi6Personalのダウンロード版をってるんですがパッケージ版についてる紙のマニュアルは見やすいんですかね?
見やすいのなら買ってみようと思います。
53名前は開発中のものです。:02/01/15 23:57 ID:???
バックバッファとしてTImageを用意してそこに描画、そこから画面全体(もしくは更新部分のみ)
を表にBitBlt。
それで描画が遅くて耐えられないようだったら他の方法を考えるのでいいかと。
BitBltはWin32APIです。

パッケージ版はどうかな。買うほどではないと聞きますが。
ヘルプは慣れです^^;
54名前は開発中のものです。:02/01/16 00:04 ID:???
http://www.osk.3web.ne.jp/~bwsoft/rpgdiary.html#idx02
ここにもあるように、VSYNC待ちはいろいろと面倒です。。
(ちなみにVSYNCを待って転送するAPIはDirectXのものしか知りません。
通常のWin32 GDIにあるんでしょうかね?)

その前に別の方法で高速化するのがいいかと。
すごいシビアならばDirectDrawつかわにゃなりませんし。
5550:02/01/16 01:30 ID:???
>>53
パッケージ版はいまいちですか。その分のお金をDelphiなりWin32Apiの解説本に使ったほうが良さそうですね。

>>54
紹介のページ見てみました。そうか、PCだとコンシューマーと違って環境ごとにリフレッシュレートが違うって事が頭から抜けてました。
大昔、ゲームメーカーにいた時にプログラマーさんから教えてもらった知識が頭にあって、
Vsyncに同期を取って描画、ウェイト処理をするのが当たり前だと考えてました。
んー。結局、ちらつきのまったく無い画面、スムーズなスクロール等を実現したければ
フルスクリーンにして、リフレッシュレートもこちらから指定しないと難しいみたいですね。
で、そのためにはDirectDrawを覚える、と。

今作ってるゲームは練習用ですし、ちらつきは我慢してとりあえず完成させてみます。
DirectX以前に勉強しなきゃならないことは、いっぱいありますし。

レスくださった方々、どうもありがとうございます。
5651:02/01/16 01:51 ID:???
実はレスしているのは全部私だったりして。

51のリンク先のサンプルをダブルバッファリングするように書き変えてみましたが、
高速化の工夫を何もしていないとはいえ、かなり描画が引っかかります。
全面をBltするのはやめたほうがいいかも。面倒ですが。
5751:02/01/16 01:54 ID:???
>56で描画が引っかかると書いたのは間違いだった模様。(裏で重いアプリが動いていたせい)
あの程度の描画量だと引っかかりもなくスムーズに描けました。
58名前は開発中のものです。:02/01/21 01:02 ID:3QJf94A+
情報が少なすぎてなにやっていいのかさっぱりです。
59名前は開発中のものです。:02/01/21 07:49 ID:???
プログラムをするのがはじめてなら、最初は人のプログラムを真似ることから始めると良いよ。
最初は訳わかんなくても、やってるうちに覚えてきます。以下お薦めのページ。

プログラムをしたことが無いなら、ここ。
ゼロから始めるDelphi講座 ttp://www.text2music.com/mine/delphi/kouza/index.htm

次に、このへん flow of water のプログラム講座 ttp://isweb21.infoseek.co.jp/computer/wblue/prog/chair_top.htm
60Delフサギコ:02/01/21 09:57 ID:???
  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < ひまわりって、Delphiの人つくったん?
  UU""" U U   \_______________
61名前は開発中のものです。:02/01/21 12:21 ID:cvZI6toD
delphiで、効果音とかの短いwavを、いったんメモリに読み込んで鳴らそうて思ってるんですが
なかなか上手くいかないんで教えろ。
今のところ
sndPlaySound(Pchar('koukaon.wav'),SND_ASYNC)
ってなってるところ、最後のパラメーターをSND_MEMORYって書き換えたいんだけど
そうするとファイル名のところをポインタ型にしなくちゃいけないらしんだよ。windows的に。
で、filestreamとか使ってwavfile読み込んだ変数のポインタ渡そうとしても
型が違いますとかコンパイラの人に怒られちゃうんですが、
どうしたら良いんでしょうか?
フサギコさん教えて!
62Delフサギコ:02/01/21 13:04 ID:???
 氏らん事は教えられません。
 よくわかなんだけど
 PFileStreamとか定義するんじゃないかしら

  . ̄ ̄∨ ̄ ̄ ̄
    . ∧,,∧
     ミ ゚Д゚ ミ たんにwavだけなら
     (ミ  ミ)  ム技板で質問してもいいかもね。
    〜ミ  ミ
      ∪''∪
63名前は開発中のものです。:02/01/21 15:52 ID:???
>>61
 function load(fn: string): string;
 var
  fs: TFileStream;
  ss: TStringStream;
 begin
  result := '';

  fs := TFileStream.Create(fn, fmOpenRead);
  try
   ss := TStringStream.Create('');
   try
    ss.CopyFrom(fs, fs.Size);
    result := ss.DataString;
   finally
    ss.Free;
   end;
  finally
   fs.Free;
  end;
 end;
こんなコードを使って
s: string;
s := load('gikohahaha.wav');
sndPlaySound( pchar(s), SND_MEMORY or SND_ASYNC );
とか。
64名前は開発中のものです。:02/01/21 18:55 ID:???
stringヲツカウトハ━━━━━━(゚∀゚)━━━━━━ !!
6561:02/01/21 23:34 ID:???
>>Delフサギコ
ム板はなんだか敷居が高く感じられるので(;´Д`)コワヒ。。。

>>63
無事動きました。(゚д゚)ウマー
えーと、いったんTStringStreamに読み込んで。。。
(;´Д`)理解するまでもう少し時間をください。
これから研究してみます。
ありがとうございました。
66名前は開発中のものです。:02/01/22 01:16 ID:97pziEaT
MemoryStreamに読み込んで、Pointerプロパティを使うとかどうですかね
6761:02/01/22 03:00 ID:???
いや、問題は
windowsはポインタを要求してるのに
delphiのコンパイラの型チェックが
string型しか通しませんぞゴルァ
と言ってるんで、どうしたものかと。。。

あれ、ひょっとして単に型キャストすれば良いのか?
pointerをPCharにキャストってできるもんなの?
68名前は開発中のものです。:02/01/22 03:19 ID:97pziEaT
できます
69名前は開発中のものです。:02/01/22 03:28 ID:97pziEaT
あ、Memoryプロパティの間違いでした
こんな感じで、キャストはいりません

ms:=TMemoryStream.Create;
ms.LoadFromFile('ding.wav');

//鳴らしたいときに
sndPlaySound(ms.Memory, SND_MEMORY Or SND_ASYNC);

//再生が終わったら
ms.Free;
7061:02/01/22 03:31 ID:ygXI2h8+
━━━━━━(゚д゚)━━━━━━ !!

お騒がせしました。忘れてください。

//でも処理落ちの原因は別のことらしいことがわかっただけでも収穫。
7161:02/01/22 03:37 ID:ygXI2h8+
ていうか普通にポインタ渡せるじゃん。今やってみたら。
【謎】何で前やったときできないと思ったんだろう。【馬鹿】
というわけで逝ってきます。
7263:02/01/22 10:14 ID:???
stringに入れるのはキャストの問題っつーよりも
後始末忘れていいっていうメリットのためだったりする。
すでに動いてるコードがあったので貼っただけで、
キャストは普通にできるという指摘はするの忘れた(笑)

あと、ファイルから文字列への読み込みはこんな回りくどいことしなくても
TFileStreamからサイズ得て、読込先文字列にSetLengthして
Read(文字列[1], サイズ)とかやってしまうほうが手っ取り早いね。

なにぶん昔書いたコードなんで。
73名前は開発中のものです。:02/02/04 23:57 ID:c8nI8v2v
実は今Delphiで述べるスクリプトエンジンを作ってるんですが、いろいろつまづいてます。

テキスト表示時に左から右にジワーって表示する方法ってどうやるのかな。
やっぱりvcl特有のCanvas使った方が楽?


それと応援よろしく!
74名前は開発中のものです。:02/02/10 00:48 ID:clzP6W0o
これからDirectXの勉強はじめようとしているんですが、
DelphiXって7.0までで8.0には未対応みたいですが、8.0環境で
使用可能なのでしょうか?

環境は以下の通りです。
Windows2000+DirectX8.0a+Delphi5.0
75名前は開発中のものです。:02/02/10 15:29 ID:q93AWxup
これからAVG作ります。が、
スクリプトエンジン作って、それにスクリプト実行させた方がいいの?
それともスクリプト自体埋め込んでコンパイルしたほうがいいの?

個人的には前者にしようと思ってるんですが、どうですか?
76名前は開発中のものです。:02/02/10 19:11 ID:l65SDJXg
77名前は開発中のものです。:02/04/01 22:15 ID:???
保守
78名前は開発中のものです。:02/04/11 01:56 ID:qACW/i2k
AVG(エロゲとか)なんかで、キャラが少しずつ透き通るようにして消えていったり、
逆に背景にぼんやりと浮かんできて、だんだん実体化していったり、というような
描画がありますが、
あれは、背景とキャラの対応するビットをRGBの3次元でベクトル化して
徐々に色を変え(背景→キャラ)ているんですか?
TImageとか駆使して、同じ事はできるんでしょうか?
79名前は開発中のものです。:02/04/11 02:21 ID:pQvJJR5A
>>78
普通はDIBを直接いじる。
80名前は開発中のものです。:02/04/11 02:21 ID:???
「アルファブレンド」で検索スレ
81名前は開発中のものです。:02/04/11 20:00 ID:???
>>74
8.0でも7.0の機能は使用可能だからDelphiXは使用可能。
というか以前、使ったことがある。
8.0の機能は当然DelphiXが対応していない限りは使えない(自力でやらないとならない)。
82名前は開発中のものです。:02/04/13 00:35 ID:ifPWzmQQ
>>78-79
情報サンクスです。検索してみます
83名前は開発中のものです。:02/04/13 05:21 ID:rOowDTgg
DelphiXってDelphi6にはインストできないんすか?
84名前は開発中のものです。:02/04/13 14:04 ID:/234efMA
誰かWDirectXの使い方おしえてくれ〜
ttp://go.to/WDirectX
85名前は開発中のものです。:02/04/14 09:43 ID:???
>>83
できるよ。やったもの。
DelphiXの掲示板は見た?
海外サイトをDeplhiX、Delphi6で検索してもOK。
86名前は開発中のものです。:02/04/15 04:45 ID:???
>>85
DelphiXの掲示板は、無くなっちゃったみたいで、
海外サイトを見てやったんだけど、最後をどうすればいいのかわからないんです。

Step 6:
Lastly, and probably the most confusing part of this Delphi’s
re-nameing of DsgnIntf in the new versions of Delphi. Because
of this DXReg.pas will not compile.


No IDE editors:
First delete everything under the Type declaration in DXReg.Pas,
then remove all references to RegisterComponentEditor and
RegisterPropertyEditor in the Register procedure. Finally remove
all code below the RegisterComponents procedure, making sure
DXReg.pas still ends with an ‘end.’

When you are done with all that hacking your DXReg file should
look like this…

のくだり。

http://turbo.gamedev.net/delphixd6.asp
87名前は開発中のものです。:02/04/20 07:07 ID:rbPzu4hk
DsgnIntfの定義を直すだけではなかったかな。
ていうか、With IDE editors (experts):の方を参照
88名前は開発中のものです。:02/04/25 17:39 ID:l/nZYoa.
アクションゲームを作ろうと思うのですが、ジャンプのさせかたがわかりません。
どういう風にすればできるのでしょうか?
89名前は開発中のものです。:02/04/25 18:18 ID:???
90名前は開発中のものです。:02/04/25 20:27 ID:JxszzDhA
質問です。
ダンジョンRPGみたいなのを作ってるんですけど、
例えば「階段を下りますか? Y/N」 みたいな質問に対して、
キーボード入力で答えさせたいときってどうするんでしょうか。

  画面にメッセージ表示('階段を下りますか? Y/N');
  キー入力待ち;
  キー = Y なら 階段を下りる処理
  キー = N なら何もしない ;

みたいな感じに書きたいんですけど、
フォームのKeydownじゃできませんよね?
91名前は開発中のものです。:02/04/25 21:00 ID:???
DirectInputでは
9290:02/04/25 21:34 ID:???
やっぱDirectXっての使わないとだめですか。
93名前は開発中のものです。:02/04/25 22:26 ID:???
>>90
FormのOnKeyDown/Upイベントで処理できるはずだが?
フォーム上にフォーカスを持ちうるコントロールが無い限りは。
94名前は開発中のものです。:02/04/25 22:28 ID:???
KeyDownイベントが発生したらGetAsyncKeyStateでリアルタイムなキー
押下情報をゲームで使う全てのキーの分取得&保持。
ダンジョンRPGだったらここが負担になる事は無いと思う。

後はメインループをグルグルさせて、シーン別に処理を書いていけば
いいんじゃないかと。
(タイトル画面、マップ移動、戦闘等、無論イエスノー待ちもシーンの一つ)

試してないのであしからず。
95名前は開発中のものです。:02/04/25 22:29 ID:???
嫌なら使わなくても良いんじゃないの
9695:02/04/25 22:30 ID:???
ハッ!
97名無しヘタぐらま ◆B18Bks.Y:02/04/25 22:45 ID:nDQik/kg
Windows API の GetKeyState でどうですか?
“ちょこっと作ってみた限り”大丈夫だと思いますが….

目的のキーが入力されるまで待つ部分は自分で作るダス.
9890:02/04/25 22:59 ID:JxszzDhA
>93-97
おおっ、いろいろありがとうございます。
調べつつ試してみます。
99名前は開発中のものです。:02/04/25 23:11 ID:sTpOeU02
 
100名前は開発中のものです。:02/04/25 23:11 ID:sTpOeU02
100
101素数2:02/04/25 23:12 ID:???
ゲームってどうやって作るんだろうな・・・
stringgridで○×くらいしかつくれん。
10294:02/04/25 23:17 ID:???
あ、メインループというのは一つのハンドラの中でぐるぐる
じゃなくって、タイマーイベントなりでメイン部を定期的に
処理してねって事です念の為。
103名前は開発中のものです。:02/04/25 23:17 ID:???
104名前は開発中のものです。:02/04/25 23:38 ID:???
>>94
KeyDownイベントは変数Keyにキーコードが入っているが・・・・
HSPじゃあるまいしグローバルでキー情報取得するのはやめれ。<GetAsyncKeyState
アクション系等でリアルタイムの取得する必要がある時はDirectInput使え。
105名前は開発中のものです。:02/04/25 23:42 ID:sTpOeU02
ddddインスコできない。どうすりゃいいの?
コンパイルエラーになる
106名前は開発中のものです。:02/04/25 23:58 ID:???
参考になるかどうかは分からんが、屋根裏タンの読み物
http://www.sun-inet.or.jp/~yaneurao/rsp/rsp40to47.html
107名前は開発中のものです。:02/04/26 03:41 ID:???
>>104
GetAsyncKeyStateとDirectInputの違いって何?
108104じゃないが:02/04/26 06:33 ID:???
DirectX, COM, 初期化, 確認が必要鴨
109名前は開発中のものです。:02/04/26 21:04 ID:???
いや、そうじゃなくて、
GetAsyncKeyStateじゃなくてDirectInputを使うことによってどんな利点があるのかってこと。
GetAsyncKeyStateでキー状態取っちゃダメなの?
110名前は開発中のものです。:02/04/26 21:41 ID:???
>>109
フォアグラウンドのアプリがキーボードを占有して
バックグラウンドのアプリへのキー入力のデータが抑制される。
(他のアプリにフォーカスが切り替われば自動的に通常状態に復帰)
111名前は開発中のものです。:02/04/26 21:57 ID:???
GetAsyncKeyStateだと、ゲームがバックグラウンドの時も
キー状態を取っちゃうってこと?
112名前は開発中のものです。:02/04/29 09:58 ID:???
>>105
まずは環境とエラーメッセージを書きましょう。
とりあえず俺っちはDelphi6&Win2000で出来たが。
113名前は開発中のものです。:02/04/29 09:59 ID:x6016wxY
ていうか、クソスレが上がってるのが気に入らない!
下げ進行はよくないぜ
114名前は開発中のものです。:02/04/29 20:03 ID:RsIpxpAM
便乗質問age
強制イベント(NPCが動く、など)の最中にキーボードを押すと
イベント終了時にさっき押した分だけキャラが動いてしまいます
FormKeyDownで処理しているんですが、この入力待機分のKeyを
クリア(?)するにはどうしたらいいんでしょうか?
DirectInputはごめんなさい
115名前は開発中のものです。:02/04/29 20:51 ID:???
>>114
強制イベント終了後、バッファが空になるまで読む。
116名前は開発中のものです。:02/04/29 20:57 ID:x6016wxY
>>114
どういう組み方をしているのか教えてくれ。
バッファのクリアよりも、根本的に
バッファにたまった分をイベント後に処理しないような組み方にした方が良いと思われ。
むしろ、動くようにする方が難しいと思うのだが。
117114:02/04/30 10:00 ID:Y2Rh.VqQ
>>115
ごめんなさい。ど素人なんでそのやり方がわかりません。

>>116
まずグローバル変数「State:Integer」を定義します。
それでFormKeyDown手続きの中で
case State ofでState別に処理します
(ここでは0を通常状態,1を強制イベントと仮定)。
自キャラが自由に動くState=0の時に適当な行動を取ると
TTimerがオン、State:=1になります。
この時(State=1)のキーダウン手続きのcase文の中身はなにもありません。
そしてTTimerを使ってNPCを動かし終わると
TTimer文の最後でState:=0に戻すという組み方です。
このTTimerが作動している時(State=1)にキーをいろいろ押すと
State=0に戻った瞬間に自キャラが一気に動いたりして困ってます。
State=1の状態ではキーの入力による処理は何もないはずなんですが(?)。
分かりにくい文章ですが助言お願いします。
118名前は開発中のものです。:02/04/30 10:11 ID:???
115が理解できないと思った俺の予想が的中した。

なんだか面倒なことをやっているようだが、
FormKeyDownでは押されたキーのフラグを立てるだけにして、
メインルーチン(例えば始終動いているTimer)で、
フラグが立っていたら○○するというようにした方がいいよ。

まあ、そこまでくるとFormKeyDownなど使う必要はなく、
メインルーチン側でGetAsyncKeyStateやDirectInput等で
逐一キーの状態を見るのがよいのだが。
119名前は開発中のものです。:02/04/30 10:12 ID:???
正直Windowsのイベントドリブンをそのままゲームのシステムとして使うと
余計ややこしくなる。
120114:02/04/30 21:17 ID:???
>>118
Timerのほうで試してみたんですが、どうもダメなようでした。
やっぱりGetAsyncKeyStateぐらい知らないといけませんね。
これからそれを勉強してみます。ありがとうございました。
121名前は開発中のものです。:02/05/10 07:57 ID:fPVbdKYo
ところで、delphiでネットワークは組めるんですか?っつーか、ネットゲームは作れるんですか?
122名前は開発中のものです。:02/05/10 08:05 ID:???
>>121
作れます。
ただし、そんなことを聞いているうちは無理だというのが一般的な意見かと思います。
123名前は開発中のものです。:02/05/10 09:59 ID:???
Delphiの言語仕様が気に入らないので諦めました。
124名前は開発中のものです。:02/05/14 21:39 ID:.e.pT2og
 
125名前は開発中のものです。:02/05/18 15:03 ID:5NjAQm1o
本屋いったんですけど、DELPHIの本が一冊も売ってなかった・・・。
通販で買おうと思うんですけど、なんかお勧めあります?通販で立ち読みできればなあ。
126名前は開発中のものです。:02/05/18 19:11 ID:???
>>123
C++Builderをお使い下さい。
127名前は開発中のものです。:02/05/23 00:32 ID:???
>>125
C Magezineで今月号からDelphiの連載が始まっていて
そこで何冊かお勧め本が紹介されているんだが
中級〜上級者向けとして「Delphi 6 プログラミングバイブル」が必携の本だと書かれていたよ。
ただし、価格¥6,200とかなり高め。

ゲームプログラミング向けならそのものズバリの
「Delphiゲームプログラミングのエッセンス」てのと
「DelphiでWindowsゲームを作ろう! 」があるみたいだね。
Amazonで検索してレビューなんかを参考にしたら(・∀・)イイ!んでないだろうか?
128名前は開発中のものです。:02/05/23 13:19 ID:???
>>127
わかりました。検索してみます。
ネットで本が買えるなんて、いい時代になったものだ。
129名前は開発中のものです。:02/05/27 10:19 ID:dTayolSg
DelphiでOggVorbis使ってる人いる?
130名前は開発中のものです。:02/07/04 10:54 ID:???
W杯での試合や2chでの盛り上り(試合内容ネタスレ&仮面宮本AA&世界のおねいさんハァハァ等)
や少林サカーを観て猛烈に感動したので某キャプつば(FC)風ソフトを作りたいのですが
デルファイ6パーソナルで可能でしょうか?教えて下さい
131名前は開発中のものです。:02/07/10 15:29 ID:???
期待age
132名前は開発中のものです。:02/07/10 16:48 ID:???
>>130
可能です。
133名前は開発中のものです。:02/07/10 18:00 ID:???
>>130
あなたに根気と探究心があるなら可能です
134名前は開発中のものです。:02/07/21 20:16 ID:n3k2iOFU
コンポーネントをインストールしたのですが、コンポーネントタブに追加(表示)されていません。
コンパイルのときはエラーなどはでませんでした。
パレットの設定を見てもインストールされていません。どうすればいいのですか?
135名前は開発中のものです。:02/07/22 00:59 ID:???
>>134
当社のSilverSupportのご利用を
お勧めいたします。
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧ ニヤニヤ
 ( ・∀・)
 (    )  12インシデントデ300,000エント オトクダヨ
 | 某|
 (__)_)
136名前は開発中のものです。:02/07/24 16:36 ID:???
register -> Register って奴のマルチポスト?
137名前は開発中のものです。:02/07/25 01:42 ID:???
Yes
138名前は開発中のものです。:02/08/09 13:28 ID:9nr2ViFw
全画面にするにはどうすればいいですか?
DirectX以外の方法でお願いします
Del6personalです
139名前は開発中のものです。:02/08/09 15:38 ID:???
結論、DirectXを使わずAPIでやるのはオススメしない。
どうしてもAPIでやる場合は、アイコンの復帰、ウインドウ位置、サイズ等の復帰を行うこと。

参考
http://game.2ch.net/gamedev/kako/1005/10052/1005204354.html
より引用
> >>332
> http://home7.highway.ne.jp/nomura_y/prog000.htm
> のフルスクリーンの話を読め。目に穴があくくらい読め。
> 絶対、復帰したときにウインドウの位置も復帰するようにしろ。
140名前は開発中のものです。:02/08/09 19:32 ID:???
>>139
DirectXで全画面にしても、復帰するときウィンドウがヨリベンになっちゃう時あるんだよな。
なかなか参考にナターヨ
141名前は開発中のものです。:02/08/31 03:54 ID:???
最新のDirectX8.1やOpenGL,NvidiaのCGエンジンが
Delphiで使えるのがあったので晒しときます
http://clootie.narod.ru/
142名前は開発中のものです。:02/09/26 19:08 ID:yScJhLfb
age
143名前は開発中のものです。:02/10/26 15:45 ID:rDF8hQBV
Delphi6でもDelphiXが使えるらしいのですが、どうすれな使えるようになるのでしょうか?
144名前は開発中のものです。:02/10/26 17:14 ID:???
145名前は開発中のものです。:02/10/29 00:04 ID:???
DelphiXをDelphi6で使うための記事ってなぜ全部英語なんでしょ?
なにか書いてはいけない理由とかあるのでしょうか
HPのネタにしようかと思ってもあまりに誰もやってないのでちょっと心配になりました
146名前は開発中のものです。:02/10/29 02:31 ID:???
うーん、というか誰も日本語で書いてないからとしかいえない。
調べて自分でやる人には英語の記事だけで十分すぎるというか。

まあ、あなたが日本語の記事書いて下されれば、
同じ質問が来た時にそこにリンク張りますよ。
147名前は開発中のものです。:02/10/29 23:10 ID:???
Delphiって何かMSXのようなフレーバーがあって好きさ。
148名前は開発中のものです。:02/10/29 23:28 ID:???
>147
漏れはX68kっぽい空気があるなと思う
149名前は開発中のものです。:02/11/01 15:19 ID:???
DelphiXの非公式Delphi6対応版発見
http://delphigamedev.com/
150名前は開発中のものです。:02/11/19 02:50 ID:QmgZWZyA
XPや2000でも安定した速度を出すにはどうすればよいのでしょうか?
教えてください。
151名前は開発中のものです。:02/11/19 08:48 ID:???
98/MEと2000/XPでは事情が違うのか?

メインループの先頭で前回通過してから一定時間以上(たとえば16.6msec)たって
いないとメインループに入らないようにする
AppIdle、QueryPerformanceCounter、QueryPerformanceFrequencyあたりを使う
152名前は開発中のものです。:02/11/20 20:55 ID:mmD5/Uww
Delphi6Personalってただ?
153あぼーん:あぼーん
あぼーん
154名前は開発中のものです。:02/11/21 11:13 ID:Y35homMj
ただ
155名前は開発中のものです。:02/11/22 14:21 ID:jbWqD9HC
ゲームパッドの入力についておしえて
156あぼーん:あぼーん
あぼーん
157あぼーん:あぼーん
あぼーん
158名前は開発中のものです。:02/11/22 23:23 ID:xATGBz4T
>>155
サンプルソースをダウンロードしとけ
APIでもやりかただ
細かいのが必要ならDirectXだ、手っ取り早いのはQuadrupleDを使うこと
http://www.google.com/search?num=50&hl=ja&ie=Shift_JIS&c2coff=1&q=joyGetPos+delphi&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
159あぼーん:あぼーん
あぼーん
160名前は開発中のものです。:02/12/09 14:11 ID:jBG4F0X/
Delphi6にDelphiXできねー!!!!
英語読めねーよ!!!
161名前は開発中のものです。:02/12/09 16:54 ID:qu4PSwbZ
じゃあ諦めろ
162名前は開発中のものです。:02/12/09 17:29 ID:jBG4F0X/
>>161
やりたいんやー
翻訳してくれー
163名前は開発中のものです。:02/12/09 17:50 ID:DoH2nHAV
あきらめとけ
164あぼーん:あぼーん
あぼーん
165名前は開発中のものです。:02/12/09 19:16 ID:Scr2CR2f
>>162
翻訳ソフトつかえ
166あぼーん:あぼーん
あぼーん
167名前は開発中のものです。:02/12/10 06:51 ID:BBjzSBll
>>160
英語読めなくてもインストールできたっつーの!!
168名前は開発中のものです。:02/12/10 06:59 ID:BBjzSBll
ただ、実際、英語読まずしててゲーム作ろうなんて、
今の時代かなりおこがましいと思われ。
とりあえずは英語に見ただけで拒否反応していたら損するよ、これからは。
169あぼーん:あぼーん
あぼーん
170名前は開発中のものです。:02/12/14 20:30 ID:7bvbjHFz
DirectX SDKはDelphiで使えますか?
171名前は開発中のものです。:02/12/14 20:41 ID:vSotiviq
そりゃ DirectX つかえたら使えるだろ。
172名前は開発中のものです。:02/12/14 20:54 ID:IyGUeDpt
Delphi用のヘッダは含まれていませんので別途必要
173名前は開発中のものです。:02/12/14 21:01 ID:7bvbjHFz
>>172
そこんとこよくわかるようなサイトありますか?
174名前は開発中のものです。:02/12/14 22:25 ID:3OJsTj8k
DelphiでDirectXを使うには以下の方法がある
・DirectXのAPIをそのまま使う
・DelphiXを使う
・Quadruple Dを使う
・その他のライブラリを使う

2,3,4番目はよいとしよう。
肝心の1番目だが以下のサイトが参考になる。
ヘッダーは海外の有志がコンバートしてくれている。選り取りみどりだ。
http://www.delphigamer.com/
http://www.crazyentertainment.net/
http://clootie.narod.ru/delphi/index.html
http://www.delphi3d.net/
175あぼーん:あぼーん
あぼーん
176名前は開発中のものです。:02/12/16 18:43 ID:TsLEMy2F
RPG作ってるんだけど、マップとかのアルゴリズムについて解説してるサイトとか無いですか。
177名前は開発中のものです。:02/12/16 18:44 ID:TsLEMy2F
ageちまった。スマソ
178あぼーん:あぼーん
あぼーん
179名前は開発中のものです。:02/12/17 03:02 ID:Dm+sk8aU
>>176
無い。漏れも困ってる。がんがれ!
180あぼーん:あぼーん
あぼーん
181名前は開発中のものです。:02/12/19 13:12 ID:DQd6P1Sd
ddddのチュートリアルや、DelphiXのDXTimerでも普通に使われている
Application.OnIdleですが、これで困った事はありませんか?
俺のパソコンはどれも問題は起こさず、
CPUメーターが100パーセントになるけど、ゲームは普通に動きます。
が、友達のパソコンは1フレームに数秒かかったり、
ほかのソフトが落ちたりして大変だそうです。
var Doneにfalseをいれるだけでダメになります。

一応、そういうパソコンもあると言う事で、使わない事にしました。
OnIdle以外の方法でシビアにDirectInputを取ってこれるような方法を、
実践してる方がいればご教授下さい。
182名前は開発中のものです。:02/12/19 21:47 ID:9oRrvGra
>>181
適度にSleep(0) してみるとどう?
183あぼーん:あぼーん
あぼーん
184名前は開発中のものです。:02/12/20 08:49 ID:dMB3k3fY
TImage.OnMouseMoveイベントが起ったらそのX,Yに画像を移動して表示を
作ってるのですが、
var
 Back: TBitMap; { 背景画像 }
 Mask: TBitMap; { マスク }
 Pattern: TBitMap; { パターン }

procedure Form1.Image1MouseMove(Sender: TObject; Shift: TShiftState, X, Y: Integer);
begin
 { Image1に背景を上書き }
 StretchBlt(Image1.Canvas.Handle, 0, 0, Image1.Width, Image1.Height,
      Back.Canvas.Handle, 0, 0, Back.Width, Back.Height, SrcCopy);
 { 表示したいパターンのマスクをOR描き }
 StretchBlt(Image1.Canvas.Handle, X, Y, Image1.Width, Image1.Height,
      Mask.Canvas.Handle, 0, 0, Mask.Width, Mask.Height, SrcPaint);
 { 表示したいパターンをAND描き }
 StretchBlt(Image1.Canvas.Handle, X, Y, Image1.Width, Image1.Height,
      Pattern.Canvas.Handle, 0, 0, Pattern.Width, Pattern.Height, SrcAnd);
 Image1.Repaint;
end;
でやると画面がちらちらしちゃいま〜す。
よって助けてください。
お願いします。
この通りです。
185あぼーん:あぼーん
あぼーん
186名前は開発中のものです。:02/12/20 09:25 ID:9DCfcQdW
Image1.Repaintを削除し、タイマーで数分の一秒に一回Repaintしてはいかが?
試してないけど。
187あぼーん:あぼーん
あぼーん
188あぼーん:あぼーん
あぼーん
189名前は開発中のものです。:02/12/21 22:12 ID:xw0OjwL0
delでRPGって、時代の流れに逆行してるよな。
ツクールでつくれよ・・・って話だ。
判官贔屓ってやつで、応援したくなる。がんがれ!
190名前は開発中のものです。:02/12/22 12:08 ID:Xnd36XzJ
>>189
delphiは無料だから。
これにdirectXがオフィシャルで準備されていればほんの少しは楽になるのにな。
191名前は開発中のものです。:02/12/22 17:34 ID:urbnCKxg
>>189
ツクール嫌いもいるよ。
ツクールは簡単な分、厨なゲームが多い。
192名前は開発中のものです。:02/12/22 18:44 ID:sp7YJCTO
というか絶対量がおおいだけだろ。
プログラムのやつもろくなもんじゃねえ。
193名前は開発中のものです。:02/12/23 07:16 ID:On9F11A1
確かに、ツクール以外で面白いRPGなんて皆無に等しい
漏れも昨日から書き始めたんだけど、ダメージ計算式に1日費やしてしまった。
194名前は開発中のものです。:03/01/17 09:55 ID:uuRepZLi
今使うならDelphiXとQuadruple Dのどっちがいいかな。
Quadruple Dの新バージョンはいつになるんだろう
195名前は開発中のものです。:03/01/19 01:07 ID:K+tNMVea
>>194
ひとりごちのほうに Quadruple D 3.00 のβ版がupされていますね。
現在マニュアル作成中とのことなのでもう間もなくかも。
なにより萌え要素が入ってくるというのは大変重要です。(期待大)
196名前は開発中のものです。:03/01/23 21:08 ID:9Cl6xi4t
Quadruple D 3.00 キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
197名前は開発中のものです。:03/01/26 00:15 ID:apCviNTD
今、本を読みながらプログラムこぴぺしてるのですが、
勝手に動いてしまします。
一応→、6で右、←、4で左に動くのですが、開いた段階で、勝手に
左に動きます。
どこが悪いのでしょうか?
お願いします。教えてください。
http://forgamedev.zombie.jp/uploader/up5/img/013.lzh
198名前は開発中のものです。:03/01/26 00:21 ID:WeT+33QH
「プログラムこぴぺ」…。
ただのコピペだろ…。
199名前は開発中のものです。:03/01/26 00:26 ID:apCviNTD
>>198
すいません。そうです。
200名前は開発中のものです。:03/01/26 00:32 ID:EpQwOCcq
>>197
procedure TForm1.FormCreate(Sender: TObject);

Cmd := cmdStop;
が抜けてる
201名前は開発中のものです。:03/01/26 00:39 ID:apCviNTD
>>200
ありがとうございました。
説明書にはのってなかった・・。
いいわけですね。すいません。
助かりました。感謝。
202名前は開発中のものです。:03/01/27 23:40 ID:pOW+ueEO
今、
http://www.text2music.com/text/delphi/zero/
のページの7の、whileを使ってじゃんけんゲームを作れって課題
やってんだけど、よくわかんない。

gotoで、グーんときはココとんでってのは感覚でわかるけど
whileで、繰り返しを使ってジャンケンってのがどうも…
繰り返しとジャンケンになんの繋がりがあるのかって

ヒントだけでも教えて。
203名前は開発中のものです。:03/01/27 23:49 ID:6+/RegHW
ヒント:人に質問する時の言葉遣いに気を付ける
204名前は開発中のものです。:03/01/28 00:16 ID:CTilELuz
>>202
たしかに、設問がちょっと適切ではない気がする。
じゃんけんそのものとは、関係ないな。

勝負続行」の部分を while で書き直して見ろ
という事ではないかと。
205名前は開発中のものです。:03/01/28 00:34 ID:3W0Z4nNj
>>204
ですよね、ありがとうございます。
206名前は開発中のものです。:03/01/28 14:29 ID:qikczq8T
サンプルを見ながら作っているのですが、
http://forgamedev.zombie.jp/uploader/up5/img/014.lzh
の、ボタンをとって普通に表示するようにしようと思い、
http://forgamedev.zombie.jp/uploader/up5/img/015.lzh
このようにしたのですが、エラーがでてしまいます。
ボタンなしで、ImageList1の絵を表示するにはどうすれば
いいのでしょうか。教えてください。お願いします。
207名前は開発中のものです。:03/01/28 15:41 ID:SfR5sXZr
>>206
ImageListのOnChangeじゃなくて、FormのOnCreateで処理すべきかと
208名前は開発中のものです。:03/01/28 15:59 ID:qikczq8T
>>207
ありがとうございました。
エラーでなくなりました。感謝です。
209名前は開発中のものです。:03/01/28 16:16 ID:tWcxnn8A
>>206
TImageList の OnChange イベントによる
procedure TForm1.ImageList1Change(Sender: TObject);
でなく、
TForm の OnCreate イベントによる
procedure TForm1.FormCreate(Sender: TObject);
begin
ImageList1.Draw(Image1.Canvas, 200, 180, 0);
Image1.Repaint;
end;
として描くようにすれば、いいと思うが。
OnChange は文字通り ImageList が描き替わったときに
起こるイベントだから。
210209:03/01/28 16:19 ID:tWcxnn8A
>>208
書き遅れ、スマン。 リロードせんで、 207 さんの書き込みに
気付かなかったよ。
211名前は開発中のものです。:03/01/28 16:27 ID:qikczq8T
>>209-210
詳しく教えてくれてありがとうございます。
英語を理解してないまま、やっていました。
単語くらい覚えないといけませんね。
感謝です。
212名前は開発中のものです。:03/01/28 23:01 ID:ubzIY39v
また失敗作です。こんどは、Timerイベントのボタンがおせなくなりました。
http://forgamedev.zombie.jp/uploader/up5/img/017.lzh
一応、書かないところは書かないで、書いていいところはかいたのですが・・
わかっていないので、すいませんが、どこを書いていいのか、
だめなのか、教えてください。お願いします。
213212:03/01/28 23:05 ID:lk6AYDc1
>>212の、書かないところは、//メインフォームの宣言の
TForm1から、privateの上までと、interfaceのusesのところ、とか
書いていません。あとは、手打ちしました。
すいませんが教えてください。
214名前は開発中のものです。:03/01/28 23:23 ID:BQ3p325a
>>212
書いてない所が多くてよくわからないが…。
とりあえず OnTimer イベントで呼び出すプロシージャ( procedure )
はチェックしてみました?
215212:03/01/28 23:30 ID:lk6AYDc1
>>214
すいません。チェックしてみます。
216212:03/01/28 23:44 ID:8P3sZRd0
>>214
一応、イベントのOnTimerのボタンを押すとでてくるのですが・・。
TForm1 = class(TForm)の中に・・
そのあとの、
procedure TForm1.Timer1Timer(sender:TObject);
begin
end;
が出てこないのです・・。
217212:03/01/28 23:46 ID:8P3sZRd0
すいませんが、Publicの宣言は自動表示なのでしょうか?
そこも自分で書いています・・。
218214:03/01/29 00:14 ID:3aoZMSb3
>>216
>>212 のソースだと、コントロール "Timer1" が呼び出すプロシージャが
判らないっす。
左の”オブジェクト インスペクタ”の”イベント”で Timer1 の OnTimer
イベントが何呼び出してるか確認してみて。
219212:03/01/29 00:43 ID:5jmVJA0U
>>218
エラーがでてしまいます。
メゾットTimer1Timar 実現部が見つかりません。
と出ています・・。
プログラムミスでしょうか・・。
220212:03/01/29 00:53 ID:5jmVJA0U
Procedure Timer1Timer(Sender: TObject);
を消してやってみると、

メゾットTimer1Timar を追加すべき場所が見つかりません。”END”
または、INITIALIZATIONがユニットソースから見つけられませんでした。

と、でてしまいます・・。
やっぱり表示ミスですかね・・?
221214:03/01/29 00:59 ID:3aoZMSb3
>>219
あー、それはエラーメッセージ通り、呼び出すプロシージャ自身が
無いか、宣言されていない、もしくはプロシージャ名を間違えている
のでは、と。
222212:03/01/29 01:05 ID:5jmVJA0U
>>221
やはりそうでしたか・・。
ありがとうございました。もう一度はじめから打ってみます。
223212:03/01/29 02:47 ID:aq5aT4OP
>>217のとおりでした。自動表示ですね。
何度もためしましたが、できませんでした。
使いかた間違っていました。
すいませんでした。
224212:03/01/29 03:18 ID:aq5aT4OP
自動じゃないですね・・。
>>221さんの言っている意味が理解してないみたいです・・。
あぁぁぁぁ・・。
どっかにミスがあるはずなのに・・。
考えます・・・
225名前は開発中のものです。:03/01/29 04:38 ID:SoZHO6hy
QuadrupleDのインストールってつまり
libの中身をDelphiのディレクトリの中のLibにぶち込んで
コンポーネントのインストールってところで名前入れて GO!でいいんだよね?

なんか暗黙のうちに組み込まれましたとかでるんだけど
コンポーネント一覧にマニュアルに書いてあるのが出てこない。

なんか違ってる?
226名前は開発中のものです。:03/01/29 04:47 ID:fBpSUHac
>>225
DirectXヘッダ関連をパス通ったところに入れてないんじゃない?
ライブラリパスを変えてないんじゃフォルダごとコピーじゃ動かんよ
227名前は開発中のものです。:03/01/29 05:08 ID:SoZHO6hy
>>226
レスありがとです。
DirectXヘッダ関連ってつまり
dxheaderに入ってるファイル達ですよね?

マニュアル通りちゃんと出してやってるんですが
228名前は開発中のものです。:03/01/29 05:11 ID:TF3pxJlP
               ∧ ∧
              ( ̄ー ̄)
              (つ  つ
               ( ヽノ
               し(_)

         Now Thread Stoping. ...
         大変見苦しいスレでありました.
           スレストするまでお待ちください。。。ニヤリッ
229214:03/01/29 05:12 ID:3aoZMSb3
>>224
 212 さん、落ち着けー。 落ち着くんだー。
 もしかして、 >>212 のソースを書いている途中の話で、フォーム上に
配置した Timer コントロールを押してもどうにも出来なくなったという事?
 スマン。 もう走っているソースの一部かと思っていた。

 だとしたら、一番最後の行にあるはずの end. が消えちゃってます。
 あとは、クラス定義部分にミスがあります。(これは自分で見つけてや)
 頑張ってね。
230名前は開発中のものです。:03/01/29 05:13 ID:TF3pxJlP
            o.
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無様に .  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /    モララーより     /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
231名前は開発中のものです。:03/01/29 05:41 ID:fBpSUHac
>>227
>暗黙のうちに組み込まれました
今、インストールし直してみたけどこんなのでない
どこかで間違ってるだろうからどうやってインストールしたか最初から順番に教えて
232名前は開発中のものです。:03/01/29 05:52 ID:SoZHO6hy
>>231
そこまでしていただけるとは足向けて眠れねぇぞゴルァ。

えーと、libとdxhederディレクトリの中身を
delphi\Libの中にぶち込みまして…

コンポーネントのインストールってところでQuadrupleD_install.pasの
名前をコピーしてOKってやると、パッケージ - dcluser.dpk
ってやつが出てきて、コンパイルすると暗黙のうちに組み込まれました。
とか出やがります。
233名前は開発中のものです。:03/01/29 06:39 ID:xqGCYytw
http://jsweb.muvc.net/index.html
 ★お気に入りに追加してしまったアドレス★
234名前は開発中のものです。:03/01/29 06:53 ID:fBpSUHac
>>232
合ってるっぽいですね(TT
漏れの場合は
コンポーネントのインストール→新規パッケージに追加(パッケージファイル名は適当に(漏れはqd3)つけて)
とやりました……っとよく見たらでてました
>[警告] ユニット 'DGCarad9' は暗黙のうちにパッケージ 'qd3' に組み込まれました
>[警告] ユニット 'Ddidex' は暗黙のうちにパッケージ 'qd3' に組み込まれました
(以下略)
すまん、警告のことだと思ってなかったです このへんは無視していい警告です

環境オプション→パレットにも表示されてないですか?
235名前は開発中のものです。:03/01/29 07:03 ID:SoZHO6hy
>>234
出来た!!
できたですよ。ありがとうございます。
既存じゃなくて新規にしたらいけました。

わーい、ぐりぐり画像つかってやる。
236名前は開発中のものです。:03/01/29 07:21 ID:g/1Lb8lz
237212:03/01/29 09:51 ID:+0l5e5FL
>>229
end.を書いていませんでした!!!
ありがとうございます。
ちゃんとエラーでてたときに、意味がわかりませんでした・・。
クラス定義部分には打ち間違いもあることがわかりました。
いろいろ考えてて、ちがう方向に行きそうでした。
感謝です。ありがとうございます!!
助かりました。
238名前は開発中のものです。:03/02/01 00:12 ID:3SlEc9OG
むー、激しく誤爆
QuadrupleDのヘルプ通りにやって、1枚絵を表示させたいんだけど、
実パラメータが足りない。ってでるです。
ヘルプからコピペしてもでるんで、記述ミスってわけじゃないと
思うんですけど、何がいけないんでしょうか?
場所は
Vector(tick,50),
ってとこみたいです。
239名前は開発中のものです。:03/02/01 00:16 ID:3SlEc9OG
age忘れ。よろしくおねがいします。
240名前は開発中のものです。:03/02/01 00:56 ID:yNBXNtPT
            o.
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無様に .  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /    モララーより     /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
241名前は開発中のものです。:03/02/01 05:02 ID:1WoTOpWU
>>238
Vector→Vector2d
242名前は開発中のものです。:03/02/04 19:50 ID:0p5AHbKy
OnKeyDownイベントで、zやxを指定するにはどのように記述すればよいのでしょうか?
VK_zでも駄目で、zでも駄目、Old('z')でも駄目でした。
どなた様か、よろしくお願いします。
243名前は開発中のものです。:03/02/04 20:31 ID:9HW8vBr4
            o.
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無様に .  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /    モララーより     /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
244名前は開発中のものです。:03/02/04 20:59 ID:TpzMECPx
>>242
Ord('Z')は大文字で
245名前は開発中のものです。:03/02/04 23:42 ID:0p5AHbKy
>244
ありがとうございます。
おかげさまで助かりました。
重ね重ね、お礼申し上げます。本当に感謝しております。
246名前は開発中のものです。:03/02/05 03:26 ID:WqRHE7JD

                                 ∧ ∧   ∧ ∧
   /⌒~~~⌒\                       (   ,,)   (,,・Д・)
 / ( ゚>t≡ )y─┛~~                〜(___ノ  〜(___ノ ,γ_
(_ ノγ U  ∩_∩)   THANK YOU 2ch     ┌───────┐   \
  α___J _J         and          (| ●        ● |      ヽ
  / ̄ ̄ ̄ ̄\  GOOD-BYE 2ch WORLD! /.| .┌▽▽▽▽┐ .|____|__||_| ))
 /     ●  ●、                   ( ┤ .|        | .|□━□ )
 |Y  Y       \ またどこかで会おうね  \.  .└△△△△┘ .|  J  |)
 |.|   |       .▼ |                 | \あ\      | ∀ ノ
 | \/        _人|∧∧∩゛冫、 .∧_∧      |    \り.\     . |  - ′
 |       _/)/)/( ゚Д゚)/ `  . (´∀` )..ヽ(´ー`)ノ  \が\ .   |  )
 \    / 〔/\〕 U  / ∩∩ (    ) (___)    \と.\ .|/
  | | | c(*・_・)  |  |ヽ(´ー`)ノ_|  |  | |   |〜 /\.\う\| (-_-)
  (__)_) UUUU /∪∪ (___)(_(__) ◎ ̄ ̄◎─┘ .└──┘.(∩∩)
247名前は開発中のものです。:03/02/07 20:42 ID:a3UyrHMb
QuadrupleDいれて、絵を表示させようとしています
マニュアル見ながら
Vector→Vector2d
もやったのにまっさらなフォームしか表示されません
助けてくださいな
248名前は開発中のものです。:03/02/07 21:01 ID:utyvkVWi
>>247
http://pc2.2ch.net/test/read.cgi/gamedev/1013976376/583

画像ファイルが足りてないだけと思われ
helloフォルダに入っているdg.bmpが必要
249名前は開発中のものです。:03/02/07 21:27 ID:a3UyrHMb
>>248
足りてないだけでした。お騒がせしました
250名前は開発中のものです。:03/02/08 01:04 ID:Q78BNto4
QuadrupleDでpng画像って使えないの?
251名前は開発中のものです。:03/02/08 02:09 ID:sVNqEFHF
>>250
TGLDPNG(フリーのコンポーネント、とっても便利)で読み込んでからTBitmapにassignしてLoadFromTBitmap

TGLDPNGはDelphi工房からダウンロードできます
http://www.phoenix-c.or.jp/~taki/
252名前は開発中のものです。:03/02/08 04:20 ID:khE5dzUc
.              __
                    ‖  ~"ー 、,,_
      |           ‖ 終 .了  ,>
   \ |  /      ‖   _,:-−'´
                ‖/~         ヽ | /
                    ‖     ,   ))
       ,、      ,、   /'ll__/ ヽ
      / ヽ__/ ヽ/ _‖   _  ヽ.    ∧___∧
    /       /  ´ ‖ー/  `   l ロ. / _    _
    / ´ 、__,  ` |.    ‖∨      ,! || | l--l `
   _l    ∨    ヽ/ ̄)( ̄ ̄`"::::ノ (⌒ヽ, ..ヽノ   ,
  ( ヽ_        /   /ll `'ー、....::ノ ∀\/ー- /`l  ヽ
   ヽ、       ,ヽ:..:ノ ‖   '::::|⊃  iー- l (_〕i__
     l          : :::Y  ‖     ::|   |"|ー-,|   |(
253名前は開発中のものです。:03/02/08 12:46 ID:Q78BNto4
>>251
ありがとうござます
254名前は開発中のものです。:03/02/23 14:28 ID:LSaXKoou
0000を四つに分けるのはどうしたらいいですか
255名前は開発中のものです。:03/02/23 17:12 ID:bI8S4HFB
>>254
'0000' が文字列か整数かによって違いますが…。
256名前は開発中のものです。:03/02/23 20:02 ID:LSaXKoou
>>255
整数です
257名前は開発中のものです。:03/02/23 20:09 ID:n/aNEfj+
>>256
showmessage(IntToStr(1234 mod 10));
showmessage(IntToStr(1234 div 10 mod 10));
showmessage(IntToStr(1234 div 100 mod 10));
showmessage(IntToStr(1234 div 1000 mod 10));

(1234 div 100 mod 10)
1234を100で割って12
12を10で割った余りは2
258名前は開発中のものです。:03/02/23 20:17 ID:LSaXKoou
>>257
ありがとうございます
259名前は開発中のものです。:03/03/09 05:10 ID:wV9yoKdK
‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖
‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖
‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖
‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖
‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖
‖ ‖ ‖\/‖ ‖ ‖\/終 ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖
‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖
‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖
‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖
‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖
 \_/\_/\_/\_/\_/\_/\_/\_/\_/
  _________________________
/|                                     |\
            \だからさぁクソスレ立てんなって言っただろ/
 ?パチパチ?パチパチ  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄?パチパチ?
  ∧_∧∧_∧∧_∧∧_∧∧_∧∧_∧∧_∧∧_∧
 ∧_∧∧_∧∧_∧∧_∧ ( ´∀`)∧_∧∧_∧∧_∧
  _∧_∧∧_∧∧_∧∧_∧∧_∧∧_∧∧_∧∧
    ∧_∧∧_∧∧_∧∧_∧∧_∧∧_∧∧_∧
    (    )    (    )    (    )    (    )
260名前は開発中のものです。:03/03/14 11:00 ID:thVf9ZMh
QuadrupleD新版キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
3月12日更新なのに気づくの遅いよ俺!!

Xsimplify.exeの更新のみの模様
これでやっと自前の3Dオブジェクトを表示させることができますヨ
チュートリアルなどドキュメント類の誤記は放置のようですのでこれから始める人は要注意
過去ログで指摘されてる以外にもいくつかありますがスペルミス程度のものばかりです
TCanvasを使う苦労に比べれば屁みたいなものです
メタセコとの連携が強化されつつあるのでMLもチェキ
261名前は開発中のものです。:03/03/14 17:28 ID:izl2yPsz
      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      | このスレは終了よ
      \_____  _________________
             //

        ∧_∧         ∧__∧
       ( ´∀`)        ( ・∀・)
        〉   <、  n       ,> 〈
      イ´γ  、ヽ ,||、    ,,ノ,_i⌒)  __/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      (⌒r´⌒y/ f々)   (;:..(..:::;ノ /   \  ここまでよくがんばったわね。
       ハ::,;、::::ノ〈//`´   (二二ノノ     |   もう楽におなりなさい…
       |ノ:::::::〈\./      (_ミ:::〈      \__________
      ィf::::::::::;ヽ、        〈;::::::;::ヽ
      (ミ:::;;:::;;:::::}         〉;;;::::)::)
      人;;;;;y;;;;;;ノ       /^i;;:イ;;;ノ
        | / /       / /| /
        `y /       〈 <  | |
        || |        ヽ `ヽ| i
         | ト.、        \`ヾ:|
         | |/^〉        ノ ^〉|
        ノ__.|ヘ;|        しヘ;|_ 〉
       ∠_ノL!         ∠_ノL!          ≪完≫
262名前は開発中のものです。:03/03/14 23:52 ID:P8VP96MI
>>260
サンキウ
263名前は開発中のものです。:03/03/15 21:27 ID:pMn3G4mp
                        _
            ♪      ┌―─┴┴─―┐ ♪
          ♪  ヽoノ    │   終 了    |    ♪ ヽoノ
             へ).    └―─┬┬─―┘      ( ヘ
              く         ││            >
                          ゛゛'゛'゛
264名前は開発中のものです。:03/05/12 23:46 ID:+3okumJP
QuadrupleDのDDPDを使っているのですが添付されているチュートリアルのサンプルが動作しません
セッションの新規作成はできるのですが参加しようとするとタイムアウトしてしまいます
どなたか心当たりのある方お願いします
265名前は開発中のものです。:03/05/13 01:23 ID:H4JTHQ9J
                     ┌────┐
     ┌──────┐    ┌┤┌───┘
     └──┐┌─┬┤    │││
           ││  ││    ││└──┐
           ││  │└──┘│┌──┘
           ││  │┌──┐││
           ││  ││    ││└────┐
   ┌───┤├┐││    │├────┬┘
   │┌──┤├┴┼┘    ││┌──┐└┐
   ││    └┤  └┐    └┤│    └┐└┐
   ││      │┌┐└┐    ││      └┐│
   │└──┐││└┐└┐  ││        ││
   │┌──┘││  └┐└┐││        ││
   ││      ││    └┐└┤│        ││
   │└───┴┴┐    └┐││      ┌┘│
   └────┬┬┘      └┤│    ┌┘┌┘
             └┘          │└──┘┌┘
                     └────┘
266名前は開発中のものです。:03/05/13 01:25 ID:oZ/KPfMd
>>264
ageるな馬鹿。
やっとこのスレが静かになったきたというのに。
267名前は開発中のものです。:03/05/14 18:04 ID:szUEpmG0
上位100スレぐらいが荒らしの射程範囲なので、あげちゃだめ。
268名前は開発中のものです。:03/05/16 00:10 ID:DnbgCy8r
HEXはどうやるんですか?
269名前は開発中のものです。:03/05/16 06:42 ID:pbS0hPxo
>268

もちっと詳しく書かないとHEXの何をどうしたいのかがわからんぞ
270268:03/05/17 02:34 ID:IP6oP4NN
2HEX間の距離(HEXの数)を数えたいのです。
271名前は開発中のものです。:03/05/17 15:57 ID:LhaqdzNz
>>270
ああ、HEXマップをいじっている時に私もつまづいたなぁ…。
とりあえず、私の使っている方法。

”HEXマップにおける距離”=”ユニット(コマ)が進む数”だから、
  0  1  2  3
 ┌─┬─┬─┬─┬
0│  │  │  │  │
 └┬┴┬┴┬┴┬┴
1  │  │  │  │
 ┌┴┬┴┬┴┬┴┬
2│  │  │  │  │
…のように、レンガ壁状のマップで考えます。
そして、この1コマを4分割。
 □□□□□□□□
 □□□□□□□□
   □□□□□□□□
   □□□□□□□□
 □□□□□□□□
 □□□□□□□□
あとは、直線の距離を出して、2で割ればOK。
272名前は開発中のものです。:03/05/17 15:58 ID:LhaqdzNz
>>271 の続き
(x0,y0)〜(y1,y0)の距離を出したかったら、

xq0 := (x0 * 2)+(x0 mod 2); yq0 := y0 * 2;
xq1 := (x1 * 2)+(x1 mod 2); yq1 := y1 * 2;
xlen := Abs(x1-x0)+1; ylen := Abs(y1-y0)+1;
hexlen := Sqrt( xlen*xlen + ylen*ylen ) / 2 + 1;

で、算出できるはずです。(メンドいから整数と実数の変換は略)
273名前は開発中のものです。:03/05/17 16:01 ID:LhaqdzNz
>>272
ゴメン、間違えた。
× xlen := Abs(x1-x0)+1; ylen := Abs(y1-y0)+1;
じゃなくて
◎ xlen := Abs(xq1-xq0)+1; ylen := Abs(yq1-yq0)+1;
ね。
274272:03/05/17 16:16 ID:LhaqdzNz
>>272 また訂正。 何やってるんだ俺は……。(恥)
xq0 := (x0 * 2)+(y0 mod 2); yq0 := y0 * 2;
xq1 := (x1 * 2)+(y1 mod 2); yq1 := y1 * 2;
xlen := Abs(xq1-xq0)+1; ylen := Abs(yq1-yq0)+1;
hexlen := Sqrt( xlen*xlen + ylen*ylen ) / 2 + 1;
275268:03/05/18 00:57 ID:RcPQLtqQ
4分割は新鮮でしたが、
(0,0)-(1,3) が 5 になるのですけど。

x0 = 0;
y0 = 0;
x1 = 1;
y1 = 3;
xq0 = 0;
yq0 = 0;
xq1 := (1 * 2) + (3 mod 2) = 3;
yq1 := 3 * 2 = 6;
xlen := Abs(3)+1 = 4;
ylen := Abs(6)+1 = 7;
hexlen := Sqrt(4*4 + 7*7) / 2 + 1 = 5.03;
276272:03/05/18 02:18 ID:MA7QNrHO
>>275
ホンマや…。 ちょっと昔のソース探してみます。
277名前は開発中のものです。:03/05/18 03:31 ID:mv38V9jc
今適当に思いついた奴だけど、
□■□□□   ■=移動軸、★=目標、☆=自分
★■□□■
□□■□■
□□■■□
■■■☆■
をちょっとずらして
□■□□□
  ★■□□■
  □□■□■
    □□■■□
    ■■■☆■
とすると、ヘックスの移動が、普通の四角マスでの
・縦移動(HEXの右上左下方向の移動)
・横移動(HEXの横方向の移動)
・左上右下移動(HEXの左上右下方向の移動)
に対応することになる。
で、目標から上下左右(斜めは考慮する必要なし)にある一番近い軸までの距離と、
軸との交点から自分(中心)までの距離を足せば、移動距離となる、ハズ。

上の例だと斜めの軸までの距離が1、☆までが3、合計の移動距離が4が結論ということになる。

でも、障害物とか地形効果とか考えると単純に距離だけ求めても、とか思うんだけどどうだろ?
278名前は開発中のものです。:03/05/18 03:32 ID:mv38V9jc
行頭の半角スペースは無視されるんだった…。
 □■□□□   ■=移動軸、★=目標、☆=自分
  ★■□□■
 □□■□■
  □□■■□
 ■■■☆■
こうね。
279268:03/05/18 05:00 ID:enzpE3WK
>>277
移動させるときはリアルタイムストラテジースレにあるA*アルゴリズムを考えています。

なんか、ちんぷんかんぷん。

654444456
 543333456
543222345
 432112345
432101234
 432112345
543222345
 543333456
654444456

654444456
543333456
543222345
432112345
432101234
432112345
543222345
543333456
654444456
280272@眠:03/05/18 05:59 ID:GM64wXCS
>>270 >>275
昔のソース見たら、やはり Sqrt を使った >>274 の方法だった…。
よく、動いていたな〜。 この直線距離は単なる目安だったからかも。
それで、やっと”コマを動かす距離”を出せましたわ…。 コレでいいはず。

xlen := Abs(x1-x0); ylen := Abs(y1-y0);
if xlen <= (ylen div 2) then hexlen := ylen
else hexlen := xlen + ylen - (ylen div 2);

0 1 2 3 4
 1 2 3 4 5  ← 1つずらしレンガ状の移動距離を…
2 2 3 4 5
 3 3 4 5 6

0 1 2 3 4
1 2 3 4 5  ← 整えるとこうなる。
2 2 3 4 5
3 3 4 5 6
281272@眠:03/05/18 06:05 ID:GM64wXCS
>>279
経路探索は、ちゃんとやっていたんですけどね。(笑)
ちゃんと消費移動量出して。
282名前は開発中のものです。:03/05/18 23:17 ID:Vqiijavw
>>280
今度は(1,0)-(0,1)で2になります。

x0=1;
y0=0;
x1=0;
y1=1;
xlen = Abs(0-1) = 1;
ylen = Abs(1-0) = 1;

1 <= (1 div 2) が成立しないので、
hexlen := 1 + 1 - (1 div 2) = 2;

最終的にこれでいけました。
function GetHexLen(const P1, P2: TPoint): Integer;
var
 W, H: Integer;
begin
 W := Abs(P2.X - P1.X);
 H := Abs(P2.Y - P1.Y);
 if H <= W * 2 then
 begin
  if (Odd(P1.Y) and (P1.X >= P2.X)) or
   ((not Odd(P1.Y)) and (P1.X <= P2.X)) then
   Result := H + W - H div 2
  else
   Result := W + H div 2
 end else
  Result := H;
end;
283272:03/05/19 00:13 ID:xetwIoTi
>>282
あう。 何度も何度もすいませんでした。
(0,0)からしか検算していなかった私のミスです。
284名前は開発中のものです。:03/05/19 01:16 ID:RdOoX7kJ
きにすんな
285名前は開発中のものです。:03/05/20 01:21 ID:mVYsvlCM
Bitbltを使ってアニメーションをさせてるんですが、開始すると
アニメーションは割と綺麗に動きますが、実行させてるFormが
非常に重たくなります。Formを移動させようとしようものなら、
かなりガクガクに動くように…(開発環境マシンはP42.53GHzです)
何方か対策をご教授願えれば幸いです。

// TimerのIntervalは500に設定してます。
procedure TForm1.Timer1Timer(Sender: TObject);
begin
image1.Picture.LoadFromFile('C:\001.bmp');
BitBlt(image2.Canvas.Handle,0,0,37,75,image1.Canvas.Handle,0,0,SRCCOPY);
image2.Repaint;
sleep (100);
image1.Picture.LoadFromFile('C:\002.bmp');
BitBlt(image2.Canvas.Handle,0,0,37,75,image1.Canvas.Handle,0,0,SRCCOPY);
image2.Repaint;
sleep (100);
.
.
.
image1.Picture.LoadFromFile('C:\006.bmp');
BitBlt(image2.Canvas.Handle,0,0,37,75,image1.Canvas.Handle,0,0,SRCCOPY);
image2.Repaint;
end;
286名前は開発中のものです。:03/05/20 02:17 ID:zL9Q18du
>>285
sleep() でウェイトをかましているからでは。
WINのタスクを独り占めして文字通り眠ったようになりますから。

タイマーとカウンタを使うのはどうでしょう?
TForm1.FormCreate の所で cnt を 1 に設定しておいてから、

procedure TForm1.Timer1Timer(Sender: TObject);
begin
image1.Picture.LoadFromFile('C:\00' + IntToStr(cnt) + '.bmp');
BitBlt(image2.Canvas.Handle,0,0,37,75,image1.Canvas.Handle,0,0,SRCCOPY);
image2.Repaint;
Inc(cnt);
if cnt>6 then cnt:=1;
end;

というのは如何でしょう?
あと、 bmp ファイルは最初にまとめて ImageList へ読み込ませては?
287名前は開発中のものです。:03/05/20 13:06 ID:mVYsvlCM
>>286
見事に軽くなりました(´ー`) ありがとうございますた。
ImageListコンポーネントは使ったことがないのですが、
ちょっと弄ってみることにします。
288名前は開発中のものです。:03/05/21 02:17 ID:yuA7Jdfb
質問です。
■■■
■□■
■■■
(元絵:□が残したい部分・■が黒塗りつぶし)
□□□
□■□
□□□
(マスク:□が白塗りつぶし・■が残したい部分の黒塗りつぶし)
を、OR→AND演算で表示すれば半透明化出来ると思うのですが、
↑のマスク画像無しで、半透明化するにはどうすればいいのでしょうか?

# ADVなエロゲーを再現しようと思ってるのですが、画像を抜き出してみたところ、
# 手元のゲーム(VisualArts系やDOのゲーム等)では、各キャラクターの立ち絵に
# マスク用画像が用意されてなく、黒背景に立ち絵が描いてある画像しか
# 入ってませんでした。これらは、何か別の画像と論理演算を行って
# 半透明化させてるんでしょうか?
289名前は開発中のものです。:03/05/21 02:49 ID:8zKfauhG
マスク画像は実行時に作成しているか、
1ピクセルずつ合成してるんじゃないの?

SRCANDやSRCPAINT以外にもたくさんの合成方法があるけど、
1回のBitBltで透過させる事は不可能だと思う。
290名前は開発中のものです。:03/05/21 03:36 ID:pDtj6lgc
>>288
TBitmap の ScanLine を使って、>>289 さんの仰るとおり 1 pixel ごとに
処理するヨロシ。
291名前は開発中のものです。:03/05/23 14:57 ID:gD+lmxCD
292名前は開発中のものです。:03/05/24 02:30 ID:LSDvOFkW
291は何なの!? 荒らしいらい?
293名前は開発中のものです。:03/05/24 03:57 ID:o6GsTVdQ
>>288
TImageのプロパティで出来るじゃん
294名前は開発中のものです。:03/05/24 11:34 ID:FLU40T1i
>>288
Doは知らんがVisualArts系にはマスク部分ある。確か立ち絵のファイルといっしょになってる。
画像抜くのに使ってるソフトによってはマスク部分が無視される。
というかあれのマスク部分考慮してる抜き出しソフト見たことない。あんまり需要無いしな。
295288:03/05/25 03:35 ID:OUd92QaS
>>289
>>290
ttp://www.sm.rim.or.jp/~shishido/delmono.html
とりあえず↑のサイトを参考に(というかほぼコピペ)作ってみますた。

ttp://www.geocities.co.jp/SiliconValley/1115/adv01.zip

1ピクセル単位で色を取得、黒だったら白に、それ以外の色だったら
黒にするという処理を行いました。ただ、問題点が2つほど…

・For文で回してる処理が非常に遅い(scanlineのせい?)
・残したいキャラに含まれている黒色までマスク化してしまう(目の黒など)

この2つが非常に悩ませてくれます… 上はともかく、下は
見た目に非常に影響するので(;´д⊂ やはり、透明化したくない
部分の黒色だけ、塗りつぶさないような条件処理でしか
解決策はないんでしょうか?

>>293
Transparentプロパティを使えば出来ますが、プログラムで再現したかったのでつ…

>>294
とりあえず一番簡単な方法である、Susieにプラグイン入れて
画像抜き出しやってるんですが、マスク画像は入ってるのですね。
じゃぁDOの方も、立ち絵ファイルと一緒になってたりするのかしら…
296290:03/05/25 17:23 ID:ll42N4KR
>>295
ソース拝見いたしました。
> ・For文で回してる処理が非常に遅い(scanlineのせい?)
マスクを作るプロシージャにて、パレットコードを String に変換している
為と思われます。

procedure TForm1.make_mask(sBmp:TBitmap);
var
i,j, x : Integer;
p : PDWORD;
mp : PBYTEArray;
begin
for i:=0 to sBmp.Height-1 do begin
p := sBmp.ScanLine[i]; // ビットマップ座標(0,i)のポインタ
mp := mask.ScanLine[i];
x :=0;
for j:=0 to sBmp.Width-1 do begin
if p^ = $00000000 then //if str_mask = '000' then
begin
mp[x]:=$ff; mp[x+1]:=$ff; mp[x+2]:=$ff; // B=255 , G=255 , R=255
end else begin
mp[x]:=$00; mp[x+1]:=$00; mp[x+2]:=$00; // B=0 , G=0 , R=0
end;
Inc(p); Inc(x,3);
end;
end;
end;
……と、いうのは如何でしょう?( PDWORD よりも PDCHARArray の方が
わかりやすいでしょうか)
297290@続き:03/05/25 17:27 ID:ll42N4KR
>>296
自己レス
PDCHARArray って何やねん…。 PBYTEArray です。

>>295
> ・残したいキャラに含まれている黒色までマスク化してしまう(目の黒など)

ペイントソフトを使って、マスク用のカラー(例 $ffff00 などの使わない色)で
抜きたい所を塗るのはどうですか?
if p^ = $00000000 then の所は変更せねばなりませんが。
298290:03/05/25 17:41 ID:ll42N4KR
連続投稿すみません。
キャラ絵を見てみましたが、瞳の中や影にあたる部分に背景を透けさせる色
RGB(0,0,0) で塗られている部分があります。
この絵からマスクをつくると、目の部分が抜けてしまいますね。
299名前は開発中のものです。:03/05/26 17:01 ID:rwyNVs4A
>>285
もう直したかもしれないけれど、LoadFromFile は、描画ごとに毎回やるには
むちゃくちゃ遅いです。>>286のようにTImageかTImageListに、あらかじめ格納しておくに一票。

>>292
TAlphaBitmapっていうグラフィックエンジンの紹介かと

>>298
普通はマスクの色は、使っていない色を使います。
でも、フルカラーとかハイカラーで書いていると面倒だよね。
300名前は開発中のものです。:03/05/29 18:32 ID:N4i9Vcx6
遅レスですまんが

0 1 2 3 4
 1 2 3 4 5
2 2 3 4 5
 3 3 4 5 6

移動条件を全マス上下左右+左上+右下に統一しておいて
こうずらしたほうが良くない?

0 1 2 3 4
  1 2 3 4 5
  2 2 3 4 5
    3 3 4 5 6
301名前は開発中のものです。:03/05/29 23:33 ID:mpTwdvzD
>>300
 5 4 3 3 3 3 4 5 6
5 4 3 2 2 2 3 4 5
 4 3 2 1 1 2 3 4 5
4 3 2 1 0 1 2 3 4
 4 3 2 1 1 2 3 4 5
5 4 3 2 2 2 3 4 5
 5 4 3 3 3 3 4 5 6

が、

    5 4 3 3 3 3 4 5 6
  5 4 3 2 2 2 3 4 5
  4 3 2 1 1 2 3 4 5
4 3 2 1 0 1 2 3 4
  4 3 2 1 1 2 3 4 5
  5 4 3 2 2 2 3 4 5
    5 4 3 3 3 3 4 5 6

になるということですか。
うーん、 >>282 のように(1,0)−(0,1)が2になりそうな予感…。
ソース、ぷりーず。
302301:03/05/29 23:44 ID:mpTwdvzD
301訂正。 「右上」だからこうですね。
5 4 3 3 3 3 4 5 6
5 4 3 2 2 2 3 4 5
  4 3 2 1 1 2 3 4 5
  4 3 2 1 0 1 2 3 4
    4 3 2 1 1 2 3 4 5
    5 4 3 2 2 2 3 4 5
      5 4 3 3 3 3 4 5 6
303名前は開発中のものです。:03/05/29 23:52 ID:vzkpDIV0
というか、>>277がそれだよね?
304名前は開発中のものです。:03/05/30 07:58 ID:3BAmLi+J
おおそうか、すでに既出だったか。

白い四角と黒い四角はNGワードに入れてたから見えなかったよ。
305288:03/06/03 20:41 ID:dV3uJJSo
>>296
レス遅れましたが、ありがとうございました。
お陰で苦にならない速度で描画出来るように(´ー`)

現在、立ち絵やシナリオウィンドウにアンチエイリアスを
かける処理を考えてるんですが、単純にぼかしをかけた
マスク画像を用意して、それを重ねるのが一番簡単でしょうか?
ぼかしをかけるサンプルを適当に拾って弄ってるんですが、
なんか実行時に使うと、やたらと時間がかかるので…
306296:03/06/03 22:24 ID:VCAAEscw
>>305
多少はお役に立ったようで何より。

アンチエイリアスですが……、私の知っている限りでは一枚絵ではちょっと
難しいと思います。
やはり仰る通り、アンチエイリアスのかかったマスクを、背景とαブレンドで
合成してから、立ち絵を描写した方がよろしいかと。
307296:03/06/04 01:33 ID:yTkfegdd
>>305
ttp://forgamedev.zombie.jp/uploader/up2/img/012.lzh
酔いが醒めたので、ちょっとやってみました。
データは 288 さんの流用&マスク画像が綺麗でないのはご勘弁のほどを…。
308296:03/06/04 04:16 ID:yTkfegdd
ttp://forgamedev.zombie.jp/uploader/up2/img/013.LZH
>307 では立ち絵のラインが黒であることを前提にソース書いてしまったので、
あわてて訂正しました。
309名前は開発中のものです。:03/06/22 13:05 ID:y5Eb7E/r
すいません
データをLZ77圧縮(展開)したいのですが、
Delphiじゃできませんかね
310名前は開発中のものです。:03/06/25 18:58 ID:Te9Juqzm
Delphiで出来ないことなんてそんなにないから安心しろ
311名前は開発中のものです。:03/06/26 02:54 ID:N77Il6kb
Delphiにzlibのコンポーネントとかついてなかったっけ?
312名前は開発中のものです。:03/07/05 04:44 ID:orfgb7f5
漏れもDelphiでなんかつくってみたくて、ここにたどり着きますた(・∀・)保守っとこ
313名前は開発中のものです。:03/07/05 11:10 ID:C5JjctVn
保守なんていらんつーに
314名前は開発中のものです。:03/07/08 20:57 ID:q5vqgPew
すいませんが教えてください。
LightWaveで作った3Dのオブジェクトを使って
PC上でバイクを改造するプログラムを作りたくて
Delphiを始めたのですが、どうやって読み込むのかわかりません。
検索してみてもその辺の解説が見つからないので
もしご存知でしたら教えてください。
315名前は開発中のものです。:03/07/08 23:06 ID:DRXvm1Tv
>>314

>>2の下方のリンク行け
316名前は開発中のものです。:03/07/09 06:01 ID:/lHa0Xtu
317名前は開発中のものです。:03/07/09 07:28 ID:z+m4emKo
P2PMMORPG「P2PREGARO」
http://game3.2ch.net/test/read.cgi/mmominor/1054592980/l50

プログラマーきてください。
318名前は開発中のものです。:03/07/09 07:33 ID:O4cmYx83
なんでテメーはさっきからDelphiのスレなんかに貼ってるんだよ
319名前は開発中のものです。:03/07/09 11:06 ID:ql5zHAJ+
ちょっと難しいかもしれませんが、
別プロセスの確保してるメモリのアドレスを指定して、その値を貰ってきたい場合の方法が解る方教えて頂けませんか?
・プロセス名でそのプロセスの使用しているメモリ領域の取得が可能でしょうか?可能ならその方法。
・別プロセスの使用しているメモリ領域の値の取得方法。

以上2点、もちろん1点でもかまいません。
解る方、ご教授くださいm(_ _)m
320名前は開発中のものです。:03/07/09 11:07 ID:KtHg7Cpg
☆頑張ってまーす!!☆女の子が作ったサイトです☆
       ☆見て見て!!
http://yahooo.s2.x-beat.com/linkvp2/linkvp2.html
321名前は開発中のものです。:03/07/09 13:44 ID:a6tRK0Mr
あげんなヴォケ
322名前は開発中のものです。:03/07/09 15:54 ID:BU3ACoKR
未だにsage原理主義者がいるのか・・・
323314:03/07/09 16:46 ID:SyWy0giO
>>315
サンクス。
よく分からんががんがって見る。
324名前は開発中のものです。:03/07/09 23:41 ID:ZOyC2Ge6
私が作ったよ〜♪
http://nuts.free-city.net/index.html
325名前は開発中のものです。:03/07/10 06:12 ID:UNDvVsis
>>321
【sage】「sage原理主義」を一掃するには? 6【sage】
http://qb.2ch.net/test/read.cgi/accuse/1054373827/
326名前は開発中のものです。:03/07/19 11:43 ID:oyEl6lcc
>>319
メモリマップドファイル。共有用のメモリを確保して各プロセスは
ファイルとしてアクセスする。

各プロセスに割り当てられたメモリ空間は別プロセスからアクセスすると
保護違反になるので無理。
327夏厨:03/07/28 21:17 ID:kSvdxyQD
初心者が質問していいスレはここでつか?
328名前は開発中のものです。:03/07/28 23:02 ID:peI/arIn
画面描画をDelphiXで、音声再生をQuadrupleDでやってる漏れは変態ですか?(´・ω・`)
329名前は開発中のものです。:03/07/28 23:25 ID:NG/A9nsR
>>328
理由による
330名前は開発中のものです。:03/07/29 16:07 ID:DStWVx2P
>>326
横レスですが、
>各プロセスに割り当てられたメモリ空間は別プロセスからアクセスすると
>保護違反になるので無理。

私も、他のプロセスのゲームのパラメータを変更するようなツールを作りたいと思ってたのですが
それは結構難しいのでしょうか?
331名前は開発中のものです。:03/07/29 16:26 ID:bPalsdQf
☆無修正画像&サンプルムービーをどうぞ!!☆
http://yahooo.s2.x-beat.com/linkv/linkv.html
332名前は開発中のものです。:03/07/29 20:42 ID:Q6vOZBRX
>>330
そういうときは操作したいゲームをツールの子プロセスとして起動する
世のチート・クラックツールはほとんどそういう作りだと思うが?
その程度のこともわからないうちから他プロセスのメモリなぞいじったら
PCぶっ壊すのが落ちだからヤメトケ
333名前は開発中のものです。:03/07/29 22:58 ID:6gE9lAZZ
他プロセスのメモリにアクセスするAPIがあったような
334名前は開発中のものです。:03/08/04 07:37 ID:C5AUiq4B
>>333
ReadProcessMemory/WriteProcessMemory
335夏厨:03/08/14 16:50 ID:wwHVbfPP
ええと、質問です。
少し前にDelphiをダウンロードして勉強しているのですが、クライアントソケット、サーバーソケットのヘルプが無いらしく、どうにも使い方がわかりません。
クライアントとサーバーの接続を確立するには、クライアント側のクライアントソケットのHostプロパティに接続先のコンピューター名を設定しなければいけないそうなのですが、
コンピュータ名って一体何なのでしょうか?
336夏厨:03/08/15 00:33 ID:hl2WmB9Z
すいません自己解決いたしました。

ええと、そこで新たに質問なんですけど、無料ダウンロードのバージョンではクライアント/サーバーソケットでしか接続できないのでしょうか?
ということは、つまりIP接続は不可能ってことですよね?
337名前は開発中のものです。:03/08/15 07:09 ID:qpE4TFq2
>>335-336
標準のはクソだから、Indy使え
338夏厨:03/08/15 13:20 ID:qkV4VO0M
>>337
ううん、Indyってなんだろう・・・?
調べてみます。

それでまた質問なのですが、現在Bitmap描画で非常に困っています。
なんとか表示はできたものの、

1:パレット通りの色で描画できない
2:Bitmapファイルの特定の矩形だけを選んで描画できない

という壁にぶちあたっています。
これらはTBitmapのプロパティをいじるだけで実現可能でしょうか?
339名前は開発中のものです。:03/08/16 09:58 ID:HfeVoYbs
0: http://www.google.com/search?sourceid=navclient&ie=UTF-8&oe=UTF-8&q=Indy+Delphi
1: Bitmapの色深度確認しる
2: BitBltでも使っとけ
340進可 ◆Sinka1my5k :03/08/16 13:39 ID:Jz6tipxo
質問です。
ジョイスティックの入力を調べるには
やはりダイレクトXを使わないと難しいのでしょうか?
ヘルプを見まくったりぐぐったりしたのですが
どうしてもDelphiだけでのやり方が見つからなかったんで。
341夏厨:03/08/16 14:55 ID:01BjsKnm
>>339
ありがとうございます!

・・・え、英語だ・・・・Indyっていうのはイイヘルプみたいなものなのかなぁ・・・?

それで、BitBltを調べて使おうとしているのですが、どうにも上手くいきません。

BitBlt(Form1.Canvas.Handle,
0,
0,
64,
32,
BitmapA.Handle,
0,
0,
SRCCOPY);

こういう使い方であっていますでしょうか・・・?
デバイスコンテキストっていうのもかなりチンプウカンプンです。
画像すら表示できないので、色深度についてはまた後で調べてみようと思います。
342名前は開発中のものです。:03/08/16 17:46 ID:2NuVBMkb
>>340
http://forgamedev.zombie.jp/uploader/up1/img/068.zip
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_joystick_reference.asp

uses MMSystem
JoyInfo: TJOYINFO; //TJOYINFOEXも使えるにょ
joyGetPos(JOYSTICKID1, @JoyInfo); //JOYSTICKID1かJOYSTICKID2か使えないにょ

これでわからなかったら己の無知を呪いながら聞くがいいにょ
343進可 ◆Sinka1my5k :03/08/16 18:10 ID:KtA/L0dI
>342

ありがとうございます。くぅぅ英語かぁ。

>068.ZIP
うちのXPだとキーボードの上下左右でしか反応しませんでしたけど・・・

いやまてよ。つまり下のuses MMSystem以降の文を適したところに
入れてやればジョイスティックで動くということかな?

なんとか努力して学習してみます!
344名前は開発中のものです。:03/08/16 18:47 ID:KtA/L0dI
いや待てよ待てよ。なんとなく判ってきた。
UNIT1の中でujoypadを呼び出して、そこでMMSystemを呼び出して、ってことか。
とりあえず、FalseとTrueのトラップは回避しました。
しかし、まだなぜか入力反応が妙だ。
もちっと頑張ってみます。
345名前は開発中のものです。:03/08/16 19:17 ID:2NuVBMkb
http://forgamedev.zombie.jp/uploader/up1/img/042.lzh
とりあえず動くソースが欲しいならうぷろだの初期を乞食のように漁るがいいにょ
346夏厨:03/08/16 22:17 ID:y2Q/T/Cw
すいません自己解決いたしました。
BitBltは転送するだけで描画はしてくれないんですね。
Repaintしたら描画されました。ハンドルの指定もちょっと間違えていたようです。

またまた質問なのですが、Timerを使ったときにTransparent を True にしてImageをRepaintすると、背景は見えるのですが手前に描画した絵がちらついてしまいます。
これはいった何故なのでしょうか?また、どうすれば解決できるのでしょうか?
347進可 ◆Sinka1my5k :03/08/21 00:40 ID:wc8mSyGv
JOYスティック、自分で理解しようとしましたが、さすがに無理ですた。
九九を覚えてる最中に因数分解に挑戦するようなもんでした。

42番のファイルはうまく動かなかったので、過去のファイルをあさってみることに
順々に調べていって、38番のファイルでヒットしました。
似たようなプログラムでも色々やりかたが違ってて驚き。

なんとかこれで前に進めそうです。
副産物でTForm1.AppIdleでのループも覚えたりして、色々収穫ありました。
感謝です。
348名前は開発中のものです。:03/08/30 10:54 ID:QUFz2/FK
っていうかDirectXの方がレスポンスとか優れてるって聞くけどね
349名前は開発中のものです。:03/09/18 00:27 ID:reI1vnNj
QD3のチュートリアル「tutorial\DDSD\recording」をコンパイルしてみました
が、実行したら即終了してしまいます
上手く動いている人はいます?
350名前は開発中のものです。:03/09/20 16:34 ID:tFWmTUD8
DirectDrawを使って画像を表示したいんだけど。Cでは出来たのに
C++だと出来ないYp

誰か教えてぇ
351名前は開発中のものです。:03/09/22 08:12 ID:kr+6AEZN
俺HSPからdelphiに移ってきた者だす。
ユーザーからの入力待ちで処理を中断する時、HSPならloopにawaitかけてユーザーからの
入力を待ったんだけどdelphiでもこんな感じであってる?
352名前は開発中のものです。:03/09/22 15:37 ID:Tr97UI59
>>351
Win32GUIならあってない
ゲームなら好きにしろ
353名前は開発中のものです。:03/09/22 20:34 ID:0Tb3nG/S
>>351
OnKeyPressなどのイベントをご利用ください。
ゲームデバイスならTTimer使って一定時間毎にデバイスチェック、変化があったらメインフォームに
PostMessage

(´-`).。oO(処理待ちにawaitなんて使うなよ‥)
354名前は開発中のものです。:03/09/23 09:10 ID:XOcUgmqB
TTimerより、OnIdolの方がよくない?
355名前は開発中のものです。:03/09/23 15:53 ID:XWt8Ejvl
入力待ち<>処理待ち
356名前は開発中のものです。:03/09/24 14:48 ID:Enrz8E2L
>>354
>OnIdol
気長なイベントだな
357名前は開発中のものです。:03/09/24 22:02 ID:CyIIxzpF
mp3かoggをBGMとして使いたいのですが、使えるものが見つかりません。

今まで試したのは、VBMP3.dll、AlphaOgg、MP3Playerです。
VBMP3は、mp3再生開始時にプチノイズが入る。
AlphaOggは、初期化時に0.8秒ほどの長いノイズが入るのが避けられない仕様との事。
MP3Playerは、ライセンスがGUN?とかで、これを使うとゲームのソースを公開しなければならなくなるので絶対に嫌。

VBMP3とAlphaOggのノイズは、Prodigy192、YMF744の安物、オンボードの3環境で共通して起こったので、
環境依存の問題では無いと思います。

MP3かoggを再生出来るものがありましたら、教えてキボンヌ……お願いします。
358名前は開発中のものです。:03/09/25 07:01 ID:3ex/NYQi
ドライバの問題じゃないよな。

標準のメディアプレイヤーで再生した後に、効果音を再生したりすると、
以前のバッファのデータが残っていてノイズのように再生されることがある。
うちでも普通に起こる問題だ。
WDMドライバの問題らしく、
Windows2000,XPで起こって、Win98で起こらなかったリする。
359名前は開発中のものです。:03/09/25 07:02 ID:3ex/NYQi
で、どうしてもそのソフトの問題だと思うなら、
DirectSoundのストリーミング再生とOggVorbisのDLL使って、
自分でルーチンを組んで再現するか確かめてみろ。
360名前は開発中のものです。:03/09/26 21:22 ID:Jn+WpGW2
>>358-359
oggの方はドライバの問題じゃないです。
既知の不具合に仕様として記述されていますし。
これ以外にogg再生できるものは検索しても見つかりませんですた

VBMP3はドライバの問題かもしれませんねー。
けれども、3環境2PCで再現されたので、多分関係無いと思います。
Win98seでも起こりましたので、XP依存の問題でも無いようです。
製作者の方も、バグを治しきる能力が無いと宣言なされて、投げてしまっていらっしゃいますし・・・

>自分でルーチン組んで
無理です。
組んでくれませんか?

delphiで作られたゲームを色々落としてみたのですが、
BGMにoggやmp3が使われてるものは1つとして見つかりませんでした。
どなたかご存知ありませんかね?
361名前は開発中のものです。:03/09/27 12:11 ID:NjCbtZ6w
>>360
ttp://www.un4seen.com/bass.html
これでたいていのファイルは再生できる。
362名前は開発中のものです。:03/09/27 12:58 ID:dtgExiI0
>>357
開発者ならGPLぐらい覚えておこうな。
ちなみにOggを使うほうがいいぞ。Oggなら64kbpsでもMP3の128kbpsと同じクラスの音質がでる。
363名前は開発中のものです。:03/09/27 18:36 ID:gqfzYXr1
>>361
助かりました!
DLL同士での下位互換はまったくないみたいで、
手当たり次第にダウンロードして動かした結果、4回も再起動させられましたが、
DLLのバージョンさえ間違えなければ、凄く安定していてCPU使用率もAlphaoggよりも低く、ウマーです。
DSDDとAPI直接の両方からWAVを再生の実験をしてみても、
まったく干渉しあう事なく綺麗に再生されました。

単純な再生であればかなり直感的で短いコードで済むようなので、
マニュアルを読み通せる程の英語力は無い漏れでも、
ゲームのBGMという目的であれば使いこなせそうです。
本当にありがとうございますた

>>362
プログラム始めてまだ一週間経っていないんで・・・
感染する露出狂組合みたいなもんだって事は理解しています。

もちろんogg優先で探していたのですが、見つからないのでmp3で妥協を、と思っていたのですが、
BASSはまったく同じコードでoggとmp3が再生できてしまうので、問答無用でoggを使うつもりです。
364名前は開発中のものです。:03/09/29 00:48 ID:2bc2K5Vv
>>362
そう単純でもないんだけどね。
低スペックのマシンを考慮すると、OGGはメモリ消費とかCPU負荷がちょっと…
365名前は開発中のものです。:03/10/08 00:22 ID:lZ1mVaVA
確かに、webで手に入るゲームで、かつDelphiで、OggVorbis使ってるのは少ないかも。

うちでは今のプロジェクトで使ってるまつ。
過去作品も、MIDIからOggに乗り換え予定。

PCだし、ゲームに使う分にはメモリ消費は誤差の範囲だけど、
CPU負荷は結構でかいね。
OggVorbis対応にするために、+200MHzほど動作環境引き上げますた。

366名前は開発中のものです。:03/10/23 18:41 ID:Du/1IZNH
Quadruple Dを使った解りやすい解説サイトってないですか?
367名前は開発中のものです。:03/10/30 16:15 ID:x7sfAWDS
>>366
いまんとこなし。

age---
368進可 ◆Sinka1my5k :03/10/31 01:51 ID:j4xQWGCG
すいません、どうしても判らないので質問。

裏画面を塗りつぶしてからイメージリストのイメージを描いて
それから表画面に描画、というやりかたなのにちらつきが発生するんですが
これは何が原因なのでしょうか?

プログラムとソースは以下です
procedure TForm1.FormCreate(Sender: TObject);
begin

uraGa.Canvas.Pen.Color := RGB(0,135,64); //線の色を緑に
uraGa.Canvas.Brush.Color := RGB(0,135,64);//塗りつぶしも緑に

uraGa.Canvas.Rectangle(0,0,137,97);

tagnum := 0;
omoteGa.Canvas.Draw(0,0,uraGa.Picture.Graphic);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
tagnum := TButton(Sender).Tag;
Caption:=IntToStr(tagnum);

uraGa.Canvas.Rectangle(0,0,137,97);
ImageList1.draw(uraGa.Canvas,tagnum*32+8,0,1); //フィールド描画
omoteGa.Canvas.Draw(0,0,uraGa.Picture.Graphic);
end;

ソース
ttp://forgamedev.zombie.jp/uploader/up5/img/237.lzh
369名前は開発中のものです。:03/10/31 23:58 ID:Da7jxd1w
自己解決しました。DELPHI、ちらつき、でぐぐった結果。

>FormCreate の所で Form1.DoubleBuffered := True; としてダブルバッファ
>を有効にすると、ちらつきは抑えられます。 メモリ食うけど。

でした。試してみたらちらつきが見えなくなりました。
370名前は開発中のものです。:03/11/01 11:57 ID:rjCTGMG1
MMTimerを使って乗り物シミュレーションの計算処理をしているんだが、
(必ず秒間30回やらないといけない)
HT対応のPentium4でプログラムが突然死するという報告を受けてしまいマスタ・・・。

HTを切ると正常になるようなので、別スレッドで動いてるというコイツがいちばん怪しい・・・
普通にtimeSetEventしてるだけなのにヽ(`Д´)ノ ウワーン

愚痴ってスマン(´・ω・`)
371名前は開発中のものです。:03/11/01 12:14 ID:joTlhnl6
>>370
timeSetEventじゃなくて別スレッド内の処理に問題があるんじゃないのか
372名前は開発中のものです。:03/11/01 12:43 ID:G9FGjVhP
同期処理や排他処理に問題があると見るのが普通だな。
HTだと本当に同時にプログラムが動くので、シングルCPUのときに発現しなかった
潜在的な問題が起きてしまったんだろう。
373370:03/11/02 00:05 ID:hZhBKi/R
ソースをくまなくチェックしてたら、異なるスレッドから同じVCLにアクセスしてる
部分が3行ほどあった・・・
非HTだと全く気づかなかったのに、なかなかシビアだHT _| ̄|○

もしかして、スレッドAで大域変数に書く&スレッドBでそれを参照するっていう動作も
全部書き直さないとだめかな・・・。
374名前は開発中のものです。:03/11/23 10:23 ID:efqhsJFJ
Delphiマガジンの連載がまとまって書籍になりましたが、
内容はどういうのものなんでしょうか?
雑誌本体もネットで知ったので、注文するのに躊躇してます。
375名前は開発中のものです。:03/11/23 23:08 ID:/agUAN/W
376374:03/11/24 23:20 ID:HhVX+ghW
>375
情報感謝〜。
なんか、期待してたのとは違う・・・
これならネット調べまくった方が良いカモ。
377名前は開発中のものです。:04/01/09 21:24 ID:XF/BcCFo
GLDPNGでαチャンネル付きのpngを読み込んで、
そのままCopyRectで重ねて表示すると、ちゃんとブレンドされて表示されますか?

どこが悪いのかわからずに困り果てています。
TBitmapに流し込んだ時点で透過情報が失われてしまうのか?とか疑ってるんですが……
378名前は開発中のものです。:04/01/10 08:08 ID:DVbbPg8i
>>377
TBitmapには、αブレンド描画機能はなかったはず
GLDPNGがもし気の利いたライブラリなら、α描画用のルーチンがついてると思うよ

今時αブレンドやるなら、DirectGraphicsかな(さすがに、自前描画は・・・。GDI+は重いし・・・)。
379名前は開発中のものです。:04/01/10 09:55 ID:TjmjUk25
>>377
ドキュメントよく嫁
>e.アルファチャンネル
>TGLDPNG ではアルファチャンネルを扱うことが出来ます。ただしあくまで読み込みや保存のみで画像をアルファチャンネルを使っての表示とかは出来ません。
380名前は開発中のものです。:04/01/10 11:43 ID:+oVKi0qB
>>378
ありがとうございます。
GLDPNGはpng画像を読み込んでTBitmapに格納するライブラリみたいなので、表示関係とかは無いみたいです。
今検索してみたら、ひとりごこちというページが見つかって、QDというのがあったので、
それを使ってDirectGraphicsにチャレンジしてみます。かなり大変そうですが(^^;

>>379
そこは読んでいたのですが、TBitmapでαブレンドが出来ると思っていました。

二人ともありがとうございました。成功したらupします。
381名前は開発中のものです。:04/01/10 20:24 ID:+oVKi0qB
8時間くらい弄り続けたけど無理だった__| ̄|○
なんかすっげー無駄な時間過ごしてしまった気分。

普通にゲーム作るのにはアルファブレンドなんて必要ないのかな?
透過色を作ってくりぬきとかでやるみたいだけど、
それよりも簡単に出来そうで応用も効きそうだったからやろうとしていたんだけど、
見当違いだったのか、漏れがとことんあほすぎるだけなのか……
GGXみたいなのが作りたくて、まあ無理だからとりあずシューティング作ろうとしてるんだけど。
382名前は開発中のものです。:04/01/10 20:25 ID:+oVKi0qB
Quadruple Dのインストールト、GLDPNGのインストール?と、
まあその2つだけは出来たから無駄では無いか。夕飯食べよう。
383名前は開発中のものです。:04/01/20 07:07 ID:JRSRDG7R
当方del_6パーソナルを使っています。
コンポーネントを作成したいと思ったのですが
下記の書籍はパーソナルでのコンポーネント開発に
適しているか教えていただけないでしょうか
よろしくお願いします。

ttp://www.amazon.co.jp/exec/obidos/ASIN/4844317466/ref=pd_bxgy_img_2/249-9209369-1220331
384名前は開発中のものです。:04/01/20 15:38 ID:SUFsxYfi
>>383
ム板で聞いた方がいいと思われ。
もっとも、普通はヘルプの開発者ガイド見れば十分な気がするが‥‥
385名前は開発中のものです。:04/01/21 01:02 ID:qkkQT5a9
>>383
同じ作者さんの「Delphi Graphic Secrets」あたりが気に入ってるのなら十分に
買う価値は有ると思われマシ。

ただ個人的な意見では「コンポーネント作成」の「入門書・手引き書」としては
チと難し過ぎ&マニアックではないかと・・・。

入門書的なものとしては「実践 Delphiコンポーネントプログラミング」
(秀和システム)あたりがワタシとしてはオススメです。
386383:04/01/21 09:19 ID:wd1TdNXX
レスありがとうございます。
大変参考になりました。早速その書籍を注文することに
します。
387名前は開発中のものです。:04/01/22 00:20 ID:Yykup+yU
QuadrupleDのサンプルをいろいろいじってるんですが、
これってFormの上に直接描画しかできないんでしょうか?

たとえばターンベースSLGのようなものを作りたい場合、
操作系のボタンなどはTControlで済ませたいのですが、
そうするとPanelの上とかに配置できたほうが便利です。
どうすればいいですか?
388名前は開発中のものです。:04/02/02 01:08 ID:tEb92+er
プログラム板から誘導されてきました、お願いします

動きの激しい(シューティングなどの)ゲームを作るとちょっと描画がもたつく
感じがするのですがDelphiで高速な描画というとどういった方法がセオリーですか?
今はImageList.Drawを使っています
389名前は開発中のものです。:04/02/02 03:15 ID:2aYUFD/w
>>387
QD213を使ってるけど、TButtonとかはそのまま置けるよ?

>>388
DelphiX:
http://www.yks.ne.jp/~hori/
Quadruple D:
http://www-fu.magma.ne.jp/~hayase/dddd/index.html

Delphiで使うDirectXのコードに関しては直接的なサンプルが少ないので、
Cとかを知ってるならそっちのほうがいいかも。
390名前は開発中のものです。:04/02/02 22:02 ID:56YqBdjm
4つのスピーカから別々に波形合成した
4つの音をばらばらに出そうと考えています。
ところが、なぜか左右のスピーカに
ミキシングされてしまい困っています。
(FL+BLと、FR+BRとなって、左右で鳴る)

ttp://www.microsoft.com/whdc/hwdev/tech/audio/multichaud.mspx
ここのMulti-Channel 16-bitを参考にして
WAVE_FORMAT_EXTENSIBLE設定で、waveOutOpenしたのですが、
データを8バイト=1セットで作成し、FL,FR,BL,BR別々に
鳴らそうとしてもFLとBLで(FRとBRも同様)同じ音になります。

dwChannelMaskが0x33なのを色々変えると、スピーカの鳴るものも
変わるので、なんとなくは反応していそうなのです。

ttp://www.tsp.ece.mcgill.ca/MMSP/Documents/AudioFormats/WAVE/Samples.html
SB Liveの4スピーカ設定にし、診断でも4つの
スピーカが別々に鳴るし、ここの4chデータ
WAVE_FORMAT_EXTENSIBLE filesもちゃんと鳴るので、
環境の設定は大丈夫だと思います
391名前は開発中のものです。:04/02/17 18:27 ID:dkJ1RZI2
解像度を変える方法を教えてください。
下のサイトの方法ではwin98なら解像度を変えることができたのですが
win2000だと解像度が変えられません。

参考に下サイト↓
ttp://forum.nifty.com/fdelphi/samples/00804.html

実際に解像度を変えるプロジェクトを作成してUPしてみました。↓
http://gamdev.org/up/img/246.zip
392名前は開発中のものです。:04/02/17 19:13 ID:OJg+lAkk
>>391
DM_DISPLAYFREQUENCYを指定するの止める。

DevMode.dmFields := DM_PELSWIDTH or
 DM_PELSHEIGHT or
 DM_BITSPERPEL;


もしくは、ちゃんと垂直同期周波数を指定して使う。
DevMode.dmDisplayFrequency := 85; // 垂直同期周波数 85Hz


でも、DirectXのSetDispalyModeの方が便利じゃない?
393391:04/02/17 20:09 ID:dkJ1RZI2
教えていただいた通りにやりまして、
無事解決できました。ありがとうございました。
394名前は開発中のものです。:04/02/17 20:30 ID:ERbEdBD/
>>391
ゲームなどの一時的な切り替えの場合は>>392の言うとおり、IDirectDraw::SetDisplayMode使ってください。おながいします。
395マルチポストは人間として最低だ:04/02/17 23:34 ID:nCmjfvwG
マルチポストは人間として最低だ
396391:04/02/18 00:01 ID:4t4/ZNaZ
>395
ばれましたか、以後きおつけます。
 
>394
DelphixでSetDisplayModeを使ったフルスクリーンを試してみます。
397名前は開発中のものです。:04/02/18 01:58 ID:Xd/EtnMJ
>>396
軽々しく嘘をつくな
匿名なのをいいことにやったんだろ?
言われなかったら黙ってるつもりだったんだろ?
「きおつけます」って何だ?「気をつけます」のタイプミスなのは分かるが
どうして「やりません」と言わない、言えない。
どうせまたやるんだろ?
人間として最低だ
ただ一つ良かったのは、マルポ先に解決を報告したこと。
ま、当然すべき後始末なんだが、それすらできない馬鹿が多くて善行だと錯覚してしまう。

↑こんな風に↑人(>>391)を信じられない人↑にはなりたくないね。
398391:04/02/18 03:17 ID:4t4/ZNaZ
>397
おっしゃる通りです。
「気をつけます」ではなく「二度としません」と述べるべきでした。
まして、タイプミスをするなど大変申し訳なく思います。
今回の件で自分がいかにネットマナーにたいして大変甘い考えだったのか
再認識いたしました。
今後はこのような事が二度と無いよう気をつけます。
delphi板の皆様および397様、申し訳ございませんでした。

399名前は開発中のものです。:04/02/18 14:24 ID:PdVBbWKT
そのくらい軽く流せる大人に、私はなりたい
400名前は開発中のものです。:04/02/18 18:10 ID:M8/odoQA
まじめに答えすぎじゃー
401名前は開発中のものです。:04/02/18 18:40 ID:UOYAJ0jq
402395:04/02/18 23:55 ID:3+LDjO65
ツッコミ書こうか迷ったけど、日付を見て突っ込んだ。
「こっちに書いたけど、しばらくしてもレス付かない…困ったなぁ…」って
感じじゃないから。
「こっちにホイっと。こっちにもホイホイっと」って感じ。
一番悪質なのは、「時間も同じで文面もコピペのくせに、HNだけ変えてる」とかな。
あーゆーのは人間として根本的なものが欠けてると思う。
403名前は開発中のものです。:04/02/19 02:06 ID:uxu8pHRJ
>>402
それはネット社会でのマナー。
一般人はそう思わないかもしれない。
世の中には、他人を利用するだけの人や、人の手柄を横取りする人や、
粗暴な人や、馬鹿やキチガイもいるの。
404名前は開発中のものです。:04/02/19 04:48 ID:zZjVNwu8
> 粗暴な人や、馬鹿やキチガイもいるの。
403が当てはまるな
405名前は開発中のものです。:04/02/19 05:22 ID:6U2dcXmj
>404
その根拠は?
406名前は開発中のものです。:04/02/19 06:21 ID:rXiCN6cG
煽りを受け流すのもネットマナーですよ?
407名前は開発中のものです。:04/02/19 06:41 ID:zZjVNwu8
>>405
「馬鹿」「キチガイ」
これらの言葉を使っているあたりが。
408名前は開発中のものです。:04/02/19 07:55 ID:l5GZNq1M
メタ議論するときは、名前に「メタ議論」て書いといて下さい。
ローカルであぼーんできるので。
409名前は開発中のものです。:04/02/19 13:09 ID:X+Q9VO4s
>>397-408
議論はDelphi-MLでやれ
410名前は開発中のものです。:04/02/20 00:49 ID:tzgUlsN4
某掲示板で「内容同じ・HN変え」がつっこまれてる。
馬鹿だねぇ…。
本当にマルチポストする馬鹿って、どうしようもないね。
411名前は開発中のものです。:04/02/20 03:14 ID:UoZnuZJu
情報を効率よく手に入れる方法が
馬鹿とは思えんがね。
くわて6年間ネットをやってきたがマルチポストに
迷惑をこうむった事も不快に思ったことも一度も無い。

どうもオタクっぽい人間は細かいルールを勝手に作るのが好きだ。
こういった意味の感じられないルールも、そういう体質から
産まれたものじゃないかな。
412名前は開発中のものです。:04/02/20 03:16 ID:tzgUlsN4
>>411
釣れるといいですネ。
マルチポストは馬鹿ですヨ。
413411:04/02/20 03:21 ID:tzgUlsN4
「オレ以外が釣れるといいですネ」って意味ネ。
「馬鹿」って言葉が理解出来ないなら「マナーが覚えられないカス」って
言えば分かってもらえるかな。
自己中はクズ。
414名前は開発中のものです。:04/02/20 03:47 ID:+CHepr4l
>>411はスパムメール送信ソフトでも作ってるんだろ。


415名前は開発中のものです。:04/02/20 03:52 ID:+CHepr4l
411の文を良く読んでみたら、
他人が不快に思う事でも自分が不快でないなら何をやってもよい
と言っている。
まさしく、>>403に出てくる典型的なウンコ。
416411:04/02/20 04:51 ID:UoZnuZJu
まぁ、落ち着いて。
とりあえずマルチポストの何が迷惑なのか
言ってみ。

それと413は勝手に411と名乗らないようにw
417名前は開発中のものです。:04/02/20 05:21 ID:aZ5HFCjV
ウンコには理解する脳みそ足りない。

418413 ◆2imxiNG9Co :04/02/20 06:40 ID:Vy8XKunq
本当だ。間違えた(藁
まぁ、いくらマナー違反だっつっても、理解出来ない人はいるだろーから
これ以上はとやかく言わんけどな。
人それぞれっと。
419名前は開発中のものです。:04/02/20 06:58 ID:zrfXEhKY
ウンコの例。

【著作権】オープンソースソフトを自社製として無断で販売、サポートは作者に丸投げ
http://book.2ch.net/test/read.cgi/bizplus/1077211924/l50
420名前は開発中のものです。:04/02/20 06:58 ID:bWQESw9V
まー、マルチポストだとレスつけても、質問者が書いたこと忘れて
反応なしが多くてアホらしくなることはあるが、別に迷惑じゃないわな。

自分がよく見てる場所で、同時に同じ質問がされても
気分が悪いだけで、迷惑じゃない。

あえて迷惑だと言うなら、「マルチポストに関する議論」が出てウザイことかな。
goto論争みたいなもん。
# あ、そりゃ十分迷惑か
421名前は開発中のものです。:04/02/20 08:26 ID:O3GxsjmG
>419

それ、すげーウンコだな。
422名前は開発中のものです。:04/02/20 10:10 ID:0ibh4Ku2
マルチポストは質問者に対して失礼だと思うんだが。
「お前らに質問しても分かるかどうか怪しいからな。他の場所でも質問しちゃろう」
と受け取れる。
それから事後報告が無い場合が多い。あっても
「他の場所で解決しました。ありがとうございました」
アホか。掲示板はそいつのためのものじゃない。
次に来た人が同様の問題を抱えていた場合参考にするっていう掲示板の大きなメリットが無くなってしまう。
423名前は開発中のものです。:04/02/20 11:50 ID:qvBB9Qrs
偶然違う者が同じ質問しただけかもしれないじゃないか
証拠もなしに疑うのはイクナイ(・A・)
424411:04/02/20 16:13 ID:UoZnuZJu
>422
という処置をして、解決したのかまで報告すれば
掲示板のメリットもたもてる。
要はマルチポスト自体よりも、その後のケアに問題があるのだと察する。
だがそこまでキチンとしたケアしている人は少ない。よって
マルチポスト=悪い と見られるのもしょうがないのかも。

>419
同じくそれ酷い。

>423
論点がズレています。確実にマルチポストであることを前提としていますから。
425411:04/02/20 17:10 ID:UoZnuZJu
誤)・・・という処置をして、解決したのかまで報告すれば

正)・・・どういう処置をして、解決したのかまで報告すれば
426名前は開発中のものです。:04/02/20 17:35 ID:oc6CLVP1
友達に「教科書忘れたから貸して」とか言われて
カバンから教科書取り出したら
もう既に友達が他の人(周辺の)から教科書借りてて
「もういいよ」とか言われたときは少しむなしかったよ
お前な、俺に教科書貸してって言うたんちゃうんかと
(´・ω・`)

人に頼みごとしておきながら、「解答者の解答者による質問者のための行為」を無駄にしかねない行為をするなよ。
「人のために動いたら、『その頼みごとをした当事者によって』その努力は無駄になった」
それが気分のいいものであるはずがない

>>423
一字一句違わない文章が同日ほぼ同時刻に投稿されているのを見て、そう考えるのはおかしい。ID同じならなおさら。
427名前は開発中のものです。:04/02/20 18:00 ID:d+j0t2gZ
プログラミングとは関係ない。他スレ逝ってこい!

っと言ってみるテスト♪
428名前は開発中のものです。:04/02/20 18:04 ID:4sdDAPlF
JEDIのヘッダだけで簡単にDirectX対応アプ作れんのに
なんでわざわざラッパー使うの?
429名前は開発中のものです。:04/02/20 18:04 ID:yG/sBjWu
> 一字一句違わない文章が同日ほぼ同時刻に投稿されているのを見て、そう考えるのはおかしい。ID同じならなおさら。

同じ疑問を抱いた第三の人間によるコピペならどうなんでしょう

っと煽ってみるテスト(おんぴゅう
430名前は開発中のものです。:04/02/20 18:57 ID:X7y9rlXF
>429
1:事実に対して仮定を持ち出す
2:ごくまれな反例をとりあげる
431名前は開発中のものです。:04/02/20 19:00 ID:oc6CLVP1
>>429
同時期に二人の人間が同じ疑問を持ち、二人とも2chへ向かい
一方が書いた文章を他方が他スレや他板にコピペするという「意味不明な行動」に走る
可能性をどの程度と考えますか?

っと乗ってみるテスト
432413 ◆2imxiNG9Co :04/02/20 23:09 ID:06twPdpI
>>423
それぐらい、見たら判別つく。
コピペだから言ってんの。

ちなみに、件の場所は今のところ放置。
ヤツはもう違うHNで別人になりきるつもりだろうな…。
433413 ◆2imxiNG9Co :04/02/20 23:17 ID:06twPdpI
と、思ったけど…。
一方は消したようだな。

ゲームプログラミングに関係無ない話題を広げてしまって、申し訳ない。
434名前は開発中のものです。:04/02/20 23:50 ID:H+nxhdTG
太閤立志伝2で、安土城の屏風を作れと命令されて、
二人の絵師に依頼すると、二人目に
絵師「二股をかけるとは〜殿もお人が悪い」
主人公「なんじゃ知っておったのか」
となる。
435名前は開発中のものです。:04/02/21 00:37 ID:SiNIoI+2
太閤立志伝2てDelphi製?
436名前は開発中のものです。:04/02/21 09:10 ID:6FItl7or
PEiDとかのファイルスキャナで調べてみれば?
437名前は開発中のものです。:04/02/22 22:32 ID:kS04/uuK
>>387
こんな感じでいいのか?
http://gamdev.org/up/img/254.lzh

var
FLastPP:D3DPRESENT_PARAMETERS;
begin

FLastPP:=DG.PresentationParameters;
FLastPP.hDeviceWindow:=Panel1.Handle;
DG.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, Panel1.Handle, D3DCREATE_SOFTWARE_VERTEXPROCESSING, FLastPP);



ついでにOpenGL(delphi3dより)
http://www.delphi3d.net/download/glpanel.zip
438名前は開発中のものです。:04/02/22 22:50 ID:UwSGDqYF
glsceneはどうなんですか?
コンパイルして実行してみた限りではDemoはすごいのですが・・・・
ちなみにコンパイルするにはソースファイルのフォルダをたくさん
ライブラリパスに登録してやらにゃあいけませんネ。
439名前は開発中のものです。:04/02/23 00:51 ID:LzK/RTtg
ソースファイルを全て一つのフォルダにするとわけわからんなってウマー
440名前は開発中のものです。:04/02/26 04:06 ID:POoWNNj0
文字列データをバイナリ形式にして
ファイルに保存する方法を教えてください。
441名前は開発中のものです。:04/02/26 05:32 ID:Tqmab3q1
バイナリ形式(?)と文字列データ(?)の違いとは何ぞや。
442440:04/02/26 10:55 ID:POoWNNj0
要はTxtファイルじゃなくてバイナリで保存したいと言うことです。
ヨロシコ
443名前は開発中のものです。:04/02/26 11:38 ID:Yp6cgP+C
ますます意味がわからんねぇ。
バイナリエディタでTxtファイル開いて味噌。自分の間抜けさが分かるから。
444441:04/02/26 23:07 ID:7p4E82A5
だから「婉曲表現」でレスしたのに…。
最初から「拡張子変えて保存したら?」とでもレスした方が良かったかな…。
445440:04/02/26 23:11 ID:POoWNNj0
バイナリ形式にすれば書き出したデータの内容を
隠ぺいできるかと思ったのですが、かんてぃがい?
446名前は開発中のものです。:04/02/26 23:16 ID:HWfTh7+o
うん
447名前は開発中のものです。:04/02/26 23:20 ID:7p4E82A5
>>445
どこまでマジなのか知らんが、おもいっきりかんてぃがい。
例えリソースにしたって、見ようと思えば見れるし。
そこまで見たいデータなのかは知らんが。
448名前は開発中のものです。:04/02/26 23:25 ID:+L5Cn9t9
なんだ暗号化か。
449名前は開発中のものです。:04/02/27 10:43 ID:5szJsLsb
あれだろ数値をバイナリで保存したら
変なボツボツで暗号化されたー
と思ってるんだろう
450名前は開発中のものです。:04/02/28 03:21 ID:Sks+whtv
16進になってるのをみて
すげー。わけわかんねー。隠蔽できたー
ってかんてぃがいしてるだけ
451名前は開発中のものです。:04/02/28 19:17 ID:9PWIlr3I
で、バイナリで保存する方法は?
452名前は開発中のものです。:04/02/28 19:59 ID:WIT3FSpM
TFileStream
453名前は開発中のものです。:04/02/28 20:05 ID:avn1ba7s
>>451
その前に暗号化しないと意味ねぇだろうが。
まだ分からんのか。
454名前は開発中のものです。:04/02/29 05:12 ID:Jr/TWgSx
>>441〜453
勉強になったよ。あんがと
455名前は開発中のものです。:04/03/04 22:33 ID:OK+1fNwX
文字コードを数値のままテキストとして保存すりゃ、
テキスト形式だが、それなりに隠蔽できるかもな。
単純な暗号化よりかえって気付かんかも知れん。
むしろそのままのデータでもないのに解読しようとする香具師には
何をどうしてもほぼ無駄なんだが…

激しく遅レスか、スマソ
456名前は開発中のものです。:04/03/07 07:46 ID:izXAOVj3
GLScene の話題は、どこですれば良いですか?
インストールできずに困ってます。

GLScene
http://glscene.sourceforge.net/index.php
457名前は開発中のものです。:04/03/07 08:34 ID:y2Rk+vpk
>>456
\GLScene_v09b_Full\Delphi6
の内容を
\GLScene_v09b_Full\Source
へコピー

GLScene6.dpk
をダブルクリックし
インストール
を選ぶ

\Source
このフォルダとそのサブフォルダすべてにライブラリパスを通す
(一つのフォルダに全てをコピーしたほうが楽かも)

以上で終了
DGLをインストールしているとエラーがでるから要注意な
458名前は開発中のものです。:04/03/07 08:56 ID:9FNkdWMb
タクティクス系のゲームを作ろうと思っているんですけど、どこかに作り方とかありませんか?
本とかでもいいんで。
459名前は開発中のものです。:04/03/07 09:53 ID:CrECkpfn
>>458
タクティクス系って何?
460名前は開発中のものです。:04/03/07 09:55 ID:gggckolS
ない
461名前は開発中のものです。:04/03/07 10:00 ID:8RojeQXD
462名前は開発中のものです。:04/03/07 10:06 ID:izXAOVj3
>>457
ありがとう。
DEMO動いた。
463名前は開発中のものです。:04/03/07 11:44 ID:ilztA6EG
>>461
ロリコンのこと?
464名前は開発中のものです。:04/03/07 15:07 ID:9FNkdWMb
FFタクティクスみたいなのです
465名前は開発中のものです。:04/03/07 15:46 ID:aAwpNem/
midiではなくspiファイルを使いたいのですが
出来ますか?
466名前は開発中のものです。:04/03/07 16:12 ID:DH9RCA5T
467名前は開発中のものです。:04/03/07 20:35 ID:3Bo2Oh6X
>>464
FFタクティクスの特殊性を述べよ
468名前は開発中のものです。:04/03/08 11:24 ID:Kh6cSUpa
画面の色数を調べる方法教えてください。

↓の方法は駄目でした。delphiのバージョンかなぁ?当方Ver6です。
ttp://homepage1.nifty.com/MADIA/delphi/Win32API/kaizoudo.htm
469名前は開発中のものです。:04/03/08 11:50 ID:7dWom9+r
16bit ⇒ 32768色
24 or 32bit ⇒ 1,677万色
470名前は開発中のものです。:04/03/08 14:46 ID:R40QQ4eE
>>469
32bitは4億3000万色だよ
471名前は開発中のものです。:04/03/08 16:51 ID:k3wA0MVh
>>470
?
472名前は開発中のものです。:04/03/08 17:08 ID:fYMAdut1
>>470
Windowsのビットマップ勉強し直せ
473名前は開発中のものです。:04/03/08 20:57 ID:3AtrcbC/
>>470
むしろ2進数のお勉強からでしょう
474名前は開発中のものです。:04/03/08 21:47 ID:gzfiLnJc
今、ポンジャンゲームをつくっています!
基本部分は以下のようなクラス構成になったんですが、
どんなもんでしょうか?

//牌クラス
type
TTile = class
private
FKind: Integer; //牌の種類
FScore: Integer; //牌の点数
public
constructor Create(Kind: Integer; Score: Integer); //牌を生成
function Kind: Integer; //牌の種類を返す
function Score: Integer; //牌の点数を返す
end;

//牌山クラス
type
TWallTile = class
private
FPosition: Integer; //次に引く牌の位置
FNumber: Integer; //牌の数
FTiles: array[0..63] of TTile; //牌のセット
public
constructor Create; //牌山を生成
destructor Destroy; override; //牌山を破棄
procedure Shuffle; //牌山を混ぜる
function Pick: TTile; //牌を引く
function Position: Integer; //次に引く牌の位置を返す
function Number: Integer; //牌の数を返す
end;
475名前は開発中のものです。:04/03/08 21:49 ID:gzfiLnJc
//プレイヤークラス
type
TPlayer = class
private
FCall: Boolean; //リーチフラグ
FScore: Integer; //点数
FHand: array[0..7] of TTile; //手牌
FPicked: TTile; //引いた牌
FDiscarded: TTile; //捨てた牌
public
//procedure Pick;
//procedure Discard;
end;

//ゲームクラス
type
TGame = class
private
FScene: Integer; //シーン
FCount: Integer; //カウンター
FLeader: Integer; //親
FPlayer: array[0..1] of TPlayer; //プレイヤークラス
FWallTile: TWallTile; //牌山クラス
public
constructor Create;
destructor Destroy; override;
//procedure Dealing;
end;
476名前は開発中のものです。:04/03/09 16:49 ID:Aqhv4+QJ
どうしろっていうんだ
477名前は開発中のものです。:04/03/09 16:57 ID:E0fjz43S
形にこだわる奴ほど途中で投げ出しやすいよな
478名前は開発中のものです。:04/03/09 23:30 ID:7AV6KKGs
これだけ見せられて評価を迫られても
479名前は開発中のものです。:04/03/09 23:33 ID:89NMQiY1
>>474 >>475

クラスの構成について意見がききたかったので(^^;

メソッドはある程度できてるので。。。
480名前は開発中のものです。:04/03/09 23:56 ID:7AV6KKGs
まずポンジャンゲームってのを知らなかった
ルールもどんなゲームかもわからんので何も返事できん
↓知ってる香具師がんば
481名前は開発中のものです。:04/03/09 23:59 ID:A7mRD3LQ
えっ!?
お、俺?
↓…次のやつがんば
482名前は開発中のものです。:04/03/10 00:07 ID:L9clygDL
↓こんなゲームなんですが、、

ttp://jp.shockwave.com/games/classics/zipjong/zipjong.html
483名前は開発中のものです。:04/03/10 00:30 ID:sn5HAIYN
↓こっちだと思うんだが

ttp://www.geocities.co.jp/AnimeComic-Pastel/1988/2jannel2.html








FPlayer: array[0..1] of TPlayer; //プレイヤークラス
484名前は開発中のものです。:04/03/10 09:13 ID:h4g9EKMQ
「ポンジャン」は登録商標です
485名前は開発中のものです。:04/03/10 10:00 ID:h4g9EKMQ
>>470
32bitのうち8bitは透明(アルファ)だから24bitと色数は同じ
486名前は開発中のものです。:04/03/10 18:01 ID:RLfT0FMr
透明が増えて +1 











嘘ぴょん
487名前は開発中のものです。:04/03/11 21:19 ID:07HSix5v
ボタンを押すと効果音が鳴るようなものを作ったのだけど、実行ファイルを作ったとき、同じディレクトリに鳴らすwavを置かないとビープ音になってしまいます。
wav自体を実行ファイルに組み込む、またはwavの暗号化みたいなことはできるですか?
488名前は開発中のものです。:04/03/11 21:38 ID:E1o0wJiM
>>487
rc ファイルでプロジェクトに組み込み
実行時にTResourceStreamで読み出すがよい
489名前は開発中のものです。:04/03/11 21:38 ID:VIowVc9G
暗号化はできる。
おそらくリソースにすれば組み込むこともできる。
490名前は開発中のものです。:04/03/11 21:38 ID:MK/OyWfq
491名前は開発中のものです。:04/03/11 22:02 ID:07HSix5v
488-490
どうもありがとうございます。
トライしてみます。
492名前は開発中のものです。:04/03/11 23:19 ID:rW+aMWj1
トライしつづけろ
493名前は開発中のものです。:04/03/12 23:14 ID:Yb/Xp04R
ヨーダの言ってることは嘘だ
494名前は開発中のものです。:04/03/14 21:05 ID:U6N7NlFk
フォースが落ちてきていると思ったらそういうことか。
495名前は開発中のものです。:04/03/16 21:46 ID:SkmqZ/NX
だったら俺はあげるぜ。
496名前は開発中のものです。:04/03/19 00:01 ID:PRfbCbRV
Delphiで作った落ちゲーですっ!
http://takaishigeo.hp.infoseek.co.jp/index.html
497名前は開発中のものです。:04/03/19 00:10 ID:z33hohCO
>>496
宣伝すんなファゲ
498名前は開発中のものです。:04/03/19 08:14 ID:Wq5S3S5I
>>496

いや、一回氏ね!こんなので100円も取るのかよ!
お前、ヴァカだろ?
499名前は開発中のものです。:04/03/19 23:46 ID:5AqQu0v4
体験版とかないの?
500名前は開発中のものです。:04/04/12 01:50 ID:w6zbO8/e
>>490
487じゃないけど、いいサイト教えてくれてありがとう。わかりやすいね。
501名前は開発中のものです。:04/05/11 16:18 ID:0W4jmkMQ
こちらで、質問していいのか解りませんがDirectXについて質問です。

DirectX9でスプライトを表示したいのですがよく解りません。
DirectX9のヘッダはProject JEDIのものを利用しています。

d3dx9.pasの定義では
function Draw(const Texture : IDirect3DTexture9;
  const SrcRect : PRect; Center, Position : PD3DXVector3;
  Color : TD3DColor) : HResult; stdcall;

となっていますが、SDKのID3DXSprite.Drawメソッドとは定義が異なっており
どう置き換えて良いか解りません。

もう一点、ID3DXSprite.Begin 、ID3DXSprite.End も _Begin 、_End となってまして
そのままでは実行できませんでした。

SDKでは HRESULT Begin(VOID) ですが、d3dx9.pasでは
function _Begin(Flags : LongWord) : HResult; stdcall;

となってまして、Flags に代入すべき値が解りません。
どなたか、教えて頂けないでしょうか?

長文失礼しました。
502名前は開発中のものです。:04/05/11 19:16 ID:b4nQLOTY
>>501
>ID3DXSprite インターフェイス [ 0からのゲームプログラミング ]
http://www.plustarnet.com/aspil/Programming/ID3DXSprite.htm
>DirectX日本語ヘルプはsummerの変更が反映されていません
だそうです。
英語のヘルプとMSDNにはsummerの変更が反映されてるらしい
503名前は開発中のものです。:04/05/11 21:27 ID:oOihDDld
>>502
>英語のヘルプとMSDNにはsummerの変更が反映されてるらしい

あ、そうなんですか・・・
update summer 2003 日本語版は反映されてないんですか〜。
やはり英語ドキュメントにも目を通すべきでしたね。

ありがとうございました。
504名前は開発中のものです。:04/05/26 00:15 ID:6lvKtBmI
QuadrupleDに関して質問です。

TDGCaradのWindowModeメソッドを実行すると、
フォームのクライアント領域が(強制的に)変更されますよね。
WindowModeメソッドを実行した後で、
フォームのクライアント領域のサイズを変更すると、
画像もそれに伴って拡大されますが、少しぼやけてしまいます。
これをぼやけないで拡大する方法はありませんでしょうか。

具体的なサイズを述べると、320×240ピクセルの解像度の画像をそのまま拡大して、
640×480ピクセルのクライアント領域に表示したいのです。

D3DDeviceのSetSamplerStateメソッドあたりにこういう設定があるのだと思っていたのですが、
どう設定してもうまく行きませんでした。

よろしければご教授ください。
505名前は開発中のものです。:04/05/27 17:11 ID:3QjbMYRC
ttp://deliverer.s5.xrea.com/s_on_d/lecture_3_1.htm
ここで自機の紫色が透過されないのですが家の環境が悪いのでしょうか?
506名前は開発中のものです。:04/05/27 17:41 ID:SjuLQV0P
>>505
バイナリ走らせてみたけど紫は抜けてる
507名前は開発中のものです。:04/05/27 20:24 ID:3QjbMYRC
>>506
ありがとうございます。どうやら家の環境が悪いみたいですね。
508名前は開発中のものです。:04/05/29 21:16 ID:MB69G496
文字にアンチエイリアスを書ける方法を教えてください
509名前は開発中のものです。:04/05/29 22:13 ID:QEH9CnXY
この板のDelphiスレを全部漁ればきっと出てくる。
このスレにもあったと思う
510名前は開発中のものです。:04/05/30 05:02 ID:95+w6is6
じゃあもういいです!
511名前は開発中のものです。:04/05/30 11:11 ID:dMZGYkvU
なんだかよくわからないけど
  ここに拳銃おいときますね
    _,、__________,,,、
    `y__////_jニニニニニfi
    〈_フソ ̄フ ,=-_,,,,-┴─'
    //o /rて__/
   ,//三/ / ̄"
  〈。ニ___/
512名前は開発中のものです。:04/05/30 19:27 ID:lqG2p1F6
>>505
グラフィックボードとOSの種類を書いて!
QDの不具合情報は貴重なので

>>508
http://hp.vector.co.jp/authors/VA031660/

>>510
偽者乙

>>511
通報しますた
513名前は開発中のものです。:04/05/30 21:48 ID:95+w6is6
>>508
アンチェリフォントまとめ
どれがいいかは知らん

APIを使ってるのは一番下だけみたいだね
ほかはビットマップ引き伸ばし法らしい

TAlphaBitmap
ttp://www.geocities.jp/buin2gou2/delphi2/abitmap.htm

Graphics32
ttp://g32.org/

サンプル: "フォントを滑らかに"
ttp://forum.nifty.com/fdelphi/samples/01160.html

GetGlyphOutlineでアンチエイリアスフォント
ttp://hp.vector.co.jp/authors/VA031660/pages/other.html
514名前は開発中のものです。:04/05/31 16:10 ID:Xt7siV7V
95+w6is6は多重人格者ですか?
515510=513:04/05/31 17:37 ID:Rc7uKhr4
>>514
そうですが何か?
516505:04/06/02 01:31 ID:5YP19q1h
OSはWin2kで
グラフィックボードはわかりません。すいません。
517名前は開発中のものです。:04/06/02 19:39 ID:em7teL9A
わからない、だって?わかろうとしていないだけじゃないのか?
518名前は開発中のものです。:04/06/02 20:10 ID:cuz80DOO
>>516
DirectX診断ツール
http://genome2.hp.infoseek.co.jp/faq_dxdiag.htm

パソコンのメーカーと型番(保証書に記載されています)でも可
519名前は開発中のものです。:04/06/02 21:25 ID:3nyIDNrT
ズブの初心者ですがゲームを作りたくてDelphiを購入しました
Delphiの入門書でお奨めのタイトルありますか?
やる気はあるんでお願いします
520名前は開発中のものです。:04/06/02 21:53 ID:/JgjwjUd
とりあえずここ読んでからにしようや。

くだすれDelphi(超初心者用)その14
http://pc5.2ch.net/test/read.cgi/tech/1085239007/
521505:04/06/02 23:51 ID:5YP19q1h
>>517
すいませんです。一応自分でも調べてみたのですが全然解りませんでした

>>518
ありがとうございます。
多分これだと思います
Intel Corporation 810 Graphics Controller Hub
522名前は開発中のものです。:04/06/03 00:00 ID:0LqnWfwq
523517:04/06/03 20:24 ID:JyJN5bDC
>521
チップセットか。
えーと、IntelのHPでドライバを更新。
524名前は開発中のものです。:04/06/03 23:36 ID:rE0DM6qU
>>519
基礎からわかるDelphi6
http://www.amazon.co.jp/exec/obidos/ASIN/4798002518/


WEBで済ますならこのコース
でも一般アプリを作ったほうが総合的な実力がつく気がする

http://www.interq.or.jp/moonstone/person/index.html
ゲーム別に系統だてて説明してある
初心者でも理解できるよう優しく書いてある

http://deliverer.s5.xrea.com/
QuadrupleDというライブラリの説明とシューティングの作成を絡めて説明
やってることの難易度のわりには優しく書いてあるがDelphiがわからない人が読んでも難しい
QuarupleDの説明の範囲はマニュアルのチュートリアルと被ってるので見比べながらやると良い

http://delphi.nce.buttobi.net/
こちらもQuadrupleDの説明だが素人にはお勧めできない
解読できれば得るものもあるが書いてある内容以前に日本語が難しい

http://gamdev.org/w/?%5B%5BDelphi%A4%DE%A4%C8%A4%E1%5D%5D
Delphiゲーム製作の情報が集まってくる
自分の腕前と関係なくチェックしておく
525505:04/06/04 05:50 ID:AO8L39ub
>>523
ありがとうございます
ドライバを更新してみましたがやっぱり透過されませんでした
526517:04/06/04 19:01 ID:PVsApv1c
うーん。32bitカラーが使えないと投下されないのかな。
んなわけないよな。ごめん。なんかわかったら教える。
527名前は開発中のものです。:04/06/05 19:47 ID:sy+ovgju
>>505
ttp://delphi.nce.buttobi.net/qdtut15/index.html
これじゃない?
漏れもDGFMT_ARGBじゃなくてD3DFMT_A4R4G4B4にしたら透過しなくなったから
528名前は開発中のものです。:04/06/05 21:21 ID:XAY0KQdg
QDとEasy3Dどっちがいいかな?
529505:04/06/07 15:13 ID:7SYBlQj4
>>527
D3DFMT_A8R8G8B8で何も描画されなくなってしまったので対応してないみたいです。
そのサイトの方法3を使用することによってきちんと不具合も無く透過出来るようになりました。
ありがとうございました
530名前は開発中のものです。:04/06/07 19:54 ID:74upfBbg
QDのメッシュとsxなどの外部ファイルを使わないポリゴンを同時に表示したくて
DirectXSDKのサンプルとQDのサンプルを参考にしてプログラムを組んでみました。

なんとか表示はできたものの、ウィンドウのリサイズや終了時にアプリケーションエラーがでてしまいます。
QDのログをみるとこのようなエラーが記録されていました。
>Direct3DDeviceオブジェクトの解放に失敗しました(Error Code = UNKNOWN ERROR ... $00000001)

メッシュのロードをしなければ終了時にアプリケーションエラーはでなくなりましたがログのエラーは消えていません。
リサイズ時には終了してしまいます。

このエラーを出ないようにするにはどうすればよいでしょうか?

http://gamdev.org/up/img/677.zip
531名前は開発中のものです。:04/06/08 00:53 ID:dpF642G/
>>524
これはいかがでしょうか?
新しめの書籍ということでまだレビューがなく、判断が難しいところですが・・・
「基礎からわかるDelphi6」は在庫切れになっちゃってるようなので。

はじめてのDelphi―実践的プログラミングによる
臼田 昭司 (著)
セレンディップ ; ISBN: 4797820470 ; (2003/10)
http://www.amazon.co.jp/exec/obidos/ASIN/4797820470/qid=1086623101/sr=1-4/ref=sr_1_10_4/250-3534796-6705069
532名前は開発中のものです。:04/06/08 19:20 ID:XInVE3qL
>>530
FormにOnCloseイベントを設定して、DG.Freeとしてやったら、ちゃんと終了したよ。
開放を忘れないようにしような
533名前は開発中のものです。:04/06/08 19:38 ID:v9GfdNbX
DGは明示的にFreeしなくてもフォームが勝手に捨ててくれるんじゃねえの?
534530:04/06/08 21:39 ID:+uDFzKA1
>>532
今までOnDestroyで解放していました。(これはエラーがでます。)
OnCloseで解放するとうまくいきました。
ありがとうございました。
535名前は開発中のものです。:04/06/08 22:04 ID:Y4UTvjR4
何か間違ってる
536名前は開発中のものです。:04/06/09 07:09 ID:GrePfY40
TDDIDFFXについての質問です
カーソルキーを押しっぱなしにするとTDDIDFFX.Stick.X(又はY)は常に1(又は-1)を返します
カーソルキーを連打しないと動作しないようにするにはどのようにすればできるでしょうか?
537名前は開発中のものです。:04/06/09 23:16 ID:CYWVb9fr
>>530
せっかくあるんだからTDGVertexBuffer使いなよ
538530:04/06/09 23:57 ID:dS+m1a5k
>>537
使おうとしたけどサッパリ使い方がわからず諦めた
539名前は開発中のものです。:04/06/11 00:13 ID:dhcI2Ruo
>>538
そんな難しいか?

TForm1に
vb: TDGVertexBuffer;
を追加。

FormCreateのVB作成部分を
vb:= TDGVertexBuffer.Create(DG, 3, SizeOf(TCustomVertex), 0,
D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT);
pVertices:= vb.Lock(0, 3, 0);
try
CopyMemory(pVertices, @vertices, SizeOf(vertices));
finally
vb.Unlock;
end;
に。

ApplicationEvents1IdleのVB表示準備部分を
DG.D3DDevice.SetStreamSource(0, vb.VertexBuffer, 0, SizeOf(TCustomVertex));
に。以上。
540名前は開発中のものです。:04/06/17 15:57 ID:zIL55T19
>>539
ありがとー
エラーもでないし上手くいきました
リサイズすると消えてしまいますがもうちょっとがんばってみます
541名前は開発中のものです。:04/06/17 16:52 ID:UbgtGyWv
>>540
Create時の指定が D3DPOOL_MANAGED なら消えないみたいですね。

というわけでDGCarad9.pasの
2682
2701行は
D3DPOOL_MANAGEDの間違いだと思うのですが・・・・・

さらに、
2711
2718行は
if FPool <> D3DPOOL_MANAGED then
の方がいい気が・・・・

教えてエロイ人。
542名前は開発中のものです。:04/06/17 18:04 ID:wOwJ2Vyc
教えない
543名前は開発中のものです。:04/06/17 22:57 ID:PyX6xxqm
そもそも内部でRestore用に保持するぐらいなら鼻から
MANAGED使った方がいい気がするんだが。
544名前は開発中のものです。:04/06/21 16:57 ID:hUNg5P7j
JEDIのDX9ヘッダを使用しているのですが、困っています。
以下のコードでActiveはプロジェクトファイルの中でフォーム作成直後に呼ばれる関数で、Timer_RenderはTTimerコンポーネントでIntervalは1で動かしています。また、フォームのクライアントサイズは640*480です。
var
D3D9:IDirect3D9;
Dev:IDirect3DDevice9;
procedure TMainWindow.Active;
var
d3dpp:D3DPresent_Parameters;
begin
D3D9:=Direct3DCreate9(D3D_SDK_VERSION);
ZeroMemory(@d3dpp,SizeOf(d3dpp));
d3dpp.Windowed:=true;
d3dpp.SwapEffect:=D3DSWAPEFFECT_DISCARD;
D3D9.CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,Handle,D3DCREATE_HARDWARE_VERTEXPROCESSING,@d3dpp,Dev);
Timer_Render.Enabled:=true;
end;
procedure TMainWindow.Timer_RenderTimer(Sender: TObject);
begin
Dev.Clear(0,nil,D3DCLEAR_TARGET,$000000FF,1.0,0);
Dev.BeginScene;
Dev.EndScene;
Dev.Present(nil,nil,0,nil);
end;

このプログラムは最低限のデバイス作成と画面の初期化だけを実行するものです。
フレームレートが33FPS前後しか出ず、困っております。
ご助言よろしくお願いします。

私の環境は、WindowsXP+Delphi7ProでPentium4の3.4GHz、GeForceFX5950Ultraで測定しました。
545名前は開発中のものです。:04/06/21 17:33 ID:dfz266Vj
> Timer_RenderはTTimerコンポーネントでIntervalは1で動かしています

( ゜д゜)カポーン
546544:04/06/21 17:49 ID:hUNg5P7j
追伸、Idleで動作させても50FPS程度です。
547名前は開発中のものです。:04/06/21 20:26 ID:C5bKRRLU
>>544
d3dpp.PresentationInterval:= D3DPRESENT_INTERVAL_IMMEDIATE;
は?
548544:04/06/22 09:38 ID:yy2X6pb6
>>547
ありがとうございます。無事60FPS以上出ました。
ヘルプにフルスクリーンでしか意味ないようなこと書いていたので試してませんでした(^^;
549名前は開発中のものです。:04/06/23 11:37 ID:175oP9wI
>>548
60FPS以上いくと不安定になるVGAもあるみたいだから
注意してちょんまげ
550名前は開発中のものです。:04/06/24 12:26 ID:WbJlnPwQ
フルスクリーンとウィンドウの切り替えは、
D3DPresentParametersのWindowedを変更してデバイスをResetするだけでは駄目なんでしょうか。
上記の方法でやろうとすると、フルスクリーンからウィンドウになったときにタイトルバーが消えてしまいます。
FormのBorderStyleをbsNoneにしたような感じですが、この状態でBorderStyleを変更しても変化がありません。
正しく切り替えるにはどのようにしたらいいでしょうか。
551名前は開発中のものです。:04/07/24 05:11 ID:xpKa1okG
QD3を使ってのゲーム作成を始めました。
fpsなどの情報をTextOut()や、それに近いもので表示させようと思っています。
現行の処理(OnIdleにて):

D3DDevice.BeginScene();
  PushSprite(); // BitMapを多数配置
  Sxw := TSXTextWriter.Create();
  Text[n] := Sxw.CreateStringTexture();
  PushSprite(); // 上で作成した文字列のテクスチャをいくつか
D3DDevice.EndScene();
D3DDevice.Present();
  Text[n].Free// 上で作成した文字列のテクスチャの解放
  Sxw.Free;

のようにして、TSXTextWriterを使用していますが、
テキストのテクスチャ数が増えるに連れて、大変重たくなってしまいます。
きっともっと良い描画方法があると思うのですが、
メモリデバイスコンテキスト等も上手くいかず、苦戦しております。
何かヒントをいただけないでしょうか?
552名前は開発中のものです。:04/07/24 20:45 ID:PnrKgcAc
>551
シーン描画毎にテクスチャとTSXTextWriterをクリエイトする意味あんの?

文字列に変化ある時に書き換えるだけじゃだめなんか。
553551:04/07/25 03:26 ID:TtxXwPsH
>>552
ゲームのスコアを表示させているため、
かなりの頻度で文字列が変化してしまうもので…。
ですが、ご指摘の通り、TSXTextWriterは毎回生成・破棄する
必要がないため、FormCreate/Destroyに移動させました。

もしかしてTBitmap.Canvasとか使った方がいいんでしょうかね?
引き続き色々試してみようと思います。
554名前は開発中のものです。:04/07/25 14:02 ID:y86X+J8o
テクスチャの描画毎の生成破棄も相当コスト高いとおもうけど。

ふつうにあらかじめ確保したテクスチャにWriteすべきでね?
555551:04/07/25 14:40 ID:TtxXwPsH
>>554
やっぱりそうですよね…。
でもそうやってみると、どうしてもリークしてしまうんです。
やり方がおかしいのかな_| ̄|○

・MainFormのprivateでText1: TDGTexture;を宣言。
・FormDestroyでText1.Free;

procedure OnIdle();
begin
  :
Text1 := Sxw.CreateStringTexture();
PushSprite(Text1);
D3DDevice.Present();
// この辺りで何らかの解放処理が必要なのでしょうか。
  :
end;

(今は、SXLibを見ながらTBitmapを使おうと模索中です。)
556名前は開発中のものです。:04/07/25 15:18 ID:y86X+J8o
>>555
ん?それだと
>Text1 := Sxw.CreateStringTexture();
の部分で毎回テクスチャがクリエイトされちゃうじゃん。そりゃリークしまくるでしょ。

Writeすればっつーのは
FormCreateでText1をクリエイトして
>Sxw.Write(0,0,'Score',Text1);
とでもすればっていうこと。
557名前は開発中のものです。:04/07/25 15:35 ID:y86X+J8o
あ、言い忘れた。
当たり前だけど毎描画Writeするのも重いはず。
別に文字列持っておいて変化したらWriteするようにするのが普通だと思う。
558551:04/07/25 16:26 ID:TtxXwPsH
>>556-557
おあーぁぁー、Writeってそういうことだったんですね…。
メソッド名そのままの効果…何故気付かないのか私は_| ̄|○
これなら期待通りの動作をしてくれます!
> 別に文字列持っておいて変化したらWriteするようにする
CPU使用率が(一部)断然下がりました。
おかげさまで、描画系の作成に苦労しなくて済みそうです。

>>552,554(=556,557?)さんをはじめ、スレ住人皆さん、
ご教授いただき有難うございました<(_ _)>

QDmanual/ML/sampleの山|λ......
559名前は開発中のものです。:04/08/04 16:08 ID:ZmvuRdM9
初心者丸出しの質問ですいませんが
ゲームのハイスコア(1位から10位ほど)を保存したいんですけど 何を使えばいいんでしょうか
560名前は開発中のものです。:04/08/04 17:22 ID:WqrQethy
tstringlist
561名前は開発中のものです。:04/08/04 23:29 ID:5TXw5Lpo
Quadruple Dを使ってゲーム作っているのですが、
画像の一部だけを描画するにはこの方法でいいのでしょうか?

Scene.PushSprite(
Vector2D(0,0),
[
 SXVertexSP(50,50, $FFFFFFFF, 0.0,0.0),
 SXVertexSP(100,50, $FFFFFFFF, 50/Texture.Width, 0.0),
 SXVertexSP(50,100, $FFFFFFFF, 0.0, 50/Texture.Height),
 SXVertexSP(100,100, $FFFFFFFF, 50/Texture.Width, 50/Texture.Height)
],
 Texture,
 sxbAlpha,
 False
);

もっとスマートな方法ってありますか?
562名前は開発中のものです。:04/08/12 22:35 ID:lCkZPmie
>>561
それでよし
>>559
漏れもTStringListに一票
桁揃えておけばソートできるしな
暇ならハイスコアコンポーネントでも作って公開してくれ
>>550
変える順番が大事
変える個所は合ってる
>>543
ほかの個所は使ってる
>>536
前回のキー入力を保存
状態遷移でググると基本的な考え方がわかる
やね本2の解説がわかりやすい
>>528
QDの良い所はVCL連携と3Dオブジェクト(しかもモーション付き)の扱いが楽
563名前は開発中のものです。:04/08/12 23:43 ID:Ev6Dy7m9
>>562
レスありがとうございます。
でもこれだと解像度の違いのせいか、描画したい元画像の範囲選択が上手くいかないんです。

解像度を800×600にして、元の画像の大きさが50×100だとすると、下のソースでは
画像の Rect(0, 20, 50, 50) の部分が描画されると思うのですが、ずれてしまいます。

Scene.PushSprite(
Vector2D(0,0),
[
 SXVertexSP(0, 0, $FFFFFFFF, 0.0, 0.2),
 SXVertexSP(0, 50, $FFFFFFFF, 1.0, 0.2),
 SXVertexSP(30, 0, $FFFFFFFF, 0.0, 0.5),
 SXVertexSP(50, 30, $FFFFFFFF, 1.0, 0.5)
],
 Texture,
 sxbAlpha,
 False
);

ゲームでたくさんの画像を使うときには皆さんどうしているのですか?
一つ一つテクスチャを作るか、それとも一つのファイルに画像を収めて
一部だけを描画するようにしているのでしょうか。
564名前は開発中のものです。:04/08/13 01:22 ID:y25szJtr
そりゃずれると思われ
565名前は開発中のものです。:04/08/14 10:53 ID:ennbBjlN
微妙に間違えてますた。
でも、これでもずれますが、どのようにパラメータを指定すればいいんでしょう。

Scene.PushSprite(
Vector2D(0,0),
[
 SXVertexSP(0, 0, $FFFFFFFF, 0.0, 0.2),
 SXVertexSP(50, 0, $FFFFFFFF, 1.0, 0.2),
 SXVertexSP(0, 30, $FFFFFFFF, 0.0, 0.5),
 SXVertexSP(50, 30, $FFFFFFFF, 1.0, 0.5)
],
 Texture,
 sxbAlpha,
 False
);
566名前は開発中のものです。:04/08/15 02:11 ID:PuiE5qNp
>>565
画像のサイズが2のn乗じゃないから。

テクスチャのサイズは読み込んだ画像と同じとは限りません。
TDGTextureのプロパティTotalWidthなどで確認できます。
Widthとの値の差を見比べるとよいでしょう。

読み込んだ画像が2のn乗に満たない場合は自動的にテクスチャのサイズが拡張されます。
そのサイズは読み込んだ画像以上でなおかつ最小の2のn乗になります。
50x100の場合は64x128になります。

たとえば50x100の画像を読み込んで作ったテクスチャの左上から32x32を表示したい場合は
テクスチャが64x128に拡張されているので以下のようにしてUVを求められます。
U=1/64*32
V=1/128*32

ここからは余談ですがグラフィックボードによってはテクスチャに色々な制限があります。
・256x256以下のサイズしか扱えない
・正方形でないとならない
・2のn乗サイズでないといけない
・32bit色が使えない

記憶を頼りに書いてるので間違ってたらツッコミおながいします。
ちなみにVoodooシリーズがこれらの制限に全てひっかかるカードです。
567名前は開発中のものです。:04/08/15 04:22 ID:PuiE5qNp
>>565
とりあえずサンプル
http://gamdev.org/up/img/1047.lzh
568名前は開発中のものです。:04/08/15 09:35 ID:moZoUrx5
丁寧な解説ありがd

>>567
起動してくれません。デバッグログには、
「Direct3DDeviceオブジェクトの生成に失敗しました(Error Code D3DERR_OUTOFVIDEOMEMORY)」
とあります。
569名前は開発中のものです。:04/08/15 13:01 ID:PuiE5qNp
>>568
たぶんビデオカードのメモリが不足してるだけだからテクスチャのサイズが小さくなれば解決すると思う
サンプルでは512キロバイト使ってるからグラフィックボードを買い足していない環境じゃつらいかも

思いついた対策を書いておきます
これでもダメならグラフィックチップの種類やVRAM容量、エラーログの全文がわかればもう少し詳しく調べられるかも

・画像編集ソフト(ペイントなど)で画像のサイズ(今は288x256)をもっと小さくする(試しに32x32ぐらいに)
・画像編集ソフト(ペイントなど)で画像の色数を減らす(16ビット色に)
・TDGCarad(女の子のアイコンのコンポーネント)のプロパティUseSoftwareVertexProcessingをTrueにする
570名前は開発中のものです。:04/08/15 18:34 ID:moZoUrx5
>>569
全部試してみたけどダメでした。ファイルサイズは630バイトくらい。

ビデオRAM : 4MB
グラフィックアクセラレータ : ATI社製RAGE(TM) Mobility-CL(AGP)
ノートパソコンなので画像系には弱いのですかね? Lavie Lシリーズです。

前略(特に問題ナシ)
#00013 | ■■■画面モードを初期化します■■■
#00014 | Driver : ati2drab.dll
#00015 | Description : ATI RAGE MOBILITY AGP
#00016 | VendorID : 00001002, DeviceID : 00004C4D, SubSysID : 81581033, Revision : 00000064
#00017 | ウィンドウモード 640x473で初期化します
#00018 | ハードウェアアクセラレーションを利用します
#00019 | 希望のデプスステンシルサーフェスのフォーマットが見つかりませんでした
#00020 | デプスステンシルサーフェスのフォーマット...UNKNOWN
#00021 | ソフトウェアT&Lを利用します
#00022 | Direct3DDeviceオブジェクトの生成を行います
#00023 | Direct3DDeviceオブジェクトの生成に失敗しました(Error Code = D3DERR_OUTOFVIDEOMEMORY)
#00024 |
#00025 | ■■■お別れの時がやってまいりました■■■
以下略(特に問題ナシ)
571名前は開発中のものです。:04/08/15 21:05 ID:PuiE5qNp
>>570
RAGEのグラフィックボードを使って試してみました。
同じエラーがでるし原因究明は楽かなと思いました
……がその前にちゃんと計算すればよかった orz

バックバッファ:640x480x3(=900kbyte)
フロントバッファ:640x480x3(=900kbyte)
windowsの解像度:1024x768x3(=2.25Mbyte)
テクスチャ:512x256x3=(384kbyte)
合計:4.3828125Mbyte
テクスチャのサイズを変えた所で足りません。

Form1のClientWidthとClientHeightを320x240にすると
バッファ2つあわせても450kbyteになるので合計で4Mbyte以下に抑えられます。

とりあえずこっちでは動きました。
572名前は開発中のものです。:04/08/16 09:15 ID:WpFw0zco
> ビデオRAM : 4MB
さすがに、これはキツイと思われ
573名前は開発中のものです。:04/08/16 13:37 ID:tdeixu8e
Formを小さくしてみてもダメでした。
BIOS設定でもVRAM増やせないみたいだし。
_/ ̄|○モウダメポ・・・
574名前は開発中のものです。:04/08/16 14:54 ID:OSpqsJ8k
>>573
動かないサンプルを動かそうとするよりすでに動いているものがあれば
それを改造していったほうが早いんじゃないかと思います
(質問ではテクスチャがズレてしまったとあるのでそのプログラムのUV値をいじるだけでいいはず)

もともとの問題はテクスチャがずれる理由の解明で
それは解決してるはずです

なぜ動かないかは気になるのでもし改造していって動かなくなったり
動くものが完成したら教えてください
575名前は開発中のものです。:04/08/16 19:04 ID:tdeixu8e
そうですね。
今動いているもので全く問題ないので、それでやっていこうと思います。
丁寧にありがとうございました。
576名前は開発中のものです。:04/08/17 05:24 ID:+sFdTfOm
http://deliverer.s5.xrea.com/xx/xxx/000061.html

//u,v : single;

u := texture.u;
v := texture.v;

Scene.PushSprite(
Vector2D(0,0),
[
 SXVertexSP(0, 0, $FFFFFFFF, 0.0 * u, 0.2 * v),
 SXVertexSP(0, 50, $FFFFFFFF, 1.0 * u, 0.2 * v),
 SXVertexSP(30, 0, $FFFFFFFF, 0.0 * u, 0.5 * v),
 SXVertexSP(50, 30, $FFFFFFFF, 1.0 * u, 0.5 * v)
],
 Texture,
 sxbAlpha,
 False
);

とするのが正しい。
texture.uとtexture.vは、1.0とは限らない。
又、元の画像の一辺の長さは4の倍数にするべき。
トラブルを避ける意味では、辺が2のべき乗の長さの正方形の画像がいいかもしれない。
また、テクスチャに関しては、複数作る場合も一つしか作らない場合もどちらもあり。
577名前は開発中のものです。:04/08/17 09:30 ID:kgt5GdeF
>>576
参考になりました。ありがとうございます。
リンク先も見てみましたが、変なレスって・・・。
578名前は開発中のものです。:04/08/21 04:12 ID:rcQjHDLj
QD3.00が入っている環境にQD3.01をインストールするにはどうすればいいですか?
579名前は開発中のものです。:04/08/21 13:18 ID:53W2Uy5k
>>578
今までインストールされていた3.00に、3.01のファイルを上書きすればOKです
580名前は開発中のものです。:04/08/23 17:24 ID:N4BM/CKc
>>577
先日の記事で更に修正されているようです。
もう解決してるとは思いますが。

QD3.01のDGCarad9.pas[1839]の、
SetWindowPos()は必要なんでしょうか?
これがあると、フォーム作成途中に
強制表示される等して、厄介で…。
581名前は開発中のものです。:04/08/24 17:36 ID:fDj+wn71
QD3.01a入れたら変になっちゃった。
582名前は開発中のものです。:04/08/24 18:11 ID:ETmFlfFn
↑どう変になったかをどうぞ。
583名前は開発中のものです。:04/09/05 06:23 ID:4z3WtuRW
どなたかQD3で半透明ポリゴンの表示のやり方が分かる方居ませんか?

調べたところ
// アルファブレンドを有効にする
DG.D3DDevice.SetRenderState( D3DRS_ALPHABLENDENABLE, Integer(True));
// 色の算出方法の設定
DG.D3DDevice.SetRenderState( D3DRS_SRCBLEND, Integer(D3DBLEND_SRCALPHA)); // 転送元の色の算出方法
DG.D3DDevice.SetRenderState( D3DRS_DESTBLEND, Integer(D3DBLEND_INVSRCALPHA)); // 転送先の色の算出方法
// テクスチャのブレンディング方法の設定す
DG.D3DDevice.SetTextureStageState( 0, (D3DTSS_ALPHAOP), Integer(D3DTOP_MODULATE) ); // 色の成分を乗算する
DG.D3DDevice.SetTextureStageState( 0, (D3DTSS_COLORARG1), Integer(D3DTA_TEXTURE) ); // テクスチャの色
DG.D3DDevice.SetTextureStageState( 0, (D3DTSS_COLORARG2), Integer(D3DTA_DIFFUSE) ); // ディフーズの色
を使うらしいのですが上手くいきません。。

どなたか教えてください。
584名前は開発中のものです。:04/09/06 01:04 ID:+Ott7ACV
TSXFrameを使わない理由を教えて。>583
585583:04/09/06 06:07 ID:yPxmxkf1
こんな便利なのがあったのか・・ orz
Frame.BlendMode :=sxbAlpha; であっさり半透明になりました。
584さんありがとうございます。
586名前は開発中のものです。:04/09/09 10:48 ID:FjFhPTtJ
http://gamdev.org/up/img/1201.zip

Lunaを参考に作ってみた。だめ?
587名前は開発中のものです。:04/09/10 04:32 ID:D15lGOEN
実行ファイルがないと試す気にもならんな
588586:04/09/11 12:02:43 ID:4eUrWUgm
実行ファイルはサイズがでかい割りに内容はたいしたことないので
アップはやめときます。

コンパイルには
D6 Personal(D5でも可)、
Cloote Delphi DirectX Header(small 版でおk)
が必要です。

Cloote Delphi DirectX Header は
Summer2003で作りましたがSummer2004でもコンパイルできるみたいです。
またサンプルによっては
Clootie_DX90_dlls、
Sample DirectX Framework(common.zip)が必要かもしれないです。
589586:04/09/11 12:03:47 ID:4eUrWUgm
×Cloote
○Clootie
590名前は開発中のものです。:04/09/13 21:01:56 ID:XXuocjss
気になったんだけど、Delphi製の市販のゲームってある?
591名前は開発中のものです。:04/09/13 21:45:44 ID:FvktGGqc
>>590

Delphi
592名前は開発中のものです。:04/09/13 21:47:02 ID:VaJu4lwp
593名前は開発中のものです。:04/09/13 22:09:09 ID:XXuocjss
ツールじゃなくてゲーム無いかなーって思ったんだけど。。。
594名前は開発中のものです。:04/09/13 22:20:13 ID:VaJu4lwp
>>590
鉄拳機甲マーズワース
595名前は開発中のものです。:04/09/13 23:51:11 ID:ShVFAlYp
ブラウニーのダウンスレイブってエロゲーが確かDelphi製。
596名前は開発中のものです。:04/09/14 00:00:44 ID:edpJOU2D
ドラクエファイブですか?
597名前は開発中のものです。:04/09/14 06:21:37 ID:6Q43O1Uv
これね。 ブラウニーとvichiroさんはどこへ行ったのでしょう?
ttp://www.ume.gr.jp/game/dawnslave/
598名前は開発中のものです。:04/09/14 11:21:53 ID:HbhdLaZR
Clootie最近は更新が続くね
599名前は開発中のものです。:04/09/14 20:42:51 ID:4ud4BrnJ
vichiroさん、ねんごろソフトなるソフトハウスをやってるみたいだね。

ttp://www.nengollo.com/

今みたら鯖落ちっぽいけど。
何気にQD(の一部)も使ってる。
600名前は開発中のものです。:04/09/15 00:20:44 ID:XWqo4d2g
鯖落ちなの? いつ行っても鯖落ちですよ?
601名前は開発中のものです。:04/09/15 05:34:59 ID:4bDgb7XR
そんなことよりおまいらQD2.13aに更新されてますよ
602名前は開発中のものです。:04/09/15 05:53:18 ID:c/AQLHp4
きっとbegin end;を閉じ忘れてたところが一箇所あったから、そこを修正しただけだろう。
603名前は開発中のものです。:04/09/15 22:57:27 ID:KfyBc4iV
Irrlicht 0.7はdelphi対応か・・・・
604名前は開発中のものです。:04/09/15 23:13:35 ID:4bDgb7XR
Delphi.NETかよ!
Personalからは使えないのかな
XBOXにまで対応してどんどん凄くなっていくなぁ
605名前は開発中のものです。:04/09/24 04:24:24 ID:iQqEq3XL
ほっしゅほっしゅ♪
606名前は開発中のものです。:04/10/03 16:09:27 ID:Wrz3MmMY
6DXってどうなん?Delからも使えるらしいけど。

http://www.aztica.com/modules/news/
607保守age:04/10/27 01:41:30 ID:pd6tXyNi
保守age
608名前は開発中のものです。:04/11/09 00:39:49 ID:zGiKMYNt
ほっしゅほっしゅ
609名前は開発中のものです。:04/11/16 02:49:27 ID:UlXlDdL3
テトリスを作っているんですが、壁にぶち当たっています。
4*4の多重配列を使って次に出てくるピースをfor文で表示する際、

 BlockArr[x, y] := NextBlockArr[x, y];

という風に、そのまま代入したいのですがうまくいきません。
このような代入の仕方は間違っているのでしょうか?
610名前は開発中のものです。:04/11/16 03:13:42 ID:3ZeUa+pA
>>609
それを見る限りじゃ間違ってない。
for文でなにか間違ってる(x,yを入れ替えてる等)とか、Nextのブロックがもともと間違ってるとかじゃない?
代入前と代入後でどう変わってるのか調べてみれば何かわかるんじゃないかと。



段階学習スレの人かと思ったらあそこはNEXT表示をやる前で終わってるんだな。
誰か次の課題をつくってやれよ、と言ってみるテスト。
テトリス風落ちものゲームを作れ
http://gamdev.org/w/?%5B%5B%A5%C6%A5%C8%A5%EA%A5%B9%C9%F7%CD%EE%A4%C1%A4%E2%A4%CE%A5%B2%A1%BC%A5%E0%A4%F2%BA%EE%A4%EC%5D%5D
611名前は開発中のものです。:04/11/16 03:27:03 ID:p0iC1dJ2
静的配列と動的配列の、値渡しと参照渡しのソゴがでてるんじゃないか、という気がする。
いや、全く根拠はないよ。
612名前は開発中のものです。:04/11/16 03:32:10 ID:UlXlDdL3
>>610
レスありがとうございます。
質問の仕方が悪かったのですが、代入した方が、きちんと配列として認識されていないようなのです。
もう一度1からいろいろ調べてみたいと思います。
613名前は開発中のものです。:04/11/16 03:36:36 ID:UlXlDdL3
>>611
動的配列は使っていません。
しかしながら、値渡し、参照渡しという言葉知らなかったので、これも調べたいと思います。
今日は寝て、明日また新鮮な頭で考えます。
614名前は開発中のものです。:04/11/16 03:54:05 ID:3ZeUa+pA
>>612
「配列として認識されていない」の意味がわからないんだが具体的な症状はなんだ?
代入しても値が変化しないならチェック方法が悪いだけという事も考えられるぞ。
まあ、がんがれ。
615名前は開発中のものです。:04/11/16 18:30:12 ID:mVPGGnim
よくやるミス

for y := 0 to MaxY - 1 do
 for x := 0 to MaxX - 1 do
  if NextBlockArr[x, y] then
   hoge;
  BlockArr[x, y] := NextBlockArr[x, y];

まあ警告出るけどな
616名前は開発中のものです。:04/11/16 20:42:24 ID:ZS1Bpm5k
型宣言がバラバラになされてて、互換性がないとか言われるのとは違うのかな?
「配列として認識されていない」というのを聞くと何だか違う気がしますが。
617609:04/11/16 22:20:12 ID:UlXlDdL3
いろいろ調べてみたところ、配列は認識されていました。
どうも描画時にミスがあるようです。
昨日は頭が混乱していて、調べきれていないのに書き込んでしまいました。
いろいろヒントをいただきましてありがとうございました。
618名前は開発中のものです。:04/11/16 23:39:54 ID:S5/DkhPB
[y, x]じゃないの?
619名前は開発中のものです。:04/11/16 23:44:13 ID:iAPRLUz5
型宣言しておけばFORNEXTせずに

BlockArr := NextBlockArr;

なんてこともできるけど、今はそこまで説明しないほうがよさそうだ。
620名前は開発中のものです。:04/11/17 03:20:31 ID:xraOcLjl
>>618
そのほうがメモリアクセスも速いしな。
621名前は開発中のものです。:04/12/02 01:30:26 ID:jW4gqYoW
ホシュ
622名前は開発中のものです。:04/12/28 23:45:15 ID:T/yIjxhS
>>620
マジで?
623名前は開発中のものです。:04/12/29 17:29:11 ID:uNnVsn8A
>>622
メモリに格納されてる順番通りにアクセスした方が速かった気がするけど…
どうだったっけ?
624名前は開発中のものです。:04/12/30 08:26:16 ID:O3iJ5ayA
意外な結果がでますた。
仮にメモリアクセスの速度が等価だとしても回数が多いループが内側に入ったほうが速くなるはずです。
なんかおかしいって!!

http://gamdev.org/up/img/2197.zip

hoge[x,y]で計測中...
計測終了
1140_秒
hoge[x,y]で計測中...
計測終了
1141_秒
hoge[x,y]で計測中...
計測終了
1156_秒
hoge[y,x]で計測中...
計測終了
1250_秒
hoge[y,x]で計測中...
計測終了
1250_秒
hoge[y,x]で計測中...
計測終了
1234_秒
625名前は開発中のものです。:04/12/30 10:21:10 ID:Bm75nlqL
hoge[x,y]で計測中...
計測終了
632_秒
hoge[y,x]で計測中...
計測終了
225_秒

ちゃんと差でたよ。
CPU何?
こっちは、Pen4 2.6GHz
キャッシュの違いじゃないのか?
626名前は開発中のものです。:04/12/30 10:57:38 ID:O3iJ5ayA
>>625
AthlonXP 1600+
CPUが違うからかな

他にも測ってくれるヤツいないか〜?
バイナリ付きだからDelphiもってなくてもできるぞ〜

それにしても単純ループで2倍以上も差がでるとは((((;゚Д゚)))ガクガクブルブル
627名前は開発中のものです。:04/12/30 11:04:24 ID:C4X9NEv6
hoge[x,y]で計測中...
計測終了
280_秒
hoge[x,y]で計測中...
計測終了
281_秒
hoge[x,y]で計測中...
計測終了
281_秒
hoge[x,y]で計測中...
計測終了
281_秒

hoge[y,x]で計測中...
計測終了
211_秒
hoge[y,x]で計測中...
計測終了
211_秒
hoge[y,x]で計測中...
計測終了
211_秒
hoge[y,x]で計測中...
計測終了
210_秒

超低電圧版 Pentium M 1.1 GHz
628名前は開発中のものです。:04/12/30 11:58:30 ID:2VinDVAs
AthloXP1800+
hoge[x,y] : ave.1200ms
hoge[y,x] : ave.990ms
[y,x]の方が早いのか、うーん…
629名前は開発中のものです。:04/12/30 12:49:17 ID:Bm75nlqL
>>627
周波数のわりにハヤッ
630名前は開発中のものです。:04/12/30 13:26:06 ID:+Kfbdnmd
hoge[x,y]で計測中...
計測終了
703_秒
hoge[x,y]で計測中...
計測終了
687_秒
hoge[x,y]で計測中...
計測終了
703_秒

hoge[y,x]で計測中...
計測終了
422_秒
hoge[y,x]で計測中...
計測終了
422_秒
hoge[y,x]で計測中...
計測終了
422_秒

セレロンD 2.4GHz
631名前は開発中のものです。:04/12/30 14:22:42 ID:fgICBrxA
hoge[x,y]で計測中...
計測終了
940_秒
hoge[x,y]で計測中...
計測終了
939_秒
hoge[x,y]で計測中...
計測終了
939_秒
hoge[y,x]で計測中...
計測終了
1147_秒
hoge[y,x]で計測中...
計測終了
1166_秒
hoge[y,x]で計測中...
計測終了
1152_秒

XP1700+
632名前は開発中のものです。:04/12/30 21:43:24 ID:TsX6laAk
どっちがいいかはCPU次第か。
二重ループのせいで激しく重くなりそうな場合は
別な方法で軽くさせたほうがいいってことか。
633名前は開発中のものです。:04/12/31 23:19:04 ID:jpvf0SXR
そもそも配列は遅いよ。

634名前は開発中のものです。:05/01/01 01:54:50 ID:63ZnQsgl
>>633
配列より速い方法きぼんぬ
635名前は開発中のものです。:05/01/01 10:25:06 ID:2GjKCvhA
>>634
ポインタ使って必要な分メモリ確保しろってことじゃない?
636名前は開発中のものです。:05/01/01 10:26:50 ID:yjr0XA+L
>634
そこでMMXやSIMDを使うんですよ。
637名前は開発中のものです。:05/01/02 06:48:36 ID:FyapawCk
今ネットゲームを作っているのですがIDとパスワードの管理をどうしようか考えてます。
楽できるコンポーネントがあれば使いたいのですが

・ファイルに保存、読み込みができる。
・IDをキーにパスワードを検索できる。
・IDの重複チェックができる。

という条件で何かいい方法ないでしょうか?
638名前は開発中のものです。:05/01/02 08:59:32 ID:lGKVY1a/
>>637
というか何が難しいの?
639名前は開発中のものです。:05/01/03 03:29:13 ID:iqhIX9r7
ファイルに読み書きできないデータって何よ!?
640名前は開発中のものです。:05/01/03 10:39:24 ID:xyHgcURU
QuadrupleDでxからsxに変換するの面倒なんだけど
一括変換する方法もしくはxのまま使う方法ない?
641名前は開発中のものです。:05/01/03 12:12:49 ID:nysFQZ++
>>640
どっちも規格は公開されているから自分でコンバーターを作れば神。
あるいは、QD本家のBBSにメタセコファイルをそのまま使うサンプルを作った人の
書き込みがあったな。
642ななしへたぐらま ◆XcB18Bks.Y :05/01/04 16:45:25 ID:2pCApxgL
>>626
今更かもしれませんがせっかくなので.いずれも5回平均.

●Athlon 64 3000+(最大2GHz)
hoge[x,y]:305.7_秒(※1回目が極端に遅かったのでこれを除外すると249.75_秒)
hoge[y,x]:117.6_秒

●MMX Pentium 200MHz
hoge[x,y]:16198_秒
hoge[y,x]:5341_秒

>>633
うちのDelphi 5で調べたところでは
最適化オプションを有効にすると配列の要素へのアクセスが最適化されるようです.
(8086系のニーモニックが少しでもわかる方はCPUウィンドウでマシンコードをご覧になることをおすすめします.)

>>629
Pentium Mはクロック周波数当たりの速度は速いですよ.
というかPentium 4(とこれをベースにしたCeleron)は
クロック当たりの速度を犠牲にする代わりに
それ以上にクロック周波数をガンガンあげられる構造なのです.
643名前は開発中のものです。:05/01/05 07:38:02 ID:7vyIyXu3
おまいらが巡回してるサイトを教えてください!
644名前は開発中のものです。:05/01/05 11:55:21 ID:tbV8XI/C
>>643
ここ
645名前は開発中のものです。:05/01/05 11:57:57 ID:zEnCUWdP
646名前は開発中のものです。:05/01/06 18:46:51 ID:iwoLEMXA
何故、結果が違うんでしょうね。面白かったです。

Athlon XP 2400+
hoge[x,y]で計測中...
計測終了
576_秒
hoge[x,y]で計測中...
計測終了
579_秒
hoge[y,x]で計測中...
計測終了
627_秒
hoge[y,x]で計測中...
計測終了
627_秒

Celeron 2400
hoge[x,y]で計測中...
計測終了
718_秒
hoge[x,y]で計測中...
計測終了
734_秒
hoge[y,x]で計測中...
計測終了
610_秒
hoge[y,x]で計測中...
計測終了
625_秒
647名前は開発中のものです。:05/01/06 19:06:56 ID:aURBdGiO
>>640
メーリングリストはリンク古いからこっちで

GamDevPukiWiki - Delphiまとめ/ダウンロード
http://gamdev.org/w/?%5B%5BDelphi%A4%DE%A4%C8%A4%E1%2F%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9%5D%5D
648名前は開発中のものです。:05/01/11 01:53:33 ID:emWhx/Bt
RPGの戦闘やADV等で、「何かキーが押されるまで待つ」というのは、
どうやって実装したらよいのでしょうか?

ぐぐってはみたのですが、見つけられませんでした。
どなたかご教示お願いします。
649名前は開発中のものです。:05/01/11 01:59:22 ID:pbbV+EYH
>>648
それくらい自分で設計できないと
ゲームは作れないと思いますが
650名前は開発中のものです。:05/01/11 02:12:02 ID:YppJqvID
ネット上で見つからないわけがない
ぐぐりなおせ
651名前は開発中のものです。:05/01/11 03:22:41 ID:0FZGm+nd
てか探さなくても少し考えればわかるだろうに…
652名前は開発中のものです。:05/01/11 07:44:08 ID:wtbTBePd
キーボードバッファをポーリングするか、
キーボードバッファにウォッチドッグタイマーを設定すれば良い
653名前は開発中のものです。:05/01/11 12:18:09 ID:ZBsK3Diu
キーだけで良いのなら、

・ グローバルな”キー待ち解除フラグ”を用意
・ キー待ち開始時に、"キー待ち解除フラグ"へfalseを代入
・ "キー待ち解除フラグ"がtrueになったら、次へ進む
・ OnKeyDown内で、"キー待ち解除フラグ"へtrueを代入
654名前は開発中のものです。:05/01/11 13:37:08 ID:NRrdSaQ+
>>648
あとゲームなら、OnIdleでGetKeyState()とかかな?
655名前は開発中のものです。:05/01/11 14:23:11 ID:0gcMffxM
>>648
var
  keycode:  byte;
begin
  keycode:=0;
  while GetKeyState(keycode) >= 0 do begin
    Application.ProcessMessages;
    Inc(keycode);
    sleep(1);
  end;
end;
656名前は開発中のものです。:05/01/12 01:42:55 ID:FfNXGpEa
Application.ProcessMessagesを呼ぶなら、普通にOnKeyDownでいいと思う。
657名前は開発中のものです。:05/01/17 12:32:17 ID:WK/WmwMg
QuadrupleDを利用して現在ゲーム製作中です
不明な点があるので質問させてください

画面に文字を書く場合のことです
現在はSxLib9のTSXTextWriterを利用してテクスチャを作っているのですが
マニュアルをみたところ複数行に対応していないように見受けられました。
一行ごとにテクスチャを用意するという方法で今はやっているのですが
よりよい方法がありましたらご教授ください
658名前は開発中のものです。:05/01/17 15:10:07 ID:HVMOReOm
>>657
自分でクラス化する。
じゃないと、改行幅きめられんでしょ。
四角色指定でのグラデーションも全体にかかっちゃうし。
659名前は開発中のものです。:05/01/17 17:00:44 ID:WK/WmwMg
>>658
いわれてみればまさにそのとおりです
SxLib9.pasを覗いて処理の内容は大まかに把握したので
自分でクラス化することにしました
ご回答どうもありがとうございました
660658:05/01/17 22:48:27 ID:HVMOReOm
>>659
がんばってねー
661名前は開発中のものです。:05/01/19 07:46:14 ID:QnLtZfZn
結論
理由
おまけ
662名前は開発中のものです。:05/01/19 19:59:13 ID:X0qC9+o9
pascalとして既にある関数を自分でわざわざ作っている予感がして不安になるときが多々あります。
663名前は開発中のものです。:05/01/19 22:30:12 ID:mwNqv6lU
あるある。最近だとTObjectListというものを発見した。

コンマとかセミコロンで区切った文字列を、TStringListなんかに分解する関数ってあるのかな?
もう作っちゃったわけだが。
664名前は開発中のものです。:05/01/19 22:44:33 ID:rjaARbQN
>>663
TStrings.CommaTextで出来そうじゃね?
665名前は開発中のものです。:05/01/19 23:50:57 ID:X0qC9+o9
誤爆してました
666名前は開発中のものです。:05/01/20 19:35:18 ID:YEKSm85f
>664
レスありがd
でも”CommaText”は逆の働きで、TStringListの全行を、コンマ区切りの一行の文字列に統合する関数なのです
1対1で対応する、逆の機能を持つ関数がふつーはあるよね。でも見つからない
667名前は開発中のものです。:05/01/20 20:06:25 ID:1UJPEd40
>>666
var
    StringList:  TStringList;
    str:    string;
    i:    Integer;
begin
    str:='mona,giko,c';
    StringList:=TStringList.Create;
    try
        StringList.CommaText:=str; //CommaTextへ代入すればOK
        for  i:=0  to  StringList.Count-1  do  begin
            Memo1.Lines.Add(StringList[i]);
        end;
    finally
        StringList.Free;
    end

end;
668666:05/01/23 00:16:42 ID:6Jup5Ydu
おおぉぉ、これはエレガント。いいもの見せてもらった、ありがとー!

try〜finallyで囲ってあるあたりがプロっぽいね
669名前は開発中のものです。:05/01/23 00:56:34 ID:WKqPqKjy
Createの後にtry finallyは常識なわけだが
670名前は開発中のものです。:05/01/23 13:23:11 ID:riZwaTYt
そうでもない。

絶対に例外が起きえないケースだったら
余分なコードを減らすためにあえて入れない事もあると思うが。
671名前は開発中のものです。:05/01/23 13:57:32 ID:/T7uKEQD
どうせコンパイルしたら同じバイナリになるのになんでそんな手間をかけてまでソースを省く
672名前は開発中のものです。:05/01/25 00:37:23 ID:C1jkve15
太公望キタ━━━━(゚∀゚)━━━━ !!
673名前は開発中のものです。:05/02/01 16:25:01 ID:chrwhD6K
674名前は開発中のものです。:05/02/26 14:18:13 ID:WDMP1jpZ
こんなのってふつーなの?
ttp://www.gtatools.com/tss/
675名前は開発中のものです。:05/02/26 21:48:24 ID:R3p4xkyA
頑張り杉
676名前は開発中のものです。:05/02/26 22:02:47 ID:w3kWIfYt
すごすぎてオシッコもれそうになった

車に乗れるとは思わなかった
677名前は開発中のものです。:05/02/27 16:57:40 ID:w571M8XQ
涙ものの黄金ソースだ。
読んでると勇気が出てくる。
678名前は開発中のものです。:05/03/16 21:11:30 ID:faw6ZnlM
679名前は開発中のものです。:05/03/16 21:17:14 ID:faw6ZnlM
あとこれも
http://incubii.port5.com/
680名前は開発中のものです。:2005/05/05(木) 22:38:22 ID:6i9iNhuW
wizっぽいダンジョンRPGをつくってみようと思って色々調べて回ってるんですが、
ダンジョンの描画をどうやってよいのかわかりません。
RPGはだいたいのばあい、マップデータを読み込んでそれにあわせて画像を読み込みますよね?
とりあえず話がわかりやすくなるようにこのマップデータを0と1だけにして、0だと通行可能、1だと通行不可(壁)ってことにします。
で、次のようなマップデータがあるとしたらどうなるんでしょうか?

111101
100001
100001
111011
111011
111p11

pがキャラの現在位置だと考えてください。キャラクターの視界は前3マス、左右1マスだとします。
キャラクターの視界は
--- --- ---
| @ | A | B |
--- --- ---
| C | D | E |
--- --- ---
| F | G | H |
--- --- ---
    P
となってるわけです。そして、
F、H、C、Eが1の画像
G、D、@〜Bが0の画像が描画されるとしますよね?
でもこうしたマップデータの読み込みだけだと
いまいる場所から3歩進むとマップデータ一番上の右から2番目の0の部分がうまく描画されないですよね?
それってやっぱりFならCに入るデータが0のばあい、と1のばあいって感じでやってかないとムリなんでしょうか?
それとも根本的にやりかたが間違っているんでしょうか?
マップデータの読み込みとそれにあわせた描画(0ならAを描画、1ならBを描画)という風にやっていって
うまくダンジョンを表示したいのですが、良い方法はありますでしょうか?
681名前は開発中のものです。:2005/05/06(金) 04:42:38 ID:Dd1ojjj5
>>680
「うまく描画されない」というのは具体的にどんな状態なの?
682名前は開発中のものです。:2005/05/06(金) 04:57:50 ID:LEZu0aDb
とにかくやってみろ。けっこう面白いぞ
683名前は開発中のものです。:2005/05/06(金) 12:33:59 ID:gDXvCdX2
ブロック単位で考えるからそういうことになるんでないの?
遠くから壁単位で有無を判定してから描いていけば?

--- --- ---   ←最初にここの壁を調べてあったら描画
| @ | A | B |  ←次にここの縦壁を調べてあるなら描画

これを手前まで繰り返し。無駄な描画はあるがこれが一番簡単だと思う。
684名前は開発中のものです。:2005/07/15(金) 04:49:42 ID:h0eSY80P
{
delphi初めて1週間
基礎の基礎がわかってきたっぽいので、今持ってる知識で15パズルを作ってみることにした

こんな単純なゲームなのに想像以上に難しいのな
上手くいかなくてウンウン唸ってたんだけど
ごく単純なミスだったりして(;付け忘れたり、変数を初期化してなかったり)己の未熟さを悟った
気づけばもうこんな時間。いつになったら完成するのかな
}
685名前は開発中のものです。:2005/08/10(水) 02:02:14 ID:5uOtmxXP
age
686名前は開発中のものです。:2005/08/10(水) 11:56:25 ID:8y6TjTq9
>>680
俺はこんな風なやりかたしてたなあ。0:周りに壁なし、1:北に壁、2:東に壁、4:南に壁、8:西に壁、って決めて、orをとる。
北にまっすぐ伸びる通路だったら、

002802800
002802800
002802800
002802800
002802800
002802800

ただ、マップを作るのが非常にめんどい。
687名前は開発中のものです。:2005/08/10(水) 12:03:19 ID:8y6TjTq9
5月かよ、、ただの思い出話になってしまった
688名前は開発中のものです。:2005/08/10(水) 22:21:05 ID:McGjf/yT
689名前は開発中のものです。:2005/09/12(月) 17:56:09 ID:BA20QLlV
690名前は開発中のものです。:2005/09/17(土) 23:47:48 ID:KzJYNX2D
DELPHIでゲームを作りたいです。
何からはじめればいいですか?
691名前は開発中のものです。:2005/09/18(日) 00:08:41 ID:5rwDvfvH
>>690
Delphiの勉強からはじめてください^^
692名前は開発中のものです。:2005/09/18(日) 02:08:42 ID:CIQutMjq
>>691
どの様にはじめればいいですか?
とりあえずDelphiはインストールしました。
どの様にしていけば作れるのでしょうか?
693進可 ◆Sinka1my5k :2005/09/18(日) 08:02:46 ID:8TgEA6oQ
とりあえず俺んとこへ来い
http://www.interq.or.jp/moonstone/person/del/index.htm
694名前は開発中のものです。:2005/09/18(日) 09:03:48 ID:RV7RJOwl
宣伝乙
695名前は開発中のものです。:2005/09/18(日) 09:04:25 ID:RV7RJOwl
696名前は開発中のものです。:2005/09/18(日) 15:52:14 ID:XaX+U7kd
>>693,695
ありがとうございます。早速見てみます。
697名前は開発中のものです。:2005/10/10(月) 22:17:28 ID:9FLlzyUN
Quadruple Dを使うには
DirectX9.0以降に対応したグラフィックチップが必要ですか?
698名前は開発中のものです。:2005/10/10(月) 23:14:21 ID:ErOlXdkv
>>697
んにゃ。
必須ではない。
699名前は開発中のものです。:2005/10/11(火) 00:05:41 ID:qx7spQSD
オンボードのサウンドボードだとQD3で作ったソフトが起動しなかったけど
700名前は開発中のものです。:2005/12/02(金) 16:34:44 ID:4pBIQzwL
|д゚)
|≡ヽ(*'∀')ノ<700ゲッツ!!
|ミ
701名前は開発中のものです。:2005/12/10(土) 10:18:56 ID:/VdEev/N
DelphiXって6には対応してないのか?
702名前は開発中のものです。:2005/12/10(土) 10:39:50 ID:O4wbTESX
そのネタは何年か前によく出たな
今時DelphiXも無いと思うんだが、
どうしても使いたければ、UnDelphiX使いなよ
703名前は開発中のものです。:2005/12/12(月) 02:46:35 ID:qoTkd+m4
>>701
検索したら、海外にインストールするための記事ないか?
704名前は開発中のものです。:2005/12/12(月) 11:54:11 ID:/nnpP6+D
>>701
DelphiXで検索したら、インストールする方法を和訳してあるサイトがあったよ。
705名前は開発中のものです。:2005/12/12(月) 17:41:01 ID:+3T1uLt5
>>704
そのサイトは潰れてるが
706名前は開発中のものです。:2005/12/12(月) 19:03:58 ID:tt6SDhGL
関連情報:
アマゲニュース - [お勉強]Delphi6にunDelphiXをインストールしてみました。
ttp://amagame.blog12.fc2.com/blog-entry-1830.html
707名前は開発中のものです。:2005/12/12(月) 19:06:29 ID:TTWK6eI4
アマゲニュースって、ジサクジエン(・∀・)して、広告料金稼いでいるらしいから
好きじゃないな
708名前は開発中のものです。:2005/12/12(月) 23:56:05 ID:qoTkd+m4
広告が悪みたいな風潮はいただけんな
一生google使うなよ
709名前は開発中のものです。:2005/12/13(火) 00:19:40 ID:Bq3u+gAG
>>708
アマゲたん乙
710名前は開発中のものです。:2005/12/17(土) 07:47:36 ID:n9elomN4
グラはファミコン以下ですが、
個人的には結構面白いサッカーゲームです。
一人用ですが。

某雑誌に掲載されてた記事
「一試合3分から楽しめる本格派サッカーゲーム。
グラフィックは簡素だが、やり込み派にはオススメしたい一本。
 
こだわりのカスタマイズが面白い。
簡素なグラフィックとは逆に、戦術面は細部まで作りこまれている。
システムやプレスのON/OFFから、なんと選手一人一人のポジショニングまで設定可能だ。
こだわりのチーム作りが楽しめる。」

フリーゲームなんですが、管理人がいないらしいので、
サッカー好きでプログラムのできる方居たら助けてやってください。
このゲームで対戦できたら面白いと思うので

RolePlaying Eleven
http://ime.st/www.geocities.co.jp/Bookend-Kenji/2279/

最近立った2chスレ
http://game10.2ch.net/test/read.cgi/netgame/1134392861/
711名前は開発中のものです。:2006/01/03(火) 20:00:41 ID:yxS2cKCH
Delphi6 とunDelphi XでSTGをつくっています。

敵を倒したときに
レンズフレアっぽい爆発やパーティクルを散らしたり
したいんですが、どういう方法をとればいいでしょうか。

TDirectDrawSurfaceって
矩形描画関係のメソッドはいろいろあるんですが
(DrawAdd,DrawAlpha,FillRectAdd,FillRectAlphaなど)
楕円や線を描画するメソッドは用意されていないようです。

Canvasにはellipseやmoveto&linetoがありますが、
半透明合成や加算合成はできませんし。

何かよい方法がありましたら教えていただけるとうれしいです。
712:2006/01/03(火) 21:42:35 ID:E1OTiKsy
DelphiXのチュートリアルにも書いてありますが、サーフェイスの画素データに
直接アクセスして描画してみたらどうでしょう。
外してたらごめん。

procedureTForm1.Button1Click(Sender:TObject);
var
 ddsd:DDSURFACEDESC;

 function DDScanLine(y:Integer):Pointer;
 begin
  {TBitmap.ScanLine と同じ働きをします}
  Result :=Pointer(Integer(ddsd.lpSurface)+y*ddsd.lPitch);
 end;
var
 y:Integer;
begin
 ddsd.dwSize :=SizeOf(ddsd);
 ifDXDraw1.Surface.Lock(ddsd)then
 begin
  {ddsd.dwWidth サーフェースの幅}
  {ddsd.dwheigh サーフェースの高さ}
  {ddsd.lpSurface ピクセルデータ(0,0)へのポインタ}
  {ddsd.lPitch 下の行のスキャンラインへのオフセット}
  {Abs(ddsd.lPitch)1ラインで使用しているバイト数}
  try
   for y:=0 to ddsd.dwHeight-1 do
    FillChar(DDScanLine(y)^,Abs(ddsd.lPitch),Y);
  finally
   DXDraw1.Surface.UnLock;{これが必須}
 end;
end;
713名前は開発中のものです。:2006/01/03(火) 22:04:25 ID:/V5oIo2f
>>711
DirectDrawを使って半透明や加算合成をやりたい時は、
サーフェスに自前で描画するか、
CanvasのPen.Modeを使った擬似的な合成をやるしかない。

サーフェスに描画するときは、システムメモリにサーフェスをおかないと
致命的なほど速度が遅くなるし、システムメモリにおいてもまともな速度を出すには、
かなりのチューニングが必要になる。

Canvasを使う場合は、思ったとおりの画像がでない。
また、かなり遅くなるので注意。

よって、DirectDrawはやめてDirect3D使うのが一番簡単だったりする。
714711:2006/01/04(水) 01:11:02 ID:Z7OuzLUo
回答どうもです
Inside DelphiXのサンプルを弄って試行錯誤しているような段階なんで
覚束ないんですが

>>712
あらかじめ円の画像を用意しておく

DXDraw1.SurfaceをLock

DDScanLineで読み出して円の画像と合成

Unlock
というやり方でいいんでしょうか

>>713
なかなか厳しいんですね
Quadruple Dのサンプルをみて、こういうのがDelphi Xで出来たらいいな、と
思ったもので
Extreme Shooters (beta4.53)
http://www-fu.magma.ne.jp/~hayase/dddd/works.html

Direct3Dは残念ながら未だ手付かずですが
後学のため、大まかなやり方でも教授いただければ幸いです
715名前は開発中のものです。:2006/01/04(水) 08:39:53 ID:FbMi4kv7
ていうか、俺もDirectDrawやってるプロジェクトがあるんだが、
ビデオカードがもう2D対応をあきらめてるんだよね。
もう、最新のカードでも全然速度がでない。時代を感じるよ
716名前は開発中のものです。:2006/01/04(水) 14:54:21 ID:CMUGU7Z6
素直にQuadrupleD3系を使えと言うことやね
717名前は開発中のものです。:2006/01/04(水) 19:18:34 ID:tTl7AeZQ
なってマァの人?
718名前は開発中のものです。:2006/01/04(水) 21:02:37 ID:CMUGU7Z6
違うが。
つーか、マァの人ってここ何年なにやりたいんだろうさね。
719:2006/01/04(水) 23:13:28 ID:fuT7K2Cj
>>718
や、本人だけども。
720:2006/01/25(水) 00:27:36 ID:daGWhNcX
というわけでなんか作ってみたよ。
ttp://gamdev.org/up/img/4470.lzh
721名前は開発中のものです。:2006/02/09(木) 10:54:46 ID:6cZnww8L
Delphi売却記念age
722名前は開発中のものです。:2006/02/24(金) 10:56:52 ID:tiM9zU90
マァの人、HPどこいったよ
723:2006/02/27(月) 00:59:06 ID:QHDsHNqO
誰もいないなぁ。
QDでフルスクリーン表示のときWindowsキーとかAlt+TABを押すと最小化されるじゃん。
そんとき画面の左下にキャプションが残って完全にタスクバーに格納されないのが嫌なんだけど
どうしたらいいんだろう。

こんな感じに残るのがイヤ
http://members3.jcom.home.ne.jp/jellyjam/img/mm.png

DirectXSDKのサンプルはちゃんとタスクバーに格納されてるんだよー。
ソースも見てみたけど、これについて特になにかしてるようには見受けられないのが困る。

ちなみに画面の切替はこんなふうにしてます
http://members3.jcom.home.ne.jp/jellyjam/p/test.lzh
724名前は開発中のものです。:2006/02/27(月) 23:33:30 ID:YnqZOFPa
>>723
それは、VCL使ってるからです。

VCL使ったアプリは、実は、ウインドウサイズ0のMDIアプリなんですよ。
デスクトップ全体を使ったMDIアプリだと思うと、挙動が一致するよね?

結論だけいいますと、嫌だったら、VCL使わずにウインドウを出せ!ということになります。
そんなに難しくないから、やってみてもいいよ。
サンプルはC言語で一杯あるし。
725名前は開発中のものです。:2006/02/27(月) 23:35:52 ID:YnqZOFPa
ああ、でもやる方法あるかも。
自分が、昔作ったゲームで上手く最小化してるみたい。
探してみる。
726名前は開発中のものです。:2006/02/27(月) 23:44:39 ID:YnqZOFPa
勘違いだったかもしれん。
ただ、Alt+Tabぐらいなら、メッセージフックして自前で最小化すればいけるかもしんない
727名前は開発中のものです。:2006/02/28(火) 06:08:09 ID:1nhLP94A
>>724
なるほど、たしかに挙動はMDIと同じだぁ。
フックはWIn9x系で上手くいかなかった経験があるので見送ってみるテスト。

というわけでVCLに頼らないでウィンドウ作ってみた。
なんか上手くいったみたい。
http://members3.jcom.home.ne.jp/jellyjam/p/dxwindow_test.lzh

ループ部分が良くないのかわからないが、スプライトを同時に500個とか表示させると
システムを巻き込んで重くなる・・・。訳ワカンナイね
これまでどれだけVCLの恩恵にあずかってたか今になって知ったよ。


なんかおれの日記みたいになってきたのでこのへんで去る。
728名前は開発中のものです。:2006/02/28(火) 06:13:37 ID:1nhLP94A
ごめん、640*480のテクスチャを500回描画してた。
そりゃ重くなる罠
729名前は開発中のものです。:2006/03/01(水) 17:06:54 ID:SHZqLszk
そりゃすごい
730名前は開発中のものです。:2006/03/02(木) 00:48:21 ID:FKit8L/b
>>727
メインループは、あれでいいと思う。
でも、うちだとウインドウ出た後、死んだw

---------------------------
アプリケーション エラー
---------------------------
EInvalidOperation がモジュール Project1.exe の 000461FC で発生しました。

コントロール '' は親ウィンドウを持っていません.


---------------------------
OK
---------------------------
731:2006/03/02(木) 22:26:15 ID:JE6uGfoU
>>730
うはwwおkwwwww

DelphiXにいい解決方法が用意されてたのでそれを使ってみる。
こうすればTFormを継承すればいいだけなので簡単かも。
テストしやすいように、今回はQD3使いました。
http://members3.jcom.home.ne.jp/jellyjam/p/test_qd3.lzh
732名前は開発中のものです。:2006/03/04(土) 12:55:37 ID:ya+Z7cQ4
ゲーム音楽をMP3でやりたいと思っているのですが、QDでは無理でしょうか?
Media Playerはあんまり使いたくないのですが、その他の方法をご存知の方
教えていただけないでしょうか?
733名前は開発中のものです。:2006/03/04(土) 17:45:35 ID:21toyYwx
>>732
MP3より、Oggおすすめ。
Ko-Taさんとこに、QDでOgg再生するライブラリあったはず。

>>731
うごいたよー

CreateParamsで、普通のウインドウとして生成する方法があったのか。
氏らなんだ。
734名前は開発中のものです。:2006/03/05(日) 10:10:53 ID:eS7E1LWh
ひさしぶりにこのスレが動いているね。

732じゃないけど、MP3をQDでならすライブラリはやっぱしないのかね?
やはりoggだけでなくMP3もならしたいわ。
735732:2006/03/06(月) 12:09:37 ID:eqqeXN6l
>>733
Oggですか。MP3並のファイルサイズに出来るのかな?
一度調べてみます。ありがとう。

>>734
そうなんですよね・・・。
やっぱ一般的ですし。
736名前は開発中のものです。:2006/03/06(月) 19:29:30 ID:+HXcEYGh
開発者的には、oggはライセンス的にクリーンなのがいい。
mp3はライセンス問題があるのよ。

音質的にも、mp3よりかなりいいしな。
737名前は開発中のものです。:2006/03/07(火) 00:15:58 ID:StiiWrRI
じゃあogg広めようぜ
738名前は開発中のものです。:2006/03/07(火) 01:21:10 ID:tB1D0El7
実際、使ってる人は使ってるって感じ。
大分広まってるよ。同人でogg使ってるところ結構ある
739名前は開発中のものです。:2006/03/07(火) 12:32:14 ID:OTedIXfi
じゃあ、ここでMP3をQDで動かせるようなライブラリ作ろうぜ。

でも漏れゲームは経験が少なく、どうも原理がわかってないので、ロジック
がよくわからん。
DirectSoundを使うんだから、mp3をwavへ変換しないと駄目なんだよな?
でこのスレか、もしくは他のところで紹介されていた、ttp://www.un4seen.com/
がいいかなと思うんだけど、これで皆で考えてみないか?
740名前は開発中のものです。:2006/03/08(水) 04:08:04 ID:zBZ1Ic9S
いや、みんなと言われても、oggでライブラリがあってすぐにでも使えるのに、
しかも低音質なmp3を使う利点を説明してもらわないとw
741名前は開発中のものです。:2006/03/08(水) 04:12:02 ID:zBZ1Ic9S
あと、gifみたいに突然ライセンス料を請求されたりするのをビクビクしてすごすことより
大きいメリットもねw
742名前は開発中のものです。:2006/03/08(水) 04:16:22 ID:zBZ1Ic9S
面白いところ見つけました。
http://mp3licensing.com/royalty/games.html
ゲームの場合、1タイトル$2500払えだって
ただし、5000本以内なら問題ない。
同人ならokだが、無制限に配布されるフリーだとNGだなこりゃ。
743名前は開発中のものです。:2006/03/08(水) 04:18:27 ID:zBZ1Ic9S
まあ、どうしてもやりたけりゃacm使うのが手っ取り早いと思うよ。
744名前は開発中のものです。:2006/03/08(水) 11:21:04 ID:++dNlcr3
>>740
音担当がわがままだと、つらいのさ・・・。
745名前は開発中のものです。:2006/03/08(水) 20:50:27 ID:BGHjq/qR
いや、利点欠点を説明して指示出したり、コンバートすんのも仕事じゃねーの?w
おまい、グラフィッカがBMPとかGIFで提出してきたら、それそのまま使うのかよw
746名前は開発中のものです。:2006/03/08(水) 23:10:13 ID:1gkNyav2
コンバートするのまでグラフィッカの仕事にしてもらう
747名前は開発中のものです。:2006/03/08(水) 23:10:33 ID:jyWui0dk
OggはMP3 LAMEに比べて高域の位相がずれまくりで圧倒的に音悪いだろ
音いいって奴らはどういう耳してんだ?
748名前は開発中のものです。:2006/03/09(木) 07:20:06 ID:k7fPsTH5
?
749名前は開発中のものです。:2006/03/09(木) 10:49:37 ID:864kD83F
>>745
漏れ、BMPでやってる・・・。JPGでいまいちどうやって画像を合成するか
わからんくて・・・。

どっかいい方法説明しているサイトとか無いかな?
750名前は開発中のものです。:2006/03/09(木) 17:09:23 ID:7vct+KAF
>>747
      | 
      |
      |
   ぱくっ|
     /V\
    /◎;;;,;,,,,ヽ>そんなエサで
 _ ム::::(,,゚Д゚)::| 俺様が釣られると思ってんのか!!
ヽツ.(ノ:::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'

>>749
JPGで合成する、と考えるからわけわかめになるのだ。
JPGからBMPに読み込めばいいだけ。
Delphi JPEGでググってみ
751名前は開発中のものです。:2006/03/09(木) 18:18:59 ID:864kD83F
>>750

調べてみた。
も、もしやBitmap.Assignを使えばいいのかな?
今から外出で確認出来ないので、後でやってみる。 ありがとう!

752734:2006/03/09(木) 21:43:23 ID:BnM5a+WA
mp3をならせるようにしたい理由としては、
ゲーム遊ぶ側が音楽差し替えて遊びたいときとかに、
oggだといろいろ面倒ってところでしょうかね。

面倒なのが嫌いなのでko-taセンセのライブラリでoggならしていますが、
これを機にすこしmp3方面もいろいろしらべてみようかしらん。
753749:2006/03/10(金) 11:46:52 ID:mC3ViI6k
>>750
Bitmap.Assignで出来ますた。
目からウロコですた。 ありがとう。

想像力かけてる自分に萎え。
754734:2006/03/12(日) 13:53:05 ID:Z05so1Xf
>739
英語が読めないのがしんどいですが自分も頑張ってみます。
un4seenにあったBASS_ChannelGetDataでなんとかなりそうかな?
755名前は開発中のものです。:2006/03/12(日) 15:17:55 ID:jnnSHzLq
QDでポリゴン表示するのって上限あるんですか?
ポリゴン数90,000から30,000くらいに減らしたらやっと全部表示したけど・・・
sxファイルだって1MB程度だからメモリってわけじゃなさそうだし。
やってる事はサンプルのポリゴン回転のやつをファイルだけ入れ替えただけ。
念のためTForm1.ApplicationEvents1IdleのbeginのあとにDone:=True;を入れた。
756734:2006/03/12(日) 15:39:00 ID:Z05so1Xf
できたー。
てかBassのサンプルのwritewavのやり方をそのまま持ってくるだけで
ストリーミング再生できました。
757名前は開発中のものです。:2006/03/12(日) 22:12:47 ID:Ueu/wbXM
>>756
良かったらここか、もしくはどこかにupしてくれるとうれすい・・・。
758734:2006/03/13(月) 00:25:33 ID:OLYI8HcJ
>757
ttp://www11.plala.or.jp/tfk/souko/qd_de_mp3.zip
ko-taセンセogglib俺カスタムに組み込み途中のものですが。
いろいろ適当ですが一応動くということで。
759757:2006/03/13(月) 14:28:33 ID:AA1ZU6pZ
>>758
もつかれー。
ところでdddd.dcuってなんだっけ?
これが無いといわれるのだがw
760734:2006/03/13(月) 20:29:21 ID:vIzWqz7/
TOggDataCtrlからDDDD:TDDDD;を消しちゃってくだされ。
761名前は開発中のものです。:2006/03/14(火) 14:42:38 ID:/uFLbshL
おお!ちゃんと鳴ってるね!乙
bass.dllは商用の場合、有償か・・・
762名前は開発中のものです。:2006/03/18(土) 11:52:37 ID:P6tvauUW
キャラクタのクラス設計で悩んでいます。

キャラクタクラスは複数のアイテムを持っています。
アイテムはレコードで定義されています。
持っているアイテムデータは隠蔽しておき、アイテムにアクセスする時は
配列プロパティを使おうと思っています。tom.Items[0]みたいに。

今悩んでいるのが、この配列プロパティが何を返すか。
アイテムレコード型のポインタを返すと、誤ってそのポインタの参照先を
開放することもあるのでどうかと思うし、かといってアイテムレコードを
そっくり返すのもコスト的にどうかなあと思うわけで。
どうするのがいいですかね?
763:2006/03/18(土) 13:29:52 ID:tcpIaWqQ
1:誤って解放しないよう心がける
2:アイテム構造体の各フィールドだけを返すメソッドを用意する

あとはワカンネ
764762:2006/03/18(土) 15:40:43 ID:P6tvauUW
2はちょっとねえ。
やはり1が現実的ですかね。
765名前は開発中のものです。:2006/03/19(日) 19:53:26 ID:/7AsYnD4
ハンドル値とかIDが妥当じゃない?
766名前は開発中のものです。:2006/03/21(火) 00:15:17 ID:z35qnZaT
個人開発のゲームプログラミングで厳格なアクセス制御を追求するのってどうなんだろう、とか。
多人数のプログラマが大規模なゲームとか作るときなんかは有用かもしれないけど、
自分でちゃんとコードの管理・把握ができるような規模なら、わざわざそんなことしなくてもいいわけで・・・。
まずは本当にその可視性が必要なのか疑ってみてもいいんじゃね?

とグローバル変数使いまくりのおれが言ってます

>>722
ヽ( ・∀・)ノ キャッキャ
767名前は開発中のものです。:2006/03/23(木) 05:31:35 ID:XSRlXE4W
>>762
アイテムもクラスにする。
768名前は開発中のものです。:2006/03/24(金) 07:15:32 ID:i3tXvG4H
【高3】大学合格記念☆おっぱいうp祭り【処女】
http://etc4.2ch.net/test/read.cgi/kouri/1142445710/


とりあえず、ここの祭りに参加してから考えても遅くないよ
769名前は開発中のものです。:2006/03/27(月) 18:25:00 ID:3UvvbtL+
チャットの文字入力部分はどうやって作ればいいんですか?
TEditを重ねるだけだとフルスクリーンの時チラついてしまいます。(QD3
IMEと直接おしゃべりする方法等、ヒントだけでもくれないでしょうか
770:2006/03/27(月) 20:03:34 ID:Q0gSAZ4A
>>769
TEdit より IME に任せたほうがゲーム画面としては見栄えはすると思う。
↓ここにおまいさんの欲しいものがあるから見てみれ

「IMEを使う」の項
http://www.c3.club.kyutech.ac.jp/~sukiyaki/index.php?%CA%B8%BB%FA%CE%F3%C6%FE%CE%CF

ちなみに Delphi で ImmXXX 系の関数を使うには uses 部に 「Imm」 を追加しないといけないから注意が必要だ。
771名前は開発中のものです。:2006/03/27(月) 20:16:29 ID:3UvvbtL+
>>770
うおおおおおおおおお ありがとおおおおおおおおおお
今日何時間グーグル先生に泣きついたけどわからなかった!!

サンプル見た!まさにこれがやりたいwwwwww
今からソース読むお!!!さんきゅうー!!!!!
772名前は開発中のものです。:2006/03/28(火) 15:11:23 ID:K1F24TVC
>>762
自分なら、>>767も書いてる通りアイテムクラスを作って、プロパティに
アイテム上限数をつける(上限があるなら)。
アイテムのデータはアイテムクラスの中のTListで保存して、外からは
Tアイテム.ItemofIndex[1]みたいな感じで呼べるようにしとくかな。
クラスを解放した時は自動的にTListも解放するようにする。
銀行の中のアイテムに関しては、このクラスをそのまま銀行用にもう1コ
呼ぶか、もしくは銀行の中のアイテムかどうかのflagをつけるとか。

とかどうだろうw
773名前は開発中のものです。:2006/03/29(水) 10:01:48 ID:cgryqhRI
復刻へ向けて投票お願いします。
http://www.fukkan.com/vote.php3?no=22601
774名前は開発中のものです。:2006/03/29(水) 11:38:22 ID:ja94kOLE
>>773
巡回荒らしだと思ったらDelの参考書ジャマイカ
775名前は開発中のものです。:2006/03/30(木) 16:08:28 ID:ZqOBHw5b
漏れはこれが復刊すれば良いなと思う。
http://www.fukkan.com/vote.php3?no=26754
776名前は開発中のものです。:2006/03/32(土) 15:35:08 ID:23G55/kq
>>773
中村たんの本だから投票したいが。
うーん。DirectX使ったほうが早いしなー
777名前は開発中のものです。:2006/03/32(土) 16:00:39 ID:ssE5v7Nz
>>773,775

とりあえず投票しました。
778名前は開発中のものです。:2006/04/04(火) 01:22:30 ID:6l9yFxzU
ループを使わないで配列を任意の値で埋める方法なんだけど、値が1バイトの時は
FillCharを使うとして、Integer等の時もループを使わないで済む方法は
あるんでしょうか?

例 a: array[0..100] of Integerの各要素を-1で埋めたい
779名前は開発中のものです。:2006/04/04(火) 01:32:52 ID:jXr9r2Xj
>>778
ないっす・・・
for使うしかないと思う

forでなんか不都合ある?
780名前は開発中のものです。:2006/04/04(火) 01:55:54 ID:6l9yFxzU
そう。ないのね。
別に不都合はないです。あれば使いたかった。
781名前は開発中のものです。:2006/04/04(火) 02:31:40 ID:ZQ16+LwC
ま、FillChar も内部でループ回してるだけだしなー
782名前は開発中のものです。:2006/04/04(火) 02:44:07 ID:8yBi0Id5
>>778
自分でそういう手続きを書けばいいと思うよ
783名前は開発中のものです。:2006/04/04(火) 08:08:17 ID:gUmPrsFh
>>778
-1なら$FFで梅なよ
784名前は開発中のものです。:2006/04/04(火) 09:27:24 ID:ZJWq0mdK
>>775
それ、もってるお
785名前は開発中のものです。:2006/04/04(火) 10:53:08 ID:EEjQKFSO
SizeOf(Integer)*100 じゃだめかい
786名前は開発中のものです。:2006/04/04(火) 11:04:07 ID:6l9yFxzU
>>783

それだ!

で、
動的配列FArrayに対して
FillChar(FArray, Length(FArray) * SizeOf(Integer), $FF);
とやって見事にはまったぜ。
FillChar(FArray[0], Length(FArray) * SizeOf(Integer), $FF);
とせにゃならんのね。
787名前は開発中のものです。:2006/04/04(火) 11:37:10 ID:jXr9r2Xj
まあ、-1ならそれでいいわなw
788氏天国:2006/04/04(火) 13:33:04 ID:tuMOHa7l

ハングル文字解読乙!

基本形

「O」→数字のゼロ

「ト」→カタカナのと

「T」→英語のてぃ

「一」→漢字のいち
789名前は開発中のものです。:2006/04/05(水) 01:47:09 ID:qqplrCSz
分かり難くなるから、forで-1を代入した方が良いのでは?

790名前は開発中のものです。:2006/04/06(木) 07:59:00 ID:qFz9F8tM
全て同じ数値で埋めるってのは、結局内部では同じ事を繰り返して埋めてるわけで。
なにをどうしようと、やってることは結局繰り返しなわけで。
だったらforでかまわないわけで。
791名前は開発中のものです。:2006/04/06(木) 08:32:49 ID:XE3XuU02
インラインアセンブラでやれ
792名前は開発中のものです。:2006/04/06(木) 09:21:44 ID:iG9BZ81e
>>790
VB房みたいな発想だな
793名前は開発中のものです。:2006/04/06(木) 14:01:43 ID:sOxMTKo4
>>790
え、それはちがくね?
出てくる実行ファイルのコードが最適化ぐあいが違うじゃん
Forでやるならカウント変数の管理が、
その命令の中での処理として吐かれるだろうけど、
関数の中での場合は違うんじゃね?
一個の命令で書いてコメントつけておいたほうがスマートな気がするけどなぁ
794名前は開発中のものです。:2006/04/06(木) 17:06:33 ID:k91+NZA9
>>790
2をかける、をとにかく掛け算でやるタイプだな
795名前は開発中のものです。:2006/04/06(木) 17:30:03 ID:h9VHZiwS
>>794
掛け算でおk
796名前は開発中のものです。:2006/04/06(木) 19:51:25 ID:M1vhG9On
>>794
それは普通じゃね・・・?
速さが要求されるとこならビットシフトだろうけど、
そんぐらいの最適化、最近のコンパイラならやってくれそう。
797名前は開発中のものです。:2006/04/07(金) 05:59:13 ID:dvuVDLvm
マイナスの時は結果が違うから、最適化出来ないでしょ。
798名前は開発中のものです。:2006/04/07(金) 06:30:38 ID:koI2iFT8
delphiと関係ない話題になってまいりました
799名前は開発中のものです。:2006/04/07(金) 10:26:22 ID:nFxfe0Pl
>>797
Cardinalでもだめかな?
800名前は開発中のものです。:2006/04/07(金) 17:47:48 ID:ATF2qtg5
>>797
頭いいな
801名前は開発中のものです。:2006/04/07(金) 21:45:07 ID:TXtEFKQG
*2やってCPUウインドウで見てみ。
ちゃんと、ビットシフトに直されるから。

はっきりいって、よほどクリティカルな場所じゃない限り、
最適化なんてコンパイラに任せた方が面倒がおきなくてすむ。
802名前は開発中のものです。:2006/04/08(土) 06:16:35 ID:/MZuuUD2
>プログラムの意味を変更しないことが保証されています。
掛け算ではオーバーフローは出るけど、シフト演算では出ない。
よって掛け算はシフト演算に最適化されない。

803名前は開発中のものです。:2006/04/08(土) 18:30:59 ID:Wlg46Wx+
801 名前:名前は開発中のものです。[sage] 投稿日:2006/04/07(金) 21:45:07 ID:TXtEFKQG
*2やってCPUウインドウで見てみ。
ちゃんと、ビットシフトに直されるから。

はっきりいって、よほどクリティカルな場所じゃない限り、
最適化なんてコンパイラに任せた方が面倒がおきなくてすむ。
804名前は開発中のものです。:2006/04/08(土) 21:42:26 ID:gJRRXJ2/
なんだなんだw
805名前は開発中のものです。:2006/04/09(日) 01:15:33 ID:P0XenbU/
for i :=0 to 100 do
begin
なんだ?
end;
806名前は開発中のものです。:2006/04/09(日) 11:46:57 ID:g5fuVY5k
そこまでいい本なのか?
http://page8.auctions.yahoo.co.jp/jp/auction/h38107989
807名前は開発中のものです。:2006/04/09(日) 23:25:33 ID:q+kzP13o
13000www
808名前は開発中のものです。:2006/04/10(月) 10:29:34 ID:NawXH1X/
>>806
漏れも売ろうかと思った、一瞬w
809名前は開発中のものです。:2006/04/15(土) 21:36:21 ID:/bTDFs9x
DirectXいじるなら Delphiは 遠回りだと気付いた 春の夜
810名前は開発中のものです。:2006/04/15(土) 21:42:52 ID:CSoMynjQ
別にヘッダがある以上、C++とそう状況は変わらんけどな。
811名前は開発中のものです。:2006/04/16(日) 03:22:40 ID:aygEIUBS
DirectShow弄る時とか、ユーティリティ関数がコンバートされてないとか、その辺の問題がある以外は、
大して状況は変わらんよ
812名前は開発中のものです。:2006/04/16(日) 10:48:36 ID:Nmz6dbZR
modってけっこう遅いなぁ
813名前は開発中のものです。:2006/04/16(日) 10:49:26 ID:Nmz6dbZR
あ、すまん。雑談スレじゃなかた
814名前は開発中のものです。:2006/04/16(日) 17:30:55 ID:iELEU150
Delphi graphic secretsなら一年前アキバのしょせんに売ってたお
いまあるかはしらない
815名前は開発中のものです。:2006/04/20(木) 22:18:39 ID:10nxPwle
リアルタイムゲームは大抵、ファイル(F)等のMainMenuが開くとゲームが停止して
それが閉じるとまたゲームが動きますけど、どのイベントでゲームを停止したり
再開させているんでしょうか?
816:2006/04/20(木) 23:34:26 ID:ftoD76SU
>>815
ゲームループの実装手法と Windows のメッセージ構造が関係しとる。

大抵そういうゲームは、アイドル時間を利用してゲームループ回してる。
アイドル( idle )ってのは車のアイドリング(空転)と同じで、いわゆる「暇」のこと。
ちなみに Delphi だと TApplication.OnIdle とかで簡単にアイドル状態をキャッチできる。
詳しい実装方法は Delphi ゲーム製作講座に書いてあるよ。

で、なんで止まってるように見えるかというと、
メニュー開いてるときとか、他にもウィンドウをドラッグしてる最中とかは、
そっちの処理のほうが忙しくなるので、ウィンドウ( TForm )の処理に構っていられなくなる。
暇( idle )じゃなくなるってことだな。
その結果ループが止まり、描画処理が行われず、画面が止まってるように見える。

つまり、プログラマが何らかのイベントを用いて意図的に停止?動作させているわけではなく、
勝手にそうなっちゃう、が正解。
もしそんな状況でも動作させつづけたいなら、スレッド( TThread )とか使えば良いんじゃないかな。

だめだ
死ぬ
817名前は開発中のものです。:2006/04/20(木) 23:58:04 ID:BSLx/OuN
そういや、なんでまた、Delphiゲーム講座とアマゲニュースの人って同一人物だって事、
当人はひた隠しにするんだろうな。
818:2006/04/21(金) 00:31:26 ID:19KokKEv
ん、わからんが勝手にonG#にしてる

E --0--
B --3--
G --4--
D --2--
A --x--
E --4--

んでAsus4 → A
sus4は安易すぎるかも試練
819:2006/04/21(金) 00:33:36 ID:19KokKEv
スマソ
820名前は開発中のものです。:2006/04/21(金) 00:57:55 ID:gUMysWG3
>>816
いいたかったことを全部言ってくれた
821名前は開発中のものです。:2006/04/21(金) 16:30:14 ID:vfO/zYtD
>>818
これは何ですのん?
822名前は開発中のものです。:2006/04/21(金) 17:01:01 ID:3hMlOUmI
ギターじゃね?
823名前は開発中のものです。:2006/04/21(金) 20:20:49 ID:eu/ck77W
Delphiでギターの練習ソフトを作れって事?
824:2006/04/21(金) 21:40:34 ID:19KokKEv
ただのゴバークです
大変失礼しました

 〈 ドモッ、スミマセン....。 〈 スミマセンスミマセン...。 〈 コノトオリデス!
  ∨ ̄ ̄ ̄ ̄ ̄ ̄  ∨ ̄ ̄ ̄ ̄ ̄ ̄  ∨ ̄ ̄ ̄ ̄ ̄
 (´Д`;)ヾ        (;´Д`)
   ∨)        (  八)         (´Д`;)、
   ((          〉 〉           ノノZ乙
825815:2006/04/21(金) 21:56:53 ID:ASot9yYT
>>816

たいしたゲームじゃないんでTTimer使って速度調整していたんですが、
アドバイス通りOnIdle使ってみました。
たしかに勝手に止まりますね。
826名前は開発中のものです。:2006/04/22(土) 00:20:07 ID:xYKpdzLP
>>824
いや、むしろ>>818は、本当にギターのことなのかが知りたい。
827名前は開発中のものです。:2006/04/22(土) 20:14:23 ID:7H1cl+2D
一ヶ月前に一度もテストしないで作った
当たり判定統括ライブラリが、一発で動いたー いやっほー
828名前は開発中のものです。:2006/04/26(水) 20:26:49 ID:TbDvNo5r
Virtual;

Virtual;Abstract;

の違いがわかったー!!!
829名前は開発中のものです。:2006/04/29(土) 13:48:10 ID:P3tEKmOP
「タイトル→ゲーム→ED」とかのシーン遷移ってどうやってる?
じゃんけんゲーみたいな単純なもんなら行き当たりばったりでなんとかなるけど、
それなりの規模のゲームを目指すなら、咄嗟の拡張に強いシステムを組まなくちゃいけないよな
やっぱりコーディング前に仕様書みたいなもの書いたりするんだろうか
どうよ?
830名前は開発中のものです。:2006/04/29(土) 14:07:38 ID:JeSIblMt
自分は各シーンクラスと
そのシーンを全て持たせた管理クラスを作ってる。

ループから呼び出すのは管理クラスで管理クラス内でシーンごとに分岐。
シーン内で違うシーンへの移行フラグが立ったら、
管理クラスがそれを受け取って…みたいな。

一般的なやり方だと思ってやってたんだけど違ったらスマン
831名前は開発中のものです。:2006/04/29(土) 14:10:34 ID:p+54dQLt
おいらの場合は、Stateパターンで。
次の状態をクラス型で返して状態遷移。
次は、そのクラス型を元にStateを生成。
共用するデータは、管理クラスに持たせる。

でも、あまりスマートじゃない・・・
832名前は開発中のものです。:2006/04/29(土) 14:34:17 ID:P3tEKmOP
>>830
>>831
なるほど。
やっぱ管理クラス内でシーンクラスを遷移させるのが分かりやすいのかも。
拡張するのも簡単だし。
831氏の場合は、管理クラスがシーンクラスを直接見てるわけじゃなくて、
シーンクラスが廃棄されるときに次のシーンクラスを作成する、って感じかな。

おれは最近TListのタスクってやつを使い始めた。
例えばstgの弾とか爆発とか、ゲーム内で作成するオブジェクトの数が不定な場合は便利だー。
833名前は開発中のものです。:2006/04/29(土) 14:59:34 ID:WOc6+g6+
俺は、シーン自体を管理させるクラスとかは置いてないな

ただ、タイトル画面移行手続きに

全オブジェクト廃棄
オブジェクトA生成
オブジェクトB生成
オブジェクトC生成

ってやってるだけ
ABCはその画面を作る元になる粉みたいなキャラとか。

意外と扱いやすい
834名前は開発中のものです。:2006/04/29(土) 15:52:47 ID:KY27NHQk
>>829
俺は普通にタスクシステムでやっている
835:2006/04/29(土) 18:16:22 ID:P3tEKmOP
みんなレスサンクスですよ。
やっぱそれぞれ一長一短があるし、作るもんによって実装方法は違うよなー

ところでQD使ってて、小数の割り算の精度が悪くなる原因がわかった。
DirectXの初期化部分でFPU設定が変わっちゃうからみたい。
CreateDeviceの呼び出し時にD3DCREATE_FPU_PRESERVEを加えたら直った。
QDのCreateDeviceはこれ付いてないみたいだから、小数の計算がなんかへんだなーと思ったら


っていうか既出ですか?
836名前は開発中のものです。:2006/04/29(土) 20:57:45 ID:JeSIblMt
知らなんだ
837名前は開発中のものです。:2006/04/29(土) 22:28:02 ID:KY27NHQk
かなり昔に、
Set8087CW(Default8087CW);
を使わんと、QDでのフォント描画がおかしいという話があった気がしないでもない。
それも同じことなのかな。
838:2006/04/29(土) 23:30:37 ID:P3tEKmOP
GetPrecisionModeでFPUの精度を調べてみたら、

 DirectX初期化前 → pmExtended
 DirectX初期化後 → pmSingle

単精度になってた。


SetPrecisionMode(pmExtended);を実行したらまた拡張精度に戻せるけど、
戻しちゃうとDirect3Dのパフォーマンスが落ちるらしい。
どうしたらいいんだろう。

以下検証こーど。DGCaradをフォームに貼り付けてから実行。

uses Math;
procedure TForm1.FormCreate(Sender: TObject);
var
  i, j: Cardinal;
  s: Extended;
begin
  //コメントアウトすると計算結果が変わる?
  //SetPrecisionMode(pmExtended);

  i := 2;
  j := 5;
  s := i / j;

  Form1.caption := FloatToStr(s);
end;
839名前は開発中のものです。:2006/05/03(水) 11:21:30 ID:C+qvBRVh
QD3で使うsxファイルってテクスチャ読まないのですか?
Xファイルとbmpは同じフォルダに入ってる。
色付きオブジェクト以外真っ白・・・・
840名前は開発中のものです。:2006/05/03(水) 11:34:15 ID:A5mWBe1p
志村ー、TSXFrame.texture
841839:2006/05/03(水) 12:11:17 ID:C+qvBRVh
え?手動で読み込み?
まさか貼り付け座標も・・・?
急激にテンション低下orz
842名前は開発中のものです。:2006/05/03(水) 19:30:19 ID:TKRZ+xS1
>>839
QD3の方のソースを書き換えちゃえば?
843839:2006/05/03(水) 19:40:39 ID:QKQhcnIL
それってsxファイルの中に入ってるであろうテクスチャファイル名やUV値をGETして
TSXFrame.textureでセットすると言う事でしょうか?
それともハナからファイルをプログラム側で管理してセットするということでしょうか?
前者にしてもsxファイルのフォーマットやらなにやら不明だし・・・
後者・・・・って無いよね?
Xファイルビューワが相手のテクスチャ情報をあらかじめ知ってるわけないし。

QD3のソース書き換え出来るほどのスキルは無いっす。
つかこういう仕様なのQD3?
844名前は開発中のものです。:2006/05/04(木) 00:28:29 ID:59sQee+g
あのなあ、文句ばかり言わず、頭使えよ

たとえば、メタセコでxファイル作って、その後sxに変換とかやるなら、
メタセコ上でUVを設定するんだよ
845名前は開発中のものです。:2006/05/04(木) 00:37:57 ID:59sQee+g
つか、sxファイルにテクスチャファイル名なんて入っていないだろそもそも。
sxlib9.pasくらい、一度は自分で読んでみろよ。
わざわざソースが公開されてんだから。
846842:2006/05/04(木) 01:34:20 ID:bLT7LC2U
>>844-845
俺のもやもやを全て言ってくれた
847名前は開発中のものです。:2006/05/05(金) 00:27:40 ID:HrIbIgnJ
>>843
i     _.,,,,.,..\  /  リ,;;;;;;:: ;;;;;:: ;;;;; ::;;;;;; \  |!   人 从 
  i |   .;';;;;゙;;゙;ミミ )ノ   (彡ノり/リノ" ミ;;;;;;,,,.. ゝ |!  ) あ ( 
 i| |i   i;;;;;;;;;;;;;rj      );;; ヾ、;;;;...__,,  );;;;;;;; ヾ   ) お ( 
 i| |.i    ':;;;;;;;;;;' j.     i:::) ` ;;ー--、` 〈;;;;;;;::;;; i  ) お ( 
 i| i i ;'.⌒''~゙,.. `⌒'ヽ.i i::/   ^:::::::.. i  ,ll/ニi ;; l  ) / ( 
 l| | i ;i::! ..;ノ ::;.... i )i l ヾヽ''    ゚   ))ノ;; / ) っ ( 
  l | i. `i  ::: : .:::  :| 'ノ |  | iにニ`i,     (_/i;;; | ) !! ( 
   | i. |  ::. .::  ::l / || ! `ー‐'"    /  ゞ:l つ (⌒ 
   ,-‐‐!  ::;:   ::|i_.,-||、 ! " ̄  ,,,. /,;    ミi |l 
.  i, `';:〉 ....;:::::.. ..:::゙   |.|i ヾ二--;‐' ,;; ,;   ミ ||i  i| 
   \.i'´゙゙"' ;:: '''゙゙"'; ,,l | _|彡"  ,' ; /' ̄^ ̄''''\|| 
     ヾ_,;;;i!、._  _,;..-' .-'"  〈    ; / 
848名前は開発中のものです。:2006/05/05(金) 11:37:21 ID:dMG6Cjcw
テクスチャ1枚だけのデータだったら表示できた。
でも地形など複数のテクスチャを使ったデータでは無理だった。
QD3は2Pカラー仕様だったんだね。
普通に答えてくれる人がいなくて残念だ。
ソースいじるよりXファイルを普通に扱いたいんでdelphiとQD3を捨てる事にした。
849名前は開発中のものです。:2006/05/05(金) 13:19:34 ID:uVTEszea
定期的に変な奴が現れるな
850名前は開発中のものです。:2006/05/05(金) 17:48:57 ID:9YveBbzB
定期的に知能障害
851名前は開発中のものです。:2006/05/05(金) 17:59:46 ID:NMiPE3j0
>>848
pro以上ならそのDelphi欲しいんだけど。
捨てる前にくれ!
852名前は開発中のものです。:2006/05/05(金) 22:22:36 ID:a2iRC592
つか、QD3くらい使えないやつが、他の言語とDirectXを使えこなせるとは到底思えんwwwww
853名前は開発中のものです。:2006/05/07(日) 15:02:21 ID:M5fzGaSF
つーか、おもしろいゲームが作れなさそう
854名前は開発中のものです。:2006/05/07(日) 15:54:51 ID:UfUB0cTo
おまえら布教さぼんな
855名前は開発中のものです。:2006/05/07(日) 16:18:35 ID:M5fzGaSF
>>854
vipのスレで、新参にC#を薦める人が張り付いてるんだけど助けて
856名前は開発中のものです。:2006/05/07(日) 20:55:57 ID:RJwhkSFn
レーザーディスクを進めてるようなもんだな
857名前は開発中のものです。:2006/05/07(日) 22:09:42 ID:M5fzGaSF
あっちで聞いても全然分からないんだよ

C#ってのは、どういう特徴があるの??
858名前は開発中のものです。:2006/05/07(日) 22:40:36 ID:d4h70Wqy
知らんがな
859名前は開発中のものです。:2006/05/08(月) 00:00:22 ID:0nbOjrbS
.netframeworkとかいうのが無いと動かないソフトを作るための言語だお
860名前は開発中のものです。:2006/05/08(月) 00:15:30 ID:JOWqXnkp
Delphiを設計した人が作った言語ですよ!
861857:2006/05/08(月) 00:49:01 ID:i+FpNsmh
>>859
やっぱ.NETの仮想マシン用実行ファイルを出すのが主目的?
そうだとしたら、なんで自信たっぷりに宣伝してるのか謎ー

>>860
そういう事を聞きたいんじゃなくってさー みんなそればっかり言う
Delphiの人が作ったから、結果どういう特徴なのか、とかおしえてよ
862名前は開発中のものです。:2006/05/08(月) 01:15:03 ID:0nbOjrbS
>>861
Micro$ostはいつでもどんな酷いものでも自信たっぷりに宣伝するお
特徴とか知りたければリファレンスでも読めばいいと思うお
なんでここで質問してるのか謎ー
863名前は開発中のものです。:2006/05/08(月) 03:19:32 ID:gx9/0q0C
だね。すれ違いor場所違い
864名前は開発中のものです。:2006/05/09(火) 18:05:31 ID:F86WINDS
すんません、マァって無くなっちゃたんですか?
あそこにあった袋文字のコード間違って消しちゃって困ってるんですが・・・・・
865名前は開発中のものです。:2006/05/09(火) 19:15:08 ID:P0sICzap
マァも微妙に何をやりたいのかよくわからないサイトだったな

末期にはシェアウェアも作ってたけど、あれじゃ売れないだろうなあ
866名前は開発中のものです。:2006/05/09(火) 20:11:10 ID:S4Y9zZ7Q
袋文字って単に9回書いて中に1回じゃないのか?
867名前は開発中のものです。:2006/05/09(火) 20:31:35 ID:F86WINDS
>>866
9回書いて中に1回、、ってするとフチの太さを変えたいとき困るんス
あそこおにあったのは文字の縁の太さを好きに変えられるコードだったんすよ
868名前は開発中のものです。:2006/05/10(水) 10:19:50 ID:NUqaBftN
>>861
・GUIが楽に作れる
・将来性がある(?
・開発会社に信頼性がある(?
一方Delphiは、終わっている。
869名前は開発中のものです。:2006/05/10(水) 18:30:33 ID:HSNhXH2j
Delphiは僕らの心の中でいつまでも生き続けます
870名前は開発中のものです。:2006/05/10(水) 20:26:15 ID:69MwsGoR
>>868
将来性かぁ〜
Vistaが普及したら、
「ドットねっとフレームワークいれないと動かないとかウンコー」
って言わなくなるんだろうなぁ・・・

マイクロソフトはドンドン侵略するな
871名前は開発中のものです。:2006/05/13(土) 00:38:26 ID:OqxroPQB
>>867
一文字ずつ書いて、
スプライトとして拡大と、ちょい小さくスプライトとして拡大

文字と文字の間隔はこの処理を計算して補正

872名前は開発中のものです。:2006/05/13(土) 03:24:07 ID:sDuBiHP4
>>867
もう見てないかもしんないけどあげといた
>>871
それだときっちり重ならなくね?
こんなんなる
ttp://gamdev.org/up/img/5723.png
873名前は開発中のものです。:2006/05/13(土) 05:26:29 ID:W9Udbq51
いや、こうでは?(左の)
http://gamdev.org/up/img/5724.png

でも、駄目だな。
上下拡大縮小4回くらい(真ん中)ならそこそこ見栄えはする。
菱形に拡大縮小するのを思いついた(右)が、だめぽ
874名前は開発中のものです。:2006/05/13(土) 07:54:11 ID:GAeAvJcp
全ドットチェックして、現在地が空白ドットで隣が空白ドット以外なら輪郭ドットに変更。
を、欲しい太さだけ繰り返したらいんじゃね?
875名前は開発中のものです。:2006/05/13(土) 08:12:24 ID:pLP2qHsu
procedure TextOutPlus(Str: String; Canvas: TCanvas; TX, TY: Integer; OutLine: Integer);
var
i: Integer;
j: Integer;
o: Integer;
begin
o := OutLine * 2;

for i := 0 to o do
begin
for j := 0 to o do
begin
Canvas.TextOut(TX+j, TY+i, Str);
end;
end;

Canvas.Font.Color := clWhite;
Canvas.TextOut(TX +OutLine, TY+OutLine, Str);
end;

最悪こんなんでよくね?
超格好悪いけど
876名前は開発中のものです。:2006/05/13(土) 21:03:44 ID:OqxroPQB
>>873
その、白い部分と同じ大きさの黒いのを8個配置すればいいんじゃないのか?
877名前は開発中のものです。:2006/05/13(土) 21:22:56 ID:X6ZmgAGD
マインスイーパの簡単なソースはありませんか?
セルと爆弾の配置だけでいいです。
ゲームを載せているサイトにソースが載ってることがあるけれど、
余計な機能が満載でイマイチよくわかんない。
878名前は開発中のものです。:2006/05/14(日) 01:12:08 ID:SwQo4Kwm
>>877
とりあえず、何をしたいのかを言ってみて方がよくない?
わざわざマインスイーパー探すのめんどいし、助言だけなら出来るかもしれないし。
879名前は開発中のものです。:2006/05/14(日) 01:36:21 ID:M4k5Ft5A
てゆーかマインスイーパ程度のコード、ある程度想像できるだろうに。
880877:2006/05/14(日) 02:21:45 ID:zrXSphTj
>>878
最低限の機能がついたマインスイーパを作りたいです。

>>879
初心者なうえにアホなんでよくわかりません。
パーツごとのロジックは理解できる(例えばセルの配置、爆弾の検索等)のですが、
ソースを書いてもおかしいいらしく動かないです。
実際に動いているものを参考にしようと思ったのですが、
余計な機能が多くわかりずらいです。

アドバイスお願い致します。
881名前は開発中のものです。:2006/05/14(日) 02:26:55 ID:B84+ktZw
>>880
googleですぐに出てくるわけだが?
http://www1.linkclub.or.jp/~zhidao/zlab/computing/minesweeper.html
882名前は開発中のものです。:2006/05/14(日) 02:28:53 ID:B84+ktZw
883877:2006/05/14(日) 02:32:55 ID:zrXSphTj
>>881
ありがとうございます。参考にさせていただきます。
884名前は開発中のものです。:2006/05/14(日) 15:01:28 ID:Lsf7SKPq
ちょっと聞きたいんだけど
ttp://cwaweb.bai.ne.jp/~falcon/
のSpriteEXって、Ver.3.00以降のQuadrupleDだと使えないのか?
885名前は開発中のものです。:2006/05/14(日) 17:39:43 ID:mFnx0vaw
そのままだと使えないだろ
ソース読んでみたけど、やってることはソートしてDrawPrimitive呼んでるだけなんで
TSXScene使うのと大差ないなぁというのが感想
それにDDDDにはDirect3D用のレンダラもあるしわざわざ使おうとは思わんな
886名前は開発中のものです。:2006/05/15(月) 16:56:29 ID:hEHwBRwW
良くあるクリゲーみたいにマウスクリックした場所ににキャラを移動したいのですが、
クリック位置の3D座標ってどうやって取得すればいいのでしょう?
887名前は開発中のものです。:2006/05/15(月) 18:01:42 ID:cNPgYm53
2Dポインターデバイスであるマウスから3D座標を取得するのですか そうですか

GetCursorPos や Mouse.CursorPos でグローバル座標(ディスプレイの左上が0,0)がとれる。
それを ScreenToClient でクライアント座標(コントロールの左上が0,0)に変換。

もしくは OnMouseDown イベントのハンドラに渡される X, Y がクリックされた座標。
こちらはクライアント座標なので変換は不要。

もちろんX,Y軸だけ。Direct3D だと便利な関数があるのかも。知らないけど。
888名前は開発中のものです。:2006/05/15(月) 19:12:52 ID:g5S1zZsm
スクリーン中のマウスの座標とカメラの視野の矩形を対応させた位置と
カメラ座標からのベクトルをとって、
何かに接触するまで直進すればいいんじゃない?
889名前は開発中のものです。:2006/05/16(火) 10:52:53 ID:nzZBeKuy
グラフィックス関係はこちらが詳しいと思うので教えてください。

Delphiで株価チャートを簡単に表示できるようなコンポーネントがありましたら
教えてもらえないでしょうか。
今はD7Proを使っています。

あと、参考になるソースなどありましたらぜひお願いします。
890名前は開発中のものです。:2006/05/16(火) 12:05:14 ID:BXQWVb4A
>>889
どうみても板違い
891名前は開発中のものです。:2006/05/16(火) 13:14:39 ID:NiVebEPe
>>890
いや、株式トレードのゲーム作りたいんじゃね?
それだったら板違いじゃない。
892889:2006/05/16(火) 13:50:32 ID:SUvNFOdB
バーチャル株式トレードゲームです。
すみませんが、どなたか回答をお願いします。。。
893名前は開発中のものです。:2006/05/16(火) 14:13:22 ID:NiVebEPe
参考となるソースってことで
<a href=
894893:2006/05/16(火) 14:15:28 ID:NiVebEPe
うわなんかへんなことになってる…スマソorz
ttp://www.geocities.jp/retort_curry119/graph.htm
がJAVAだけどどうか、
あとこんな過疎スレで即日解答を求めるなと書こうとしたら…
895889:2006/05/16(火) 16:54:23 ID:RP4CI60w
う〜ん、やっぱり無いですか。。。orz
http://junki.main.jp/kako01.html
こちらのサイトにグラフィック関係のソースが大量においてあったのですけど、
ボックスとかラインとかを簡単に描けるコンポとかは無いんですよね。
どちらかと言うと画像の色を加工したり反転させるなどの画像編集系が多い。

ML検索しても無いですしやっぱり1から作るしか無いのでしょうかねえ。。。

paintbox,image,TeeChart,TChart,TDBChart,Canvasってあるけどどれが適切なのかも
分からないもんで。
できたらTDBCHARTを使えたら、dbのデータを直接放り込めるから便利なんだけど。
896889:2006/05/16(火) 17:20:10 ID:RP4CI60w
連続カキコスマソ
http://forum.nifty.com/fdelphi/samples/01021.html
こんなの見つけたけどD7にはTChartSeries,TCustomSeriesが無いから
通らないです。
897名前は開発中のものです。:2006/05/16(火) 20:44:38 ID:EF6o0a3I
>>895
TImageのCanvasに自力で描画するのが手取りばやいとおもう
898名前は開発中のものです。:2006/05/21(日) 01:41:22 ID:+4KF8rXu
あまりにも基本過ぎて誰も質問しなかっただけ。
899名前は開発中のものです。:2006/05/26(金) 16:04:17 ID:K3cI/Z+S
つまり、そういった基本的なことがネット上には不足してると?
900名前は開発中のものです。:2006/05/26(金) 16:53:19 ID:+U+iT7JE
>>899
は い ?
901名前は開発中のものです。:2006/05/26(金) 18:28:32 ID:9R2XzyxM
>>899
聞かないと困る人が居ないので、
ネット上に解答も存在していない
902名前は開発中のものです。:2006/05/27(土) 02:25:50 ID:2IU3JkXR
素直に教えてあげればいいのに、何故そんなに排他的なのか理解できない
>>897が妥当だと思うよ
ヘルプでCanvasを調べたらメソッドの解説も載ってたと思う
903名前は開発中のものです。:2006/05/27(土) 03:36:26 ID:DbCpqm4N
うん。
Delphiは、とりあえう、画面に画像だすのは簡単なんだけど、
ゲーム用に使おうとするとどれ使っていいかわかんなかったりする。
ゲーム用にってのは、高速に、だったり、ちらつかない、だったりする。
しかも、TImageだったり、TPaintBoxだったり、TBitmapがあったりして、
結局どれ使うのよ?
という疑問は最初はあると思う。
Delphiでゲーム作るときは誰しも通る道だと思う。
904名前は開発中のものです。:2006/05/27(土) 03:47:07 ID:DbCpqm4N
で、手段はいくつかある。

まず、用語解説。一般的じゃないかもしれんが、勘弁してくれ。

バックバッファ: ちらつかないようにするための裏画面
表示バッファ: 画面に見える


その1、TImageを利用する方法

・表示バッファ用のTImage
 VisibleをTrueにしとく
・バックバッファ用のTImage
 VisibleをFalseにしとく
・キャラクタ画像用のTImage複数
 VisibleをFalse、TransparentをTrue、
 あらかじめ適当な画像を読み込んでおく

あとは、
・バックバッファを適当に消去
 Canvas.FillRectあたりを使う
・キャラ画像をバックバッファにコピー
 TImage.Canvas.Drawを使う
・バックバッファを表示バッファにコピー
 上と同じ

これで、キャラ画像の背景を透過して、
ちらつかないで画像が表示できる(はず)
速度はちと遅い(でも数年前の話)けど、慣れたら簡単
905名前は開発中のものです。:2006/05/27(土) 03:57:04 ID:DbCpqm4N
↑ウマくいかんだら、聞いてね。昔やった方法だから、忘れてるかも

その2、TBitmapを使う方法

・表示用のTImageを用意する
・バックバッファ用のTBitmapを用意する
・キャラクタ画像用のTBitmapを用意する
 LoadFromFileとかで、実行時に画像を読み込む

TBitmapはFormCreateとかで、Createするのをお忘れなく。

あとは、
・バックバッファを消去
・キャラ画像をバックバッファにコピー
 Canvas.Drawとか、
 ScanLineとか使って、コピー
・バックバッファを表示バッファにコピー
 Canvas.Drawでいいか?
906名前は開発中のものです。:2006/05/27(土) 03:58:18 ID:DbCpqm4N
その3、DirectXを使う方法

DirectXでも、DirectDrawとかDirect3Dがある。
これは、SDKとか落としてきて、CとかC++の資料を見ればわかる。
グラフィックカードにもよるが、一番これが速度が速い。
907名前は開発中のものです。:2006/05/27(土) 04:03:09 ID:DbCpqm4N
って、ここまで書いて、元の質問が、ローソク足描くだけのことだと気づいた。
俺の苦労はいったい・・・ orz

908名前は開発中のものです。:2006/05/27(土) 05:07:06 ID:qKgM8ReK
>>907
(´・ω・)カワイソス

きっと君の書いたチュートリアルに感謝する初心者もいるはずさ・・・!
909名前は開発中のものです。:2006/05/27(土) 17:20:02 ID:cvS7Jxha
>>905
解説するのはいいがTBitmapを解放することも教えてやれよ
910名前は開発中のものです。:2006/05/27(土) 19:03:50 ID:cvS7Jxha
いま気付いた。マグロ漁船
911名前は開発中のものです。:2006/05/28(日) 03:30:14 ID:T/x78PMQ
>903-907
補足しておく。
TForm(TWinControl)のDoubleBufferedプロパティをTrueにすれば同じ効果が得られる。
後、画面がちらつくのは一度画面クリアしてから描画を行っているからなので、ダブルバッファを使わなくても画面クリアを行わないようにすればちらつかない。
del6で確認した所procedure Paint;時に画面クリアしているので、overrideして内部でinheritedを呼ばないようにすればOK。
ゲーム用ならTFormのprocedure Paintをoverrideして直接Canvasに描画するやり方が楽かも。
912名前は開発中のものです。:2006/05/28(日) 04:57:34 ID:NI/jAZBG
へぇ、それでPaintイベントを止めるってわけか
913名前は開発中のものです。:2006/05/29(月) 02:36:12 ID:uZN4PARX
通りすがりだが参考になったよ
サンクスコ
914:2006/05/29(月) 08:43:50 ID:EScKESZS
画面クリアって再描画するときクライアントカラーで塗りつぶすことを言ってるんでしょ
それやってるのって Paint じゃなくて WM_ERASEBKGND のメッセージメソッドじゃないの?
TCustomForm.Paint は Assigned(FOnPaint) をチェックしてるだけだし

  TForm1 = class(TForm)
  private
    procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
  end;

procedure TForm1.WMEraseBkgnd(var Message: TWMEraseBkgnd);
begin
  //なーんもしない
  Message.Result := 1;
end;

あ、これだったら TForm.Brush.Style := bsClear; でも同じかな

>>910
マグロよりカニのほうが儲かるらしいよ( ̄ー ̄)ニヤリッ
915911:2006/05/29(月) 09:52:15 ID:t6UaTX2i
>procedure Paint;時に画面クリアしているので
俺は何を書いてるんだ。寝ぼけてんのか。
>914の言うとおりPaintはFOnPaintを呼び出してるだけだ。inheritedしても多少実行速度が速くなるだけでちらつきは止まらない。

>914 フォローサンクス。ところで名前欄に妙な文字が入ってるみたいだぞ。
916名前は開発中のものです。:2006/05/29(月) 09:55:51 ID:t6UaTX2i
×inheritedしても
○inherited止めても
本気で寝ぼけてんな。
917名前は開発中のものです。:2006/05/29(月) 11:43:34 ID:NefmNljv
>>915
マァの人だからでしょ
918名前は開発中のものです。:2006/05/29(月) 12:48:03 ID:t6UaTX2i
「マァの人」で検索したらわかった。コテハンだったんだな。妙な文字なんつってスマン。
>917もわざわざスマンな。
919名前は開発中のものです。:2006/05/30(火) 12:53:26 ID:JUitY34u
ポインタ操作ってどうやるの?

p,v: Pointer;

vにpからある一定の大きさだけ後ろのアドレスを指定したい

v := p;
Inc(PBYTE(v),ある一定の大きさ);

これをやるとpのアドレスまで変わってしまう?
920名前は開発中のものです。:2006/05/30(火) 13:26:58 ID:+X21N2Yf
v = pointer(integer(p)+100);
スマートじゃないなあ・・・
921名前は開発中のものです。:2006/05/30(火) 14:11:20 ID:ss191I5G
>これをやるとpのアドレスまで変わってしまう?
変わらない。
922名前は開発中のものです。:2006/05/30(火) 14:21:37 ID:G3qDWiPC
>>919ので間違いではない
v:=pやっても別にpのアドレスはかわらん

だが、Pascalでは、

v := @( PByteArray(p)[ n ] );

ってな書き方をする方が多いと思う。
そういうわけで、Pointer型なんかよりは、PByteArrayを多用すると楽ちん
923名前は開発中のものです。:2006/05/30(火) 18:29:57 ID:2UT4+Oju
俺もほとんど生ポインタ使わんな
>>922みたいに、バイト配列にキャストしてIndexでアクセスする
924名前は開発中のものです。:2006/05/30(火) 18:40:41 ID:Dsd2Lvyv
>>922
PByteArrayなんてあったんだー
これは便利だ!!
925名前は開発中のものです。:2006/05/30(火) 20:38:51 ID:G3qDWiPC
>>924
sysutilsにて定義されている

自分で定義するなら、

type
PByteArray=^TByteArray ;
TByteArray=array[0..1023] of byte ;

ってなとこ
926名前は開発中のものです。:2006/05/31(水) 02:31:11 ID:jPRHLqEG
DirectXの頂点バッファってロックしてポインタで取得するでしょ
あれを取得するときに使えるワザだなと
PByteArrayで取得して40バイトずつずらしてユーザー定義の構造体に
キャストする
927名前は開発中のものです。:2006/05/31(水) 13:57:33 ID:Ka6gjiAS
それだったら、最初からユーザー定義の構造体の配列とそのポインタ作った方がよくね?
928名前は開発中のものです。:2006/06/01(木) 20:19:20 ID:jyfWqyoY
このスレ最近知って読んでるんだが。

スクリプトエンジン作ってる言う人が結構いたけど
Delphiでパーサージェネレーターってあるの?
929名前は開発中のものです。:2006/06/01(木) 21:03:05 ID:ulKxJS9r
>>928
yacc/lex Delphi でぐぐる
930名前は開発中のものです。:2006/06/02(金) 01:05:48 ID:Dy3JqRf/
俺は再帰下降構文解析でやってるが、デバッグしねる。
コンパイラコンパイラ使ったほうがいいよ・・・
931名前は開発中のものです。:2006/06/02(金) 01:49:38 ID:CLlntjIq
v := @( PByteArray(p)[ n ] );
だと要素のアドレスだから嫌い。

V := Pointer(Integer(P) + 40);

だな。
932名前は開発中のものです。:2006/06/02(金) 02:12:19 ID:aIT54UI1
>>931
おれはポインタを整数型にする方が気持ち悪いが、
まあ、人それぞれだろ。
933名前は開発中のものです。:2006/06/02(金) 03:30:28 ID:40xc9cjN
マイナスにならないならIntegerよりByteかWordを使うべきだよね
forのループカウンタとかも、Integerにすべきじゃないよね
934名前は開発中のものです。:2006/06/02(金) 04:14:32 ID:aIT54UI1
>>933
そんな餌に釣られるクマー(AA略
935名前は開発中のものです。:2006/06/02(金) 04:17:20 ID:CLlntjIq
そう言えば、Integer型とポインタ型に互換性が無くなると問題になりますね。
でもコンパイラエラーが出るのかな。
936名前は開発中のものです。:2006/06/02(金) 04:28:53 ID:CLlntjIq
いや待てよ、MaxInt + 40 でオーバーフローが出るのか。
データは2G以下のアドレスにあるから偶々出ていないだけで
問題のあるコードかもしれない。 LongWordでキャストするべきなのかな。
937名前は開発中のものです。:2006/06/02(金) 19:57:20 ID:40xc9cjN
Integerがオーバーフローするとマイナス値になって、しかもエラーを
吐かない、難しいバグになるでしょ
なんでもかんでもIntegerを使うのは危険かもしれない
938名前は開発中のものです。:2006/06/02(金) 20:08:38 ID:Qv1KmChy
>>937
だからByteかWord使えってのかwww?
939名前は開発中のものです。:2006/06/02(金) 21:53:04 ID:40xc9cjN
LongWordでもCardinalでもいいけどさ
940名前は開発中のものです。:2006/06/02(金) 23:37:56 ID:HfHloQil
>>937
{$R+, Q+}
ならちゃんとEIntOverflowが出るよ。

{$R-,Q-}だと出ないけど、そもそもマイナス値になってもアドレスとしては正しいのでは?

ちなみに配列の大きさはMaxIntまでだから、Byte型配列の場合は
0..MaxInt-1まで有効。 範囲チェックを切った状態でMaxInt以上に
アクセスした時どうなるかは知らない。
941名前は開発中のものです。:2006/06/03(土) 01:57:53 ID:8lrmUmFG
こんな本見つけた
ちと古いが
Delphiなら……ゲームが作れる!―アクション/シューティング/RPG/ADV/育成/パズル/SLG……ゲームプログラミングの全エッセンス!
http://www.amazon.co.jp/exec/obidos/ASIN/4939049574/250-3860518-9856213
942名前は開発中のものです。:2006/06/03(土) 11:22:47 ID:DadOjMCi
>>941
評価低くなかったっけ
943名前は開発中のものです。:2006/06/03(土) 16:07:08 ID:9aoSFblr
>>941
その本のソース、全部ネットで落とせるから買うのはお勧めできない。
944名前は開発中のものです。:2006/06/11(日) 15:02:19 ID:YVDGxovv
QuadrupleD で、メタセコイアで作ったデータをそのまま表示するには
どうするの? x→sx変換するとテクスチャが失われるんだけど
945名前は開発中のものです。:2006/06/11(日) 16:41:44 ID:hrsH9ihZ
なんか、他でもその質問出てたな
フレームだったかメッシュだったかのテクスチャプロパティに放り込むんだよ
946名前は開発中のものです。:2006/06/12(月) 20:53:48 ID:j6OLm9qK
DELPHIオワタ
947名前は開発中のものです。:2006/06/12(月) 23:33:32 ID:zmnG9/Yc
DELPHIハジマルー
948名前は開発中のものです。:2006/06/14(水) 00:32:53 ID:Es+yimp3
そろそろ次スレの季節だぜ
↓こっち再利用すっか

【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 2【Delphi】
http://pc8.2ch.net/test/read.cgi/gamedev/1097836469/l50
949名前は開発中のものです。:2006/06/25(日) 01:32:16 ID:biiop8jv
DelphiでGetPixel関数に当たるものありませんかー??
950名前は開発中のものです。:2006/06/25(日) 01:34:04 ID:biiop8jv
あれ?GetPixel関数ってあるんですね・・・すまんです
951名前は開発中のものです。:2006/06/25(日) 01:49:04 ID:biiop8jv
もうひとつ質問です

GetPixel(Application.Icon.Handle,0,0)
アイコンの0,0座標の色を取るにはこれでいいんでしょうか?
952名前は開発中のものです。:2006/06/25(日) 19:01:17 ID:kpTFq30b
>>951
試してみればわかるじゃないw
953名前は開発中のものです。:2006/06/26(月) 04:24:06 ID:Ar9RgbF3
>>952
おまえは俺かw
954名前は開発中のものです。:2006/06/26(月) 11:18:32 ID:i8RTjGMl
CanvasのPixelsは?
955名前は開発中のものです。:2006/06/29(木) 21:20:47 ID:7Elg7Vgb
Canvas.Pixels[x, y]
956名前は開発中のものです。:2006/06/29(木) 22:00:08 ID:jCPtRoGH
Canvasタン(;´Д`)ハァハァ
957名前は開発中のものです。:2006/06/29(木) 22:09:43 ID:oaozwH26
ロナウジーーーーにょ!
958名前は開発中のものです。:2006/07/04(火) 23:36:24 ID:hPF+Wblr
Canvas.Pixels[x, y] はビットマップからしか読み込めませんでした・・・
959:2006/07/05(水) 00:33:06 ID:suHNhbLN
こんなのとか
http://bbs.com.nifty.com/mes/cf_wrentT_m/FDELPHI_B002/wr_sq=FDELPHI_B002_0000000245

あとはこんなんとか
var
  icon: TIcon;
  bmp: TBitmap;
begin
  try
    icon := TIcon.Create;
    icon.LoadFromFile('hoge.ico');

    bmp := TBitmap.Create;
    bmp.Width := icon.Width;
    bmp.Height := icon.Height;
    bmp.Canvas.Draw(0, 0, icon); //ビットマップに描く
  finally
    FreeAndNil(icon);
    FreeAndNil(bmp);
  end;
end;
960名前は開発中のものです。:2006/07/08(土) 00:27:58 ID:8b2pzgGC
>>ぬーぬー
どうもです
961ぬーぬー ◆9fLecX9sq2 :2006/07/08(土) 00:43:59 ID:L586tE+t
>>960
>>959は俺じゃないっすよ
962名前は開発中のものです。:2006/07/08(土) 01:12:15 ID:8b2pzgGC
>>961
えー、ぬって名前に入れてるの全部ぬーぬーかと思ってた。

>>959さん
失礼しました
963名前は開発中のものです。:2006/07/08(土) 11:15:25 ID:rOvAD77q
>>962
な行の人だと思う
964名前は開発中のものです。:2006/07/09(日) 18:05:04 ID:CQ59iyrl
文字の縁取りの描写で太さ柔軟に変えられるようにするんだったら
文字のアウトラインを1文字ずつ取得して、そのアウトラインに沿ってペンの太さを変えて描写する
多分>>864が見たのってそんな感じじゃないかな
965:2006/07/09(日) 22:33:33 ID:XOA6mg0W
(;; @u@)ノシ <アウトラインでもいいけどパス使ったほうが簡単ビーム
966名前は開発中のものです。:2006/07/09(日) 22:40:25 ID:aSjtkPwz
967名前は開発中のものです。:2006/07/09(日) 23:08:50 ID:TOVG50/H
メインループにOnIdle使うと、メニュー表示とかで停止しちゃうじゃない
ネットワーク対応とかだと停止しちゃ困る。

キー降下イベントから、
ALTキーとF10の時に回避処理書けばなんとかなるけど、
それで本当にIdleの安定性が保障されてるのかなあ

アーキテクチャ的にキモイ気がするんだけど、

でもやっぱOnIdle?
968名前は開発中のものです。:2006/07/09(日) 23:19:50 ID:31k7KRE7
じゃあ、自分でプライオリティを上げたスレッド立ててループ回せばいいじゃん
969名前は開発中のものです。:2006/07/09(日) 23:27:33 ID:TOVG50/H
>>968
なるほど!
スレッド使った経験無いけどそれでやってみようかな
970名前は開発中のものです。:2006/07/10(月) 23:07:00 ID:suZvZ9dr
QD3についてお聞きしたいことがあるので質問させていただきます。

画像を表示させる際、
http://delphi.nce.buttobi.net/
ここのTutorial07のスプライトの表示の方法だと、
http://www.gamdev.org/up/img/6485.png
このような画像をDXTextureに読み込ませた場合、
ひとつだけ、または順番に表示させようとしているのですが、上手くできません。
(うpはPNGでしてますが、実際にはBMPでしてますよ。もちろん)

やろうとするなら、画像を一つ一つバラバラにし、それだけの数のDXTextureの変数
を用意し、読み込ませるしか無いのでしょうか?

どなたか御教授くださいますようお願いいたします。
971名前は開発中のものです。:2006/07/10(月) 23:29:31 ID:i37BpqZG
あのサイトはあんまり信じるな。妙な記述がなんぼかあるし、いろいろ怪しい。

しかも、中の人はアマゲニュースの中の人とほぼ同一人物(アマゾンアフィリエイトのIDが同一だった)のくせに,
ジサクジエンでサイトを宣伝して広告料を稼いでいるという話もちらほら聞く。

で、スプライトだけど、できるよ。
Pushspriteで、UVを指定してやるわけね。
左あるいは上が0.0 右あるいは下が1.0ね。

Pushspriteで四角を指定する順番は、「左上、右上、左下、右下」の順 あるいは、それを回転したものにするということも気を付けてね。

それでもよくわからんかったらまた書いてくれ。
サンプルをどこぞにアップしてあげるから。
972ぬーぬー ◆9fLecX9sq2 :2006/07/11(火) 00:32:57 ID:oEWvmZeI
>>970

//左上のこまを出す
SXScene.PushSprite(
Vector2D(100,100),//スプライトの中心が来る座標
[
SXVertexSP(-80 ,-80, $FFFFFFFF, 0/Texture.TotalWidth ,0/Texture.TotalHeight),
SXVertexSP(+80, -80, $FFFFFFFF, 159/Texture.TotalWidth,0/Texture.TotalHeight),
SXVertexSP(-80 ,+80, $FFFFFFFF, 0/Texture.TotalWidth,159/Texture.TotalHeight),
SXVertexSP(+80,+80, $FFFFFFFF, 159/Texture.TotalWidth,159/Texture.TotalHeight)
],
DGTexture,
);
//その右下のコマを出す

上のやつの tu tvを
160/Texture.TotalWidth,160/Texture.TotalWidth
319/Texture.TotalWidth,160/Texture.TotalWidth
160/Texture.TotalWidth,319/Texture.TotalWidth
319/Texture.TotalWidth,319/Texture.TotalWidth

SXScene.Render(nil);

こんな感じ
973ぬーぬー ◆9fLecX9sq2 :2006/07/11(火) 00:34:27 ID:oEWvmZeI
159じゃなくて160か???
974970:2006/07/11(火) 17:52:34 ID:4lZkiSOW
>>971
なるほど…
肝に命じておきます

>>972
わざわざサンプルソースまで用意していただいてありがとうございます。

できました!

とりあえず、出来ると言う事がわかったので、微妙にわからない事もありますが、
用意してくれたソースを理解して行けるように頑張ります。


本当にありがとうございました!
975ぬーぬー ◆9fLecX9sq2 :2006/07/11(火) 21:06:35 ID:oEWvmZeI
160でした

>>974
>微妙にわからない事
どしたの
976970
>>975
ぶっちゃけ、SXVertexSP関数の仕様とか、
いままでがなぜだめでこれならおkなのかわからない程度なので、
自分で頑張ってみます。

わからなかったらまた聞きに来るかも知れませんが、その時はよろしくお願いします。

丁寧にありがとうございました。