とりあえずブログ

プログラミングとiPhoneアプリの作り方を勉強中です。

良いお年を!

この拙いブログを始めて2か月ちょっとが経ちました。

ここにお立ち寄りくださった皆様、本当にありがとうございましたm(__)m

今後も少しずつ勉強しながら、アプリを作っていきたいと思います。

また来年もよろしくお願いいたします。

新しい年が皆様にとって良いお年でありますように。

 

今日やったこと(H27.12.31)

ついに大晦日。
掃除...まだクローゼットの片付けが終わっていませんが^^;
明日、折を見て続きをしましょうw

今日の間食は、「呼吸チョコ」というちょっと変わった名前のチョコレートです。
マスカルポーネチーズクリームとアーモンドが入っていて、とても美味しいです^^

f:id:onetoonewao:20151231061519p:plain

最近、夜12時すぎになるとお腹がすいてくるようになってしまい、間食が定着してきました。
良くないなあ...と思いつつ、空腹には勝てず。
早く寝て、朝型に切り替えるべきなのでしょうが、なかなか...(;´・ω・)


<アプリ制作>

犬のアプリの続きをしました。
主に描画と、イベントがあるときの家具の表示を行うプログラムの続きを書きました。


<本読み>

「プログラムはなぜ動くのか」のシフト演算、小数点の計算、メモリーの仕組みを読みました。
難しい話も多かったのですが、今回も目から鱗の話が幾つかありました。

「floatとdoubleの違いの詳細ってそういうことか」
とか
「ROMがReadOnlyMemoryという意味だったとは」
とか
「リストや2分探索木の仕組みを考えた人はすごいな〜(@@)」
とか
ビックリマークが乱れ飛んでいました!

お正月休み中に、キリの良いところまで読めたらいいなと思っています。

f:id:onetoonewao:20151231062302p:plain

今日やったこと(H27.12.28)

いよいよ年末、まだ何も準備していないのですが^^;
気ばかり焦ってしまう今日この頃です。

<アプリ制作>

今日は、犬のアプリの画像作りに専念しました。

お正月グッズを幾つか描きました。

f:id:onetoonewao:20151229075205p:plain

しめ飾りは、輪っかの方にしてみました(^^)

それから、和柄の座布団なども。
日本の伝統的な模様やデザインは、今まで作ったアプリの中でも使ったことがありますが、本当に綺麗だといつも思います。
専門的に勉強したことはありませんが、着物や千代紙などに使われてきた模様を集めた本などは、長時間見ていても飽きることはありません。
昔の日本の職人さんたちが生み出し受け継いできた図柄は、私のような素人が見ても何か身が引き締まるというか、背筋を正さずにはいられないような凜とした風格と深みを感じます。
折を見て、こうしたデザインを色々見るのも楽しみの一つです。


<本読み>

昨日の続きで、2進数のシフト演算のところを読みました。
難し〜(@@;)
絵を描いた後に本を読んだのですが、順番を間違えましたねww
次回からは、先に本読みをしようと思います。

今年も残り3日。
有意義に使いたいと思います^^

今日やったこと(H27.12.26)

例年よりは暖かいとはいえ、徐々に冷え込みがきつくなっています>_<
今日は、作業中に使うモフモフグッズ(クッション、足元クッションなど)を、30%offの札につられて買い込んできました!
暖かくなったのは良いのですが、今度は眠気が...(+_+)

コーヒーを飲みながらの作業です。
今日のおやつはこちらww
止まらなくならないように気をつけなくては...(^^;)

f:id:onetoonewao:20151227081025j:plain


<アプリ制作>

しばらく止まっていた犬のアプリのバグを修正したり、新しいイベントの画像を作ったりしました。


<本読み>

何冊かの本を並行して読んでいます。

そのうち1冊は、こちら
techlife.cookpad.com
で紹介されていたこの本です。

www.amazon.co.jp

とにかくPC周りの基礎知識が乏しいので、少し勉強していこうと思います^_^;

今日読んだのは、第2章の「データを2進数でイメージしよう」の途中まで。
1番「!」と思ったのは、ICの1本のピンが2進数の1桁を表しているというところです。
32本のピンを持っていたら、一度に32ビット=4バイトの2進数の情報を処理できる、と!
電流のオフ・オンが0、1に対応しているというのは何となく知っていましたが、ピンと情報の処理とが関連づけられていませんでした。
あのムカデみたいなピンに、そんな意味があったとは(0_0)
とても丁寧にわかりやすく書かれているので、読んでいると面白いです。

今まで知らなかったことを知って、それまで見ていたものが別の目で見られるようになるこの瞬間が好きです。

Swift関連の本も、また少し深く?読めるようになったらいいな〜と期待しています^^

今日やったこと(H27.12.25)

今年も残るところ、あと5日!(o_o)
早すぎます汗
あれもこれもとやらなくてはならないことが山積(^_^;A
でも、アプリ作りと本読みだけは、1時間でもいいから時間を作ってやっていきたいです(><)

<アプリ制作>

先日の記事今日やったこと(H27.12.23) - とりあえずブログで、画像を切り替える部分について
>一旦starをremoveFromParentしてまたaddChildしないと、エラーになります
と書いたところ、アプリ道場のToshiさんから


とのご指摘をいただきましたm(__)m

SKTextureで画像を切り替えて何度かやってみたところエラーが出るので、止むを得ず一旦removeFromParentしてから再度addChildしたという経緯があるのですが、もう一度トライしてみました。

    //タッチで呼ばれる
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        
        for touch in touches {
            
            //タッチされた座標を取得
            let location = touch.locationInNode(self)
            
            //タッチされた座標が、星のviewと重なったら
            if star.containsPoint(location){
                
                //カウントアップ
                count++
                
                //star.removeFromParent()
                
                //カウント数と連動して画像を切り替える
                star.texture = SKTexture(imageNamed: "star\(count%3 + 1).png")
                //self.addChild(star)
            }
        }
    }

removeFromParentとaddChildをコメントアウトして実行してみたところ...

あらっ??(0_0)
めっちゃ涼しいお顔で回転してはる!?orz

謎です...(- -;)

Toshさん、というわけで検証不足でございました。
申し訳ありませんm(__)m
すんなり画像を差し替えられることが分かって、良かった。。^^

ところで、アプリ道場アドベントカレンダーの25日目の記事をToshiさんが書かれていらっしゃいました。

qiita.com

めっちゃ参考になります!
ありがとうございます(^o^)/

>出会ったエラーの数だけ優しくなれる
いい言葉ですね(; ;)

やっぱり写経、改造、繰り返してやってみましょう。

今日やったこと(H27.12.24)

X'masイブの夜、サンタクロースは大忙しでしょうね^^
皆様にも素敵なX'masでありますように!

犬にもサンタ服を着せてみました(^^)/

f:id:onetoonewao:20151225044745p:plain



<アプリ作成>

昨日作ったプログラムに、ちょっと飾りをつけてみました。
X'masツリーをSketchで描き、てっぺんの星に昨日の星を...
さらに、やってみたかったパーティクルd(´▽`)b

パーティクル、すごいですね!
思わず色々やってみてしまいました。

こんなんとか

こんなんとか

こんなのも

まだ色々ありました!

アプリ道場アドベントカレンダーで、パーティクルの記事を書いていらした方がいらっしゃいました。
そちらも参考にさせていただきましたm(__)m

qiita.com

で、できたのがこちら。
パーティクルのsnowを使って、雪を降らせてみました。

ここでちょっと困ったのは、Nodeの描画順です。
多分、後に書いたものほど手前にくるだろうなと思ったのですが、クリックで再度星をaddChildしているせいもあってか、期待通りの順番になってくれません。
こちらの記事を参考にして、順番を決めることができました。

spritekit.jp

import SpriteKit

class GameScene: SKScene {
    
    var star = SKSpriteNode(imageNamed: "")
    var count = 0
    
    override func didMoveToView(view: SKView) {
        
        //背景色を設定
        self.backgroundColor = UIColor.blackColor()
        
        //X'masツリーを作成
        let tree = SKSpriteNode(imageNamed: "tree.png")
        tree.position = CGPoint(x:self.size.width/2, y:self.size.height/2.3)
        tree.setScale(1.5)
        tree.zPosition = 0
        self.addChild(tree)
        
        //星のオブジェクトを作成
        star.texture = SKTexture(imageNamed: "star1.png")
        star.position = CGPoint(x:self.size.width/2, y:self.size.height/1.2)
        star.zPosition = 1
        self.addChild(star)
        
        //星を回転させる
        let action1 = SKAction.rotateByAngle(CGFloat(-M_PI * 2), duration: 3.0)
        let action2 = SKAction.repeatActionForever(action1)
        star.runAction(action2)
        
        // パーティクルを設定
        if let snowEmitter = SKEmitterNode(fileNamed: "snow") {
            
            snowEmitter.position = CGPoint(x:self.size.width/2, y:self.size.height)
            
            // 階層を設定
            snowEmitter.zPosition = 2
            
            addChild(snowEmitter)
        }
    }
    
    //タッチで呼ばれる
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
       
        for touch in touches {
            
            //タッチされた座標を取得
            let location = touch.locationInNode(self)
            
            //タッチされた座標が、星のviewと重なったら
            if star.containsPoint(location){
                
                //カウントアップ
                count++
                print(count)
                
                star.removeFromParent()
                
                //カウント数と連動して画像を切り替える
                star.texture = SKTexture(imageNamed: "star\(count%3 + 1).png")
                star.position = CGPoint(x:self.size.width/2, y:self.size.height/1.2)
                //self.addChild(star)
                star.zPosition = 1
                self.addChild(star)
            }
        }
    }

zPositionが小さいものほど最初に描画されます。
ツリー、星、雪の順に設定し、希望通りの描画ができました^^