Post

Replies

Boosts

Views

Activity

Too complex to compile after update to Xcode 14.3.1
Too Complex to Compile? Ventura 13.4.1 New error after update to Xcode 14.3.1 from 14.3.0 // ... <= -(roomHeight/2 - kFudge) too complex to compile ?? if (playerPosY - playerHeight/2) <= (kFudge - roomHeight/2) { // ... this variation works, the previous one doesn't } kFudge and the other parms are declared Double! within AppDelegate. I don't understand what is suddenly wrong after Xcode update.
9
0
923
Jun ’23
game controlllers and Mac OS 13.3
Specifically the Nimbus+ ... but I tried for a few days a PlayStation Dual Sense ... and the identical problem with just Mac OS Ventura 13.3. One more thing, ZERO problems with my iPhone and your Apple TV. So, the following problem is ONLY with Ventura 13.3 (NOT 13.2 and earlier - just 13.3). Here's the problem .. the Nimbus+ will not stay connected and after about 15 seconds disconnects by itself. The above PlayStation Dual Sense sticks around for about 60 seconds and then disconnects by itself. For the record, I have several times chatted with Nimbus Tech Support. Total Failure, sorry to say. Some chatter out there in Google Land said that the blinking lights on my Nimbus+ show (to him) that the chargeable batteries are "bricked" and need to be reset. If true, then why does my Nimbus+ work great with my iPhone and Apple TV? Just asking ... I'm a computer programmer but I am not a hardware person who can take apart the Nimbus and hit its reset button. There you have it ... any help at all will be appreciated. JL
1
0
1.3k
Apr ’23
Nimbus+ game controller **not** working with Ventura 13.3 and comparable tvOS
Nimbus+ game controller not working with Ventura 13.3 and comparable tvOS Prior to updating these OS' yesterday, my Computer App in the App Store worked. After updating, not working. I have contacted SteelSeries, the mgr of Nimbus+, and they refuse to admit it's their firmware. And I have definitely started up their SteelSeries CG application and looked for a firmware update -- none. Replacement of hardware is not the solution. Any contrary ideas you folk may have would be extremely helpful.
4
0
1.3k
Apr ’23
With Xcode 14.2, I unpaired my apple tv and now the apple tv does not show
With Xcode 14.2, had trouble pairing with my Apple TV (latest update). It continuously showed "Not Connected". So, I unpaired my apple tv and now the ATV does not show under Devices and Simulators. My ATV shows as the Target of my Xcode Project My Ventura 13.3 iMac mirrors to my ATV just great, but not my Xcode 14.2. Have turned off my ATV, quit Xcode and Shutdown and then re-started my iMac and no luck. Help desperately needed. Other posts seem to show an identical problem experienced by others.
1
0
809
Apr ’23
Using Swift, how do I *continuously* test for a GamePad being on/connected?
Using Swift, how do I continuously test for a GamePad being on/connected? When you build a Browser-based Canvas + Javascript Game, you do the above via: function listenForGamepadConnected() {     window.addEventListener("gamepadconnected", (event) => {                // this is the BIGEE that is always testing     }); }   // listenForGamepadConnected And it definitely works! I cannot find its equivalent in the Xcode/Swift world? I do see the following that’s built into a boilerplate Game that you initially create using Xcode - but it seems that it just looks once, versus continuously:     func ObserveForGameControllers() {                          NotificationCenter.default.addObserver(                     self,                     selector: #selector(connectControllers),                     name: NSNotification.Name.GCControllerDidConnect,                     object: nil)                 NotificationCenter.default.addObserver(                     self,                     selector: #selector(disconnectControllers),                     name: NSNotification.Name.GCControllerDidDisconnect,                     object: nil)             }   // ObserveForGameControllers                  @objc func connectControllers() {                 // Unpause the Game if it is currently paused         self.isPaused = false                 // Used to register the Nimbus Controllers to a specific Player Number         var indexNumber = 0         // Run through each controller currently connected to the system         for controller in GCController.controllers() {                         // Check to see whether it is an extended Game Controller (Such as a Nimbus)             if controller.extendedGamepad != nil {                 print("CONNECTED - Extended Gamepad #\(indexNumber)")                                  controller.playerIndex = GCControllerPlayerIndex.init(rawValue: indexNumber)!                                  indexNumber += 1                 setupControllerControls(controller: controller)             }             else {                 print("CONNECTED - but, NOT an Extended Gamepad #\(indexNumber)")             }                     }             }   // connectControllers          @objc func disconnectControllers() {                 print("DIS-CONNECTED")         // Pause the Game if a controller is disconnected ~ This is mandated by Apple         self.isPaused = true             }   // disconnectControllers I try to call it in a Timer loop, but still does not work:     @objc func testForGamepadIsConnected() {         ObserveForGameControllers         var gamepadOn = !self.isPaused   // does not work             }   // testForGamepadIsConnected     func startTestForGamepad() {         guard (gamepadTimer != nil) else {             gamepadTimer = Timer.scheduledTimer(                                     timeInterval: 1.0,                                     target: self,                                     selector:#selector(testForGamepadIsConnected),                                     userInfo: nil,                                     repeats: true)             return         }     }   // startTestForGamepad     func stopTestForGamepad() {         guard (gamepadTimer == nil) else {             gamepadTimer!.invalidate()             // .invalidate() removes Timer() from gamepadTimer, so reinitialize it.             gamepadTimer = Timer()             return         }     }   // stopTestForGamepad Scoured the Google world, but I’ve come up empty. Would appreciate some genius out there providing what I’m missing. Thanks loads.
17
0
2.1k
Mar ’23
Trouble making SKSpriteNode bounce off anotherSKSpriteNode using Bit Masks and func didBegin(..)
Trouble making SKSpriteNode bounce off anotherSKSpriteNode using Bit Masks and func didBegin(..) Here are some brief Code Snippets: For brevity, let's consider 4 SKSpriteNode's The Bit Masks and the .png Strings are defined within AppDelegate, along with: var noCollision: UInt32 = 00000000 var noContact: UInt32 = 00000000 var roomCategory: UInt32 = 00000001 var playerCategory: UInt32 = 00000010 var ballCategory: UInt32 = 00000100 var UCategory: UInt32 = 00001000 Next Snippet appears within GameViewController which calls .addChild for each Node: myRoom = SKSpriteNode(imageNamed: "room.png") myRoom.size = CGSize(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height) myRoom.physicsBody = SKPhysicsBody(rectangleOf: myRoom.size) myRoom.physicsBody?.categoryBitMask = roomCategory myRoom.physicsBody?.contactTestBitMask = noContact myPlayer = SKSpriteNode(imageNamed: "player.png") myPlayer.size = CGSize(width: playerWidth, height: playerHeight) myPlayer.physicsBody = SKPhysicsBody(rectangleOf: myPlayer.size) myPlayer.physicsBody?.categoryBitMask  = playerCategory myPlayer.physicsBody?.collisionBitMask = noCollision myPlayer.physicsBody?.contactTestBitMask = noContact myBall = SKSpriteNode(imageNamed: "ball.png") myBall.size = CGSize(width: ballWidth, height: ballHeight) myBall.physicsBody = SKPhysicsBody(rectangleOf: myBall.size) myBall.physicsBody?.categoryBitMask = ballCategory myBall.physicsBody?.collisionBitMask = noCollision myBall.physicsBody?.contactTestBitMask = roomCategory | UCategory myUStake = SKSpriteNode(imageNamed: "ustake.png") myUStake.size = CGSize(width: U1Width, height: U1Height) myUStake.physicsBody = SKPhysicsBody(rectangleOf: myU1.size) myUStake.physicsBody?.categoryBitMask = UCategory myUStake.physicsBody?.collisionBitMask = noCollision myUStake.physicsBody?.contactTestBitMask = ballCategory Finally, here's my func didBegin func didBegin(_ contact: SKPhysicsContact) {                                                   let bodyAName = contact.bodyA.node?.name      let bodyBName = contact.bodyB.node?.name               let playerHitBall = ((bodyBName == myPlayer.name) && (bodyAName == myBall.name))  ||                          ((bodyAName == myPlayer.name) && (bodyBName == myBall.name))               let ballHitU      = ((bodyBName == myBall.name)   && (bodyAName == myU1.name))    ||                          ((bodyAName == myBall.name)   && (bodyBName == myU1.name))               if playerHitBall {      //     moveBallIfHitsWall()      //     attaBoy()           print("player hit ball")       }       if ballHitU {       //    attaBoy()       //    moveBallIfHitsUStake(theUStake: UStakes[0])           print("ball hit U1")       } }   // didBegin No print statements show in the Debugger. Anybody that has some light to shine on my error or errors would be greatly appreciated. Thanks in advance.
1
0
456
Mar ’23
How can I make my Game App appear under Games in the App Store and not under Apps?
The reason I ask centers on the fact that my "Monster Paddle Pong" has been uploaded to the App Store - and it works! BTW: Search within Apps - not Games! Within Xcode I selected App Category = Games and the above search agrees with that. My question = how can I in the future make my Game appear under Games in the App Store and not under Apps?
1
0
576
Feb ’23
Unfathomable Conduct - App Review Process
App Review Process (1) first attempt: rejected for a reason not supported by App Connect. For example, “You did not state that your App requires a Game Controller”. 100% refuted by App Connect’s description and promotional texts for all Apps in the App Store. (2) second attempt = I get accused of a personal attack. Crocodile tears when in fact I am simply building a stream of logic that refutes their non-factual assertions. This futile attempt to dissuade others is very often used when they can no longer refute the logical responses. This attempt is quite often used by politicians. (3) their last resort is to simply ignore my submission and forever keep my status = In review. Life in prison without parole. (4) good question = do I put my legal team into gallop mode? Why? Because I and many others have reported very similar issues. Someone needs to say “No more!” (5) These issues all reduce to one = a deity complex that many Reviewers have. Synonymously they are saying “We have power and we will crush you”. For this reason their rejection reasons become a moving target. Most of the time this ploy works, but not now. (6) I am a retired United States Air Force officer and we all saw this deity complex in full display in the late 1930’s … Auschwitz occurred and World War II resulted. I saw it up close and personal in Vietnam. I personally saw Quonset huts full of dismembered U.S. heroes. And we see it full grown now here and overseas .. leaving the probability of World War III = high. The clique of long ago App Developers will most likely result in slanderous statements against me. But sometimes an adult must stand and say “ No more!”
1
0
1.2k
Feb ’23
100% Inappropriate Behavior of a App Reviewer
Someone somewhere in Apple Development needs to do something. This just cannot be allowed to continue. This has been reported by many others before me .. but nothing changes. What their Reviewers do borders on Assault which is a Crime. How much longer? The very capable folk such as Quinn are tarnished by working along side some of the Reviewers. I truly feel sorry for Quinn. Submitted my Monster Paddle Pong App that operates on Apple TV and iPad with a Game Controller.  SO the Tester uploads my App to their iPad and starts poking their finger all over the screen .. and NOTHING happens.  Maybe their reading skills aren’t ample because that Game Controller requirement is delineated in sentence #1.  Promotional Text: Monster Paddle Pong is FUN! to play on a iPad + Apple TV with a Extended Game Controller. Match wits with your skill to react quickly. See the Description for more info. Description Text: Monster Paddle Pong is FUN! to play on a iPad or Apple TV with a Game Controller. It mischievously matches wits with your skill to react quickly. It's 100% free, so give it a GO!  Pressing the Right Shoulder Button starts the Game and causes the Dinossaur Ball to start moving .. and unless the Ball is moving the Monster Paddle will not move. As a matter of fact, until this Right Shoulder Button is first pressed, only the Left Shoulder Button works (described below). This makes sense because after all what’s so hard in hitting a stationary target? Right? Use your Game Controller’s A, B, X, Y buttons & the Joysticks to move the Monster Paddle and hit the moving Dinossaur Ball. If you’re successful then your Score in the upper right corner advances. If instead your Monster Paddle hits one of the 4 Walls, your score decreases by 1. All this is graphically depicted in the About Scene which can be accessed by pressing your Controller’s Left Shoulder Button once. BTW, press this Left Shoulder a 2nd time, and you will see my Credits Scene. I don’t want to get too detailed here because a big part of FUN! is the thrill of Discovering. So, feel free to DISCOVER, most notably pressing all the buttons on your Controller to see the MAGIC! each of them makes happen.
9
0
1.6k
Feb ’23
Cannot add a iOS Distribution Certificate to my Project or Target?
Cannot add a iOS Distribution Certificate to my Project or Target? During the Submission for Review process, it states I should choose a Build (for Distribution) and I need to do the above add before I can do that. Here is a screen shot of my Certificates set in my Developer Account: Here is the screen shot when I double-click on the iOS Distribution Certificate above: Here is a screen shot of that Certificate in the Finder: Yet in spite of all the above evidence, here is a screen shot of my Target for both my iOS and tvOS Project: So, please provide some hints because this is the only step left before I finally submit my App to the App store.
3
0
1.8k
Feb ’23
GameScene’s didBegin is not called?
GameScene’s didBegin is not called? I have read a high volume of solutions here and many, many other Sites and I cannot figure out why? What am I doing wrong? Here are my relevant 2  Code Snippets: Within GameViewController, this function is called every time I show the CGScene: var noCollision: UInt32 = 00000000,     noContact: UInt32 = 00000000 func addGamePiecesToScene(toScene: SKScene) {                // thisSceneName is set before we're called     if thisSceneName == "GameScene" {         /*             BACKGROUND         */         // GameScene.sks file loads this for us, but         // we still need myRoom to set the data below:         myRoom = SKSpriteNode(imageNamed: roomImg)         myRoom.name = "room"         myRoom.zPosition = 0         myRoom.size = CGSize(width: roomWidth, height: roomHeight)         myRoom.physicsBody = SKPhysicsBody(rectangleOf: myRoom.size)         myRoom.physicsBody?.categoryBitMask    = roomCategory         myRoom.physicsBody?.collisionBitMask   = noCollision         myRoom.physicsBody?.contactTestBitMask = noContact              /*             MAIN Game Pieces         */         myPaddle = SKSpriteNode(imageNamed: paddleImg)         myPaddle.name = "paddle"         myPaddle.zPosition = 3         myPaddle.size = CGSize(width: paddleWidth, height: paddleHeight)         myPaddle.position = CGPoint(x: paddlePosX, y: paddlePosY)   // = original or moved         myPaddle.physicsBody = SKPhysicsBody(rectangleOf: myPaddle.size)         myPaddle.physicsBody?.categoryBitMask    = paddleCategory         myPaddle.physicsBody?.collisionBitMask   = roomCategory | ballCategory         myPaddle.physicsBody?.contactTestBitMask = roomCategory | ballCategory         myPaddle.physicsBody!.affectedByGravity = false         myPaddle.physicsBody!.isDynamic = true         toScene.addChild(myPaddle)         //         myBall = SKSpriteNode(imageNamed: ballImg)         myBall.name = "ball"         myBall.zPosition = 4         myBall.size = CGSize(width: ballWidth, height: ballHeight)         myBall.position = CGPoint(x: ballPosX, y: ballPosY)   // = original or moved         myBall.physicsBody = SKPhysicsBody(rectangleOf: myBall.size)         myBall.physicsBody?.categoryBitMask    = ballCategory         myBall.physicsBody?.collisionBitMask   = roomCategory         myBall.physicsBody?.contactTestBitMask = roomCategory         myBall.physicsBody!.affectedByGravity = false         myBall.physicsBody!.isDynamic = true         myBall.physicsBody!.usesPreciseCollisionDetection = true         toScene.addChild(myBall)         /*             EXTRA Game Pieces = bird, rock, trees + tower are loaded by the .sks File         */     }   // if thisSceneName == "GameScene"       }   // addGamePiecesToScene Within my GameScene is the cited didBegin function: func didBegin(_ contact: SKPhysicsContact) {     print("didBegin")   // never shows in Console                              // Respond to an object hitting other objects based on their names                  let bodyAName = contact.bodyA.node?.name     let bodyBName = contact.bodyB.node?.name     // N.B. – according to Apple docs,     //        there is no guarantee which object is bodyA and which is bodyB     let paddleHitWall = ((bodyBName == myPaddle.name) && (bodyAName == myRoom.name))  ||                         ((bodyAName == myPaddle.name) && (bodyBName == myRoom.name))     let ballHitWall   = ((bodyBName == myBall.name)   && (bodyAName == myRoom.name))  ||                         ((bodyAName == myBall.name)   && (bodyBName == myRoom.name))     let paddleHitBall = ((bodyBName == myPaddle.name) && (bodyAName == myBall.name))  ||                         ((bodyAName == myPaddle.name) && (bodyBName == myBall.name))       if paddleHitWall {         ouch()         movePaddle(dx: -dPaddleX, dy: -dPaddleY)         print("paddle hit Wall")    }    else if ballHitWall {         moveBall(dx: -dBallX, dy: -dBallY)         print("ball hit Wall")    }    else if paddleHitBall {         attaBoy()         moveBall(dx: -dBallX, dy: -dBallY)         print("paddle hit ball")    } }   // didBegin What in the above 2 Code Snippets is wrong and, when corrected, didBegin is once again called?
2
0
625
Feb ’23