Advanced Search
Search Results
32 total results found
変数と型
練習課題 記入できるファイルをダウンロード 変数の宣言と代入 ゲームを作っている間に、ゲームに関するいろんなデータを管理しなければならない。以下のデータについて考え、最も適する「データ型」を選択してください。 データ 型 例 プレーヤーの点数 整数型(int) int points = 100; プレーヤーの名前 答え 文字列(string) 答え string playerName; 現在持っているアイテムの数 答え 整数型(int) 答え int i...
比較
練習課題 記入できるファイルをダウンロード C#を読みましょう 以下の表は、C#で書いた命令とその日本語の意味が書いてある。空枠を完成してください。 C# 日本語 a > b 変数「a」は変数「b」よりも大きい? i <= 10 答え 変数「i」は「10」以下? 答え playerHP > 0 プレーヤーの体力は残っている? stageSelect == "Tutorial" 答え 選択されたステージはチュートリアルであるか? ...
条件分岐
練習課題 記入できるファイルをダウンロード C#の処理を完成してみましょう 1. 以下のC#のプログラムを完成してください // ゲームでダメージを受け、残機を確認し、ゲームオーバーかどかう判定する int hp = 50; // 体力 int lives = 1; // 残機 int damage = 100; // ダメージ // ダメージを受け、体力を減らす ________________________________________ // もし、体力が0以下だったら... __________...
繰り返し
決まられた回数を繰り返す命令「for」 記入できるファイルをダウンロード 練習課題 C#を読みましょう 以下の表は、C#で書いた命令とその日本語の意味が書いてある。空枠を完成してください。 C# 日本語 for(int i = 0; i < 10; i++) 「i」という変数は 0から9までの値を変えながら、10回繰り返す for(int i = 1; i <= 10; i++) 答え 「i」という変数は 1から10までの値を変えながら、10回繰り返す for(int...
配列
練習課題 記入できるファイルをダウンロード C#を読みましょう 以下の表は、C#で書いた命令とその日本語の意味が書いてある。空枠を完成してください。 C# 日本語 int [] numbers = new int[10] 10個の整数が入る「numbers」という配列を作成 int [] numbers; 答え 整数型の配列を宣言のみ(初期化なし) string [] names = new string[5]; 答え 5個の文字列が入る「names」という配列を作...
メソッド
練習問題 C#を読みましょう int Sum(int a, int b) { return a + b; } 説明: 2つの整数(aとb)を足して、その結果を整数として返す int Max(int a, int b) { if (a > b) return a; else return b; } 答え 2つの整数(aとb)の最も大きい数値(最大値)を返す bool CheckHasItem(string[] itemList, string i...
総合練習
変数、条件分岐、配列(またはリスト)、列挙、メソッドとクラスを使い、以下のスクリプト作りましょう ポーカー手札の判定 参考:ポーカー・ハンドの一覧 目標 手札にある5枚のカードを確認し、評価し、Debug.Logで判定を表示。 例:A♥ A♦ 10♣ 7♦ 3♠ - ワンペア を表示するのは目標である 解析 かなり大きな課題なので、わかりやすい「ミニ課題」に分割しましょう! スート スートは「ハート(Heart)、ダイヤ(Diamond)、クラブ(Club)、スペード(Spade)」のことである。固定である値なので...
クラス
C#の純粋クラス vs MonoBehaviour お気づきかもしれないが、通常のC#クラスとUnityの「MonoBehaviour」クラスにはいくつかの違いがある。基本的に、どちらのクラスもプロパティ(クラス変数)とメソッドを持てる。しかし、大きな違いもある。 通常のC#クラスはUnityエディターでは使用できない。GameObjectにアタッチできるのはMonoBehaviourのみである。 通常のC#クラスはnewキーワードを使ってインスタンス化するが、MonoBehaviourは直接インスタンス化できな...
プロジェクト設定
プロジェクト作成 まず、新規プロジェクトを作成しましょう。2Dゲームであるため「Universal 2D」を選んでください。プロジェクト名は「breakout」にしましょう。 素材を追加 ゲームに必要な素材を「Project」に追加しましょう。今回必要なのは 画像、絵 プレーヤーの「パドル」 ボール 各種のブロック(レンガ) 背景 UIに使う「ゲームオーバー」とボタン サウンド BGM 効果音 ボールとパドルの衝突 ボールと壁の衝突 ボールが失うときの音 「Sprites」と「Sound」フ...
課題
ブロック崩しゲームに新たな機能を追加し、よりも面白くする! 例えば… ハイスコア:ゲームを再開のあとに、最大のスコアが残る 1UP:1UPのアイテムを追加し、ボールで当たると、残機1つが増える マルチボール:特定のブロックを当たると、ボールが重複する マルチプレイ:2つのパドルを利用し、別々の入力で制御し、スコアも別々に管理 最後にボールを跳ね返したプレーヤーは点数をもらう ステージ2:ステージ1をクリアすれば、別のステージを始める 硬いブロック:別の色のブロックがあり、1回当たると色が変わり、もう1回当た...
パドル(Player)の移動
パドルが左右に移動できるようにしましょう。このスクリプトを使って: 左キーと右キーがInspectorで設定できるようにしたい。 速度もInspectorで調整できるようにしたい。 右か左キーを押したら、設定した速度をリジッドボディに与える(Rigidbody2D.linearVelocity) Scripts フォルダーの中に、新しいスクリプト「PlayerMove」を作成し、上記の機能を実装してみましょう。 スクリプトの変数 using UnityEngine; // パドルを移動するスクリプト publ...
ボールプレハブ
ボールがシーンに直接に追加するものではなく、実行中に生成するものであるため、プレハブとして作成しなければならない。とりあえず、現在のシーンを活用し、プレハブができたら、削除すれば良いでしょう。 プレハブ構築 シーンにボールのスクリプトをドラッグドロップで追加し、丸い「CircleCollider2D」を付けてください。ボールも物理的に動かす予定で、リジッドボディも追加してください。 ※ボールが見えなければ、「Order In Layer」または Z軸の位置を適切に変えてください 今回も重力を使わないので、「Gra...
ボールをどんどん生成
作ったプレハブを利用し、実行中にたくさんのボールを生成しましょう。 ボール生成する:BallShooter 今度のスクリプトは: 作成したプレハブを Inspector で指定できるようにする。 マウスの左ボタンを押したら、プレハブから実際に使うオブジェクトを生成。 最大数を制限する。 スクリプトの変数 Scripts フォルダーの中に新しい「BallShooter」を追加し、Inspector の変数を準備しましょう: using UnityEngine; // ボールを生成するスクリプト public c...
ブロックのプレハブ
つぎ、ブロックのプレハブを作成し、ボールが当たったら消える処理を作りましょう。 画像の前準備 ブロックの画像(スプライト)は、他のスプライトと比べて、1つではなく、同じ画像に多数が一緒にまとまっている。必要なメモリーの使用量を最適化するためにゲーム開発の中でよくある作戦である。 ただし、まとまったままで使えないので、先に分割しないといけない。このため、Unityは「Sprite Editor」(スプライトエディタ)がある。 まず、ブロック画像を選択し、Inspectorで「Open Sprite Editor」を選...
自動的にブロックを配置しよう~
お試しで手動でいくつかのブロックを配置したが、なかなか面倒な作業なので、自動的に配置しましょう。 スクリプト まず、手動で配置したブロックのすべてを消しましょう。その後、新しいスクリプト「BlockManager」を作成しましょう。このスクリプトは: 実行中にプレハブからブロックを生成する Inspectorで「行数」と「列数」を設定できるようにする BlockManager の位置から始め、連続にブロックを配置して行く まずは、変数から始めましょう: スクリプトの変数 using UnityEngine; ...
ボール跳ね返す角度をコントロールする
目的 今の作りだと、ボールがパドルを当たると、入射角を反転し、外向角になるだけで、プレーヤーがボール行かせたい方位を変えることができない。ある程度、ボールを行き先をコントロールできるように、パドルの「当たる部分」によって、跳ね返す向きを調整する処理を入れましょう。 これで、ボールがパドルの左側に当たると、ボールが左に行く。真ん中を当たると、真上に返す。右側を当たると、右に行くようにする。 解決のアイディア ボールとパドルの相対位置がポイント。ボールが衝突したら、パドルの位置とボールの位置を使い、その向きに返せば良...
ゲーム終了処理
次、「ゲームクリア」と「ゲームオーバー」の処理を追加しましょう。 ゲームオーバー このゲームでは、残機3つがあり、ボールが失ったら残機1つが減る。残機がゼロになった場合は「ゲームオーバー」にする。すでに「ボールが失ったら…」(BallDestroy)という処理があるので、これを活用できる。 ゲーム監督クラス「GameManager」を作成し、残機の数を追跡しましょう。BallDestroyのとき、GameManagerを呼び出し、残機を減らす処理を実装してみましょう: // ゲーム監督 public class G...
UIを作成
ゲームが動くが、画面になにも情報がなく、Canvas を使い、ゲームの状況を可視化しましょう。 Canvasの準備 まず、Canvas を作成し、残機とスコアの表示場所を作りましょう。 スコア スコアは画面の右上に表示しよう。テキストをを表示するので「TextMeshPro」で良いでしょう。必ず右上に出したいので、アンカーが画面の右上を追跡するようにしてください。位置を文字のサイズを調整し、とりあえず、「SCORE: 00000」を表示するようにしてください: 残機 残機は、スプライトの表示・非...