logo hyperPad Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Login
    1. Home
    2. Hamed
    • Profile
    • Following 1
    • Followers 11
    • Topics 6
    • Posts 443
    • Best 71
    • Controversial 0
    • Groups 2

    Hamed

    @Hamed

    Admin

    111
    Reputation
    988
    Profile views
    443
    Posts
    11
    Followers
    1
    Following
    Joined Last Online

    Hamed Unfollow Follow
    hyperPad Admin

    Best posts made by Hamed

    • Email links will last 365 days rather than 7 days

      When you share a project through email, links will last 365 days (1 year) rather than 7 days. Sometimes it takes me a little over that time to get to a project that you guys send us, and they're always expiring on me. I'm sure that you guys have this issue too... So I made it longer!

      The email will still say 7 days until the next update, but it will actually stick around for 365 days.

      posted in Announcements
      HamedH
      Hamed
    • RE: Can’t upvote

      Sorry. Should be working now.

      posted in Fixed
      HamedH
      Hamed
    • RE: .tap file - HOW TO INSPECT and DISSECT... then re-open?

      I have finally finished the tool to clean up bloated projects. We're initially going to add a button to do this in the project options, and we'll do it automatically when we see that its safe to do so. For now, anyone that wants their project cleaned up, can send the project to contact@hyperpad.com and I'll email you back your cleaned project.

      posted in Help and Support
      HamedH
      Hamed
    • RE: Get/Set Scene Background and Colour

      Adding it to the next update

      posted in Comments & Feedback
      HamedH
      Hamed
    • RE: Behavior Suggestion: Object Refrence

      Guys, we know! We needed this feature yesterday. All I can say right now is soon.

      posted in Comments & Feedback
      HamedH
      Hamed
    • RE: Set and return absolute position of music tracks

      @bosswave said in Set and return absolute position of music tracks:

      n a music track’s absolute position from the Play Music behavior?
      Mostly, I believe this would be great for slo-mo segments. I know Set Tim

      Get Music settings was a bug. Fixed in the latest update that is being released soon!

      posted in Comments & Feedback
      HamedH
      Hamed
    • RE: Rounding Behaviour has a bug, or division by 1000x does.

      Right now, unfortunately, is @Jack8680 way of doing it. I'll add number of decimal places to Round number behaviour.

      posted in Bug Reports
      HamedH
      Hamed
    • RE: Empty object?

      Empty objects that are invisible are better, however, empty objects that are visible are worse for performance than a graphic.

      posted in Help and Support
      HamedH
      Hamed
    • RE: Grouping behaviors on the U.I Editor

      It got removed because people kept “losing” their behaviours. But yes grouping it in this way is cool. What we want to do is create little functions that behave like JavaScript promises. Where you create a standalone function where it has a “resolve” behaviour to output when its done. And then make these functions shareable so you can import them across projects and send them to people.

      posted in Comments & Feedback
      HamedH
      Hamed
    • RE: Arrays Don't like Negative Numbers

      A few things.

      1. @Deeeds don't be disrespectful. I sent you a private message before about this. As you can see, everyone is just trying to help and you don't need to shoot them down and berate them. You're coming off as very aggressive and rude.

      2. At this point, our users are way better at using hyperPad than we are and in this public forum, we rely on their help to answer simple questions. Like @Murtaza said, a lot of "bugs" are just user error so it makes sense to troubleshoot the issue with others before myself or @Murtaza can come in and declare it to be a bug.

      3. Don't make assumptions about years of development when just coming into the platform. If you don't like something, let us know and we can have a public discussion of how things can work. Some things may look easy to add, but as most software developers know, NOTHING is ever that easy.

      4. Somethings are indeed broken. We don't know about all of the broken things. When dealing with software with 1000+ features, its easy to forget about certain items and miss some things. We rely on user feedback to find these issues. e.g. I constantly forget about some of the behaviours you guys ask about... because we have so much functionality!

      5. Everyone uses hyperPad differently, so we have to cater to how the majority uses hyperPad and not just you. appreciate our limitations and understand that we can't always cater to an individuals needs.

      In conclusion, relax. We're working on it.

      P.S, I can't re-create your issue... so I declare it not a bug. If you can create a little sample project with as few behaviours as possible, either I or someone on the forum can help troubleshoot it. like @Aidan-Oxley said, its not too hard to share a link onto the forum.

      P.P.S Its really hard to find your issues / feature requests with a huge wall of text. Keep it short and to the point, and you're more likely to hear a quicker response.

      posted in Bug Reports
      HamedH
      Hamed

    Latest posts made by Hamed

    • In App Purchase Tutorial on Exported Projects

      In App purchase swift code for exported projects:

      first add pod 'SwiftyStoreKit' to the list of pods in Podfile in a text editor.

      Then in terminal, run pod install. If you don't have cocoapods installed on your mac, follow the instructions here: https://guides.cocoapods.org/using/getting-started.html

      Replace the contents of HPSwift.swift with the following file

      //
      //  HPSwift.swift
      //  hyperPad-Project
      //
      //  Created by Hamed Saadat on 2019-08-07.
      //
      
      import Foundation
      import SwiftyStoreKit
      
      @objc class HPSwift: NSObject {
          fileprivate var _behaviours: HPBehaviours? = nil
          @objc var behaviours: HPBehaviours? {
              get {
                  return _behaviours
              }
              
              set(behaviours) {
                  _behaviours = behaviours
                  
                  SwiftyStoreKit.completeTransactions(atomically: true) { purchases in
                      for purchase in purchases {
                          switch purchase.transaction.transactionState {
                          case .purchased, .restored:
                              if purchase.needsFinishTransaction {
                                  // Deliver content from server, then:
                                  SwiftyStoreKit.finishTransaction(purchase.transaction)
                              }
                              // Unlock content
                              behaviours?.broadcastValue(purchase.productId as NSString, withKey: "purchaseComplete")
                              
                          case .failed, .purchasing, .deferred:
                              behaviours?.broadcastValue(purchase.productId as NSString, withKey: "purchaseError")
                              break // do nothing
                          @unknown default:
                              break
                          }
                      }
                  }
                  
                  behaviours?.addReceiveKey("restorePurchases", onReceive: { (receiveValue) in
                      SwiftyStoreKit.restorePurchases(atomically: true) { results in
                          if results.restoreFailedPurchases.count > 0 {
                              behaviours?.broadcastValue("Restore Failed: \(results.restoreFailedPurchases)" as NSString, withKey: "purchaseError")
                          }
                          else if results.restoredPurchases.count > 0 {
                              results.restoredPurchases.forEach { (purchase) in
                                  behaviours?.broadcastValue(purchase.productId as NSString, withKey: "purchaseComplete")
                              }
                          }
                          else {
                              print("Nothing to Restore")
                          }
                      }
                  })
                  
                  /*
                   Add Behaviour functionality here
                  */
                  
                  behaviours?.addReceiveKey("purchase", onReceive: { (recieveValue) in
                       // handle in app purchase logic! //
                          SwiftyStoreKit.purchaseProduct("INSERT_PURCHASE_IDENTIFIER_HERE_OR_USE_recieveValue", quantity: 1, atomically: true) { result in
                              switch result {
                              case .success(let purchase):
                                  behaviours?.broadcastValue(purchase.productId as NSString, withKey: "purchaseComplete")
                              case .error(let error):
                                  var message = ""
                                  switch error.code {
                                  case .unknown: message = "Unknown error. Please contact support"
                                  case .clientInvalid: message = "Not allowed to make the payment"
                                  case .paymentCancelled: break
                                  case .paymentInvalid: message = "The purchase identifier was invalid"
                                  case .paymentNotAllowed: message = "The device is not allowed to make the payment"
                                  case .storeProductNotAvailable: message = "The product is not available in the current storefront"
                                  case .cloudServicePermissionDenied: message = "Access to cloud service information is not allowed"
                                  case .cloudServiceNetworkConnectionFailed: message = "Could not connect to the network"
                                  case .cloudServiceRevoked: message = "User has revoked permission to use this cloud service"
                                  default: message = ((error as NSError).localizedDescription)
                                  }
                                  behaviours?.broadcastValue(message as NSString, withKey: "purchaseFailed")
                              }
                          }
                  })
              }
          }
          
      }
      

      Some key points:

      behaviours?.addReceiveKey("restorePurchases", onReceive: { (receiveValue) in
                      // add your code here
                  })
      

      Will get triggered when you trigger a broadcast behaviour with the restorePurchases key

      behaviours?.broadcastValue(purchase.productId as NSString, withKey: "purchaseComplete")

      Will trigger a receive message behaviour with the purchaseComplete key

      INSERT_PURCHASE_IDENTIFIER_HERE_OR_USE_recieveValue can be replaced with either the identifier of your purchase from AppStoreConnect. OR the receiveValue parameter. If you use receiveValue make sure in your broadcast behaviour, you're sending the identifier from App Store Connect.

      posted in Help and Support
      HamedH
      Hamed
    • RE: Apple is asking me some questions about my game

      @SplitMindGaming answer no to the rest

      posted in Help and Support
      HamedH
      Hamed
    • RE: Apple is asking me some questions about my game

      Answer Yes

      Pretty much just usage data, diagnostics, and crash data. Even though you don't actively use those, we do have 3rd party libraries that are included part of the build. (we're not tracking anything but firebase analytics is available to use if you want it)

      posted in Help and Support
      HamedH
      Hamed
    • RE: Cant Open Xcode Project

      @SplitMindGaming those are warnings and can be ignored. Can you screenshot filtering by red errors?

      Also are you using an M1 Machine?

      posted in Help and Support
      HamedH
      Hamed
    • RE: Problem testing game in viewer app

      @CreativeCloud can you try logging out and logging back in?

      posted in Help and Support
      HamedH
      Hamed
    • RE: Plugins in hyperPad! (UNOFFICIAL)

      @RobinsonX this is wild good job

      posted in WIP and Showcase
      HamedH
      Hamed
    • RE: Bad Update!

      @Dave007 ASAP! There are a bunch of bugs that were brought up on the discord server that we're going through as well

      posted in Bug Reports
      HamedH
      Hamed
    • RE: 1.26 Scale breaks physics

      @TutorialDoctor this is intentional. This is because hyperPad doesn't have a soft body physics engine i.e malleable shapes.

      What is actually happening when you scale an object is that it will destroy the body and re-creates it when its done scaling.

      When you destroy a body, the joints go with it :(

      posted in Bug Reports
      HamedH
      Hamed
    • RE: 1.26 Now Available on the App Store

      @Dave007 we will be submitting a hotfix update as soon as possible.

      posted in Announcements
      HamedH
      Hamed
    • RE: Set and return absolute position of music tracks

      @bosswave said in Set and return absolute position of music tracks:

      n a music track’s absolute position from the Play Music behavior?
      Mostly, I believe this would be great for slo-mo segments. I know Set Tim

      Get Music settings was a bug. Fixed in the latest update that is being released soon!

      posted in Comments & Feedback
      HamedH
      Hamed