トップページgamedev
990コメント416KB

ズブの初心者がゲーム作れるまで勉強するスレ

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/11/07 20:26ID:PFtlmWD9
【参加資格】
ズブの初心者以外お断りです。

なおアドバイス等はプロのかたでも結構です。
初心者は聞く耳を持ちプロもわかりやすく教えてやってください。
0027名無しさん@お腹いっぱい。01/11/07 22:24ID:???
Ruby >>>>>>>>>>> HSP
00282301/11/07 22:24ID:???
>>26
あ、そうなんだ・・・thx
厨房言語に憶測レスしたのが間違いだったか・・・
改行も入れずに命令文ズラズラ並べるなんて
微笑ましい光景だね。HSPらしいよ。うん。
0029名無しさん@お腹いっぱい。01/11/07 22:29ID:???
程度の低い言語だな。
Rubyマンセー
0030名無しさん@お腹いっぱい。01/11/07 22:31ID:???
>>28
あなたも昔はやってたクセにぃ?
N88?Hu?
改行したくない時は;つけなきゃ逝けないよ(;´Д`)
0031名無しさん@お腹いっぱい。01/11/07 22:41ID:???
>>26
Javaにもprintln()という自動で改行をつけてくれるメソッドがありますので、
Javaもやっぱ、初心者用の言語なんですね。
つか、RubyRubyとうるさい奴が居るので、言うが、
Rubyにもputs()という自動で改行してくれメソッドがありますので、
これまた、Rubyも初心者用の言語なんですね。
0032名無しさん@お腹いっぱい。01/11/07 22:55ID:???
MES" | | |"
MES"ー十ー十ー十ー"
MES" | | |"
MES"ー十ー十ー十ー"
MES" | | |"
次は3目並べをつくってみます。
0033名無しさん@お腹いっぱい。01/11/07 22:56ID:???
>>28
ソースコード上で別行なのに
出力したら繋がってるなんて
(広義の)インターフェースとしてクソ

いちいち"\n"入れないと改行しないなんて
プログラマに負担掛けるだけの非効率仕様

そんなんで「俺は文字列を自在に操っている!」
とかホザいてたら痛すぎ
00343201/11/07 22:56ID:???
と思ったけどマウスがどこクリックしたかわかる命令が無いじゃん。
ジョイパッドとかに対応させるべきかな。
0035名無しさん@お腹いっぱい。01/11/07 23:36ID:???
;途中経過。コマ置けるようにした。
pos 100, 100: button "A1", *a1
pos 180, 100: button "A2", *a2
pos 260, 100: button "A3", *a3
pos 100, 180: button "b1", *b1
pos 180, 180: button "b2", *b2
pos 260, 180: button "b3", *b3
pos 100, 260: button "c1", *c1
pos 180, 260: button "c2", *c2
pos 260, 260: button "c3", *c3
line 170, 60, 170, 320
line 250, 60, 250, 320
line 60, 170, 380, 170
line 60, 250, 380, 250

stop
*a1
boxf 60, 60, 170, 170
goto *check
*a2
boxf 170, 60, 250, 170
goto *check
*a3
boxf 250, 60, 380, 170
goto *check
*b1
boxf 60, 170, 170, 250
goto *check
*b2
boxf 170, 170, 250, 250
goto *check
*b3
boxf 250, 170, 380, 250
goto *check
*c1
boxf 60, 250, 170, 380
goto *check
*c2
boxf 170, 250, 250, 380
goto *check
*c3
boxf 250, 250, 380, 380
stop

*check
stop
0036名無しさん@お腹いっぱい。01/11/08 00:11ID:???
;すでにコマ置いてるところにコマを置けなくした。
;配列変数を覚えた。
;次は勝ち判定をつけようとおもう。

pos 100, 100: button "A1", *a1
pos 180, 100: button "A2", *a2
pos 260, 100: button "A3", *a3
pos 100, 180: button "b1", *b1
pos 180, 180: button "b2", *b2
pos 260, 180: button "b3", *b3
pos 100, 260: button "c1", *c1
pos 180, 260: button "c2", *c2
pos 260, 260: button "c3", *c3
line 170, 60, 170, 320
line 250, 60, 250, 320
line 60, 170, 380, 170
line 60, 250, 380, 250
dim ban,4,4
player=2
goto *check
0037続き01/11/08 00:11ID:???
*a1
if ban.1.1>0: goto *pass
ban.1.1=player
boxf 60, 60, 170, 170
goto *check
*a2
if ban.1.2>0: goto *pass
ban.1.2=player
boxf 170, 60, 250, 170
goto *check
*a3
if ban.1.3>0: goto *pass
ban.1.3=player
boxf 250, 60, 380, 170
goto *check
*b1
if ban.2.1>0: goto *pass
ban.2.1=player
boxf 60, 170, 170, 250
goto *check
*b2
if ban.2.2>0: goto *pass
ban.2.2=player
boxf 170, 170, 250, 250
goto *check
*b3
if ban.2.3>0: goto *pass
ban.2.3=player
boxf 250, 170, 380, 250
goto *check
*c1
if ban.3.1>0: goto *pass
ban.3.1=player
boxf 60, 250, 170, 380
goto *check
*c2
if ban.3.2>0: goto *pass
ban.3.2=player
boxf 170, 250, 250, 380
goto *check
*c3
if ban.3.3>0: goto *pass
ban.3.3=player
boxf 250, 250, 380, 380
stop

*check
player=3-player
boxf 100,20, 400, 40
color player*100, player*100, player*100

pos 100, 20: mes"player"+player+"の番です。"
*pass
stop
0038名無しさん@お腹いっぱい。01/11/08 00:22ID:Qeo8WtK2
>32
・マウスの位置
マウスのクリックを監視→システム変数(mousex,mousey)を参照で可能です
・ジョイパッド
プラグインで可能ですよ〜
0039名無しさん@お腹いっぱい。01/11/08 00:42ID:???
>>38
ありがとうございますm(__)m
実はボタンぺたぺたでつくってました。
これで見栄え良くできそう。

プラグイン使うとココに貼り付けてるやつだけで動かないんでどうしようか思案中
あ、こんなのコピペでやってくれる人はDLぐらいしてくれるか。
よし!使います。
使い方調べなきゃ(^^;
う、その前に3目並べにジョイパットはやりにくかなぁ。

とりあえず遊べるようにしてから悩もう。
ありがとうございました。
0040名無しさん@お腹いっぱい。01/11/08 02:58ID:???
;はじめからつくりなおしてみました。
;すると、あらビックリ!!ひとつ前のよりだいぶすっきりしました。
;見栄えもだいぶ良くなったし、ひとまず完成!!
;HSPをダウンロードして約7時間ほどでした。早っ!!
次はなにつくろうかなぁ。
今日は眠たくなったので寝ます。おやすみなさい。
;3moku2.as
screen 0, 384, 384

*restart
dim ban,3,3
dim col,2,3
cls

line 0, 128, 384, 128
line 0, 256, 384, 256
line 128, 0, 128, 384
line 256, 0, 256, 384

*keywait
getkey k, 1
if k=1: goto *lclick
wait 1
goto *keywait

*lclick
x=mousex/128
y=mousey/128
if ban.x.y > 0: goto *keywait
ban.x.y=player+1
boxf x*128, y*128, x*128+127, y*128+127

repeat 3
if (ban.0.cnt + ban.1.cnt + ban.2.cnt) = ((player+1)*3): goto *win
loop
repeat 3
if (ban.cnt.0 + ban.cnt.1 + ban.cnt.2) = ((player+1)*3): goto *win
loop
if (ban.0.0 + ban.1.1 + ban.2.2) = ((player+1)*3): goto *win
if (ban.0.2 + ban.1.1 + ban.2.0) = ((player+1)*3): goto *win
if (ban.0.0 + ban.1.0 + ban.2.0 + ban.0.1 + ban.1.1 + ban.2.1 + ban.0.2 + ban.1.2 + ban.2.2) = 21: goto *draw
player=3-player
color player*255, 0, 0
goto *keywait

*win
mesa="Player"
mesb=player/3+1
mesc="の勝利です。"
winmes = mesa+mesb+mesc
dialog winmes, 1
goto *restart

*draw
dialog "引き分けです。", 1
goto *restart
00414001/11/08 03:02ID:???
しまった
コメントのマーク(;←コレ)つけわすれてる行がある。
あぼーんしておこう。かちゅ〜しゃで。
こんどこそおやすみなさい。
0042 01/11/08 03:29ID:???
>>33
なんかむかつく
0043名無しさん@お腹いっぱい。01/11/08 06:31ID:???
>>42
Stringがなければ文字列つかえないようなヤツのこと気にすんなよ。
0044名無しさん@お腹いっぱい。01/11/08 16:52ID:???
;コンピュータと対戦できるようにしました。
;3moku2.as
screen 0, 384, 384

*restart
player=0
dim ban,3,3
dim col,2,3

cls
line 0, 128, 384, 128
line 0, 256, 384, 256
line 128, 0, 128, 384
line 256, 0, 256, 384

*keywait
if player=3: goto *com
getkey k, 1
if k=1: goto *lclick
wait 1
goto *keywait

*lclick
x=mousex/128
y=mousey/128
if ban.x.y > 0: goto *keywait

*setkoma
ban.x.y=player+1
boxf x*128, y*128, x*128+127, y*128+127

repeat 3
if (ban.0.cnt + ban.1.cnt + ban.2.cnt) = ((player+1)*3): goto *win
if (ban.cnt.0 + ban.cnt.1 + ban.cnt.2) = ((player+1)*3): goto *win
loop
if (ban.0.0 + ban.1.1 + ban.2.2) = ((player+1)*3): goto *win
if (ban.0.2 + ban.1.1 + ban.2.0) = ((player+1)*3): goto *win
if (ban.0.0 + ban.1.0 + ban.2.0 + ban.0.1 + ban.1.1 + ban.2.1 + ban.0.2 + ban.1.2 + ban.2.2) = 21: goto *draw
player=3-player
color player*255, 0, 0
goto *keywait

*win
mestemp=player/3+1
winmes = "Player"+mestemp+"の勝利です。"
dialog winmes, 1
goto *restart

*draw
dialog "引き分けです。", 1
goto *restart

*com
rnd x, 3
rnd y, 3
await 1
if ban.x.y > 0: goto *com
goto *setkoma
0045名無しさん@お腹いっぱい。01/11/09 05:04ID:???
;見た目で気になるところをちょっとだけ変えました。完成です。
;さて、次は連珠つくらなきゃ。
;3moku2.as
screen 0, 384, 384

*restart
player=0
dim ban,3,3
dim col,2,3

cls
line 0, 128, 384, 128
line 0, 256, 384, 256
line 128, 0, 128, 384
line 256, 0, 256, 384

*keywait
if player=3: goto *com
getkey k, 1
if k=1: goto *lclick
wait 1
goto *keywait

*lclick
x=mousex/128
y=mousey/128
if ban.x.y > 0: goto *keywait

*setkoma
ban.x.y=player+1
boxf x*128, y*128, x*128+127, y*128+127

repeat 3
if (ban.0.cnt + ban.1.cnt + ban.2.cnt) = ((player+1)*3): goto *win
if (ban.cnt.0 + ban.cnt.1 + ban.cnt.2) = ((player+1)*3): goto *win
loop
if (ban.0.0 + ban.1.1 + ban.2.2) = ((player+1)*3): goto *win
if (ban.0.2 + ban.1.1 + ban.2.0) = ((player+1)*3): goto *win
if (ban.0.0 + ban.1.0 + ban.2.0 + ban.0.1 + ban.1.1 + ban.2.1 + ban.0.2 + ban.1.2 + ban.2.2) = 21: goto *draw
player=3-player
color player*255, 0, 0
goto *keywait

*win
mestemp= player/3+1
winmes = "Player"+mestemp+"の勝利です。"
dialog winmes, 0
goto *restart

*draw
dialog "引き分けです。", 0
goto *restart

*com
rnd x, 3
rnd y, 3
await 1
if ban.x.y > 0: goto *com
goto *setkoma
0046名無しさん@お腹いっぱい。01/11/09 10:22ID:???
>>42
反論できなければ「むかつく」ですか。ははは。

>>43
「cout << "message" << endl;」でも同じ事だろ。
あぁ、でもこの場合endlが\nと同じようなモンか・・・
要するに文字列をどうあつかうかで「高級言語<>厨房言語」とかいってるのが
オサムイねってことよ。
0047名無しさん@お腹いっぱい。01/11/09 15:37ID:???
真性厨房のスレでいい大人が争ってるっていい絵になるね。
0048名無しさん@お腹いっぱい。01/11/14 20:24ID:???
HSPってのは簡易命令が多めに入ってる。そん代わりできることが少なめ。これ。

HSPってのはできること減らした分で
きちんと開発の早さとか分かりやすさ優位に立ってる。
(外部DLLを使えば大概のことはできそうだが)
欠点増やした分でちゃんと利点を作ってるんだから
厨房言語ってことはないと思われ。
0049名無しさん@お腹いっぱい。01/11/15 02:26ID:???
>>48
その厳選された命令がツカエネェって話だと思うが。
特に分岐やループがつかえないし簡単でもない。
0050名無しさん@お腹いっぱい。01/11/15 19:16ID:N6GHtlAZ
>>46

言語の善し悪しなんてどうでもいいだろ。
俺だってBASICがなかったら、今の俺は無かったろうさ。

要はモノを作るってことをやり遂げられるかだろ?
その点32は頑張ってると思うぞ。

言語なんてのはその都度覚えていけばいいんだ。
開発環境が変われば言語も変わるんだし。

がんばれ! >>32
0051名無しさん@お腹いっぱい。01/11/15 19:23ID:???
>>50
いい事いうねぇ。
言語の良し悪しをどうこういうヤツはメンドクサガリ屋なんだろ。
どんな事柄においてもね・・・。
0052名無しさん@お腹いっぱい。01/11/15 19:29ID:N6GHtlAZ
>>52

本職だったしね。(^^;

#エロげーばっかだったが・・・(鬱
0053名無しさん@お腹いっぱい。01/11/15 20:11ID:rfRVyC2P
というわけで、先日delphi落としたんですが、まずどうすれば良いでしょう?
メモ帳はなんとか作れましたが、ゲームは良くわからないっす
とりあえずbmpファイルはあるんで、それを画面に表示して動かしてみたいです
0054名無しさん@お腹いっぱい。01/11/15 21:32ID:RRPopQgu
>>53
Imageコンポーネントをフォームにぺたっと貼って、
Pictureプロパティにイメージを読み込んで、
LeftプロパティやTopプロパティを操作します。
005553じゃないよ。01/11/16 01:22ID:nKarEaJd
>>54

delphiの事はよくわからんが、イメージはなんとなく分かるな。

デバイスコンテキストにbmp読み込んでクライアント領域に張り付けて
表示座標いじるようなもんか。
0056名無しさん@お腹いっぱい。01/11/16 01:41ID:ZgDDdgZX
>>53
http://www.amazon.co.jp/exec/obidos/ASIN/4894711303/ref=sr_aps_d_1_1/249-6665820-0500317
こういう本もあります
00575301/11/16 04:49ID:lU86qPrA
>>54
ぺたっとやったらできました
これをカーソルキーで表示位置を動かせるようにはできますか?

>>56
なるほど、ちなみに厚さはどれくらいですか?
0058名無しさん@お腹いっぱい。01/11/16 08:22ID:P4w93E0K
>>57
コンポーネントのプロパティ凝視すればわかるよ。
top,leftいじってみ。
00595301/11/16 08:37ID:sMi8XlU9
>>58
マジすか?
プロパティだけで[→]キー押したら右に動くようにできます?

直感でフォームのイベントのOnKeyDownの所に名前入れてリターン押したらメッセージが出せるようになったんですが
上下左右のキーで画像の表示座標を変えたいんですよ
0060名無しさん@お腹いっぱい。01/11/16 09:45ID:dc03umab
>>59
そこからかい(w
OnKeyDown でキーコード(引数key?)拾って、Image1.left++;みたいな。
0061名無しさん@お腹いっぱい。01/11/16 09:51ID:QGZlYshc
>>59
こんな感じでどう?
かっこの中にいれるのは「仮想キーコード」でヘルプ探せばすぐでてくる。

procedure TForm1.Timer1Timer(Sender: TObject);
var
speed: integer;
begin
speed:=8;
if GetKeyState( VK_LEFT ) < 0 then image1.Left := image1.Left-speed;
if GetKeyState( VK_RIGHT ) < 0 then image1.Left := image1.Left+speed;
if GetKeyState( VK_UP ) < 0 then image1.top := image1.top-speed;
if GetKeyState( VK_DOWN ) < 0 then image1.top := image1.top+speed;
end;

end.
006201/11/16 17:46ID:???
timeGettimeってナニを返してるんですか?
是非受けたいんだすが。
0063名無しさん@お腹いっぱい。01/11/16 17:50ID:gGtA8+lG
agu
0064名無しさん@お腹いっぱい。01/11/16 17:54ID:???
>>62
Windowsが起動してからのミリ秒を4294967296で割った余り
0065名無しさん@お腹いっぱい。01/11/16 18:01ID:???
>>64
ありがとっす。
ゲームで使うときどんな実装のし方していますか?
それともこれ使うのはマズイ?!
0066名無しさん@お腹いっぱい。01/11/16 19:16ID:???
t1 = timeGetTime();
何らかの処理
t2 = timeGetTime();

t2 - t1 で、この処理に要したミリ秒がわかる
00675301/11/16 21:52ID:QAvUh6au
>>60-61
どうも、お二方
で、入力タイマーを適当にぺたっと貼って
61さんのを実行してみた所、最初一秒ごとにしか進まなかったのです
ので、ターマーのプロパティのIntervalを10にしてみたらスススーと行きました
が、このままだと結構ちらつくんですよね
なんとかしたい金曜日です
0068名無しさん@お腹いっぱい。01/11/16 21:58ID:???
>>67
procedure TForm1.FormCreate(Sender: TObject);
begin
form1.DoubleBuffered:=true;
end;

end.
00695301/11/16 22:02ID:QAvUh6au
>>68
[エラー] Unit1.pas(38): 未定義の識別子 : 'FormCreate'
ですって・・・
0070名無しさん@お腹いっぱい。01/11/16 22:04ID:???
>>69
フォームをダブルクリックする。

form1.DoubleBuffered:=true;と入力。

ウマー

form1ってのはデフォルト名だが変更してればそれに変える。
00715301/11/16 22:10ID:QAvUh6au
>>70
成功です!チラつかないです!
画像の透明色はパレット番号で決まるんですか?
あとキャラの画像が↓みたいにつながってるbmpファイルで
この○の部分だけ表示して、○と◎の部分でアニメーションさせる事はできますか?
┌――┐
│○△│
│◎▲│
└――┘
0072名無しさん@お腹いっぱい。01/11/16 22:24ID:???
imagelistが使えそうな予感
0073名無しさん@お腹いっぱい。01/11/16 22:34ID:???
imagelistをダブルクリックしたらメニュー開く。
そこであらかじめ画像貼り付けとく。

imagelist1.GetBitmap(0, image1.Picture.Bitmap);
で0を1,2,3,4とか変える。
00745301/11/16 22:45ID:QAvUh6au
こんな感じすかね・・・?

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if GetKeyState( VK_LEFT ) < 0 then
begin
imagelist1.GetBitmap(1, image1.Picture.Bitmap);
end;
if GetKeyState( VK_RIGHT ) < 0 then
begin
imagelist1.GetBitmap(3, image1.Picture.Bitmap);
end;
if GetKeyState( VK_UP ) < 0 then
begin
imagelist1.GetBitmap(2, image1.Picture.Bitmap);
end;
if GetKeyState( VK_DOWN ) < 0 then
begin
imagelist1.GetBitmap(0, image1.Picture.Bitmap);
end;
Image1.Refresh;
end;
0075名無しさん@お腹いっぱい。01/11/16 22:53ID:???
向上心のある初心者が多いね。大成するよ。
0076名無しさん@お腹いっぱい。01/11/16 22:57ID:???
>>74
キャラクターのアニメーションはタイマーを別にしたほうがよくないかい?
00775301/11/16 23:31ID:QAvUh6au
いろいろと考えた結果、こうなりました。どうですか?
タイマー2のIntervalはとりあえず350にしました
で、キャラの移動なんですが、61の方法では失敗しました

var
 Form1: TForm1;
 ch,key,chtim : Integer;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if GetKeyState( VK_LEFT ) < 0 then key :=1;
 if GetKeyState( VK_RIGHT ) < 0 then key :=3;
 if GetKeyState( VK_UP ) < 0 then key :=2;
 if GetKeyState( VK_DOWN ) < 0 then key :=0;
 imagelist1.GetBitmap(ch, image1.Picture.Bitmap);
 Image1.Refresh;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
 if chtim=8 then chtim:=0
 else chtim:=8;
 ch := key+chtim;
end;
0078名無しさん@お腹いっぱい。01/11/17 00:55ID:???
CUIのゲームじゃだめ?
0079名無しさん@お腹いっぱい。01/11/17 01:12ID:???
>>78
このスレの主旨から言えばなら問題ないと思う。
0080名無しさん@お腹いっぱい。01/11/17 03:03ID:???
>>77
失敗ってのはどんな風になった?
00815301/11/17 03:39ID:s4sRLZbo
>>80
キャラクターがパッと消えました
00825301/11/17 04:28ID:???
>>77の挙動がおかしかったので、ch := key+chtim;を移動させて
ch := key+chtim;
imagelist1.GetBitmap(ch, image1.Picture.Bitmap);
Image1.Refresh;
に修正しました

メインルーチンの位置は基本的にタイマーで良いんですかね?
あと、画像の背景が透過されてるので、画面にゴミが残ります
00835301/11/17 04:32ID:???
>>80
ごめんなさい
動きました
00845301/11/17 06:53ID:???
こんな風にしてみました
 ch := key+chtim;
 image1.canvas.brush.color:=RGB(128,255,0);
 image1.Canvas.FillRect(rect(0,0,image1.width,image1.height));
 imagelist1.GetBitmap(ch, image1.Picture.Bitmap);
 Image1.Refresh;
0085名無しさん@お腹いっぱい。01/11/17 21:10ID:???
ところで完成したらなんになるの?
STG?ACT?それともRPGか?
00865301/11/17 22:02ID:???
RPGが良いなあ
00875301/11/18 01:11ID:zl0z4KJc
マップを規則的に並べてキャラを動かすってのはどうやれば良いんだろう?
ロマサガ1のイメージで
0088C++初心01/11/18 01:15ID:???
>>84
なんの演算子かと思って調べちゃったYO!
Delでしたね。
0089名無しさん@お腹いっぱい。01/11/18 01:34ID:???
RPGって結構大変だから、最初はブロック崩しやパックマンみたいな
昔のTVゲームを真似て作るのが良いよ。
0090名無しさん@お腹いっぱい。01/11/18 01:39ID:???
RPGはプログラムよりデータ(シナリオ・画像とか)作成の方が大変と思われ
00915301/11/18 02:01ID:uY6igSYu
>>89
そうかもしれないです。ただパックマンもロマサガも
・マップを表示させてキャラクターを動かす
・敵キャラとの接触によってイベントを起こす
みたいな基本的な部分は一緒だと思うんですよ
だから今のレベルじゃパックマンも作れないっす

>>90
ドット絵は毎日コツコツ書き溜めてあります・・・
これをなんとか動かして使ってみたいですよ
0092名無しさん@お腹いっぱい。01/11/18 11:32ID:???
RPGっていいかたまぎらわしい・・・
0093名無しさん@お腹いっぱい。01/11/18 13:22ID:???
>>92
何とまぎれてるの?
ロケットランチャーなのか、それともAS/400とかのアレか…
0094age01/11/19 01:16ID:???
age
0095名無しさん@お腹いっぱい。01/11/19 01:30ID:???
RealProgrammer
009601/11/19 01:34ID:???
内容:
こんなんでよければ公開するよ〜 Cだよ〜
Cは Cmachine が超初心者専用、、現在フリーのBORLANDC++
やVBよりいいって言う人多いDERPHIもコンパイラとしてイケテルよ〜

作成に2時間ほどの宝探しゲームのソース↓ 昔のでしょぼいっス、、

#include<stdio.h>
#include<stdlib.h>
void main(){

int x,y,kawari,ki,rp=0,dora=60,tka,si=1,i,p,h=0,tokuten=0;
int tax[3],tay[3];
x=0;y=0;
009701/11/19 01:35ID:???
do{
do{
tax[1]=rand();tay[1]=rand();
tax[0]=(tax[1]+h)%10;tay[0]=(tay[1]*2*h)%10;
}while((x==tax[0])&&(y==tay[0]));
do{
do{

printf("進む方向を決めてくらさい。\n");
printf("1:↑\n");
printf("2:↓\n");
printf("3:←\n");
printf("4:→\n");

scanf("%d",&ki);
rewind(stdin);


switch(ki){

case 1:
kawari=y+1;
break;
case 2:
kawari=y-1;
break;
case 3:
kawari=x-1;
break;
case 4:
kawari=x+1;
break;
}
h++;
if(dora==0) break;
}while((kawari<0)||(kawari>9)||(ki>4)||(ki<1));



if((ki==1)||(ki==2)) y=kawari;
if((ki==3)||(ki==4)) x=kawari;

tax[2]=tax[0]-x;
tay[2]=tay[0]-y;
if(tax[2]<0) tax[2]=tax[2]*(-1);
if(tay[2]<0) tay[2]=tay[2]*(-1);
tka=tax[2]+tay[2];
///////////////////
for(i=10;i>-2;i--){
for(p=-1;p<11;p++){
009801/11/19 01:38ID:???
switch(i)
{
case -1:
if((p==-1)||(p==10)){
printf("|");
}else{
printf("_");
}
break;
case 0:
if((p==-1)||(p==10)){
printf("|");
}else{
if((y==i)&&(x==p)){
printf("◎");
}else if((tka==1)&&(tax[0]==p)&&(tay[0]==i)){
printf("宝");
}else{
printf(" ");
}
}
break;
case 1:
if((p==-1)||(p==10)){
printf("|");
}else{
if((y==i)&&(x==p)){
printf("◎");
}else if((tka==1)&&(tax[0]==p)&&(tay[0]==i)){
printf("宝");
}else{
printf(" ");
}
}
break;
009901/11/19 01:39ID:???
case 2:
if((p==-1)||(p==10)){
printf("|");
}else{
if((y==i)&&(x==p)){
printf("◎");
}else if((tka==1)&&(tax[0]==p)&&(tay[0]==i)){
printf("宝");
}else{
printf(" ");
}
}
break;
case 3:
if((p==-1)||(p==10)){
printf("|");
}else{
if((y==i)&&(x==p)){
printf("◎");
}else if((tka==1)&&(tax[0]==p)&&(tay[0]==i)){
printf("宝");
}else{
printf(" ");
}
}
break;
case 4:
if((p==-1)||(p==10)){
printf("|");
}else{
if((y==i)&&(x==p)){
printf("◎");
}else if((tka==1)&&(tax[0]==p)&&(tay[0]==i)){
printf("宝");
}else{
printf(" ");
}
}
break;
010001/11/19 01:40ID:???
case 5:
if((p==-1)||(p==10)){
printf("|");
}else{
if((y==i)&&(x==p)){
printf("◎");
}else if((tka==1)&&(tax[0]==p)&&(tay[0]==i)){
printf("宝");
}else{
printf(" ");
}
}
break;
case 6:
if((p==-1)||(p==10)){
printf("|");
}else{
if((y==i)&&(x==p)){
printf("◎");
}else if((tka==1)&&(tax[0]==p)&&(tay[0]==i)){
printf("宝");
}else{
printf(" ");
}
}
break;
case 7:
if((p==-1)||(p==10)){
printf("|");
}else{
if((y==i)&&(x==p)){
printf("◎");
}else if((tka==1)&&(tax[0]==p)&&(tay[0]==i)){
printf("宝");
}else{
printf(" ");
}
}
break;
010101/11/19 01:41ID:???
case 8:
if((p==-1)||(p==10)){
printf("|");
}else{
if((y==i)&&(x==p)){
printf("◎");
}else if((tka==1)&&(tax[0]==p)&&(tay[0]==i)){
printf("宝");
}else{
printf(" ");
}
}
break;
case 9:
if((p==-1)||(p==10)){
printf("|");
}else{
if((y==i)&&(x==p)){
printf("◎");
}else if((tka==1)&&(tax[0]==p)&&(tay[0]==i)){
printf("宝");
}else{
printf(" ");
}
}
break;
case 10:
if((p==-1)||(p==10)){
printf("|");
}else{
printf(" ̄");
}
break;

}
}
printf("\n");
}
010201/11/19 01:42ID:???
/////////////////
printf("現在地(%d,%d)\n",x,y);
if(tka!=0){
printf("タカラ(株)との距離は%dです\n",tka);
dora=dora-1;
printf("のこりのドラヤキは%d個です\n",dora);
}else{
printf("ドザエモンはドラヤキを手に入れた!\n");
dora=dora+5;
rp=1;
tokuten=tokuten+h;
}
if(dora==0) break;
}while(rp==0);
rp=0;
if(dora==0) break;
}while(si==1);
printf("ゲーム叔母ーです\n");
printf("\x1b[34m");
printf(" ___ \n");
printf("ドラヤキ%3d個うめぇ〜 (゚P゚)\n",tokuten);
printf(" 〇| |〇 \n");
printf(" 凸凸 \n");
printf("\x1b[37m");
scanf("%d",&si);
}
010301/11/19 01:45ID:???
スレよごしスマソ、、、
このソースプラス 、CコンパイラでDOSの宝探しゲームできます。
軽いCMACHINEだかはVECTORにあったかな、、
0104名無しさん@お腹いっぱい。01/11/19 01:48ID:???
このスレの誰かのソースを修正してみた…とかじゃないから、
ソースを上げるスレッドの方が適当じゃないかな。もう遅いけど。
0105大まかな流れだよ(一例)01/11/19 02:07ID:???
>91
<グラフィックデータ編>
ドット絵は仮絵(かろうじて何の絵か分かるレベル)でOK。
プログラムがある程度形になってから、きちんと描いたやつに
差し替えよう。音楽・効果音も同様です。

<設計編>
実際のプログラミングにとりかかる前に、データ(マップ&イベント配置・
シナリオデータ・モンスター・魔法・アイテムetc)フォーマットは
曖昧にせず、きちんと決めておきましょう。
自機キャラのパラメータ要素はいろんな場面で必要になってくる
ので特に慎重に設計しましょう。

<データ入力編>
モンスター・魔法・アイテムのデータ入力は表計算ソフトを使うと楽です。
それをそのまま使うなり、独自形式にコンバートするなり。
マップ入力はマップエディタを使います。手間を考えると、専用エディタ
の自作をお勧めしますが、しんどければフリーソフトを探しましょう。
RPG用途だから、マップの配置だけでなく、上位何Bitかに自由に
数字を入れられるものがいいです(そこにイベントの配置を割り当てる)。
やっぱりそれをそのまま使うなり、独自形式にコンバートするなり。

<プログラム編>
マップ表示部分を心行くまで作ったら、メニュー処理・戦闘処理・
イベントや会話処理…etc、場面別に一つづつプログラムを組んでは、
マップ表示部分から呼び出せるようにしてあげます。
OPやEDやビジュアルシーンなど、演出を強化する部分は最後に作ります。

予想よりもずっとしんどい作業になると思います。頑張って下さい。
0106名無しさん@お腹いっぱい。01/11/19 13:47ID:???
>>93

例えが渋いな・・・
ATMも対戦車ミサイルにしか見えない漏れ・・・

AS400か。去年までRPGでコード書いてたよ(藁
0107名無しさん@お腹いっぱい。01/11/20 04:31ID:yODdoyPq
家庭用コンソールの場合は、アセンブラと線形代数できたら就職できるよ。
0108名無しさん@お腹いっぱい。01/11/20 04:49ID:???
わけないじゃん。
0109 01/11/21 07:20ID:???
>>23
ハァ?

テメェがマニュアル読んで出直して来い
0110名無しさん@お腹いっぱい。01/11/21 20:21ID:???
2週間も経ってからレスすんな。
01115301/11/29 01:52ID:???
サイト回ってなんとなく解ってきたかも・・・
0112名前は開発中のものです。01/12/16 15:18ID:0Fpf1AlI
http://pc.2ch.net/test/read.cgi/tech/1008483093/
0113名前は開発中のものです。01/12/17 00:28ID:???
>>103
Mゥ〜?
まさかココのM?
ttp://game.2ch.net/test/read.cgi/gamedev/1005323011/
0114名前は開発中のものです。02/02/10 14:20ID:???
あげ









0115名前は開発中のものです。02/02/13 00:06ID:jlORD8b3
C言語でGBのプログラム作ってんだけど
%2dを受けつけてくれないのよ
数字を右寄せ表示するにはどしたらいいの?
0116名前は開発中のものです。02/02/13 03:05ID:???
setw(2)
0117名前は開発中のものです。02/02/13 06:14ID:???
>>109
もの凄ぇ亀レスだな、俺もだけど
0118名前は開発中のものです。02/02/13 09:24ID:???
>>116
cout<<setw(2)<<x;かな?
<iomanip.h>をインクルードしなきゃいけないみたいだけど
インクルードできない


そもそもこんなヘッダ見たことない
0119名前は開発中のものです。02/03/23 22:24ID:UKJQHvTc
>>1
糞スレ立てんなヴォケ
0120名前は開発中のものです。02/03/23 23:07ID:hSR28MHk
>>109
正しいけどおそすぎるって。
0121名前は開発中のものです。02/03/28 11:50ID:luhBBlnn
ズブズブの初心者がゲーム作れるまで勉強するスレ
0122名前は開発中のものです。02/03/28 14:44ID:???
ガバガバの初心者が...(以下略)
0123名前は開発中のものです。02/03/28 15:54ID:luhBBlnn
童貞がゲーム作れるまで勉強するスレ
0124名前は開発中のものです。02/04/22 15:57ID:fVxmBSA2
>>120
>>119の間違いだよね!
0125名前は開発中のものです。02/04/23 23:06ID:???
残念ながらおれは糞スレ大好きだ
012612602/05/10 19:45ID:OvKq4PFU
再利用カイーシ。

今から俺がゲーム作るまで勉強するのでおまえら見ててください。

目標:DirectX使って3Dゲー(迷路みたいの)
使える言語:Basic, Java, C, C++, いずれもちょっとずつ。

まずは、開発環境からだ!
DirectX SDKとBorland C++を落とすよ。
■ このスレッドは過去ログ倉庫に格納されています