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

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

Delphiでアクションゲームが作りたい!!

1 :デフォルトの名無しさん:02/04/24 22:29
Delphiでアクションゲームが作りたいんです。
初心者でもわかるように1から説明してください。
ネタじゃないです!!

2 :デフォルトの名無しさん:02/04/24 22:30
2

3 :デフォルトの名無しさん:02/04/24 22:32
ネタつくりと素材つくり(音楽 絵)頑張れ

4 :デフォルトの名無しさん:02/04/24 22:36
何故、お前なんかにわざわざ手間をかけて、1 から説明しなければ
ならないんだい?

5 :デフォルトの名無しさん:02/04/24 22:39
>>4
おながいしますよ。どうせ暇なんでしょ。
4000も出して本買ったけど、ゲームに結びつくようなことは何もかかれてなかった。

6 :デフォルトの名無しさん:02/04/24 22:40
ダイレクトXをダウンロードしる。
パソコンに合わない可能性も高いが。

7 :デフォルトの名無しさん:02/04/24 22:40
とりあえず、ファミコンのマリオみたいなゲーム作りたいです。

8 :デフォルトの名無しさん:02/04/24 22:41
>>1
ちょっとは自分で考えろよ。

9 :デフォルトの名無しさん:02/04/24 22:42
たしか「DelphiでWindowsゲームを作ろう」ってそのものずばりっぽい
本があったと思う。
それ買えば?

10 :デフォルトの名無しさん:02/04/24 22:42
>>7
じゃあまずはAボタン押したら■がジャンプするプログラムでも作っとけ。

11 :デフォルトの名無しさん:02/04/24 22:43
よし。じゃまず、方眼紙買ってこい。

12 :デフォルトの名無しさん:02/04/24 22:43
ゲーム製作技術板へ行って下さい。

13 :デフォルトの名無しさん:02/04/24 22:44
>>10
そういう時はどのコンポーネントを使えばいいのですか?

14 :デフォルトの名無しさん:02/04/24 22:46
>>13
脳みそ付いてますか?

15 :Delフサギコ ◆zE1iiRdQ :02/04/24 22:46
   ∧,,∧   
  ,ミ;゚Д゚彡 ドット疲れますた。
  ミ  ∪  
 ミ〜,, ミ
  ∪ ∪

16 :デフォルトの名無しさん:02/04/24 22:47
>>14
付いてますけど、どうすればいいかわからないです。

17 :デフォルトの名無しさん:02/04/24 22:49
>>16
とりあえず、sageを覚えて、ゲーム作りは一旦あきらめて
Delphiの腕を磨いてきてください。

18 :デフォルトの名無しさん:02/04/24 22:50
>>16
物理は知ってますか

19 :デフォルトの名無しさん:02/04/24 22:53
まずは2chの注意書きを読んでからにしてくれ。

20 :デフォルトの名無しさん:02/04/24 22:58
Sage


21 :デフォルトの名無しさん:02/04/24 23:00
フォームに ■ を描くプログラムからはじめたほうがよさそう

22 ::02/04/24 23:01
もうちょっと待ってて

23 :デフォルトの名無しさん:02/04/24 23:03
     
                                                 / ̄>
                          厨なニオイがするでござる  >   |゚U゚ヽ|/
                                                / y⊂)〜 
                                                  U〉  ⌒l  
                                              /(__ノ ~U
                                              /""""""""""""""""  




24 :デフォルトの名無しさん:02/04/24 23:03
ズレタ・・・・鬱

25 :デフォルトの名無しさん:02/04/24 23:04
>>22
あげるなって

26 :デフォルトの名無しさん:02/04/24 23:06
ゲームを作る
まずプログラムを勉強する(ゲームのゲの字も出てこない)
自分の作るゲームに必要そうな技術を勉強する(DirectXとか(むずい))
ゲームのネタを考える
そのゲームに必要な素材を揃える(絵 音)
やっとゲームのプログラムを作ろう。
くらいの流れでいこう。道のりは果てしなく長い 多分くじけるくらい長い。

27 ::02/04/24 23:07
>>25
すみません

28 :デフォルトの名無しさん:02/04/24 23:08
とりあえずこのあたりがよろしいかと
http://www-fu.magma.ne.jp/~hayase/dddd/index.html

29 :Delフサギコ ◆zE1iiRdQ :02/04/24 23:11
Delphiゲームプログラミング相談室
http://game.2ch.net/test/read.cgi/gamedev/1006249204/l50

  ∧,,∧ ゴルァ♪
 ミ,,゚Д゚彡 ゴルァ♪
 ミつ[|lllll]).  ゴルァ♪
〜ミ  ミ     ゴルァ♪
  U''U

30 :デフォルトの名無しさん:02/04/24 23:13
糞なページよりDelphi→HSPにしろ

31 :ほらよ:02/04/24 23:57
var ActionGame: TActionGame;
begin
 ActionGame := TMyActionGame.Create;
 try
  ActionGame.Run;
 finally
  ActionGame.Free;
 end;
end.

32 ::02/04/24 23:58
わから〜ん。
どうやったらジャンプするの?

33 :デフォルトの名無しさん:02/04/25 00:02
だからHSPにしとけって

34 ::02/04/25 00:33
ジャンプのしかたがわから〜ん
http://norisukeup.tripod.com/Project1.zip

35 :デフォルトの名無しさん:02/04/25 00:40
最悪マシンがハングした
お前のせいだ

36 ::02/04/25 00:42
>>35
ウソつくなよ!

37 ::02/04/25 01:18
だれかヒントください
■をラベルとして貼り付けて、ボタンを押すとその座標が上に来るようにしたいんですけど、
どうすればいいのかわかりません(>_<)

38 :デフォルトの名無しさん:02/04/25 01:30
ジャンプした瞬間から、重力と空気抵抗を考慮して微分方程式をパリパリ計算
させる。そして決定した座標に■描画。

とりあえず「ルンゲクッタ法」で検索かけてみ

39 :デフォルトの名無しさん:02/04/25 01:31
ルンタッタ

40 :マンゲクッタ:02/04/25 01:38
うむ

41 ::02/04/25 01:48
>>38
マジでそんなの考えなきゃいけないんですか?
難しいなぁ。勉強します。

42 :デフォルトの名無しさん:02/04/25 01:49
気楽に行こうぜ ルンタッタ

43 ::02/04/25 01:52
>>42
ありがとうございます。頑張ります。

44 :デフォルトの名無しさん:02/04/25 01:53
DelphiX

45 :42@Ð ë á t h ¹³:02/04/25 01:54
     /⌒\     /\
    /'⌒'ヽ \  ./\  |
    (●.●) )/   |: |
     >冊/  ./     |: /
   /⌒   ミミ \   〆
   /   / |::|λ|    |
   |√7ミ   |::|  ト、   |
   |:/    V_ハ   |
  /| i         | ∧|∧
   и .i      N /⌒ ヽ ) ←>>1
    λヘ、| i .NV  |   | |
      V\W   ( 、 ∪
              || |
               ∪∪

46 :デフォルトの名無しさん:02/04/25 02:01
DirectX使えば三次元アクションゲームが作れるんじゃにゃいにょ〜

47 :デフォさん:02/04/25 02:13
>>41
ドット座標系だから、シンプルな二次関数でいい。
放物線っていうだろ? 頂点の手前でだんだん遅くなる。



48 :デフォルトの名無しさん:02/04/25 02:16
ネタニマジレスダサスギデス>>47

49 ::02/04/25 02:25
>>47
なるほど。そういわれりゃそうですね。

>>48
ネタじゃないです。

50 :デフォルトの名無しさん:02/04/25 02:37
procedure TForm1.Button1Click(Sender: TObject);
const
n = 300;
var
i: Integer;
begin
for i := -n to n do
Canvas.LineTo(i+n,Height-Round(n-i*i/n));
end;
とりあえずマターリと放物線・・・


51 :デフォルトの名無しさん:02/04/25 02:58
デコジャンプなら直線で良いよ。

52 :デフォルトの名無しさん:02/04/25 03:33
もうネタのか?

53 :名無しヘタぐらま ◆B18Bks.Y :02/04/25 04:06
>>37
ボタンというのはキーボードのキーのことでいいのかな?
だったらOnKeyDownイベント.
たとえば「[↑]キーが押されたら…」という場合は
if Key = VK_UP then
というふうに書くよ.
(ほかのキーはDelphiのヘルプで『仮想キーコード』をキーワードに検索してみて.)
ただしラベルにはこのイベントはないからほかの手を考えて.

上か下かはラベルのTopプロパティで決まるよ.
この値をちょっとずつ増やしたり減らしたりすれば上下に動くよ.
どっちに動くかは実際にやってみて確かめてみてくれ.


54 :デフォルトの名無しさん:02/04/25 12:45
>>1
板違い。誌ね。

55 :デフォルトの名無しさん:02/04/25 16:19
相手をするから構ってくんが増えるのがわからないの?

56 ::02/04/25 17:14
>>53
ありがとうございます。参考になります。

いまだにジャンプができません(汗
皆さんの意見を参考に頑張ります。

57 ::02/04/25 17:16
>>52
ごめんなさい。学校があったもんですから。

58 :デフォルトの名無しさん:02/04/25 20:30
age

59 ::02/04/25 20:31
↑のは僕です。

60 :デフォルトの名無しさん:02/04/25 21:31
>1
もうちょっとツールに慣れてから来いや。
>>37の質問はゲーム云々以前の問題だろ。

−−−−−−−−1がDelphi慣れするまで放置−−−−−−−−

61 :デフォルトの名無しさん:02/04/25 22:38
>>60
34は見た?

62 :デフォルトの名無しさん:02/04/25 23:00
誰かWDirectXの使い方おしえてくれ〜
ttp://go.to/WDirectX

63 :デフォルトの名無しさん:02/04/25 23:42
ddddインスコできない。どうすりゃいいの?

64 ::02/04/26 00:06
結局今日もジャンプさせることが出来なかった。頭悪いな、オレ。
だけど、諦めません。ぜってーマリオ作るから。
明日も学校なので寝ます。おやすみなさい。

65 :デフォルトの名無しさん:02/04/26 00:10
高校レベルの物理くらい勉強すれば?
これを知ってないとお話にならない。

66 :デフォルトの名無しさん:02/04/26 00:28
頭悪い上にあきらめが悪いなんて相当たちが悪いねw

67 :デフォルトの名無しさん:02/04/26 00:36
Y=Y。*s-1/2(9.8*g*s*s)
X=X。*s
Y。、X。はジャンプするときの上方向、横方向の初速度
Y、Xはジャンプした物体の位置

上の式から座標を計算して…ってこれ位中学で習わなかったっけ?

68 :65:02/04/26 00:44
>>67
今リアル工房3年。
2年ではじめて物体の運動習ったとこだよ。
中学の理科では力くらいしか習わなかったなぁ。
中学では数学で放物線=物体の落下運動ってチラッと聞いたくらい。
むろん重力加速度なんて知らなかったし。

69 :デフォルトの名無しさん:02/04/26 00:45
加速度なんて消防の頃N88BASIC触ってたら
自然に発見したぞ。

70 :デフォルトの名無しさん:02/04/26 07:10
>>69
だよな。
学校で習う前に法則とか知ってたよな。
具体的な数値は違うけど。

71 :無責任だが:02/04/26 08:52
interface // ラベルを1個貼り付けて そのラベルを動かすコード
uses Windows, Messages, SysUtils,Classes, Graphics, Controls, Forms, StdCtrls;
type TMoveItem= record
   x,y,vx,vy,ax,ay:double;
   obj:TObject;
end;
TForm1 = class(TForm)
  Label1: TLabel;
  procedure FormCreate(Sender: TObject);
 private
  oldTime:DWORD;
  items:array [0..0] of TMoveItem;
 procedure Idle(Sender: TObject; var Done: Boolean);
 public
 end;
var Form1: TForm1;
implementation
{$R *.dfm}
var Clip:TRect;
procedure ExecMoveItem(var items:TMoveItem;dt:double);
begin
with items do begin
x:=x+vx*dt;    y:=y+vy*dt;
vx:=vx+ax*dt; vy:=vy+ay*dt;
if (round(x)<Clip.Left ) and (vx<0) then vx:=-vx;
if (round(x)>Clip.Right ) and (vx>0) then vx:=-vx;
if (round(y)<Clip.Top  ) and (vy<0) then vy:=-vy;
if (round(y)>Clip.Bottom) and (vy>0) then vy:=-vy;
   if  obj is TControl then
   with obj as TControl do begin Top:=Round(y);Left:=Round(x);end
else //ここに他のアイテムの動きを増やしてゆく
   ;
end;
end;

procedure TForm1.Idle(Sender: TObject; var Done: Boolean);
var t:DWORD; dt:Double; i:Integer;
begin
t:=GetTickCount; dt:=(t-oldTime)/1000.0;oldTime:=t;
if dt>0 then begin
 for i:=0 to High(items) do ExecMoveItem(Items[i],dt);
 end else  Sleep(33);
Done:= False;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin  Application.OnIdle:=Idle;
oldTime:=GetTickCount;
Clip:=ClientRect;
  with items[0] do begin
  obj:=Label1;
  x:=Label1.Left;
  y:=Label1.Top;
  vx:=20; vy:=-13;
  ay:=9.8; ax:=0.001;
  end;
 // ちらつきを減らすなら DoubleBuffered:=True;
end;
end.


72 :65:02/04/26 15:43
>>69-70
自分専用のPCもらったの工房1年。(;´Д`)
いちおう放物線を描いて物を飛ばすプログラム作ったけど
係数は1だったから不自然に思えたなぁ。
当時プログラムも覚えたてで
それでいっぱいいっぱいだったし。(;;;´Д`)
そしてなによりも>>1が加速度とかの類をハッケソできるか疑問。(w

73 :デフォルトの名無しさん:02/04/26 20:15
俺にもこんな時期があったなぁ(懐
がんばれ、1

74 ::02/04/27 23:46
まだまだ( ゚Д゚)

75 ::02/04/28 23:05
うぅ、風邪引いてしまった(T_T)

76 ::02/04/29 00:48
保守上げ

77 :デフォルトの名無しさん:02/04/29 01:44
>>65
プログラムなんてしてる暇あったら
勉強しろYO!

78 ::02/04/29 02:00
>>77
マリオが出来あがるまでは集中できないので勉強はしません。

79 :デフォルトの名無しさん:02/04/29 02:49
delphiで作られた有名なアクションゲームってある?

80 :80:02/04/29 02:52
80

81 :デフォルトの名無しさん:02/04/29 07:28
>>1  ■に放物線を描かせるやりかたは >>71 で判ったね?

次はキャラクタアクションかな アイデアはある? >>1

82 :デフォルトの名無しさん:02/04/29 08:55
有名かわしらんけど洋ゲーのファンタジー物であるらしいね。
それよりもここだ
http://www.sulaco.co.za/quake2/

83 :デフォルトの名無しさん:02/04/29 18:09
>>1
マジで受験勉強すれ
物理数学英語(化学)の偏差値60にしてからプログラムの勉強しても遅くないはず

人生棒に振るなよ

84 ::02/04/29 19:31
>>83
受験勉強ってなんのですか?

85 :デフォルトの名無しさん:02/04/29 20:34
大学受験のための勉強

86 ::02/04/29 20:37
>>84
マジっすか?今年高校に入学したばっかりなんですけど。

87 :デフォルトの名無しさん:02/04/29 20:40
>>1
マジっす!!
って進学校だったら毎日勉強しないとついていけないけどなぁ・・・。

88 ::02/04/29 20:42
いや、俺は半分より上にいれば満足なんで。

89 :デフォルトの名無しさん:02/04/29 20:43
受験勉強が必須かどうかはともかくも高校数学ぐらいはデフォで押さえる必要あり。

90 :デフォルトの名無しさん:02/04/29 20:43
>>1
高校のレベルはどのくらい?

91 ::02/04/29 20:44
>>90
数学は県でトップですが、県自体レベルが低いんで…鬱

92 :デフォルトの名無しさん:02/04/29 20:46
>>1
おお凄い!
頑張って東大に入ってからプログラムやりなさい

93 :デフォルトの名無しさん:02/04/29 20:50
>>89
2Dゲーム(マリオ)くらいだったら
中学数学で対応できるけどね

94 ::02/04/29 20:50
>>92
凄くないですよ。都道府県別学力ランキングでビリ争いするような所ですから。
東大なんて120%ムリです。

95 :デフォルトの名無しさん:02/04/29 20:51
>>1
今からやれば医学部でも東大でも狙えるぞ


96 :デフォルトの名無しさん:02/04/29 20:55
>>1
沖縄?宮城?

97 ::02/04/29 20:55
>>93
ホントですか!?じゃぁ、相当バカですね、俺。

>>95
別に大学は何処でもいいです。東大出ても就職が難しい時代ですから。

98 ::02/04/29 20:58
>>96
違います。民放が2つしかないド田舎です。

99 :デフォルトの名無しさん:02/04/29 21:00
どうでもいいが sage でやってくれ。

100 ::02/04/29 21:01
>>99
スミマセン。
100!!!

101 :デフォルトの名無しさん:02/04/29 21:02
>>99
なんで?

102 :デフォルトの名無しさん:02/04/29 21:05
駄スレだから。

103 :デフォルトの名無しさん:02/04/29 21:25
まあ>>1が頑張ってるから良スレになる予感はあるかもしれん。

104 :デフォルトの名無しさん:02/04/29 21:32
HSP とか Python/SDL 使ってからでも遅くないと思うんだがなぁ。
HSP なら日本語ドキュメントもあるわけだし。

105 :デフォルトの名無しさん:02/04/29 21:34
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!/SDL
を強く推奨します。

106 :デフォルトの名無しさん:02/04/29 22:01
>>63
ヘルプの「FAQ&Tips」にある「インストール方法、サンプルについて」を読め

107 :デフォルトの名無しさん:02/04/29 22:05
>>1
とりあえず、トリップつけてくれ。名前欄に"#英数字"
偽者気取ってても全然バレてないじゃん

108 :デフォルトの名無しさん:02/04/29 22:05
DELPHI+DDDD
で簡単にDIRECTX対応ゲーム作れるよ
2Dまでだけど(3Dだったら素直SDKで行ったほうがいい)

109 :◆lo8YkeSw :02/04/29 22:26
やっとジャンプできるようになりました。
まだ垂直ジャンプだけですけど(^_^;)

>>107
わかりました。トリップ付けます。

>>108
ddddはインストールはしてるんですけど、
まだ必要ないと思うので(というより使い方がわからない)もうちょっと普通に頑張ってみます。

110 :デフォルトの名無しさん:02/04/29 22:39
>>1
今はどんな勉強をしてるの?

111 :◆lo8YkeSw :02/04/29 22:43
>>110
高校でですか?
高校では2次関数をやってます。

112 :デフォルトの名無しさん:02/04/29 22:45
>>1
いや、デルファイの勉強
データ型とかは解る?
intgerとかstringとか

113 :◆lo8YkeSw :02/04/29 22:49
>>112
それは本を買ったんでわかります。
全部は覚えてないんですけど。

114 :デフォルトの名無しさん:02/04/29 22:52
>>1
関数の作り方も解りますか?


115 :◆lo8YkeSw :02/04/29 22:54
>>114
関数の作り方とはなんですか?

116 :デフォルトの名無しさん:02/04/29 22:58
procedureとかfunctionとかです。

117 :◆lo8YkeSw :02/04/29 23:03
>>116
i :=a(b.1)とかってするのですよね。いまいち使い方がわかりません。

118 :デフォルトの名無しさん:02/04/29 23:10
>>1
procedureは手続きで
functionは関数って事はわかります?


119 :デフォルトの名無しさん:02/04/29 23:14
関数の例
function add(a,b:integer) : integer;
var c : integer;
begin
c := a + b;
add := c
end;


120 :◆lo8YkeSw :02/04/29 23:16
>>118
あ、それはわかります。

121 :デフォルトの名無しさん:02/04/29 23:17
下の世話までしてくれそうなお人好しな奴隷がたくさんきてくれてよかったな>>1

122 :デフォルトの名無しさん:02/04/29 23:21
>>1
関数の作り方なんですけど
>>119さんの関数の実装の仕方はわかりますか?

123 :◆lo8YkeSw :02/04/29 23:23
>>119
それはaddというInteger型の関数で、パラメータがInteger型のa、bというということですか?
それはどういう時に使うんでしょうか?

124 :◆lo8YkeSw :02/04/29 23:26
>>122
あんまりわかんないです(´Д`;)

125 :デフォルトの名無しさん:02/04/29 23:29
>>1
Form1のpublic節の中に
function add(a,b:integer) : integer;
とかいて
implementation節のどっかに
function form1.add(a,b:integer) : integer;
var c : integer;
begin
c := a + b;
add := c
end;
とかけば実装完了です。

126 :デフォルトの名無しさん:02/04/29 23:31
>>119
標準Pascal準拠ではないが、result変数使った方がわかりやすいような気がするです。

127 :デフォルトの名無しさん:02/04/29 23:33
つうか高1なら数学で関数とは何ぞや、って習ってない?
f(x)=ax^2+bx+c
とか。
あれと一緒だよん。

128 :デフォルトの名無しさん:02/04/29 23:34
訂正
function form1.add(a,b:integer) : integer;

function Tform1.add(a,b:integer) : integer;

129 :デフォルトの名無しさん:02/04/29 23:38
あ、僕と同じような事考えてるバーヤな>>1さん発見。
じゃー僕も頑張ってみますか。。。

130 :デフォルトの名無しさん:02/04/29 23:40
なんかこのスレも↓みたいな雰囲気の良スレになるヨカソ。
http://pc.2ch.net/test/read.cgi/tech/1016308148/

131 :◆lo8YkeSw :02/04/29 23:44
>>125.128
実装方法はわかったんですけど、それはどういう時に使うものなんですか?

>>127
それは習いました。だけど、それと結びつかない…(´Д`;)

>>129
いっしょに頑張りましょう。



132 :デフォルトの名無しさん:02/04/29 23:51
>>119の関数は使い道ないですけど、実装するとこんな感じ!?
自分で関数作って、プログラム中で使ったりできる?
program cal(input,output);
var x,y : integer;

function add(a,b:integer) : integer;
var c:integer;
begin
c:=a + b;
add := c
end;

begin
write('x='); readln(x);
write('y='); readln(y);
write('x+y=',add(x,y) : 1)
end.

133 :デフォルトの名無しさん:02/04/29 23:53
f(x)=ax^2+bx+c
これをDel風に書くと、

function f(x:Integer):Integer;
begin
 result := a*x*x+b*x+c;
end;

a,b,cは適当な整数で置き換えてね。
数学では例えば、
f(x)=3x^2-4x+5
と関数fが定義されてたら f(3)=20 ってなるでしょ。
それと同じで、a=3,b=-4,c=5 でPascalで上の関数を定義すれば、

var
 i: Integer;
begin
 i := f(3);

とやれば変数iに20が代入される。

134 :デフォルトの名無しさん:02/04/30 00:02
フォーム上にボタンを置いて
ダブルクリックするとボタンを押したときに動く関数が
コードエディタにでてくるんで
procedure TForm1.Button1Click(Sender: TObject);
begin

end;

そこにButton1.caption := inttostr(add(1,2));
をbeginとend;の間に入れると
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.caption := inttostr(add(1,2));
end;
それをコンパイル&実行してみてください。

135 :128:02/04/30 00:04
134書いたの僕です

136 :◆lo8YkeSw :02/04/30 00:07
>>132
なるほど。使い方がわかりました。

>>133
おお、とてもわかりやすい説明ありがとうございます。

137 :128:02/04/30 00:18
もう一回書きます
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
function add(a,b:integer) : integer; //ここでadd関数宣言

end;

var
Form1: TForm1;

implementation

{$R *.DFM}
function TForm1.add(a,b:integer):integer
var
c : integer;
begin
c := a + b;
result := c;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.caption := inttostr(add(1,2));//inttostrはint型のデータをstrings型に直す関数
end;

end.

138 :◆lo8YkeSw :02/04/30 00:20
>>134
ボタンの文字がちゃんと"3"に変わりました。
ありがとうございます。疑問が解けました。


139 :◆lo8YkeSw :02/04/30 00:26
>>137
何度もありがとうございます。implementation節の中の
begin
c := a + b;
result := c;
end;
についてですが、
begin
add :=a+b
end;
と書いてはいけないのでしょうか?

140 :デフォルトの名無しさん:02/04/30 00:27
add(x,y)
の関数でXやYの値をユーザに設定させるにはどうやったら
いいと思う?

141 :129 ◆kudVaLnM :02/04/30 00:28
>>1さん
ええ、がんばりましょう。
とりあえず僕は>>53さんのレスを参考にLavelの■を上下左右に動かすことまではできたんで、
次はジャンプさせてみます。。。


142 :137:02/04/30 00:29
>>139
add :=a+b
とかいてもイイんですが
最近はresultを使うのが一般的なようです。
cを使ったのは関数内のみで使えるローカル関数の
定義の仕方の参考になればと思いまして付けさせていただきました。

143 :137:02/04/30 00:30
修正ローカル関数→ローカル変数
スマソ・・・

144 :◆lo8YkeSw :02/04/30 00:33
>>142
そうなんですか。わかりました。
何度もスミマセンでしたm(_ _)m

>>141
頑張ってください(´∀` )

145 :デフォルトの名無しさん:02/04/30 00:41
>>1
構造体の作り方は解ります?

146 :◆lo8YkeSw :02/04/30 00:50
>>145
構造体という言葉自体わかりません(汗


147 :デフォルトの名無しさん:02/04/30 00:51
ジャンプを放物線(二次関数)
にしちゃうと現実的な動きになりすぎてつまらなくなりそう。
マリオだって完全な方物運動じゃないし

148 :デフォルトの名無しさん:02/04/30 00:51
>>140
まぁ一例だが、Editをフォームにはっつけて、
a := StrToInt(Edit1.Text);
みたいな具合にやればOK。
StrToInt ってのは、その名の通り、文字列を整数に変換する関数。
ただし変換に失敗すると、初心者の恐れる例外が発生する。
間違えてもEditが空白のまま、または変な文字列が入ったまま
ボタンを押さないように。

149 :デフォルトの名無しさん:02/04/30 00:56
>>146
関数と同様に構造体も理解しておいた方がいいと思う。


150 :デフォルトの名無しさん:02/04/30 00:57
>>146
Pascal風に言うとレコードかな。
type // 型宣言
 T性別=(男,女,中性); // これは列挙型
 T人間=record // これがレコード型(構造体ともいう)
  名前:String;
  生年月日:TDateTime;
  性別:T性別;
 end;
あ、勿論日本語は使えません。

>>148
例外が怖かったら、StrToIntDef という逃げ道もありまっせ、ヒヒヒ。
ま、使い方はヘルプをみてくんな、もし。

151 :◆lo8YkeSw :02/04/30 00:57
>>149
そうですか。じゃあ今から勉強します。

152 :デフォルトの名無しさん:02/04/30 00:57
つーかさ、関数もわかってないんだから構造体でけでなく相応勉強しないとだめだね
って既出か

153 :デフォルトの名無しさん:02/04/30 01:07
関数と構造体と条件分岐とポインタあたりまで
覚えてからゲームを作る事を考えたほうがいいと思う

154 :デフォルトの名無しさん:02/04/30 01:10
>>153
んー、でもプログラミングに限らず、なにか物を作るときに
必要な技術を身に付けてから始めようとすると挫折しない?
とりあえず初めて、つまづいたらそれを解決する技術を身に
つけて…の方がいいでしょ。
頑張れ>>1

155 :デフォルトの名無しさん:02/04/30 01:13
>>154
それ以前の問題だろ

156 :デフォルトの名無しさん:02/04/30 01:16
何かdelphiの入門書一冊でも読んだ方が良いような気が…

157 :◆lo8YkeSw :02/04/30 01:33
こういうことですよね?
interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;

type
TDateRec = record
Year: Integer;
Day: 1..31;
end;
var
Form1: TForm1;var Record1, Record2: TDateRec;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
with Record1 do
begin
Year := 1904;
Day := 16;
label1.Caption := inttostr(year);
label2.Caption := inttostr(day);
end;
end;

end.

158 :◆lo8YkeSw :02/04/30 01:35
>>156
入門書は一応「Borland Dlphi6 オフィシャルコースウェア 基礎編」というのを買いました。

159 :◆lo8YkeSw :02/04/30 01:36
>>156
dlphi→delphiの間違いです。

160 :デフォルトの名無しさん:02/04/30 01:39
>>157
よろしいです。

でも日時を記憶させるには、Delphi標準のTDateTime型(実際はただの実数型)
ってのがあるから、互換性のためにもそっちを使いましょう。
TDateTime型なら、Delphi付属の日時処理に関する多くの関数等が使えて便利
ですよー。2038年問題も無いし。

161 :デフォルトの名無しさん:02/04/30 01:43
>>157
型宣言(type xxx=yyy;)や変数宣言(var xxx:yyy;)が連続する場合は、
2回目以降のtype,varは省略できますよ。
定数宣言(const xxx=yyy;)も然り。

162 :◆lo8YkeSw :02/04/30 01:44
>>160
あっ、そういえばそんなのありましたね。
ていうか2038年問題とかあるんですか。

163 :◆lo8YkeSw :02/04/30 01:48
>>161
そうなんですか。わかりました。今度から省略するようにします。

164 :129 ◆kudVaLnM :02/04/30 02:37
今日はもうダメです...
タイマー使ってジャンプを実現しようとしたけど,使い方を忘れてる...
ぅぅ,「はじめてのDelphi」をまた図書館から借りて来よう...
でもスレの流れを見てるとタイマー使わなくても逝けてる?のかな...
皆さんありがとうございました.おやすみなさい...

if スペースキー押す then
for x := -5 to 5 do //0.5秒ごとに実行したい...
begin
y := x*x;
if x < 0 then
Label1.Top := 現在の縦座標 - y
else
Label1.Top := 現在の縦座標 + y;
end;

165 :デフォルトの名無しさん:02/04/30 02:45
>>164
タイマーは制度が悪いから
gettickcountかtimegettimeを使った方がいいよ

166 :デフォルトの名無しさん:02/04/30 07:41
>>164
 そういうふうに xの関数にしてしまうと、途中で動作を変更しようとした時に苦労するよ

xの関数ではなくて 差分方程式とかDDAとかの手法 つまり >>71 のようにしないとさ

167 :デフォルトの名無しさん:02/04/30 07:56
>>71 のソースから放物線を描く部分を抜き出すと
x:=x+vx*dt;    y:=y+vy*dt;
vx:=vx+ax*dt; vy:=vy+ay*dt;

vx,vyが速度で ax,ayが加速度 加速度一定の条件で 繰り返し実行すると放物線を描く

>>165が言ってるような精度のタイマーは必要ない。なぜならdtの精度は悪くても
 これは線形方程式なので誤差はそれほど溜まらない為

ジャンプさせる時は 
1、ボタンアクションでvyに数字を代入する=跳ね返ったような跳躍の仕方
2、ボタンを押してる間 xの位置が指定以内という条件で ay:=-5*重力加速度のように
  逆加速度を代入する

のようにコントロール出来る

168 :129 ◆kudVaLnM :02/04/30 14:48
>>165さん
ヘルプで見当たらないなぁって思ったらAPIだったんですね…
ありがとうございます。
>>166-167さん
詳しい解説ありがとうございます。
差分方程式まではそれとなく知ってますが、DDAはわからないです…
アルゴリズムの本一冊読んで出直して来ます…

169 :デフォルトの名無しさん:02/04/30 15:58
相互リンク
http://game.2ch.net/test/read.cgi/gamedev/1013976376/

170 :デフォルトの名無しさん:02/04/30 19:48
 >>1
おぉ!初心者ハッケソ!
漏れは>>1以上に初心者だが、お互い頑張ろう。

171 :◆lo8YkeSw :02/04/30 22:49
今日は、横に移動してるときのジャンプを再現することが出来ましたヽ(´ー`)ノ

>>168
俺はそんな難しいことしてないです(汗
とりあえず、ジャンプしてるように見えればいいと思ったんで。

>>169
RPGは難しいと思いますが、頑張ってもらいたいですね。

>>170
俺より初心者ってことはないと思いますよ(笑
いっしょに頑張りましょう。

172 :◆lo8YkeSw :02/04/30 23:00
やっぱこのジャンプって不自然ですかね?自分なりに数値を変えてみたんですけど。
http://norisukeup.tripod.com/Project1.zip

→←で横移動、↑でジャンプです。

173 :デフォルトの名無しさん:02/04/30 23:13
まあ、今更だけど。
http://game.2ch.net/gamedev/
何故こっちでやらんのかがわからん。

174 :デフォルトの名無しさん:02/04/30 23:28
>>172
もうそれで完成でいいじゃん

175 :デフォルトの名無しさん:02/05/01 00:57
>>172
ワラタ

176 :デフォルトの名無しさん:02/05/01 01:08
>>175
あげんなヴォケ

177 :デフォルトの名無しさん:02/05/01 01:42
ポインタはいいねぇぇ

178 :デフォルトの名無しさん:02/05/01 01:53
>>176
さげんなヴォケ

179 :デフォルトの名無しさん:02/05/02 00:05
>>177
ポインタを覚えた事で一人前のマになったと勘違いして、それを他人に
伝えたくてたまらない黄金厨ですか?

180 :デフォルトの名無しさん:02/05/02 08:25
>>179
あんたに言われたくないよ
専門学生さん(w
立派な大学行ってから意見しようね

181 :デフォルトの名無しさん:02/05/02 08:49
Delphiは アクションゲームに対してあんまり便利さを提供してくれないけど

アクションゲームにはスクリプトが必須、 そのスクリプトとスクリプトエディタを
作るには最適だ。


182 :デフォルトの名無しさん:02/05/02 09:22
>>181
DDDDかDELPHIX使えば
HPS以上にゲーム作りやすくなるよ。

スクリプトエディタは確かに必要だね

183 :デフォルトの名無しさん:02/05/02 09:50
>>172
これってタイマー常時ON?

184 :デフォルトの名無しさん:02/05/02 10:04
タイマー使うのと OnIdle 使うのとどっちがいいの?

185 :デフォルトの名無しさん:02/05/02 10:24
>>184
アクションゲームだとタイマーは使えないよ(精度悪すぎて)


186 :◆lo8YkeSw :02/05/02 20:46
>>183
いや、タイマーなんか使ってないです(汗
多分ソースも他の人が見たら訳わかんないと思います。

187 :デフォルトの名無しさん:02/05/02 21:16
>>186
大丈夫“まともな”マなら分かってくれるから(泣

188 :デフォルトの名無しさん:02/05/03 17:57
age

189 :デフォルトの名無しさん:02/05/03 18:50
ゲームなら・・・
・OnIdle
・メッセージループ自作
の2択ですな
別スレッド作るって手もあるか

190 :デフォルトの名無しさん:02/05/05 00:41
成長したいならソースさらすのは必須かと。
叩きながらもおせっかいな人たちがアドバイスしてくれること請け合いだよ。

191 :デフォルトの名無しさん:02/05/05 12:39
OnIdleで処理する場合、更新間隔を一定にするのはどうするの?
OnIdleの入口で現在時刻を取っておいて、次回更新時刻(現在+1fps)より前だったら
何もしないで抜けるとか?

192 :デフォルトの名無しさん:02/05/05 12:48
更新時間を一定にしたいなら OnIdleを使わないんじゃないの?

OnIdleを使うなら、
たとえば>>71のように、更新時間が変わっても動作が同じようになるようなスタイルを使うんじゃない?


193 :デフォルトの名無しさん:02/05/05 13:09
>>191
そうやったよ。


194 :デフォルトの名無しさん:02/05/05 21:09
色が抜けない…

195 :デフォルトの名無しさん:02/05/05 21:52
今日はもう寝よう…疲れた

196 :◆lo8YkeSw :02/05/05 22:21
どうも御無沙汰してます。ゴールデンウィークなんで遊びに行ってました。で、今日帰ってきました。
>>190
怖すぎてできません(笑

197 :デフォルトの名無しさん:02/05/14 20:56
>>1は蒸発したか。やっぱり糞スレだったな・・と。

198 :1:02/05/14 22:15
どうもご無沙汰してます。平日なんで引き籠もっていました。で、今日社会復帰しました。
>>190
糞スレではありません(笑

199 :デフォルトの名無しさん:02/05/15 00:37
>平日なんで引き籠もっていました。で、今日社会復帰しました。

?・・謎。デムパ?




         ・・・才能有りと見た!頑張れ!>1

200 :デフォルトの名無しさん:02/05/29 05:07
200!

ソースはさらしちゃえ! あと音はワロいますた。

201 :当たって砕けろ:02/06/01 03:45
Delphi挑戦します。目標!シミュレーションゲーム!
Delphi経験皆無、目標は程遠い。鬱。
とりあえずボタンおいてみよう・・・。

202 :デフォルトの名無しさん:02/06/01 03:45
よくきたな。まあこいや。↓

http://game.2ch.net/gamedev/

203 :当たって砕けろ:02/06/01 03:49
>>202
案内どうもです。
しかし俺製作技術以前の問題。鬱。

204 :デフォルトの名無しさん:02/06/01 07:48
まあ、てきとうにやってみれば?
2ケ月くらいDelphi参考書と寝食を共にすると、並のゲームくらいつくれるだろうからさ。
うひひひ

205 :デフォルトの名無しさん:02/06/01 09:09
>>204
まぢ!?
俺、もう少しで2ヶ月だけど、まだゲーム作るレヴェルじゃない…鬱…

206 :デフォルトの名無しさん:02/06/01 10:48
>>205
遊びのレシピ買ってこい。
Delphiで各種ゲームの作り方が載ってる。

207 :205:02/06/01 11:12
>>206
一応言うと、>>203>>205なので。(笑)
俺、あんまりゲーム志向じゃないし、本まで買うのは遠慮しておきまふ。
ゲームも作ってみたいけど、素材集めるのが面倒そうで、やる気が起きませぬ。

208 :デフォルトの名無しさん:02/06/01 12:41
>>207
>素材集めるのが面倒そうで、やる気が起きませぬ。
うん、是非やめてくれ。

209 :205:02/06/01 17:39
>>208
ま、お前には関係無いけどな。

210 :当たって砕けろ:02/06/01 18:27
ゲームを作りたい!
と思ったものの、何をすれば良いのかわからず、
オンラインの講座とかをちょこちょこやってるだけの現実。鬱。

211 :デフォルトの名無しさん:02/06/01 21:36
>210
貴方は私ですか?(鬱

212 :当たって砕けろ:02/06/02 00:47
>>211
同志ですか。鬱。

なーにをやればいいのやらです。まず画像表示したい。

213 :デフォルトの名無しさん:02/06/02 06:26
ゲーム作るのに、クラスなどのオブジェクト指向の概念って勉強する必要はありますか

214 :デフォルトの名無しさん:02/06/02 13:30
>>213
しなくても作れるけど、やると楽に作れるようになります。

215 :デフォルトの名無しさん:02/06/03 08:42
Delphiと書かれているスレのツアーをお勧めします。この板とゲ技板。
 あと入門本手に入れる。ぬるかったらゲーム制作系の入門本。
そして、検索検索検索ぅ!

202で待ち伏せ失敗したことは秘密だよ。

216 :当たって砕けろ:02/06/03 15:54
小遣いはたいて参考書買いました!無一文!鬱。
Delphiオフィシャルコースウェア基礎編。
なかなかわかりやすくていいです。これみて頑張ります。

217 :デフォルトの名無しさん:02/06/03 16:09
>>216
ヘルプだけで十分だ!と叫んでみる。
カーソルが指してるアイテムを著癖いつ引けるシステムは感動したけど。

218 :デフォルトの名無しさん:02/06/03 16:57
>>1は、宮崎県民だよな!

219 :当たって砕けろ:02/06/03 17:07
>>217
すいません、ヘルプ&講座サイトじゃ理解できませんでした。鬱。

220 :デフォルトの名無しさん:02/06/03 22:48
Delphiのヘルプは難しいから〜

221 :デフォルトの名無しさん:02/06/04 00:45
>>216
漏れはWinHelpだけで勉強したぞーー!鬱!
ポイントは「目次の順に読む」、これ最強!鬱!

なんか当たって砕けろ君の口癖が鬱っちゃったぞ!鬱!

222 :デフォルトの名無しさん:02/06/04 13:17
>>221
おんなじ。おんなじ。
なぜかあの時言語仕様の図(名前失念、授業で習ったのに・・・)読めてた。
今読めない。鬱。

223 :デフォルトの名無しさん:02/06/04 13:26
よくわからんが、鬱!

224 :当たって砕けろ:02/06/04 16:46
caseとEdit1.Text使ってランダムにメッセージが表示されるものを作成。
すっげえ単純でくだらないけど初Delphi作品!うれしい!けど鬱。
>>221
ヘルプもちゃんと読んでみます。鬱。
>>223
俺もよくわかりませんが、鬱!


225 :デフォルトの名無しさん:02/06/04 17:35
>>224
そうだ!がんばれ!
試行錯誤によって得られるノウハウこそあなたの最高の栄養です。

(俺の履歴書より)

226 :デフォルトの名無しさん:02/06/04 20:49
質問です.
MIDI音源を純音を出すにはどうすればよいですか?
midioutshortmsgを使って音は出せるよになりました
しかし音色がピアノとかなんたらばっかりで,
昔のPCのようなピーという機械音チックなのが出せません
何か手段があるでしょうか?

227 :当たって砕けろ:02/06/04 20:51
>>225
ありがとう!がんばるよ!
栄養取らないとな。鬱。ニホンジンハカルシウムブソク。

228 :デフォルトの名無しさん:02/06/04 23:16
>>226
アンタはMIDIをFM音源かなにかと勘違いしてる

229 :821:02/06/04 23:20
226>>
MIDIでは純音をだせないのですか??
FM音源をコードで扱うことはできますか?
音の長さ,音程を操作できるのでしょうか?
それができるならMIDIでもFMでもかまわないのですが・・・

230 :デフォルトの名無しさん:02/06/05 00:12
>>229
アンタ>226?
純音ってのは正弦波のことでいいのか?
とりあえずGMの音色にはないぞ
GSやXGならあるだろうが(GSはあるのを確認した)
シンセ系の音色をソレっぽく加工しても正弦波は出せないと思うが・・・

231 :デフォルトの名無しさん:02/06/05 03:10
>>229-230
とりあえずsin関数で正弦波発生させてwaveOut系のAPIに流せば?
一応「ぽーーーーー」ていう音叉みたいな音が出せるよ。
いわゆる「ぴーーーーー」っていう電子音は方形波の音に近いと思われ。
さらにFFT処理とかすると面白いけど、まぁ難しいんで割愛。

ゲーム作るんならDirectSound使ったほうがいいのかな?
漏れゲームは作った事無いからDirectX知らないんだな・・・

232 :226:02/06/05 11:29
230>>
231>>
なるほど
ありがちょう
正弦波つくってwaveoutでやってみます
ごいけんさんくすこ

233 :デフォルトの名無しさん:02/06/05 14:59
まぁ、squareと各種パラメータを駆使すればなんとか・・・。
激しく機種依存だけど。

234 :デフォルトの名無しさん:02/06/06 15:59
あg3え

235 :藪から棒:02/06/06 17:14
今さらVB.NET(VB6ユーザも)やるくらいならC#ですね。
でも今までVBで適当なプログラム書いていた人は性根入れ直してからにしないと。


236 :デフォルトの名無しさん:02/06/06 23:14
初めて簡単なゲームを作ろうと思い、まず背景を白くしようと思ったのですが、
Form1のpaintイベントで

with Canvas do
begin
 Brush.Color := clWhite;
 FillRect(0, 0, Form1.ClientWidth, Form1.ClientHeight);
end;

ってやったらダメなんすけど、何でですか?
FillRectって引数がTRectでもInteger * 4でオーバーロードしてると思うんですが…。

237 :当たって砕けろ:02/06/07 00:00
ボタンをクリックするだけの、RPG風擬似戦闘ver1ができました!
でも内容的に見て戦闘にすらなってない罠。鬱。
これをもとにいろいろコマンドとか増やしてみよう・・・。

238 :デフォルトの名無しさん:02/06/07 00:13
>>236
with Canvas do begin
 Brush.Color := clWhite;
 FillRect(Rect(0, 0, ClientWidth, ClientHeight));
end;

で出来たが、、、

>FillRectって引数がTRectでもInteger * 4でオーバーロードしてると思うんですが…。
Pascalではこーゆーいーかげんな事は許されません。
それが面倒と感じるか、律儀とかんじるかは貴方次第。

あと"Form1"ってのはDelphiが便宜上使ってるグローバル変数なんで、余程の事が
無い限り直接参照する必要は無い。
どうせPaintイベントハンドラもTForm1のクラスメソッドなんだから、何も書かな
けりゃ、そのTForm1のインスタンスの ClientWidth が参照される。

>>237
がむばれ!!鬱!


239 :デフォルトの名無しさん:02/06/07 00:23
>>238
サンクス。
>FillRectって引数がTRectでもInteger * 4でオーバーロードしてると思うんですが…。
どこにも書いてなかった、誤爆スマソ!

最初はClientHeightとかだけにしてたんだけど、それでできなかったからForm1付けてみたんだよねー。

240 :デフォルトの名無しさん:02/06/07 00:31
>>239
>最初はClientHeightとかだけにしてたんだけど、それでできなかったからForm1付けてみたんだよねー。
なるほど。
でも明示的に、「そのフォームのClientHeightが使いたい!」と書くなら、
Self.ClientHeight
って書くべきですな。

あれ、でもWith do ... の中でSelf使うとCanvasと誤認されて、
「ClientHeightなんてproperty無ぇぞゴルァ」ってコンパイラエラーでるかも。

var
 Form: TForm1;
begin
 Form := Self;
 with Canvas do begin
  Brush.Color := clWhite;
  FillRect(Rect(0, 0, Form.ClientWidth, Form.ClientHeight));
 end;
end;

って書くのが一番正当なやりかたなのかな?

241 :デフォルトの名無しさん:02/06/07 00:48
>>240
そのメソッドをそのクラスでしか使わないから、「Form1.ClientWidth」でいいかなと思いまして。←言い訳かも…(;´Д`)
Selfってオブジェクトしか参照しないのでは?
だからわざわざクラス型変数Formは使わなくて良いのでは?

ゲーム作るっていっても、何から勉強していいのかわからないなぁ。
とりあえずTCanvasとTStreemをまず勉強しようと思ってますが…。

242 :デフォルトの名無しさん:02/06/07 01:02
>>241
んー、まぁTForm1のインスタンスを2個以上作るってことは多分無いと
思うから、99.99%それで問題はないんだけど・・・
(もちろん2個以上のインスタンスを作りうる場合だと大問題!)
ま、教科書通り厳密にやるか、スッキリしたソースがいいか、のトレードオフですな。

>Selfってオブジェクトしか参照しないのでは?
TObject-TPersistent-TComponent-TControl-TWinControl-TScrollingWinControl-TCustonForm-TForm-TForm1
ってな具合で継承してるので、TForm1も元を辿ればTObject型、もちろんSelfも使えます。

>TStreem
一応TStreamといっておく。


243 :デフォルトの名無しさん:02/06/07 01:23
>>241
言い方おかしかったですかね?
Selfにはそれの属するメソッド(今回の場合Form1のpaintイベント)を使用したオブジェクトが参照されるから、
with do...の中でCanvasと誤認することは有り得ないのでは?
ってことだったんですが。

スペル間違えてましたか。
なかなかTStreamが難しくて困ってるんですよね。

>>237
もうRPG作ってるんですか、早いですね。
どんなことから勉強はじめましたか?
参考に教えてもらいたいのですが。

244 :デフォルトの名無しさん:02/06/07 01:28
>>243
がーーーーーーーーーーーーーーーーーーん。

今までずっとSelfって、TObject型の読み出し専用プロパティで、
そのインスタンスのアドレスを指すものだと思ってた。。。。。

今ヘルプ引いてみたら・・・・違ってるやん。

今晩はLANケーブルで首吊って寝ます。

245 :当たって砕けろ:02/06/07 02:55
>>243
いや、RPG作ってるわけじゃないです。そんな高度なことできません。鬱。
ただ攻撃ボタン置いたりEditに文章表示させるだけです。鬱。

>どんなことから
変数からやりました・・・。
ひとまずこれだけは押さえておこうと思い。

246 :デフォルトの名無しさん:02/06/07 03:35
>>245
そうでしたか。
俺もゲーム作りたいのでお互い頑張りましょう。

マジで何からやればいいんじゃー!?( T▽T)

247 :無責任だが:02/06/07 11:54
ShellLinkの件、もしかして VB のようにやりたいという事なら
procedure TForm1.Button1Click(Sender: TObject);
var guid:TGUID;
var objShell : OLEVariant;
var objFolder : OLEVariant;
var objFolderItems: OLEVariant;
var objFolderItem : OLEVariant;
var lk:OLEVariant;
var LNKpath,LNKname:WideString;
begin
LNKpath:='C:\Documents and Settings\Administrator\SendTo';
LNKname:='K2Grep.LNK';
guid:=ProgIDToClassID('Shell.Application');
objShell := CreateComObject(guid) as IDispatch;
objFolder := objShell.NameSpace( OLEVariant(LNKpath)) ;
objFolderItems:= objFolder.Items ;
objFolderItem := objFolderItems.Item(OLEVariant(LNKname));
lk:= objFolderItem.GetLink;
Caption:=lk.Path;
end;

とOleVariantを使って IShellLinkではなくShellLinkObjectを使えばいいのでは?

IDispatchでは遅いという事なら、 ActiveXの取り込みで Shell32.dll を取り込んでおいて

procedure TForm1.Button2Click(Sender: TObject);
var guid:TGUID;
var objShell : IShellDispatch;
var objFolder : Folder;
var objFolderItem: FolderItem;
var lk:IShellLinkDual2 ;
var path,LNKname:WideString;
begin
path:='C:\Documents and Settings\Administrator\SendTo';
LNKname:='K2Grep.LNK';
guid:=ProgIDToClassID('Shell.Application');
objShell := CreateComObject(guid) as IShellDispatch ;
objFolder := objShell.NameSpace(path);
objFolderItem:=(objFolder.Items as FolderItems).Item(LNKname);
lk:= objFolderItem.GetLink as IShellLinkDual2;
Caption:=lk.Path;
end;
とすれば、良いと思う

248 :無責任だが:02/06/07 11:56
あっとゴメン ミス

249 :当たって砕けろ:02/06/15 20:41
方向キーでImageに画像出してTopとLeftの値をいじって動かしてます。鬱。
こ、これがゲームへの第一歩なのかあぁあ?!鬱!

250 :デフォルトの名無しさん:02/06/16 01:39
>>249
勿論本格的なゲームなら、描画速度とかいろいろ問題になるかも知れんけど
第一歩としてはそれでいいんじゃない。

DirectX使わなきゃ駄目なんだー、なんて思い込んでるといつまでたっても
完成しないからね。
その方法で出来るところまでやってみて、描画速度がボトルネックになってるな、
と感じたらそこを改良して、そのうちソースがぐちゃぐちゃになって、鬱になって
最初から書き直して・・・

そんなこと繰り返してる間に上達して、ゲームも完成していくよ。
ガムバレ、鬱!!!

251 :デフォルトの名無しさん:02/06/16 05:24
貴様ら!ブロック崩し作るので見てください
http://pc.2ch.net/test/read.cgi/tech/1004855513/
を参考に(上記スレはVBだが)、Delphiでブロック崩し頑張って作ってたりする。
ちなみに、Delphi使い始めて2週間程度。

とりあえず今はブロックを表示して、ボールがパドルと壁で跳ね返るとこ。
DrawRectでブロック、Shapeで玉+パドルのショボーンなグラフィックだけど。
お互い頑張りませう>同士

252 :デフォルトの名無しさん:02/06/24 15:17


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

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)