いものやま。

雑多な知識の寄せ集め

ゲーム開発

変種オセロのスタート画面を作ってみた。(その6)

昨日はスタート画面からゲーム画面への遷移を作った。 今日は逆に、ゲーム画面からスタート画面への遷移を作成していく。 スタート画面への遷移 昨日と同様に、GameSceneに画面遷移を実装する。 //============================== // YWF //----------------…

変種オセロのスタート画面を作ってみた。(その5)

昨日は設定関係を完成させた。 今日はスタート画面からゲーム画面へ遷移できるようにしていく。 ゲーム画面への遷移 ゲーム画面へ遷移できるようにするために、スタート画面をPlayButtonNodeObserverプロトコルに準拠するようにする。 //===================…

変種オセロのスタート画面を作ってみた。(その4)

昨日は設定の描画を作った。 今日は設定のモデルオブジェクトの実装と、設定の描画のリファクタリングを行う。 設定の保存について iOSでは、データを保存するための手段がいくつか提供されている。 その中でも特に、設定を保存するためのクラスとして用意さ…

変種オセロのスタート画面を作ってみた。(その3)

昨日はボタン類の実装をした。 今日は設定の描画を実装していく。 設定の描画 ということで、さっそくコードを。 //============================== // YWF //------------------------------ // ConfigNode.swift //============================== import …

変種オセロのスタート画面を作ってみた。(その2)

昨日はスタート画面のレイアウトだけ作成した。 今日はボタン類を作っていく。 プレイボタン まずはゲームを開始するためのプレイボタンから。 //============================== // YWF //------------------------------ // PlayButtonNode.swift //======…

変種オセロのスタート画面を作ってみた。(その1)

強化学習の方はちょっとお休み。 今日からは、変種オセロ「良い子悪い子普通の子」のスタート画面を作っていく。 変種オセロ「良い子悪い子普通の子」については、以下を参照。 デザイン まずは、スタート画面をどんなふうにするのかをデザイン。 必要なもの…

変種オセロのUIを作ってみた。(まとめ)

これまでの各記事は以下から。 イントロ、画面設計 変種オセロのUIを作ってみた。(その1) - いものやま。 素材作成 変種オセロのUIを作ってみた。(その2) - いものやま。 変種オセロのUIを作ってみた。(その3) - いものやま。 変種オセロのUIを作って…

変種オセロのUIを作ってみた。(その20)

ユーザ情報の表示も出来た。 あとはゲームの結果を表示したりも必要だけど、かなり長くなったので、とりあえずまとめていく。 ターンコントローラの修正 とりあえず、終了判定の実装だけは入れておく。 //============================== // YWF //---------…

変種オセロのUIを作ってみた。(その19)

Undoボタンの対応も出来た。 あとは、ユーザ情報の表示。 レイアウトマネージャの修正 ユーザ情報の表示を行うとき、そのエリアのサイズが必要となったので、レイアウトマネージャの修正を行った。 ついでに、すこしリファクタリングも実施。 //============…

変種オセロのUIを作ってみた。(その18)

昨日の続き。 Playerプロトコルの修正 Undoに対応するためにPlayerプロトコルに少し修正を加える。 //============================== // YWF //------------------------------ // Player.swift //============================== public protocol Player {…

変種オセロのUIを作ってみた。(その17)

昨日はPassボタンの対応を行った。 今日はUndoボタンの対応を行っていく。 BoardNodeの修正 まずは、Undo自体が出来るようにするために、BoardNodeを修正していく。 オペレーションキューの追加 今までの実装では手を抜いてたけど、Undoを出来るようにするた…

変種オセロのUIを作ってみた。(その16)

前回はターンコントローラを実装して、AI相手にもプレイが出来るようにした。 次は各ボタンの機能を対応していく。 まずはPassボタンの対応から。 人間プレイヤーの修正 Passボタンを使うのは人なので、人間プレヤーの修正をしていく。 具体的には、 Humanク…

変種オセロのUIを作ってみた。(その15)

昨日はボタンとボードにオブザーバパターンを実現した。 今日はそれを使ってゲームのプレイが出来るようにする。 ターンコントローラの実装 ゲームをプレイできるようにするためには、まず手番を管理する必要がある。 ということで、BoardNodeObserverプロト…

変種オセロのUIを作ってみた。(その14)

さて、レイアウトの修正は出来た。 次はボタンのタッチ処理を出来るようにする。 また、ボードのタッチ処理についても、修正を行う。 オブザーバパターンの実現 SwiftでSetの型パラメータにプロトコルを指定する方法について。 - いものやま。で言及したよう…

変種オセロのUIを作ってみた。(その13)

昨日はレイアウトのリデザインを行った。 今日はこのレイアウトを実現するための仕組みを実装する。 レイアウトマネージャ SpriteKitでレイアウトを決めるときに必要になるのが、プロパティのpositionの値。 なので、各要素のpositionの適切な値を返すクラス…

変種オセロのUIを作ってみた。(その12)

昨日はボタンの描画を実装した。 しかし、レイアウトに問題があることが発覚したので、今日はその解決を。 レイアウトのリデザイン とりあえず、今まではどの画面サイズについても、縦方向の構成はどれも同じでいいやと思っていたけれど、画面サイズでこうも…

変種オセロのUIを作ってみた。(その11)

ちょっと間が空いたけど、続き。 今日はUndoなどを行うためのボタンを作っていく。 ボタンの描画 ということで、まずはボタンの描画から。 SKSpriteNodeを継承して、ButtonNodeを作る。 //============================== // YWF //------------------------…

変種オセロのUIを作ってみた。(その10)

昨日はタッチ処理の実装を行った。 今日はタッチ処理の実装をちょっと修正する。 タッチ処理の修正 作ったタッチ処理を実際に触ってみた分かったのは、選択を確定させるのに2回タッチするのは面倒ということ。 なので、1回のタッチで選択を確定させるように…

変種オセロのUIを作ってみた。(その9)

昨日はタッチ処理の実装を途中まで行った。 今日はその続き。 タッチ処理の実装 さて、肝心のタッチ処理の実装は、次のような感じ。 public class BoardNode: SKSpriteNode { // 省略 private var touch: UITouch! private var previousSelectedSquare: Squa…

変種オセロのUIを作ってみた。(その8)

BoardNodeの実装の続き。 今日はタッチ処理を実装していく。 タッチの仕様 まず、タッチの仕様を考えてみる。 基本的な仕様は、以下。 選択可能なマスが、ハイライトで表示される。 選択可能なマスを1回タッチすると、マスが選択状態になる。 選択状態になっ…

変種オセロのUIを作ってみた。(その7)

昨日の続き。 今日はボードの描画を実装していく。 ボードの描画 ボードの描画は、SKSpriteNodeを継承したBoardNodeを作って実装する。 //============================== // YWF //------------------------------ // BoardNode.swift //==================…

変種オセロのUIを作ってみた。(その6)

昨日は駒の描画を実装した。 今日からはボードの描画を実装していく。 ボードの構成について まずは、ボードの構成について。 ボードを単に一つのスプライトにしてもいいのだけど、その場合、タッチされた場所を都度計算したり、駒の場所を管理したりと、ち…

変種オセロのUIを作ってみた。(その5)

素材作りは昨日でとりあえず完了。 今日からはコーディングをしていく。 駒の描画 まずは、駒を描画するところから。 ということで、SKSpriteNodeを継承して、PieceNodeを作る。 駒の状態 まず、駒の状態を表す列挙型を定義。 //===========================…

変種オセロのUIを作ってみた。(その4)

昨日は駒を作った。 今日は残りの部品を作っていく。 ボードの作成 変種オセロのUIを作ってみた。(その2) - いものやま。で作ったマットと木材を使って、ボードを作っていく。 まず、ボードのマット部分を用意。 柔らかみを出すために枠を角丸にしようと思…

変種オセロのUIを作ってみた。(その3)

昨日は素材の作成で、マットと木材を作った。 今日は駒を作っていく。 駒のデザイン ボードゲームで駒といったら、やっぱりミープル。 ということで、ネットの画像などを参考に、パスをいじって作成したのがこちら。 ただ、これだと立体感が出ないので、影を…

変種オセロのUIを作ってみた。(その2)

昨日は画面設計を行った。 今日は必要な素材を作っていく。 素材の話 ボードゲームをテーマにしたアプリを見てみると、素材にあまりこだわりのないアプリと、素材をちゃんと作り込んであるアプリがあるように思う。 例えば、自分がインストールしたバックギ…

変種オセロのUIを作ってみた。(その1)

変種オセロをiOSで遊べるようにするために、変種オセロのUIを作ってみた。 変種オセロ「良い子悪い子普通の子」については、以下を参照。 画面設計 まずは、画面設計から。 とりあえず、出来上がりがどんなふうになれば良さそうかを書いたラフが、以下。 汚…

変種オセロをSwiftに移植してみた。(まとめ)

これまでの各記事は、以下から。 変種オセロをSwiftに移植してみた。(その1) - いものやま。 変種オセロをSwiftに移植してみた。(その2) - いものやま。 変種オセロをSwiftに移植してみた。(その3) - いものやま。 変種オセロをSwiftに移植してみた。…

変種オセロをSwiftに移植してみた。(その11)

昨日はランダムAIを実装した。 今日はアルファベータAIの実装。 アルファベータAI さっそくコードを。 public class AlphaBetaCom: Player { private var color: Board.Color private lazy var opponent: Board.Color = self.color.opponent private var dep…

変種オセロをSwiftに移植してみた。(その10)

昨日はプレイヤーの実装。 今日はランダムAIを実装していく。 乱数の取得 さて、ランダムAIを実装するのだけど、やはりRubyのArray#sampleのような気の利いたメソッドはないわけで。 ということで、まずは乱数の取得から。 乱数の話 乱数といえば、srand()で…