初心者のSWIFTアプリ開発記 ©たぬきち

肥満気味になってきたので筋トレに励んでいます! プログラミング頑張ります

spritekitで接触判定がうまくいかない・・・swiftアプリ開発

やる気がでない!!やるきがでない!!やる気がでない!!やるきがでない!!

だがやるぞーー!!やるぞーー!!おれはやるぞーーーーー!!!

 

 

 

 

なんか以前も同じようなことで詰まっていた気がするんだけどな・・・´д` 

 

contactTestBitMask設定しても

うまいことイベントが起きないんだけどなんでや??

 

f:id:egoisticYK:20150826042545p:plain

(前提としてシューティングもどき?、とりあえず適当に絵を描きながらその時の思いつきでアプリを作ろうとしています。) 

 

敵と弾が当たってくれない

f:id:egoisticYK:20150815200724p:plain

 

 

 

 

physicsbody を設定してやるもなにも起こらない・・・

前、ここら辺でつまづいた時は

 

self.physicworld.contactDelegate = self

というのを書き忘れていて1、2時間とまっていました( *`ω´)

 

でも今回は確かに記述しているよ・・・

 

 

何回見ても書いてあるもんは書いてある!!!

 

なのにできない!!!

 

まさかプログラミング能力が退化しているの・・・・か!!!!!!!

まぁもともと退化するほどの能力すらないのだけれどね

f:id:egoisticYK:20150826042433j:plain

 

 

 

 

そんなことより進まないのでとりあえず、

お試しで新しく

赤い丸🔴を作って接触判定が出るのかやってみた!

 

 

 

そしてらできる( ^ω^ )

ちゃんとぶつかってるがな!!!

 

何が違うんや!!!!

 

 

 

・・・実際はうすうす気づいていたんですけれど

物理設定とか重力とかそういうの関係なしに、

弾の移動を updateの所で設定していたのがまずかったのかもしれません。

 

等速直線運動?みたいに同じスピードで移動させる方法がよくわからなかったので

  • 重力で移動させるとだんだん加速するとか
  • そもそも重力以外の運動のさせ方がわからなかった

案外簡単にできたupdateの方でやってみました。

 

弾の移動自体は簡単にできたんですが、その代わりに接触判定の方がわけわからないことになってしまったんですね。

f:id:egoisticYK:20150727104950p:plain

 

それでupdateで移動させるのをやめて、

physicsbodyのほうでやることに( *`ω´)

 

だんだん加速するのは重力がいけないはずなので、とりあえず

self.physicsWorld.gravity = cgvector(dx:0,dy:0)

に。

 

弾自体にCGVectorMakeで設定すれば動くはず( *`ω´)

動くはず!?

 

・・・・

 

・・・

 

う、動いた( ^ω^ )

 

 

・・・

 

・・・

 

と、止まった(⌒-⌒; )

 

 

なんでなんでしょうかね!?

前に何度か調べた気がするんですけど、一定スピードで動く方法は見つからなかったんだよな・・・

 

 

 

でも調べるo(`ω´ )o

また調べるo(`ω´ )o

 

 

 

 

qiita.com

 

等速直線運動で調べたら一発でした。

昔、ぐぐっても見つけられなかったのは何だったのか。

ググる才能がなかったのかやる気がなかったのかわからないけれども、まぁいい。

 

 

途中で止まってしまったのは空気抵抗 のせいだったんですね(⌒-⌒; )

linearDamping = 0 としたら止まらないで等速直線運動できてました!!

 

 

今日もほとんど進まなかったけど、粘った末に解決できたのはすっきりでよかった。

努力がresultにcommitしたのである

f:id:egoisticYK:20150826042426p:plain

 

 

そんなことより

うまるちゃん何曜日に放送しているんだよ!!!!

f:id:egoisticYK:20150806021652p:plain