【初心者】課題をクリアしていくスレ【講習会】
■ このスレッドは過去ログ倉庫に格納されています
ゲームに必要な要素を先生が出してくれます
その課題をクリアしていく講習会です >>398
うわ、悪い。ちゃんとチェックせんといかんね。
397氏の意見も踏まえてちょっと考えてみゆ。
一晩くれんか? 一晩と言ったが、少し考えてこんなのはどうか?
課題11:ドットイータ基礎
level1:
画面を○で埋め尽くす。
level2:
画面中央にオブジェクトを表示し、自由移動できるようにする。
埋め尽くした○との重ねあわせに注意。
level3:
キーを離しても、オブジェクトが○中央できっちり止まるようにする。
90度曲がる場合も、○中央まで進んでから曲がること。
level4;
画面周囲、および画面内に迷路上に■を配置し、■の中には進入不可とする
level5:
オブジェクトが通過した○を消去する。
これでどうやね? ゲームそのものを知らないのでテトリスでも作ろうか…。 >>403
そうかー、ディグダグの話が出たので、
これをディグダグ風穴掘りに発展させよと思ってたのだわ。
level6:
通過した際、単純に消すのではなく、通過していない方向には
壁を残した形で穴あきのパターンを置く
穴あきパターンとしては16種類存在するはづ
level7:
手付かずの領域に進入する際、
進入に応じて進行方向に侵食していくパターンに書き換える
侵食中にUターンすると虫食い状態のパターンが残るはづ
level8:
■の真下が手つかづ、もしくは■でない場合、■を落下させる。
落下した結果、手つかづ、もしくは■の領域に到達したら、
落下中の■を消去
といった感じで。これでもあかんか? あれもこれも駄目って言うだけなのもナニなので。
ファミコンから離れて、初心者用でまだ出てないものを色々考えてみる。
カードゲーム系。神経衰弱など、手持ち札が無く盤面だけでできる簡単なもの。
思考パズル。いわゆる倉庫番や16パズル、ライツアウトなんか。
シューティング系。弾を撃つの発展で誘導弾を撃ってみる。
ワンキーアクション。押すと上昇、離すと下降の洞窟進行ゲーなど。 うぉ、行き違い発生(汗
試みはなかなかおもろそう。
初心者がレベルアップするにはいい課題だけど
後半かなりレベル上がりすぎのような気もする。 カードゲームか・・・
後々知っておいて役に立ちそう、ということでは、
カードのハンドリングなんかどうだろう?
カードのフリップ、n個の地点への配布
手札のエクスパンド
(一定領域内に、手札枚数が多ければ間隔を狭く、少なければ広く並べる)
などなど。
カードのフリップには拡縮がいるけど、GDIでできることだしなぁと、あかん? >400
初心者向けやからそこまでせんでもええんとちゃう?
4×4の数字だけの神経衰弱として
LV1 カードを描く(テキストでもOK)
LV2 シャッフルして並べる。
LV3 裏返してめくって、当たったら取り除く
最初はこのへんからでどない? >406
確かに最初はそのへんで十分かも。
後々lv2の「並べる」、とかlv3の「めくる」とか
そのへんを見栄え良くするように拡張していくとかね。
LV4 「めくる」をなめらかにする
LV5 「並べる」を一箇所にある山札から各位置にスムーズに動かす
とかとか OKOK、じゃぁ次の課題は神経衰弱ってことで。
なんか勝手に二人でどんどん進めていってるようだけど
良かったんだろうか? と思いつつも寝ます。 …皆様お久しぶりです。世間が夏休みになると私は忙しくなる…
不公平な気がします。
んな愚痴は置いといて…
ん〜スレの方向性か…
なんか、カードゲームとアクションゲームの二つの方向が人気が高そうなので、
…ニ兎を追ってみましょうかw
カードゲーム課題1
ペア判定しか無いポーカーを作りましょう。
ジョーカー無しのワンセット52枚をランダムに四人に五枚ずつ配り、ペアの判定のみで勝ち負けを判定し順位を出して貰います。
アクションゲーム課題1
…赤い四角再登場ですw
640*480のウィンドウ内に青い四角を使って道を作成して貰います。
各四角のサイズは64*64で青い四角の位置は問いません。
赤い四角を移動させ、スペースでジャンプ下に何もなければ落下です。
重力加速度は1.5ピクセル/フレームが自然っぽいです。
(凡に、アクションゲームの落下判定は、キャラを常に落下状態にして足場の上のみ判定をOFFにすると、楽に作れます。) >>396の課題をやりますた
http://gamdev.org/up/img/889.zip
計算はこんな感じでやってます
add+=g;
y+=add;
if (y>20)
{
add=-add*0.95f;
if (abs(add)<0.01)
{
g=0;
add=0;
}
}
アクションゲーム課題1できました。
むやみに画面外に出ると、(特に左側)「インデックスが有効範囲にありません」と怒られますが仕様です
http://gamdev.org/up/img/898.lzh 突っ込んでいいとこかわかんないけど
417の
add+=g;
y+=add;
if (y>20)
{
add=-add*0.95f;
if (abs(add)<0.01) // if (abs(add) > 0.01) じゃないかな・・・・減衰無しだし
{
g=0;
add=0;
}
}
はじめましてJavaで参加してみたいのですが
GUIは何使えばいいでしょうか?
SWINGかAWTですか? >>421
>>396
>level5:
>床にあたったら減衰するようにして、
^^^^^^^^^^^^^^^^^^^^
>次第にバウンドを小さくするようにしましょう。
仮に減衰なしにするなら変更箇所は
add=-add*0.95f;
↓
add=-add*1.00f; ageられると書き込みたくなる部外者でつ
>>417
g=0;って、重力加速度を変更するより接地フラグ使った方がいいとおもふよ。
あと、例えばy=20ピッタリになったりすると
次フレーム以降(abs(add)<0.01)になるまで、地面にめり込んでブルブル言うかも。
コレが出ると、addがいくら大きくても地面にピタっと張り付いちゃうから
if(y>20)の時はy=20って修正した方が良いかもね。少し計算ずれるけど。
if(y>20)が成り立つ時addは+だって保障されてるから
if(abs(add)<0.01)のトコはif(add>-0.01)でもいいね。
あとマジックナンバーは後々苦労のタネになるから、大きいプログラム組むときは注意ね
>>421
そうやっちゃうとaddが十分デカイときに止まっちゃうよ おう、大切なことを忘れていた。
見た感じ
add=-add*0.95f;
はあまりよろしくない。>>426の2-3行目のような現象の引き金になるから。
add=-fabs(add)*0.95f;
とかにしたらどうかな。
そうそう、てっきりJAVAかなんかと思ってたらCなのね。
absはint返すから abs(add)<0.01 イクナイよ。
fabsfとかをご利用下さい。 課題5キー入力
http://gamdev.org/up/img/969.zip
開発環境
Delphi6
TrueVision3D
スクリーンショット
http://gamdev.org/up/img/968.jpg
コンパイル・実行にはSDKが必要
http://www.truevision3d.com/downloads.php
倒したキーの方向の加速度を1としてそれを徐々に減らすことで慣性ぽくなってます
If Inp.IsKeyPressed(TV_KEY_UP) = True Then
sngWalk := 1;
if sngWalk > 0 then begin
sngWalk := sngWalk - 0.05;
If sngWalk < 0 Then sngWalk := 0;
end;
sngPositionY:=sngPositionY-sngWalk * TV.TimeElapsed; ここは良スレですね。
>>419
おせっかいかもしれないけど、timeGetTime使うなら、
timeBeginPeriod,timeEndPeriodもつかわないと
効果が出ない希ガス。
これでGetTickCountよりはかなりの精度が出るはず。 >431
どうもご指摘ありがとうございます。
そのAPIについてヘルプで調べてみることにします。 >>432
どういたしまして。
ソースを一通り見てみました。
VBでゲームを作る場合は処理速度が結構効いてきます。
ただ単にVBが遅いのではなく、
プログラムしだいでVCと同等にもなります。
ちょくちょく顔出して良スレに貢献したく思います。 うわっ・・・書き込むスレ間違えてた。
ごめん。ほんとごめんorz まじで初歩的な質問なんですけど、exeファイルをzipに変えるにはどうすればいいのですか? >441
圧縮ソフトというのは知っていますか?
たとえば、フリーソフトでlhacaとかシェアソフトでwinrarなどがそうです。
lhacaの場合は、インストールしたら、ショートカットにドラッグ&ドロップ
するだけで、簡単にzipに変換できるはずです。 今更掘り返して申し訳ないんですけど
>>130に書いてある
>問題(if文を使わずに、A=Bなら0。A≠Bなら1を表示するプログラムを作れ)
って言うのはwhileやswitchを使うと捕らえていいんですかね >>444
本人じゃないけど、漏れは違うと思うよ。 >>444
・printf("%d\n", A != B); /* 単純に演算子として使う */
・printf("%d\n", A == B ? 0 : 1); /* 三項演算子 */
・printf("%d\n", !(!(A - B))); /* A ^ Bでも可 */
・printf("%d\n", A - B || 0); /* 上とは0, 1のみに絞る方法が違うだけ、&& 1でも良い */
とりあえず思いついた範囲でこれだけ >>447
解答ありがとうございます
やり方はいろいろあるんですね
もっと勉強しなくては・・・ デルファイと言いたい所ですが、デルフィにしときます / ヽ =二=二 ̄  ̄ ̄ ̄
/ ⌒ ̄\ __,.. i ,. ,._ ,.-,.、 -=二_ニニ==-
i -,-===ゞ' く__,. _ i // j / / ノ -=ニ_ ̄
i ..::::ノ ヾ ̄ヾ- i __ノ `-/ノ `ツ __ニ_二=-
| ....::::: . }:. | // // _,_{ ̄/ ̄ ̄ ̄ ̄/^/;;'´ ̄ ̄
| ,イ ,;_ .,ノ:::... i ヾ、_/ /_i______i_ヾ:;'
| / , ´ ー ´`i ノ / -=j" ,_/
! ノ /-====ー、 i ノ ,.--、 / / / <貴様、言うに事欠いて豚だと
ヽ { ⌒ " ,、 ノ }ヽ \ ノ _} / \
/ ヽ =二=二 ̄  ̄ ̄ ̄
/ ⌒ ̄\ __,.. i ,. ,._ ,.-,.、 -=二_ニニ==-
i -,-===ゞ' く__,. _ i // j / / ノ -=ニ_ ̄
i ..::::ノ ヾ ̄ヾ- i __ノ `-/ノ `ツ __ニ_二=-
| ....::::: . }:. | // // _,_{ ̄/ ̄ ̄ ̄ ̄/^/;;'´ ̄ ̄
| ,イ ,;_ .,ノ:::... i ヾ、_/ /_i______i_ヾ:;'
| / , ´ ー ´`i ノ / -=j" ,_/
! ノ /-====ー、 i ノ ,.--、 / / / <ちんちろりん
ヽ { ⌒ " ,、 ノ }ヽ \ ノ _} / \
HSPで完全オリのSLGを作るスレ
http://pc5.2ch.net/test/read.cgi/gamedev/1047478458
上記のスレから誘導されてきたのですが、HSPでHexマップのSLGを
作っている(作ったことある)人はこのスレを見ているのでしょうか? なんとなくシューティングゲームを作ってみたくなって自分に課した課題
1 480*480ピクセルのクライアント領域で同じ大きさの背景をスクロールさせる
2 32*32ピクセルの自機を表示し、カーソルキーで移動させる
3 スペースキーで4*4ピクセルの弾を発射(連射可)できるようにする。
4 64*64ピクセルの敵機を出し、適当に動かす
5 敵機が3方向に弾を撃ってくるようにする
6 敵機が自機に向けて適当にw近寄ってくる誘導弾を撃ってくるようにする
7 当たり判定をつける
8 自機・敵機とも耐久力を持たせ、弾が当たると耐久力が減るようにする
9 画面上のほうに自機・敵機の耐久力をグラフ表示する
とりあえず、今日はここまでできた。
あとは
10 敵機の動きをプログラムするスクリプトシステムをつける
といったあたりか。ここまでできれば、一通りシューティングゲーム
の要素がそろうんで、「シューティングゲーム開発に向けた基礎実験」
は終了。もっとも、実際にシューティングゲームを作るのがいつになる
かは…。
敵の動きをそのまんまコードで書くのは無しなの?
自由度上がって楽しいと思うが・・・ プログラマとゲームデザインするやつがいっしょならそれでいいんでないの?
あと、スクリプト形式にするメリットは大きいと思うが、初めて作るんなら
ハードコーディングでも全然桶だと思う。 >>464,465
いやそれだとシステムで敵の扱いを統一できないから、かえって不便
(敵の種類を増やすごとに移動処理をソースに追加していくよりは
スクリプトのバイナリデータで記述していく形のほうがずっと楽)だし、
今回はある程度汎用的なシステムを作ってみたい、というのがあるから
スクリプトにしてみようかと。
スクリプトといっても、敵の座標などをデータに沿って操作するだけだ
から、ハードコーティングと難易度的には大差ないと思う。以前作った
RPG用スクリプトシステムよりは楽に…できると良いんだがw
成る程…
しかし、敵の動きを直接読み出すようなスクリプトの場合
逆に、後ろから追尾弾を撃つなど、問題が多い上に一度覚えられると無力と化してしまう気が…
判定文が併用できるようなスクリプトがベストですかねw
最近は弾幕系シューティングが人気ですし、弾幕にもこだわってみたら如何でしょうか。 if Enemy01.Y > Player.Y : Shoot(ミサイル)
みたいに記述が出来れば、行動ルーチンも自由度上がるかな・・・というかコレくらいできないとダメか 名前欄のケツにでも使用言語を入れてはどうだろうか。
ソースだけ書かれても混乱しない? >>467,468
スクリプトシステムは、簡単な仮想マシン的なものだね。
ごく基本的なコード(レジスタ操作、メモリの読み書き、ジャンプなど)
を実行するCPU・メモリと自機の位置や時間などを保持するレジスタを
作っておいて、簡単なスクリプト(というかバイナリコード)で敵の行動
などを記述する。
次の課題まだ?
インベーダーいらないから物理ネタくれ 初めて仮想マシンと制御言語を組むのなら、Forth系言語の実装もお勧め。
字句解析だけで、構文解析がいらないのと、
仮想マシンがスタックマシンなので比較的簡単。 課題:
HEXマップで、間接攻撃は障害物を超えて攻撃できない。
を全10回ぐらいで。 さまよってたらこのスレを見つけてふとまたプログラムやりたいなとか思ってやってみました。
課題1〜7入り
ttp://gamdev.org/up/img/1565.zip
ソース汚いと思いますがぜひ添削やらお願いします。
って漏れこんなことしてる場合じゃない(;´д`) もしかしてここはxorとnorの区別がつかない人の集会場ですか? xor ビット反転
nor ???
ior ではないのけ? nor =>Negative OR operation
>>487
xor をビット反転と考えるのはどうかと。 数当てをC#でやってみました
Randomってrandomizeしなくていいので便利でつ
http://www.uploda.org/file/uporg26822.zip >>490
入力された値が数字か、範囲外かぐらいはチェック汁 何かいつの間にかgamdev.orgがアクセスできなくなってるな
一体何があったんだ‥ >>492
今日いったらアクセスできたよ。個人でやってるみたいだし正月休みじゃないかな。 VS.NETのテンプレートにdirectXアプリケーションのアイコンが表示されません。
ナゼでしょう?
directXは読み込まれてはいるようなんですが・・・ >>496
DirectX 9.0 SDK Update (Summer 2004) DXreadme 日本語版
http://www.microsoft.com/japan/msdn/directx/japan/dxreadme_U04_jp.asp
AppWizard は廃止されました。AppWizaed は複雑で維持に多大な労力を必要としました。
その代替として、サンプル ブラウザの機能を拡張して、新しいプロジェクト用の開始点として
サンプルを選択できるようにしました。単に使いたいサンプルをプロジェクトとして使えるように
するには、「Install Project」リンクをクリックしてください。これにより、ダイアログが開き、
サンプルの名前を変更しソースファイルを配置するパスを選択できます。このプロセスは、
ファイルの名前を変更すると共に、メディアと共通フレームワークをコピーします。そのとき、
真にプロジェクトの名前を変更するため、ファイル内の探索と置き換えも行います。 あ〜なるほど、ありがとです。
たしかにサンプルの使用が変わってるな〜とは思いました。
・・・・直接サンプルから持ってくるようになっていたとは・・・・いつのまに。 ■ このスレッドは過去ログ倉庫に格納されています