Swiftで放置ゲーが作りたかった

日記です。メモ書きのつもりで書きなぐっているので可読性が低いかもしれません

三日目

 随分間が開いたように見えますが、実は私は前回からタイムワープしたのでそう見えるだけです。では三日目やっていきます。

 タイムマシンの中でlabelのやり方を学習した。で、それについてはだいたいわかったのでこれについてはもういいかなという気になって来た。ゲーム中に画像とかは出す気があまりないし表示はこれでいいかなって

 というかこれ以上をどうググったらいいのかがわからない…

 というわけで今回は中身について勉強したいな。することにします。

  とその前にプロジェクトを作るときのGameとかsingle view なんとかとかってなんだよってふと思ったのでググった

qiita.com

 まあ要するにただのテンプレートらしい。今回はGameにしてるけどまあいいか。

 で、この記事を読んでる時に気になったのは、最初に打ち込むBundle Identifierとかの項目である。アプリを配布する時に必要らしいが適当に作っちゃったけど後から変更できるんだろうか。

blog.ikenie3.org

 できるらしい。

 ならいいか。その辺は深く考えずに進めよう。

 

 で内部のコードである。

 swiftはオブジェクト指向だったはず。オブジェクト指向といえばjava(自分にとっては)。

 で確かクラスという雛形…設計図を作って、それを元に作られたインスタンスというオブジェクトを作り、それに対して指示を出す(メソッド(命令?)はクラス内に記述する)ことで処理を行う…みたいな感じだったはず。

 

 ふむ。

 作りたいのはリアルタイムのシミュレーションゲームみたいな感じのやつである。

 なんかイメージしているのは…宇宙人の艦隊が攻めてくるので太陽系の各惑星に適切に艦隊を配置して防衛を行う!みたいな感じ。

 とりあえずplanetクラスでも作って見ようかな?

 んー…クラスの作りかたはそこら中に書いてあるが、そもそもそれをどこに置けばいいのかがわからん。

qiita.com

 ここを参考に、とりあえずNew File から新しいファイルを作ってみる。ファイル名はとりあえずPlanetで。

 で、どうしたらいいんですかね。

クラス | Swift言語を学ぶ

 ここのクラス解説をちょっと読んでみる。とりあえず変数を宣言してみる。

 varがいつものでletが定数らしい。

var value = 1 //変数

let value = 1 //定数

qiita.com

 ここのページが詳しい。

 で、とりあえず変数だけ作ったけどなんかエラー出た。"Class 'planet' has no initializers"?

 イニシャライザというものが必要らしい。

qiita.com

 ここの説明が詳しい。初期化関数とかいうものらしい

 とりあえず作ってみる。

class planet {

    let name: String     // 名前

    let size: Int        //惑星の容量

    var Productivity:Int //生産力

    

    init(name: String, size: Int) {

        self.name = name

        self.size = size

    }

}

そうそう、はてな記法で書くとソースコードが埋め込めるらしい。次からやろう。

greenkour.hateblo.jp

 で、なんかエラー出た。"Return from initializer without initializing all stored properties"?

 どうも宣言した変数全てをここで初期化しておかないといけないらしい。違うかもしれない。でもそうしたら出なくなったのでとりあえずそういうことにしておく。

 とりあえずこれをラベルにして表示してみよう。

 できたみたいだが文字が見切れる。sizeToFitメソッドというもので設定できるらしい。

 

 と、ここで電池が切れたのでまた続きは今度に…