前提・実現したいこと
swiftのSpriteKitで2次元のゲームを作っているのですが、Skspritenodeでpng画像を設定し、矩形作成すると、画像の周りに四角となって作成されてしまいます。何か、画像の処理方法などがあれば教えていただきたいです。
下記の画像を使用しています。自分の理想では、人型に沿って矩形が表示されることです。
該当のソースコード
swift
1import UIKit 2import SpriteKit 3 4class randomSample: SKScene,SKPhysicsContactDelegate { 5 6 7 8 override func didMove(to view: SKView) { 9 backgroundColor = UIColor(red: 1, green: 1, blue: 0.67, alpha: 1) 10 11 12 13 14 15 physicsWorld.gravity=CGVector(dx: 0, dy: -4.0) 16 physicsWorld.contactDelegate=self 17 18 makeBlock1Appear() 19 makePlate() 20 21 22 } 23 24 func makeBlock1Appear(){ 25 //SpriteNodeの生成 26 let block1SpriteAppear=SKSpriteNode(imageNamed: "human1") 27 28 //ノードの表示箇所 29 block1SpriteAppear.position=CGPoint(x: self.frame.size.width/2 , y: self.frame.size.height-self.frame.size.height/10) 30 31 32 //物理演算の追加 33 block1SpriteAppear.physicsBody=SKPhysicsBody(rectangleOf: block1SpriteAppear.size) 34 addChild(block1SpriteAppear) 35 36 37 38 } 39 //プレート作成関数 40 func makePlate(){ 41 let plateSprite=SKSpriteNode(color: UIColor.blue, size: CGSize(width: self.frame.size.width/2, height: self.frame.size.height/13)) 42 43 plateSprite.position=CGPoint(x: self.frame.size.width/2, y: self.frame.size.height/10) 44 plateSprite.physicsBody=SKPhysicsBody(rectangleOf: plateSprite.size) 45 //衝突時に動かないようにする 46 plateSprite.physicsBody?.isDynamic=false 47 48 addChild(plateSprite) 49 } 50 51 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 52 53 makeBlock1Appear() 54 } 55 56 57}
試したこと
画像背景の透過とアルファチャンネルの削除をしてみましたが、効果がありませんでした。
「人型に沿って矩形」の意味が分かりません。矩形の意味分かってますか?
回答1件
あなたの回答
tips
プレビュー