引用テキスト
###前提・実現したいこと
アナログ時計を作成し、時計を表示させたいです
###発生している問題・エラーメッセージ
実行は問題なくできるんですが、Simulatorで動かしてみると何も映りません。 どこか問題があればご指摘お願いいたします。
###該当のソースコード
swift
1import SpriteKIt 2 class GameScene: SKScene { 3 let sHand=SKSpriteNode(color: UIColor.black, size: CGSize(width: 2, height: 180)); 4 let mHand=SKSpriteNode(color: UIColor.black, size: CGSize(width: 5, height: 180)); 5 let hHand=SKSpriteNode(color: UIColor.black, size: CGSize(width: 5, height: 140)); 6 7 var last:CFTimeInterval!; 8 var lastM:CFTimeInterval!; 9 var lastH:CFTimeInterval!; 10 var myDate:NSDate!; 11 var myComponetns:NSDateComponents!; 12 var myCalendar: NSCalendar!; 13 var _sec:Double!; 14 var _min:Double!; 15 var _hour:Double!; 16 17 func DegreeToRadian(Degree:Double)->CGFloat{ 18 return CGFloat(Degree)/CGFloat(180.0*M_1_PI) 19 } 20 21 override func didMove(to view: SKView) { 22 /* Setup your scene here */ 23 24 myDate = NSDate(); 25 //カレンダーを取得. 26 myCalendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian)! 27 28 //取得するコンポーネントを決める. 29 // myComponetns = myCalendar.component(<#T##unit: NSCalendar.Unit##NSCalendar.Unit#>, from: <#T##Date#>) 30 31 /* myComponetns = myCalendar.components( 32 NSCalendar.Unit.hour, 33 NSCalendar.Unit.minute, 34 NSCalendar.Unit.second, 35 from: myDate ) 36 */ 37 myComponetns = myCalendar.components( 38 [ 39 // NSCalendar.Unit.year, 40 // NSCalendar.Unit.month, 41 // NSCalendar.Unit.day, 42 NSCalendar.Unit.hour, 43 NSCalendar.Unit.minute, 44 NSCalendar.Unit.second, 45 // NSCalendar.Unit.weekday 46 ],from: myDate as Date) as NSDateComponents! 47 _sec=Double(myComponetns.second * -6 ); 48 _min=Double(myComponetns.minute * -6); 49 _hour=Double((myComponetns.hour-12) * -30); 50 51 //盤面 52 // ShapeNodeを作成. 53 let Circle = SKShapeNode(circleOfRadius: 190) 54 55 // ShapeNodeの座標を指定. 56 Circle.position = CGPoint(x:self.frame.midX, y:self.frame.midY) 57 58 // ShapeNodeの塗りつぶしの色を指定. 59 Circle.fillColor = UIColor.white 60 Circle.zPosition=CGFloat(-2.0) 61 // sceneにShapeNodeを追加. 62 self.addChild(Circle) 63 var cArr:[SKShapeNode]=[]; 64 for i in 1...60 { 65 66 let memori=SKSpriteNode(color: UIColor.gray, size: CGSize(width: 1, height: 14)); 67 // ShapeNodeの座標を指定. 68 memori.position = CGPoint(x:self.frame.midX, y:self.frame.midY) 69 70 memori.position=CGPoint(x:self.frame.midX, y:self.frame.midY) 71 memori.zPosition=CGFloat(2.0) 72 memori.anchorPoint = CGPoint(x: 0.5, y: -12); 73 74 memori.zRotation = DegreeToRadian(Degree: Double(-6 * i)) 75 //cArr.append(Circle2); 76 self.addChild(memori) 77 78 } 79 80 for i in 1...12 { 81 82 let memori=SKSpriteNode(color: UIColor.black, size: CGSize(width: 5, height: 14)); 83 // ShapeNodeの座標を指定. 84 memori.position = CGPoint(x:self.frame.midX, y:self.frame.midY) 85 86 memori.position=CGPoint(x:self.frame.midX, y:self.frame.midY) 87 memori.zPosition=CGFloat(2.0) 88 memori.anchorPoint = CGPoint(x: 0.5, y: -12); 89 90 memori.zRotation = DegreeToRadian(Degree: Double(-30 * i)) 91 //cArr.append(Circle2); 92 self.addChild(memori) 93 94 } 95 96 //四角形の描画 97 //秒 98 sHand.position = CGPoint(x:self.frame.midX, y:self.frame.midY); 99 sHand.anchorPoint = CGPoint(x: 0.5, y: 0); 100 sHand.zRotation=DegreeToRadian(Degree: _sec); 101 self.addChild(sHand) 102 103 //分 104 mHand.position = CGPoint(x:self.frame.midX, y:self.frame.midY); 105 mHand.anchorPoint = CGPoint(x: 0.5, y: 0); 106 mHand.zRotation=DegreeToRadian(Degree: _min+(6*(_sec/360))); 107 print(_min+(6*(_sec/360))) 108 self.addChild(mHand) 109 110 //時 111 hHand.position = CGPoint(x:self.frame.midX, y:self.frame.midY); 112 hHand.anchorPoint = CGPoint(x: 0.5, y: 0); 113 hHand.zRotation = DegreeToRadian(Degree: _hour + (30*(_min/360))); 114 print(_hour) 115 self.addChild(hHand) 116 117 } 118 119 func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent) { 120 /* Called when a touch begins */ 121 } 122 123 override func update(_ currentTime: CFTimeInterval) { 124 /* Called before each frame is rendered */ 125 myDate = NSDate(); 126 /* 127 myComponetns = myCalendar.component( 128 NSCalendar.Unit.CalendarUnitHour | 129 NSCalendar.Unit.CalendarUnitMinute , 130 NSCalendar.Unit.CalendarUnitSecond , 131 fromDate: myDate) 132 */ 133 myComponetns = myCalendar.components( 134 [ 135 // NSCalendar.Unit.year, 136 // NSCalendar.Unit.month, 137 // NSCalendar.Unit.day, 138 NSCalendar.Unit.hour, 139 NSCalendar.Unit.minute, 140 NSCalendar.Unit.second, 141 // NSCalendar.Unit.weekday 142 ],from: myDate as Date) as NSDateComponents! 143 _sec=Double(myComponetns.second * -6 ); 144 _min=Double(myComponetns.minute * -6); 145 _hour=Double((myComponetns.hour-12) * -30); 146 147 sHand.zRotation=DegreeToRadian(Degree: _sec) 148 mHand.zRotation=DegreeToRadian(Degree: _min+(6*(_sec/360))) 149 hHand.zRotation=DegreeToRadian(Degree: _hour + (30*(_min/360))); 150 151 } 152 } 153
###試したこと
背景色の変更
###補足情報(言語/FW/ツール等のバージョンなど)
swift 3.0
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。