Advanced Search
Search Results
186 total results found
第8回 文字を画像へ置き換えよう
第8回 文字を画像へ置き換えよう 第1部では、文字だけでコスコマンを最後まで遊べるところまで作りました。 ここからの第2部では、ゲームのルールはそのまま使い、見た目・動き・音・画面遷移を追加してゲームらしく仕上げていきます。 第1部で完成したもの Map 移動 壁・ゴール判定 荷物押し クリア判定 複数ステージ リトライ ↓ ゲームのルールはそのまま使う ↓ 画像・動き・音・画面遷移を追加 表示方法が変わっても、ゲームのルールまで全部作り直す必要はありません。 第8回では、まず@...
第9回 コスコマンを滑らかに動かそう
第9回 コスコマンを滑らかに動かそう 第8回では、文字で描いていたステージを画像へ置き換えました。 ただし、Map上のコスコマンは1マスずつ移動するため、そのまま描くと画面でも一瞬で次のマスへ移動します。 今回は、ゲームのルールはそのままにして、描画位置だけを少しずつ動かします。 今回の流れ 移動する前の位置を覚える ↓ 今まで通りMoveObject()で1マス移動する ↓ 移動した方向と開始時刻を覚える ↓ 経過時間から0.0~1.0の進み具合を求める ...
第10回 荷物も滑らかに動かそう
第10回 荷物も滑らかに動かそう 第9回で、コスコマンは200msかけて1マス動くようになりました。 荷物を押したときは、コスコマンだけでなく荷物も同じ方向へ1マス動きます。 今回は、第9回で作った移動アニメーションをそのまま荷物にも使います。 今回の流れ MoveObject()を実行 ↓ 荷物を押した移動だった? ↓ YES 荷物はコスコマンの1マス先から動く ↓ 第9回のGetMoveDrawPos()で描く 新しい補間計算は作りません。 1.荷物を押したか...
第11回 効果音とBGMをつけよう
第11回 効果音とBGMをつけよう 第10回までで、ゲームとしての動きは完成しました。 今回は、 歩く 荷物を押す ゴールへ押し込む クリアする といった出来事に合わせて効果音を鳴らし、ゲーム中はBGMを流します。 今回の流れ サウンドファイルを読み込む ↓ MoveResultに合わせて効果音を選ぶ ↓ 移動時に効果音を鳴らす ↓ クリア時にクリア音を鳴らす ↓ ゲーム中はBGMをループ再生する 1.移動結果を音にも使おう 第10回では、Mo...
第12回 TITLE・PLAY・CLEARで仕上げよう
第12回 TITLE・PLAY・CLEARで仕上げよう ここまでで、 ステージのルール 画像表示 滑らかな移動 効果音 BGM まで完成しました。 最後は、ゲーム全体を TITLE PLAY CLEAR の3つの状態に分けて仕上げます。 今回の流れ TITLE ↓ ENTER PLAY ↓ クリア CLEAR ↓ ENTER 次のPLAY または TITLE 1.今のゲーム状態を表そう 今どの画面なのかを、GameStateという列挙型で表します。 enum GameState { ...
3つの基本的なソートアルゴリズム
3つのソートを手でやってみよう 今日やること これから、同じ6個の数字を使って、 バブルソート 選択ソート 挿入ソート の3種類の並べ替えを、プログラムを書かずに自分の手で実行します。 最初の数字は、すべて同じです。 6 2 5 1 4 3 目標は、小さい順に 1 2 3 4 5 6 と並べることです。 この課題では、まだプログラムの変数や繰り返し処理は使いません。 まずは、 「数字を並べ替えるとき、実際にどんな作業を繰り返しているのか」 を自分の手で確かめてみましょう。 1.バブ...
3つの基本ソートをIPA式疑似言語に
3大ソートを日本語からIPA疑似言語へ このワークでやること これまでに、 バブルソート 選択ソート 挿入ソート を、自分の手で実際に並べ替えました。 ここからは、手でやった処理を 日本語で確認する ↓ 必要な情報に名前を付ける ↓ IPAの疑似言語へ直す という順番で表現していきます。 この授業では、配列の要素番号は 0から始まるものとします。 data[0] data[1] data[2] ... 2つの値を交換するときは、 swap(data[a], data[b]) のように表します。 1.バブ...
最後のまとめレポート(PPTスライド作成)
ゲーム研究 最終まとめPPT課題 課題の目的 これまでの授業では、ゲームを分析するために、次のような観点を学んできました。 ルール 報酬設計 リスク・失敗条件 操作・入力 出力 視覚フィードバック 聴覚フィードバック 触覚フィードバック UI 難易度とバランス AI・行動制御 当たり判定や更新処理などのゲーム処理 プログラマとして力を入れたい処理 今回の課題では、これまでのワークで調べたゲームを使っても、新しくゲームを調べてもかまいません。 授業で学んだ分析項目を使って、自分が作ってみたいジャンルの面白さをPo...
当たり判定やろう
球とAABBの当たり判定 ゲームの当たり判定では、複雑なモデルをそのまま比較するのではなく、扱いやすい形で近似して判定することがあります。 代表的な形が 球(Sphere) と AABB です。 1.球と球の当たり判定 球は、中心と半径で表せます。 2つの球がちょうど接するとき、中心間距離 (d) は半径の合計と等しくなります。 $$ d=r_A+r_B $$ したがって、 $$ d\leq r_A+r_B $$ なら、2つの球は接触または重なっています。 当たり判定では平方根を求めず、 $$ d^2\leq(...
第1部 変数と配列の基本
このワークの目標 ゲームでは、体力・得点・座標・残り時間など、たくさんの値を保存しながら処理を進めます。 このワークでは、値を保存するための変数と、複数の値をまとめて扱う配列について確認します。 変数名・値・アドレスを区別できる C言語の代表的な型を使い分けられる 整数・実数・文字・文字列の違いを説明できる 初期化と代入の違いを説明できる 代入による値の変化を追える 配列の要素を添字で指定できる 配列の要素への代入を追える 要素数と最後の添字を区別できる 1.変数とは何だろう 1-1.変数は、値を入れておく箱...
第2部 3つの基本構造
このワークの目標 どれほど複雑に見えるアルゴリズムでも、基本となる構造は次の3つです。 順次 選択 反復 このワークでは、プログラムの細かな書き方ではなく、処理の組み立て方に注目します。 順次・選択・反復の違いを説明できる 3つの基本構造を組み合わせてアルゴリズムを作れる 複数の処理を一つの大きな処理ブロックとして見られる 大きな処理ブロックの中を、さらに細かな処理へ分けられる アルゴリズム全体を、大きな処理ブロックの順次として捉えられる 1.アルゴリズムを作る3つの基本構造 アルゴリズムは、処理を実行す...
第3部 アルゴリズムの記述方法
このワークの目標 アルゴリズムは、同じ処理でも複数の方法で表せます。 このワークでは、次の3つの記述方法を練習します。 日本語で書く フローチャートで書く IPAの基本情報技術者試験で使われる疑似言語で書く さらに、書かれたアルゴリズムを上から順にたどり、変数や配列の値がどのように変化するかをトレースします。 1.同じアルゴリズムを3通りで表す 記述方法が違っても、表している処理の内容は同じです。 記述方法 特徴 日本語 特別な記号を知らなくても読める フローチャート 処理の分岐や繰り返しを...
第4部 三大馬鹿ソート
このワークの目標 このワークでは、次の3つの基本的なソートを扱います。 バブルソート 選択ソート 挿入ソート 授業では、仕組みが単純で、無駄な比較や交換も多いこの3つを「三大馬鹿ソート」と呼びます。 最初から疑似言語を暗記するのではなく、次の順番で進めます。 自分の手で並べ替える ↓ 1回の比較や交換を言葉にする ↓ 必要な位置や回数に名前を付ける ↓ IPA疑似言語で書く このワークでは、配列の要素番号は 0から始まるものとします。 data[0] data...
第5部 ゲームの基本的な構成
このワークの目標 ゲームは、入力・更新・描画を何度も繰り返して動いています。 このワークでは、次の内容を確認します。 ゲームループの処理順を説明できる Initialize()、Update()、Draw()、Release()の役割を区別できる タイトル・プレイ・クリア・ゲームオーバーの状態遷移を追跡できる 現在の状態に応じて、Update()とDraw()の処理を切り替えられる フレーム・FPS・デルタタイムの関係を説明し、移動量を計算できる 1.ゲームループ 1-1.ゲーム全体の基本形 ゲームは、最初か...
第6部 模擬試験
アルゴリズム 模擬試験 氏名:__________________ 得点:______/100点 注意 第1部から第5部までのワークを見ずに解こう 配列の添字は0から始まるものとする 疑似言語は、授業で扱ったIPAの基本情報技術者試験の表記に合わせる 計算問題では、答えだけでなく途中の式も書く すべて解き終わるまで、最後の模範解答を開かない 大問1 変数と配列の基本【25点】 問1 値の種類とC言語の型【8点】 次の値について、値の種類を「整数・実数・文字・文字列」から選び、C言語で使用する型を書こう。 ...
01.座標・ベクトル
これまでの授業で扱った数学を、ゲームで何に使うのかと結び付けながら振り返ろう! このワークでは、長い公式を丸暗記することよりも、何を求めたいのか → どの数学を使うのか → 求めた値をゲームのどこで使うのかを確認します。 1.座標とアフィン変換 ゲームのモデルは頂点の座標からできています。 そのため、「動かす」「回す」「大きくする」といった処理は、どれも座標を別の座標へ変換する処理として考えることができます。 このような座標の変換をまとめて扱うものの1つが、アフィン変換です。 アフィン変換には、代表的なものとして...
02.行列・角度・視界判定
4.行列で変換をまとめよう 行列を使うと、平行移動・回転・拡大縮小などの変換を、同じ仕組みで扱ったり、複数の変換をまとめたりできます。2Dの回転では、授業で扱った $\cos\theta$ と $\sin\theta$ が回転行列の中に入ります。 $$ R=\begin{bmatrix} \cos\theta & -\sin\theta\ \sin\theta & \cos\theta \end{bmatrix} $$ Q16.単位行列の役割は? 単位行列を座標やベクトルに掛けたときの説明として正しいものを選んで...
03.球とAABBの当たり判定
8.球とAABBの当たり判定 このページでは、授業で扱った3種類の当たり判定を、何を比べればよいかという視点で整理します。 球 vs 球 AABB vs AABB 球 vs AABB Q34.球は何で表す? 球の当たり判定を表すために必要な情報を選んでください。 A.中心座標と半径 B.最小座標と最大座標だけ C.頂点を必ず8個 D.回転角だけ 答え A.中心座標と半径 球は中心 $C$ と半径 $r$ で表せます。 Q35.球同士が当たる条件は? 球Aの中心を $C_A$、半径を $r_A$、球Bの中...
04.補間・スプライン
11.LERPで途中を作ろう LERP(線形補間)は、開始値 $A$ と終了値 $B$ の間を、補間係数 $t$ を使って求める方法です。 Q48.補間係数 $t$ の意味を確認しよう $P=(1-t)A+tB$ について対応させてください。 $t$ $P$ $t=0$ ______ $t=0.5$ ______ $t=1$ ______ 選択肢:A・AとBのちょうど中間・B 答え $t=0$ → A $t=0.5$ → AとBのちょうど中間 $t=1$ → B Q49.LER...
01.キャラクターAI・FSM
これまでの授業で扱ったゲームAIの考え方・状態管理・探索を、ゲーム内での使い方と結び付けながら振り返ろう! このワークでは、長いプログラムを暗記することよりも、何を判断したいのか → どの仕組みを使うのか → その結果どんな行動につながるのかを確認します。 1.キャラクターAIの基本 ゲームのキャラクターAIは、周囲の情報を受け取り、その情報をもとに状態や行動を決めます。授業では、センサ → 判断 → 行動という流れで考えました。 Q01.AIの処理の流れを並べよう 次の処理を、キャラクターAIが行う基本的な順番...