ズブの初心者がゲーム作れるまで勉強するスレ
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/11/07 20:26ID:PFtlmWD9ズブの初心者以外お断りです。
なおアドバイス等はプロのかたでも結構です。
初心者は聞く耳を持ちプロもわかりやすく教えてやってください。
0457455
04/04/19 20:57ID:YPIC9Z/aでもやっぱりステップアップするには、常套手段に従ってありふれた簡単なゲームを作っていく方がよくないですか?
目的も持てるし、できたら嬉しいし
そういうわけで、とりあえずテトリスは難しそうなので、今から五目並べやってみます
0458名前は開発中のものです。
04/04/20 01:02ID:byeyzMFHですが思うように、というか全然アホCPUしか作れません。
なにかアドバイスをいただけませんか。
0459455
04/04/20 01:25ID:Hld2EAauいやー、楽しいですね
できればCPU対戦のことも考えたいけど、無理だろうな
コンピューターの動きのアイディアが全然思いつかない
0460名前は開発中のものです。
04/04/23 00:37ID:pRqu8Vw+とりあえず三目並べ(要するに○×)でCPU作ってみたら?
0462練習帳著者
04/04/25 10:45ID:LyJsr1s0とりあえず、以下の処理を試してみましょう。
1 可能な手を列挙する(制約のない五目並べなら空白の場所を列挙するだけ)。
2 その中から「ランダムに」打つ手を選ぶ
3 コンピュータがその手を打つ処理を実装する
これができれば、あとは2の部分でよりましな手を選べるよう改良していくだけ。
0463455
04/04/29 00:57ID:vcMIXweaあ。わざわざすいません
でも先日から別のプログラムを作り始めてしまって・・・
後回しにすると忘れてしまいそうなので、それが終ってからやってみます
0464名前は開発中のものです。
04/04/30 17:12ID:bNvYLXW7これ使っていろいろやってみようかな、と思ってたんです。
で、簡単な文をコンパイルしようとしたら「d3drm.libが開けません」ですって。
なんか他のプログラムでもこのライブラリのせいでエラーが出ます。
↑の文だけで原因っぽいもの分かりますか?
0465名前は開発中のものです。
04/04/30 17:15ID:La2rD6H90466名前は開発中のものです。
04/04/30 18:10ID:bNvYLXW7どうも
もう一回しっかり見てみます
0467464
04/05/02 13:59ID:y/UaHwjTそれより上のより簡単そうなEasy Link Libraryってのを見つけたんです
サンプルのテトリスとかがありまして、実行ファイルはもちろん動くのですが
自分でプロジェクトを開いてビルドするとエラーが出ます。
この件に限らずサンプルは殆ど++6なので、自分が使ってる.NETだと
開いた時の++7形式に変換しますか?→はい でおかしくなってるのだと思います
こういう場合は何か書き足す必要があるのでしょうか?
0468名前は開発中のものです。
04/05/02 14:35ID:a+vlsVTZ04696にすればよかった・・・
04/05/02 15:12ID:y/UaHwjTttp://www3.justnet.ne.jp/~botchy/el/el63.htm
ここの手順通りにやったのですが・・・
ビルドすると
・Project fatal error LNK1136: ファイルが無効であるか、 または壊れています。
と出ます
続きます
0470名前は開発中のものです。
04/05/02 15:16ID:y/UaHwjT#include<simpleX.h>
void StartUp()
{
}
void MainLoop()
{
Clear();
Text(0,0,"Hello World");
}
そうすると
・resu warning LNK4003: ライブラリの形式が無効です。ライブラリは無視されます。
この警告が4つと
・resu fatal error LNK1561: エントリー ポイントを定義しなければなりません。
となりました
resuってのはプロジェクト名です
0471464
04/05/04 20:27ID:Nhb0M37dパスの順番変えたり、いろいろしたら出来ました
0472名前は開発中のものです。
04/05/07 09:39ID:7PPmi+4T0473名前は開発中のものです。
04/05/09 18:56ID:FkW++Xq50474464
04/05/10 20:05ID:XWABRbZ8http://www3.justnet.ne.jp/~botchy/sample/Sam0201.cpp
>// 3Dを使って開発する場合、必ず必要です。
>#define DIRECT3D_IM
これってDirectXSDKにある何かですか?
具体的にどのように設定すれば上のコードをビルドできますか?
0475名前は開発中のものです。
04/05/10 20:31ID:XWABRbZ8「質問書く前にいろいろ試せや、このタマキン野郎が!」って罵ってください
0476名前は開発中のものです。
04/05/10 23:11ID:b3c9N5XP0478名前は開発中のものです。
04/05/16 15:21ID:cS86WeRiシューティングってほどでもないんだけど、自機が弾を撃つのね。
でも画面上に一つしか出ないのよ、次撃つと前のが消える。
弾の座標が一個分しかないからなんだろうけど。で、サンプルみたいなのを見てみたら
配列を使ってたのかな?当たり前なんだろうけど、それで弾を一つ一つ管理してたのかと
少し分かった気がしたのですよ。でもどう組めばいいのか解らない・・・・
普通はどのようにしてるのでしょうか?
0479名前は開発中のものです。
04/05/16 17:51ID:b74ZsW5L//弾定義
struct _Tama
{
int x;
int y;
bool isAlive;
};
//定義した弾を配列で宣言
struct _Tama tama[16];
//撃つとき
for(i=0;i<16;i++)
{
if(!tama[i].isAlive)
{
tama[i].isAlive = true;
tama[i].x = 弾出現位置X
tama[i].y = 弾出現位置Y
break;
}
}
が、一番シンプルかな・・・。
0480名前は開発中のものです。
04/05/17 17:08ID:6yEm3iSBMOTHERでいうと最初の電気スタンドを倒したところです
0481名前は開発中のものです。
04/05/18 16:37ID:H7HjmD2rすいません、elだとどんな感じになりますか?
bool ってのは真偽の為のものですよね?
0482名前は開発中のものです。
04/05/18 17:57ID:mlpq/arSint isAlive;//弾の生存フラグ
で、isAlive=0が画面に出てないヤツ、isAlive=1が画面に出てるヤツとか、
2つの状態を区別できれば、型はなんでも大丈夫だよ
0483名前は開発中のものです。
04/05/18 20:20ID:oOiAEM3V0484名前は開発中のものです。
04/05/18 21:56ID:z93EQDk5つまり作れないって事です
0485名前は開発中のものです。
04/05/18 23:04ID:oOiAEM3V479さんの上げた例はCなので多分問題なくいけるはずですが。
使用言語の基本書式とか理解してないとゲーム以前の問題になりませんか。
「猫でもわかる」でぐぐったりしてもう少し基礎の所からはじめるのをお勧めします。
もしくはツクール。
0486名前は開発中のものです。
04/05/19 02:06ID:39xvAhxl0487名前は開発中のものです。
04/05/19 02:48ID:KEtzYPtB学習ガイドライン
1.Cを覚える(教科書は「猫でもわかる〜」でOK)
↓
2.elのサンプルコードを読む(判らない部分はとりあえずgoogleへ)
↓
3.elのサンプルコードを改造する(一ヶ所変えるたびにコンパイルして実行)
↓
4.本番(もう何も言うことはない)
途中のステップをとばすと「自分が何を判らないのか判らない」状態にはまるから
トータルで考えれば時間の無駄になるよん。
0488478
04/05/19 16:33ID:ryT9K2cQCは基礎は大丈夫だと思います。まあ、これも勉強します。
>2.elのサンプルコードを読む(判らない部分はとりあえずgoogleへ)
↓
>3.elのサンプルコードを改造する(一ヶ所変えるたびにコンパイルして実行)
で、今ここら辺をやっているわけですがSc2のコードを見て弾の部分を理解しようと試みています。
余計なものが多くてややこしいですが、頑張ってれば理解できそうな感じです。
0489名前は開発中のものです。
04/05/19 16:52ID:ryT9K2cQもう少し頑張ってみれば何とかなりそうです。
やっぱ成長するにはいろいろ悩まないと駄目ですね。
0490名前は開発中のものです。
04/05/19 20:50ID:AQMqopBj0491名前は開発中のものです。
04/05/20 17:21ID:Mw1SlL99いや、同じです
というか>>484以外はだいたい自分です、>>464です。
0492464
04/05/22 14:11ID:ptk8g+iv最初は何のことだか解らなかったのですが、構造体ということがやっと解りましたw
これは便利ですね、少し賢くなりました。どうもです
0493464
04/05/25 16:53ID:QdGCgPCN0494名前は開発中のものです。
04/05/25 19:01ID:FiBx1oTV{
int a;
};
と
class X
{
public:
int a;
}:
はかなり似てます。
0495名前は開発中のものです。
04/05/25 19:02ID:FiBx1oTV誤) }:
正) };
0496464
04/05/26 22:39ID:U7ffWaSi0497HSPビギナー
04/06/21 18:45ID:CIr1o5igそれで、さっき5時間くらいかけて初めて数当てゲームぽいものできたのですが、ここにソース貼り付けたら何かアドバイスしていただけるのでしょうか?
0498名前は開発中のものです。
04/06/21 23:04ID:M6UaUL66数当てゲーム程度の規模だとあまり工夫の余地がないのでアドバイスしにくいかもなあ。
「上手く動かない」とかならともかく
0501名前は開発中のものです。
04/06/23 12:50ID:MYfPkn/Q15パズル。
数当てで使ってると思われるinputなどのコントロールを使わないやつを練習すべし。
0502HSPビギナー
04/06/30 20:16ID:vWGgncp315パズル作ろうとしてるんですが、どうやったら作れるのかまだ分かりません。
自分的に考えているのは↓
1.まず○を → ○○○○
○○○○
○○○
と表示し、
2.次に○のなかに数字を振り分け、
3.最後にクリックすれば○が無い方向に動く
というようにすればできると思うのですがどうなのでしょうか?
これであっているのなら、まず初めのどうやったら○が並ぶのかがいまいち分かりません_| ̄|○
教えて君ですいませんが、お願いします。
P.S 長文&読みにくい文章でスマソです_| ̄|○
0503HSPビギナー
04/06/30 20:24ID:vWGgncp3○○○○
○○○○
○○○
と表示させたかったのですがずれました_| ̄|○
0504名前は開発中のものです。
04/07/01 02:59ID:Er33M+6r01020304<改行>
05060708<改行>
09101112<改行>
131415■<改行>
HSPはしらないけど、↑みたいに表示すれば文字だけでも表示できる。
上下左右を押すと■がその方向の数字と入れ替わるようにすれば充分かと。
0505501
04/07/01 16:23ID:Uuze0tzS504の言うように、空白が移動方向のパーツと入れ替わるようにすればいい。
ポイントは配列変数、空白の座標の管理だな。
表示は各パーツごとに表示する。こんな感じ。テキトーに改行してくれ。
//パーツの表示サイズ
#define PARTX 32
#define PARTY 32
#const PARTBX PARTX-2
#const PARTBY PARTY-2
dim part,4,4:px=3:py=3//配列宣言と空白の座標
//配列に数値を格納
i=1:repeat 4:y=cnt:repeat 4:part.cnt.y=i:i++:loop:loop
part.px.py=0//空白部分は0にする
//表示してみる
color:boxf
repeat 4:y=cnt:repeat 4
if part.cnt.y {
xx=cnt*PARTX:yy=y*PARTY
color ,,255:boxf xx,yy,xx+PARTBX,yy+PARTBY
color 255:pos xx,yy:mes part.cnt.y
}
loop:loop
stop
0506名前は開発中のものです。
04/07/02 12:25ID:u1M+Bkgkwin98を使っています
0507名前は開発中のものです。
04/07/03 21:18ID:dqxJIYXl0508名前は開発中のものです。
04/07/04 02:44ID:/gx8vrG/0509HSPビギナー
04/07/12 01:52ID:NjMiC/7h自分なりに解釈してみました。
//パーツの表示サイズ(定義しておく)
#define PARTX 32 //PARTXは32である
#define PARTY 32 //PARTYは32である
#const PARTBX PARTX-2 //PARTBXはPARTX-2である(つまりこの場合は30である)
#const PARTBY PARTY-2 //PARTBYはPARTY-2である(つまりこの場合は30である)
dim part,4,4 //配列宣言(part 0,0 から3,3 まで使用できるようにする)
px=3:py=3 //空白の座標
//配列に数値を格納
i=1 //とりあえずiに1を代入
repeat 4 //4回繰り返す
y=cnt //とりあえずyにcntを代入(初めのリピートについての回数になる)
repeat 4 //4回繰り返す
part.cnt.y=i //part.cnt.yの座標の値はi(この場合のcntは後の方のリピートについての回数)
i++ //iに1を加える
loop //後のrepeatについてのループ
loop //初めのrepeatについてのループ
part.px.py=0 //空白部分は0にする(つまりpart 3.3は0)
0510HSPビギナー
04/07/12 01:55ID:NjMiC/7hcolor //色の設定(ここでは黒)
boxf //塗りつぶし(指定していないので背景が塗りつぶされる)
repeat 4 //4回繰り返す
y=cnt //yにcnt(ループ回数)を代入
repeat 4 //4回繰り返す
if part.cnt.y { //もしpart.cnt.yなら
xx=cnt*PARTX //cnt*PARTXをxxとする
yy=y*PARTY //y*PARTYをyyとする
color ,,255 //ここでは青色に設定している
boxf xx,yy,xx+PARTBX,yy+PARTBY //(xx,yy)と(xx+PARTX,yy+PARTBY)を左上、右下の点として、矩形(四角形)を塗りつぶす。
//描画色は、color命令で設定されたものになる。
color 255 //色の変更(ここでは赤色にしてある)
pos xx,yy //カレントポジションを(xx.yy)に指定
mes part.cnt.y //カレントポジションからpart.cnt.yを表示
} //上のことをまとめてする(xx=からmesまで)
loop //後のrepeatについてのループ
loop //初めのrepeatについてのループ
stop //プログラムの実行を一時中断
一行ごとに説明入れてみたので長くなりました_| ̄|○
違ってたら指摘おねです_| ̄|○
(ってかこんな説明いれるのに凄い時間がかかった俺って・・・| ̄|○)
0511501
04/07/12 21:06ID:Fg4Dow09あってる。準備と表示の基本がわかったと思う。
あとは表示部分をサブルーチンにしてしまい、以下の段取りで作っていけばいいかと。
*スタート
・準備。(配列に数字を格納する)
・最初の配置表示。(表示サブルーチンを呼ぶ)
・キー入力を待つ。(いわゆるスタートボタンを待つ待機)
この時、開始のキーを画面に表示してアナウンスするのが望ましい。
例:「クリックでスタート」とか。
・シャッフル開始。(空白を300回くらいランダム移動させる)
・シャッフル後の配置表示。(表示サブルーチンを呼ぶ)
この時、シャッフルで空白を一回動かす度に呼べば、
プレイヤーにシャッフル中の画面を見せる事になる。そこはお好みで。
*メインループ
・プレイヤーのキー入力を待つ。(マウスでもキーボードでもお好きに)
・空白が動いたら配置表示。(表示サブルーチンを呼ぶ)
・揃ったかどうか判定。
・揃ったらメインループを抜ける。(*揃ったへ)
・揃ってなければ *メインループへ。
*揃った
・揃ったうまを表示。
・プレイヤーのキー入力を待つ。
・*スタートへ。(繰り返し遊べるようにする)
メインループは当然無限ループになるから、waitかawaitは忘れずに。
わからなくなったらまた聞いてくれ。
0512HSPビギナー
04/07/13 22:14ID:OxDPuipyで、いきなりなんですが空白と移動方向のパーツをどうすれば入れ替わるのかが分かりません・・・
repeat
await 10
stick key,0
if key!0 : gosub *keyget
loop
*keyget
if key=1 :
if key=4 :
if key=2 :
if key=8 :
return
ifの後に空白と移動方向のパーツの入れ替えを行いたいのです。
よろしくお願いします。(表示は504にあるソースを引用させてもらってます)
0513名前は開発中のものです。
04/07/13 22:43ID:N2yNRIPu0514名前は開発中のものです。
04/07/13 23:14ID:hVT4K+XEo 「よろしくお願いします」
これも嫌われるのでやめた方がいいですよ
0516名前は開発中のものです。
04/07/14 08:33ID:x4u7RW7f自分のやりたいことを実現するには、作業を細分化して考えるんだ。
表示方法、盤の状態をどんなデータで持つか、どんな条件の時は入れ替えないのか。
データの入れ替え自体はそんなに面倒でもないだろ?
0517HSPビギナー
04/07/15 23:33ID:fffn1Y5+とりあえず数字のみが動くようにしました。一応はっときます↓
http://www66.tok2.com/home2/ankokunosyoujo/cgi-bin/up/source/9pazru.as
ぐちゃぐちゃですが「こうしたほうがいいよ」みたいなことがあればレスおねです。
0518501
04/07/16 05:25ID:KYwEYXqCこれらの命令を調べてくれ。エディタで命令を書いて、そこでF1を押せば説明が出る。
・gosub、return、repeat、loop、gcopy
すぐに使うことになるから、よくわからなくても説明だけは読んでおく事。
できれば、「これらの命令を使えば物凄くソースが短くなるかも」という事に気が付いてもらいたい。
・シャッフルについて
このシャッフル法だと絶対に解けない場合が出てくる。空白をランダムに移動させる方法をとるべし。
配列変数ってのは、小学校とかに下駄箱あるじゃん?あれが配列変数。
横と縦のそれぞれ何番目かを指定する必要があるが、マス目で並んでるので便利。
4x4の配列変数を作った場合、15パズルと見た目が同じになるから使わない手はない。
当然9パズルの時は3x3の配列変数を作ればよい。
配列変数の作り方は・・・。詳しくはマニュアル読んでくれ。
ちなみに3x3の配列変数を作るには dim 変数名,3,3 と書く。
こうするとメモリに
□□□
□□□
□□□
というふうに変数が並ぶ。(下駄箱ができると思えばいい)
左上にアクセスするには、変数名.0.0。一番下の段の真中は、変数名.1.2。
とりあえず、意地でも配列変数を使ったバージョンに書き直してほしい。
(これができないと、ロールプレイングもシューティングも作れないから)
0519HSPビギナー
04/07/16 20:47ID:Y+cW3MUc使い方合ってるかどうか分かりませんが一応形になったので乗せます
http://www66.tok2.com/home2/ankokunosyoujo/cgi-bin/up/source/9pazuru02.as
少しは短くなったような気はしますがまだまだ多いです_| ̄|○
reprat,gosubあたりをもう少し効率よくつかえればなぁ・・・
0520名前は開発中のものです。
04/07/16 22:07ID:70qYYQBd「字下げ」も覚えたほうがいいだろうねぇ。(解らなかったらぐぐってみてね)
ところで自分でリストを見直してみて、ほとんど同じような処理を
延々と書き続けていることには気が付いているかい?
何故そう書くことになったのか考えてみよう。
共通の処理で済ませるにはどうしたらいいかな。
まったく同じcolor命令がずらずら並ぶのをなんとかしてみよう。
0521501
04/07/17 03:55ID:GnjMzHwjソース見せてもらった。だいぶスッキリしたじゃないか。
あのラベルとifの羅列は自分でもなんとかしたいだろう。
そのためには、パーツ移動の考え方を変える必要がある。
つまり、入れ替える方法だな。
上のレスで配列変数を小学校の下駄箱に例えたが、入れ替える方法もそのまんまだ。
□□□ □□□
□□□→□□□
□□■ □■□
黒い所に自分の靴が入っているとする。それを左に移したい場合どうするか?
519ならどうする?
まず、動かしたい靴を自分の手に持たないか?
つまり、一旦別の場所に保管するわけだ。プログラミングで値を保管したい場合どうする?
変数に入れるだろう。答えは、「一時保管用の変数を用意」するだ。
2箇所の靴を入れ替えたい時は?・・・両手を使うだろう。保管用の変数が2個必要ってこった。
何も難しい事はないだろう。
サブルーチン(gosubで飛んだ先の事)の中でgotoはやってはいけない。これはプログラマーの暗黙の了解。
俺は519が作った数当てゲームのソースを見ていないから15パズルを薦めたが、荷が重かっただろうか。
0522名前は開発中のものです。
04/07/17 16:51ID:NsP+EN2X*za02から*xy802までがまるまるコピーしたルーチンだね。
まるっきり無駄なのは本人もわかってるんだろうケド。
0523HSPビギナー
04/07/20 22:25ID:E/KOizbb少し直してみました。変数を使ってやってみましたが、考え方はこれであってるのでしょうか?
http://www66.tok2.com/home2/ankokunosyoujo/cgi-bin/up/source/9pazuru03.as
そもそもクリックの座標の取り方を変えなきゃだめですかねぇ・・
0524501
04/07/21 20:06ID:KwUOdNli考え方はあってると思うが、無駄が多いのは確か。
お題変えていいか?15パズルはまだ無理だと判断したぜ。
休憩がてらにこの課題をやってみてくれ。
523の実力がどんなもんかを把握しておきたい。
課題:キーボードの十字キーで●を動かすプログラム。
シューティングの自機を動かす練習でもあり、メインループという仕組みを学ぶ事もできる。
stop命令を使わずにこの課題をクリアしてみそ。
0525HSPビギナー
04/07/22 17:45ID:fcznb9Ajこんなもんでしょうか
http://www66.tok2.com/home2/ankokunosyoujo/cgi-bin/up/source/idou.as
0526名前は開発中のものです。
04/07/22 18:56ID:O9iIDjrWそれができるなら>>523のソースはありえないと思うんだが……
0527501
04/07/23 21:20ID:QxYTfUZ3あのさ、526に同意だぜ。それができるなら523のソースはありえんかと。
メインループってのがわからない人かと思ってた。
自分で考えたよな?どっかのサイトのをコピペしたんじゃないよな?
悪いけどコピペしたように見えちまうぜ。
メインループもしっかりしているし、どの部分をサブルーチンにするかの選別も完璧だ。
画面外処理にも気をつかってるようだし、523のソース書いた人と同じとは信じがたい。レベルアップしたって事なら心から祝福するが・・・。
とりあえず自分で考えたって事で話を進めるぜ。実力はわかった。
ここまでできれば15パズルなんざ屁でもないはず。
メインループを使って組んでみてくれ。
0528HSPビギナー
04/07/27 22:13ID:MycCT3Obhttp://www66.tok2.com/home2/ankokunosyoujo/cgi-bin/up/source/9pazuru04.as
いつdim関数を入れ替えればいいのかがまだ理解できません_| ̄|○
0529520
04/07/28 08:06ID:dtD/YKE5でもまだ似たような処理が複数あるし、ループ内で行う処理の流れも把握し切れてないみたいだ。
たとえば『*move』で行う処理を単純化して変数keyの値(stick命令で得た情報)をもとに
「→が押されたときの処理」など別のサブルーチンに飛ばすだけにしてみたらどうだろう。
その飛び先で例外処理(528の『if n>358』みたいな場合、処理前にそのサブルーチンから抜ける)を行う。
配列内の値(マスの数字)はそこで入れ替えればいい。
ただし、この方法で行うにしてもメインループから『*sub』が毎回呼ばれるようでは
配列内の数値が毎回初期化されてしまうよね?
それは『*sub』内で配列に数値を入れているからだよね?
だからループ内で行うべき処理とそうでない処理を分割してみよう。
0530501
04/08/07 01:45ID:2Nt1AYKGマイルール作ろうぜ。
if key=8と書いてる所とif key = 128と書いてる所があるが、イコールの前後に空白を開けるか開けないか決めたほうがいい。
あと、変数の名前の付け方とかも決めたほうがいいな。
それを決めるとプログラミングの上達が速いから。騙されたと思って統一させてみな。
いつdim関数を入れ替えるか?中身をいつ入れ替えるかってこと?
当然空白が移動した時。順番はこう。
1、空白が移動できるなら元の位置を捨て変数に代入して移動。移動できなければ何もしないでメインループに戻る。
2、元の位置と現在の位置の中身を入れ替える。
3、画面に反映させる。(描画サブルーチンを呼ぶ)
こんな感じ。
空白の位置がどこかは配列を調べていってゼロの場所を探せばいいが、
>>505の俺のサンプルでは空白の位置をわざわざpx,pyに格納してるよね。なんでだと思う?
>>528の修正版ではわけもわからずpx,pyを使ってるみたいだね。
こうやって空白の位置を専用の変数に入れてるのは、こうしたほうが入れ替えが楽だから。
カーソルキーを押した時に変化させる数値はpx,pyって事。
空白はRPGの主人公と同じ意味。とりあえず今回はこんだけのヒントでなんとかなるかも。
0531名前は開発中のものです。
04/08/10 13:20ID:GK5zdL7Gご助言を受け賜りたいです。
0532名前は開発中のものです。
04/08/10 13:49ID:hjsHi1LT使用する言語は何かわからんけど
とりあえず絵の表示とキー入力の取得が先かな
まぁ、これはマインスィーパに限った話じゃないが
0533名前は開発中のものです。
04/08/11 09:34ID:2huBTHVu何がわからないのか書いてくれないと答えようが無いんだが……。
ホントになにもできないなら>532の言うとおりになる。
とりあえず
配列を用意して機雷を配置 (機雷が規定個数入った配列を用意して乱数で並び替え)
配列を順にチェックして、空欄の時は周囲8マス内にある機雷の数を入れる
マスが隠されているか開いているかの状態を表す配列を用意(531ができるなら上と同じ配列を使って処理しても良い)
クリックしたマスが隠されたマスなら中身を表示(機雷ならゲームオーバー)
周囲の機雷が0だったときの処理はひとまずおいといて、
ここまでやってみれ。
0534名前は開発中のものです。
04/09/11 21:03:54ID:6KaBvFrnプロシージャは窓ごとに別に持つのでしょうか
0535名前は開発中のものです。
04/09/12 17:41:51ID:1J5Jinh80536名前は開発中のものです。
04/09/12 20:34:36ID:Fy//4hU/それでかまわないという事でしょうか
遠まわしにありがとうございます
0537('Д`)
04/10/09 00:24:07ID:lQ9GPwTv最近VC++はじめた。
とりあえずC、C++勉強しつつ、パイナッポみたいなゲームを作ろうと思う。
0538('Д`)
04/10/09 00:32:13ID:lQ9GPwTvttp://www.mercury.sannet.ne.jp/yy3_yudai/freegame_guide/pinappo_guide/pinappo_index.htm
ダウンロードはvectorからドゾー(C&Cランタイムが必要)
ttp://www.vector.co.jp/games/soft/win95/game/se257409.html
0539名前は開発中のものです。
04/10/09 12:02:19ID:YEj74aTw通常
http://ccfa.info/cgi-bin/up/src/up6842.png
撃ち
http://ccfa.info/cgi-bin/up/src/up6843.png
http://ccfa.info/cgi-bin/up/src/up6844.png
歩き
0540名前は開発中のものです。
04/10/09 17:00:00ID:wN3VFUnf0542名前は開発中のものです。
04/10/09 23:11:08ID:5Wk9KMOv右向き
http://ccfa.info/cgi-bin/up/src/up6865.png
右向き(歩き
http://ccfa.info/cgi-bin/up/src/up6864.png
左向き
http://ccfa.info/cgi-bin/up/src/up6866.png
左向き(歩き
http://ccfa.info/cgi-bin/up/src/up6868.png
上向き
http://ccfa.info/cgi-bin/up/src/up6869.png
上向き(歩き
0543名前は開発中のものです。
04/10/10 02:19:16ID:LGf+Gaaw参考になるサイトってありませんか?サンプルソースとかがあったりしたらサイコーです。
アルゴリズムとかがなかなか思いつかない。
0544名前は開発中のものです。
04/10/10 02:54:41ID:XFGTmMvI昔ベーマガに載ってた記事
ttp://www.marchen.to/_old/bm15.pdf
0546('Д`)
04/10/11 10:37:25ID:wxx0x9uVスペースキーで弾も出るけど動きはなし
今はクラスの継承とマクロ定義?なるものを勉強中
それと素材くれた方ごめんなさい
http://gamdev.org/up/img/1528.zip
0547名前は開発中のものです。
04/10/11 20:26:42ID:6Zwl7lU+0548名前は開発中のものです。
04/11/04 19:38:23ID:vl8uXPTK0549DelphiでSLG製作中
04/12/18 12:47:10ID:iheJYytz今、ヘクス型のSLGを作成していてマウスの乗っているヘクスに枠を乗せたい訳です。
しかし、どうしても画面のちらつきが発生してしまい困っています。
Form1.DoubleBuffered := True;
にもしているんですがちらつきを抑えられません。
因みにヘクス枠の描画方法は、表示するイメージとは別の、枠の無いイメージを用意し、マウスがポイントするヘクスが移動する度にそこから前にマウスがあったヘクスの部分を切り取って表示するイメージに貼り付けし、新しいヘクスに枠を書き込むという方法です。
コードはこちら
if (X3 <> X4) or (Y3 <> Y4)
then
begin //外枠描画
Image1.Canvas.CopyRect(Rect(X4,Y4,X4+48,Y4+48),Image2.Canvas ,Rect(X4,Y4,X4+48,Y4+48));
Image1.Canvas.Draw(X3,Y3,MouseTip);
X4 := X3;
Y4 := Y3;
end;
X3,Y3…マウスが乗っているヘクス
X4,Y4…その前にマウスが乗っていたヘクス
Image1,2…1が表示するイメージ、2が非表示のイメージ
Mousetip…ヘクス枠のBitmap名
0550DelphiでSLG製作中
04/12/18 16:11:49ID:iheJYytzちらつきというのは、ずっと画面がちらつくというのではなく
新しい枠を描画する毎にちらつきの様なものが発生するという意味です。
その為、
procedure TMainForm.WMEraseBkgnd(var m : TWMEraseBkgnd);
begin
m.Result := LRESULT(False);
end;
をやってみましたが効果はありませんでした。
0551騎士の紋章 ◆H611rReG66
04/12/19 03:36:31ID:mkdjQU32とりあえず、目の前の問題解決から。
A Cでコンソールによるファイルの入出力。
B 自動ダンジョンもどき(ファイル出力)。
C 数当て。
0552騎士の紋章 ◆H611rReG66
04/12/19 04:19:14ID:mkdjQU32でも、ソースをUpできない・・。(Gamedevに繋がらない。
0553名前は開発中のものです。
04/12/22 11:38:48ID:zs0cHsG2俺にポポロクロイス物語シリーズの最新作を任せてほしい
Tを上回る史上最高の傑作を作る自信がある。どうですかソニーさん
今のPS2になり余計なことばかりして自家撞着してるポポロを俺が
世紀の名作に戻してあげますよ。
その点では幻想水滸伝も同じか・・・Tであれほど名作だったのに続編になるごとに
退化を続け、PS2版になると完全に別のゲームに成り果ててファンを引き裂いた幻想水滸伝
あれも俺に最新作を任せてもらえれば完全にもとの輝きを取り戻してあげますよ、どうですかコナミさん
×××@hotmail.co.jp連絡はここまでお願いします
しかしRPG不作の時代は続きますねー PS2になって5年も経つというのに
PS2でのRPGの名作はまだゼロ。佳作としてグローランサーWがあるぐらいですかね
ちょっと肉付けしてシナリオとストーリーを変えるだけで新たに遊べるのに、
そのレベルにすらいかない。退化を続けるRPGの歴史に歯止めをかけたい
0554名前は開発中のものです。
04/12/22 19:03:53ID:JZkoDinq一度、画面に表示するまえにTBitmapを作ってそこに描画する
すべて描画が完了したら実際にformに表示する
0555名前は開発中のものです。
04/12/23 12:28:15ID:Pdlo8kEQすいませんでした。
0556名前は開発中のものです。
05/01/20 01:22:23ID:cRp2WmOqゲーム作ろうとしている初心者以前の存在なんだけど
ゲーム製作に必要なソフトって何?
「RPGツクール」とかはなしで
■ このスレッドは過去ログ倉庫に格納されています