質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SpriteKit

SpriteKitは、iOSやOS Xで使用できるApple社製の2Dゲーム開発フレームワークです。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

1回答

656閲覧

画面のタッチの方法について

a14123

総合スコア0

SpriteKit

SpriteKitは、iOSやOS Xで使用できるApple社製の2Dゲーム開発フレームワークです。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2020/05/11 22:53

編集2020/05/12 00:29

ゲームを作りたくてiPhoneの画面を半分に割って右側をタッチする、画面の左側をタッチするのとで違う画像を表示させたいです。

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
// タッチが開始された時の処理
}

タッチが開始された時の処理のところにどのようにして書いたらいいのかわからないので教えてください。
よろしくお願いします。

<追加文>
申し訳ございません。
今インベーダーゲームのようなものを作成しています。
ノード2種類(missile1,missile2)を敵にぶつけるというようなものです。
この時missile1を画面左半分をタップすると、missile2を画面右半分をタップすると
表示されるようにしたいです。
いろいろなサイトなどで調べて見様見真似でやっています・・・
※ 2行目にUse of unresolved identifier 'touch'と言うエラーが出てきてしまいます。

swift

1override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 2 let location = touch.location(in: self) 3 4                      (省略) 5 6 if location.x > (self.frame.width / 2) { 7 let move1 = SKAction.moveTo(y: frame.height + missile1.size.height, duration: 1.0) 8 let remove = SKAction.removeFromParent() 9 missile1.run(SKAction.sequence([move1, remove])) 10 } else { 11 let move2 = SKAction.moveTo(y: frame.height + missile2.size.height, duration: 1.0) 12 let remove = SKAction.removeFromParent() 13 missile2.run(SKAction.sequence([move2, remove])) 14 } 15 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TsukubaDepot

2020/05/11 23:41 編集

> タッチが開始された時の処理のところにどのようにして書いたらいいのかわからないので教えてください。 質問者さんがどの程度コードを書かれたのか次第で回答も異なってくるのですが、具体的に何を行おうとして、どこでつまづかれたのでしょうか。 他の方からも分かるように、具体的なご質問を回答本文に追記(修正)していただけれと思います。
hoshi-takanori

2020/05/12 00:21

やりたい処理の内容にもよりますが、touchesBegan のような生のイベントを扱うメソッドよりも、gesture recognizer を使ったほうがいいかもしれません。
guest

回答1

0

とりあえずコードを拝見して気づいた点だけ...

swift

1override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 2 let location = touch.location(in: self)

仮引数はtouchesですが、その後使っているのはtouchという名前になっていますね。

あと、touchesUITouch の Set<> なので、touches.first!.location(in: self)のような形にして、Set<> から取り出す必要もあるかと思います。

投稿2020/05/12 00:44

TsukubaDepot

総合スコア5086

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問