dop2000's Forum Posts

  • You can't really protect your game from hackers, the best you can do is make their job harder.

    I'll quote my answer from a similar post:

    You can keep your score hashed at all times. Check if the hash is correct before adding points or submitting the score.

    Or keep track of the score in 2 different variables - one in clear form and another in some encrypted/obscure format. (Multiplied by 3.14, converted to text, written backwards etc.)

    Display the clear variable in your game and don't check its integrity, allow the hacker to change it. But when it's time to submit the highscore, de-crypt the other variable and upload it.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • There are several ways to do this.

    You can keep track of Touch IDs - check when each one starts and ends, but this is probably the hardest method.

    You can use "Nth touch" events and expressions Touch.***At(). For example if two fingers are touching the screen, Touch.XAt(0) will return X for the first touch and Touch.XAt(1) for the second.

    And finally, you can place two big invisible sprites, one on the left side of the screen and one on the right. And then simply check "Is touching object LeftSprite -> Run", "Is touching object RightSprite -> Jump".

  • The common trick is to use an invisible rectangular sprite with Platform behavior and simple collision polygon. You need to remove Platform behavior from the character spite and pin it to that invisible sprite.

  • You can try a combination of Pin+Pathfinding.

    Pin an invisible sprite to your character (with "rope" setting), which will act as a target for Pathfinding. And then use Pathfinding to move the actual party member to that sprite position.

  • They can work together if you are not using them both at the same time, or if you are not dragging your paddle over any solid sprites.

    You can add another event - if paddle is dragging, disable 8direction, else enable 8direction

  • It's because the paddle has 8-Direction behavior, and objects with 8-Direction behavior can't overlap Solid objects. It doesn't actually disappear, it jumps to the left or right edge of the wall.

    If you want to limit the movement of your paddle, you should use an event like this:

    Paddle is dragging -> Paddle set Y to clamp(self.y, 100, 600)

  • You do not have permission to view this post

  • Are you talking about the persistent storage?

    Just search for Local Storage tutorials (they are the same for C2 and C3). For example:

    scirra.com/tutorials/1461/how-to-use-the-localstorage-plugin

    scirra.com/tutorials/4877/the-basic-of-local-storage-setting-getting-and-displaying-value

  • Here is a basic example. You might need to tweak it for your game of course.

    dropbox.com/s/dv2cnqahvd8m9oq/ThumbstickHorizontal.capx

  • If you add "ID" variable to the object, you can use it to pick object instances. You can also pick by UID, IID and several dozens of other criteria.

  • You should be able to optimize at least some of the code.

    For example, if you place each Text object close to its sprite on the layout, you can do this:

    For each text 
     Pick nearest SpriteFamily -> Pin Text to SpriteFamily
    

    Or you can add an instance variable PinToUID to the Text (or TextFamily), and manually specify which sprite each text should be pinned to. Then your event will look like this:

    For each text
     Pick SpriteFamily by unique ID=Text.PinToUID -> Pin text to SpriteFamily
    

    .

    It could be even easier if you use an invisible BaseSprite as a placeholder for each group of objects.

    For each BaseSprite:
     SpriteFamily is overlapping BaseSprite -> Pin SpriteFamily to BaseSprite
     Text is overlapping BaseSprite -> Pin Text to BaseSprite
    
    
  • It's all about picking. You can first pick enemies by distance. If your event picked multiple enemies at that distance, then you pick one enemy from them by some other criteria - for example, the enemy with lowest health, or simply random. And then fight that enemy.

    RadYan is right - you have to be more specific.

  • No, sorry, you are right and I was wrong.. Wow, I always thought IID depends on the picked scope.

  • (removed, I was wrong)