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

このエントリーをはてなブックマークに追加
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なのかわからない程度なので、
自分で頑張ってみます。

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

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