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

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回答

1790閲覧

PhysicsBodyがうまく作動しない

nakkadai

総合スコア2

SpriteKit

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

Swift

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

iPhone

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

0グッド

0クリップ

投稿2020/06/10 01:00

プログラミング初心者です。2Dゲームを作るために、「Sprite Kitで始める2Dゲームプログラミング」という練習本を使っているのですが、早くもつまずいてしまいました。

spriteに重力をかけて、落下させたいのですが、実行すると、

PhysicsBody: Could not create physics body.

というエラーコードが出てきてしまい、spriteが落下してきません。

該当のソースコード

swift

ソースコード
import Foundation
import SpriteKit

class GameScene :SKScene{
override func didMove(to view: SKView){

//下方向に重力を追加 self.physicsWorld.gravity = CGVector(dx: 0.0, dy: -10.0)

   
//背景スプライトの追加
let background = SKSpriteNode(imageNamed: "background")
background.position = CGPoint(x: self.size.width0.5, y:self.size.height0.5)
background.size = self.size

self.addChild(background)   self.fallNagoyaSpecialty()

//名古屋名物を落下させる
func fallNagoyaSpecialty(){
let texture = SKTexture(imageNamed: "0")
let sprite = SKSpriteNode(texture: texture)
sprite.position = CGPoint(x: self.size.width0.5, y: self.size.height0.5)
sprite.size = CGSize(width: texture.size().width0.5, height:texture.size().height0.5)

//テクスチャからPhysicsBodyを追加 sprite.physicsBody = SKPhysicsBody(texture: texture, size: sprite.size) self.addChild(sprite)

}
}

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

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

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

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

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

guest

回答1

0

ベストアンサー

コードを試してみましたが。
私の環境ではエラーは起こりませんでした。
エラーをググってみるとこれが見つかりました。
https://forums.developer.apple.com/thread/123940
5月29日のコメントで
2xと3xの画像をプロジェクトに追加することにしました。これは、過去にSpriteKitテクスチャに必要でなかったもので、すべてが機能し始めました。
とあるので、これで治るかもしれません。

投稿2020/06/10 14:38

fugu

総合スコア35

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

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

nakkadai

2020/06/11 00:42

回答ありがとうございます!2x,3xの画像を追加してみたんですが、うまくできませんでした。回答者様はどんな環境で行っているのでしょうか?
fugu

2020/06/11 03:21

//Xcode Version 11.4です。 コメント見てVersion 11.5にアップデートしてみましたが、 エラーは出ませんでした。 Asset Catalogを使わずに試してみるか、問題は別にあるかもしれません。 参考にしている本はかなり古いものなので、本に付属のサンプルをそのまま だと問題が起きやすいかもです。
nakkadai

2020/06/12 10:17

ありがとうございます!versionは一緒でした。別のところに問題があるのかもしれません。 使っている本が古いものなので、新しいものを買ってみようと思います。
ThunderV

2020/12/08 15:18

同じ本同じ箇所で私もハマりました。SKTexture(imageNamed: "0")の 同本のサンプルの1にかえるとすんなり落ちました。 画像に問題があるようですが原因はわかっていません。 自分で作成した画像もごく稀に同現象起こりますがその場合に画像の再加工で解決できています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問