[過去ログ] Delphiゲームプログラミング相談室 (976レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
908: 名前は開発中のものです。 [sage] 2006/05/27(土) 05:07:06 ID:qKgM8ReK(1) AAS
>>907(´・ω・)カワイソス
きっと君の書いたチュートリアルに感謝する初心者もいるはずさ・・・!
909: 名前は開発中のものです。 [sage] 2006/05/27(土) 17:20:02 ID:cvS7Jxha(1/2) AAS
>>905905(2): 名前は開発中のものです。 [] 2006/05/27(土) 03:57:04 ID:DbCpqm4N(3/5) AAS
↑ウマくいかんだら、聞いてね。昔やった方法だから、忘れてるかも
その2、TBitmapを使う方法
・表示用のTImageを用意する
・バックバッファ用のTBitmapを用意する
・キャラクタ画像用のTBitmapを用意する
LoadFromFileとかで、実行時に画像を読み込む
TBitmapはFormCreateとかで、Createするのをお忘れなく。
あとは、
・バックバッファを消去
・キャラ画像をバックバッファにコピー
Canvas.Drawとか、
ScanLineとか使って、コピー
・バックバッファを表示バッファにコピー
Canvas.Drawでいいか?
解説するのはいいがTBitmapを解放することも教えてやれよ
910(1): 名前は開発中のものです。 [sage] 2006/05/27(土) 19:03:50 ID:cvS7Jxha(2/2) AAS
いま気付いた。マグロ漁船
911(1): 名前は開発中のものです。 [sage] 2006/05/28(日) 03:30:14 ID:T/x78PMQ(1) AAS
>903-907
補足しておく。
TForm(TWinControl)のDoubleBufferedプロパティをTrueにすれば同じ効果が得られる。
後、画面がちらつくのは一度画面クリアしてから描画を行っているからなので、ダブルバッファを使わなくても画面クリアを行わないようにすればちらつかない。
del6で確認した所procedure Paint;時に画面クリアしているので、overrideして内部でinheritedを呼ばないようにすればOK。
ゲーム用ならTFormのprocedure Paintをoverrideして直接Canvasに描画するやり方が楽かも。
912: 名前は開発中のものです。 [sage] 2006/05/28(日) 04:57:34 ID:NI/jAZBG(1) AAS
へぇ、それでPaintイベントを止めるってわけか
913: 名前は開発中のものです。 [sage] 2006/05/29(月) 02:36:12 ID:uZN4PARX(1) AAS
通りすがりだが参考になったよ
サンクスコ
914(1): ぬ [sage] 2006/05/29(月) 08:43:50 ID:EScKESZS(1) AAS
画面クリアって再描画するときクライアントカラーで塗りつぶすことを言ってるんでしょ
それやってるのって 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
マグロよりカニのほうが儲かるらしいよ( ̄ー ̄)ニヤリッ
915(1): 911 [sage] 2006/05/29(月) 09:52:15 ID:t6UaTX2i(1/3) AAS
>procedure Paint;時に画面クリアしているので
俺は何を書いてるんだ。寝ぼけてんのか。
>914の言うとおりPaintはFOnPaintを呼び出してるだけだ。inheritedしても多少実行速度が速くなるだけでちらつきは止まらない。
>914 フォローサンクス。ところで名前欄に妙な文字が入ってるみたいだぞ。
916: 名前は開発中のものです。 [sage] 2006/05/29(月) 09:55:51 ID:t6UaTX2i(2/3) AAS
×inheritedしても
○inherited止めても
本気で寝ぼけてんな。
917(1): 名前は開発中のものです。 [sage] 2006/05/29(月) 11:43:34 ID:NefmNljv(1) AAS
>>915
マァの人だからでしょ
918: 名前は開発中のものです。 [sage] 2006/05/29(月) 12:48:03 ID:t6UaTX2i(3/3) AAS
「マァの人」で検索したらわかった。コテハンだったんだな。妙な文字なんつってスマン。
>917もわざわざスマンな。
919(1): 名前は開発中のものです。 [] 2006/05/30(火) 12:53:26 ID:JUitY34u(1) AAS
ポインタ操作ってどうやるの?
p,v: Pointer;
vにpからある一定の大きさだけ後ろのアドレスを指定したい
v := p;
Inc(PBYTE(v),ある一定の大きさ);
これをやるとpのアドレスまで変わってしまう?
920: 名前は開発中のものです。 [sage] 2006/05/30(火) 13:26:58 ID:+X21N2Yf(1) AAS
v = pointer(integer(p)+100);
スマートじゃないなあ・・・
921: 名前は開発中のものです。 [sage] 2006/05/30(火) 14:11:20 ID:ss191I5G(1) AAS
>これをやるとpのアドレスまで変わってしまう?
変わらない。
922(2): 名前は開発中のものです。 [] 2006/05/30(火) 14:21:37 ID:G3qDWiPC(1/2) AAS
>>919ので間違いではない
v:=pやっても別にpのアドレスはかわらん
だが、Pascalでは、
v := @( PByteArray(p)[ n ] );
ってな書き方をする方が多いと思う。
そういうわけで、Pointer型なんかよりは、PByteArrayを多用すると楽ちん
923: 名前は開発中のものです。 [] 2006/05/30(火) 18:29:57 ID:2UT4+Oju(1) AAS
俺もほとんど生ポインタ使わんな
>>922みたいに、バイト配列にキャストしてIndexでアクセスする
924(1): 名前は開発中のものです。 [] 2006/05/30(火) 18:40:41 ID:Dsd2Lvyv(1) AAS
>>922
PByteArrayなんてあったんだー
これは便利だ!!
925: 名前は開発中のものです。 [] 2006/05/30(火) 20:38:51 ID:G3qDWiPC(2/2) AAS
>>924
sysutilsにて定義されている
自分で定義するなら、
type
PByteArray=^TByteArray ;
TByteArray=array[0..1023] of byte ;
ってなとこ
926: 名前は開発中のものです。 [sage] 2006/05/31(水) 02:31:11 ID:jPRHLqEG(1) AAS
DirectXの頂点バッファってロックしてポインタで取得するでしょ
あれを取得するときに使えるワザだなと
PByteArrayで取得して40バイトずつずらしてユーザー定義の構造体に
キャストする
927: 名前は開発中のものです。 [] 2006/05/31(水) 13:57:33 ID:Ka6gjiAS(1) AAS
それだったら、最初からユーザー定義の構造体の配列とそのポインタ作った方がよくね?
928(1): 名前は開発中のものです。 [sage] 2006/06/01(木) 20:19:20 ID:jyfWqyoY(1) AAS
このスレ最近知って読んでるんだが。
スクリプトエンジン作ってる言う人が結構いたけど
Delphiでパーサージェネレーターってあるの?
929: 名前は開発中のものです。 [sage] 2006/06/01(木) 21:03:05 ID:ulKxJS9r(1) AAS
>>928
yacc/lex Delphi でぐぐる
930: 名前は開発中のものです。 [] 2006/06/02(金) 01:05:48 ID:Dy3JqRf/(1) AAS
俺は再帰下降構文解析でやってるが、デバッグしねる。
コンパイラコンパイラ使ったほうがいいよ・・・
931(1): 名前は開発中のものです。 [sage] 2006/06/02(金) 01:49:38 ID:CLlntjIq(1/3) AAS
v := @( PByteArray(p)[ n ] );
だと要素のアドレスだから嫌い。
V := Pointer(Integer(P) + 40);
だな。
932: 名前は開発中のものです。 [] 2006/06/02(金) 02:12:19 ID:aIT54UI1(1/2) AAS
>>931
おれはポインタを整数型にする方が気持ち悪いが、
まあ、人それぞれだろ。
上下前次1-新書関写板覧索設栞歴
あと 44 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.015s