justifun's Forum Posts

  • itch.io

    Itch.io is a new storefront for selling your indie games.

    Its been around for a while but has been maturing nicely over the past few months.

    With options like choosing set prices, or pay what you want.

    Allows users to pay via paypal / amazon payments

    Creating game pages is free, they only take 10% of all sales as their fee.

    More Details on the FAQ

    itch.io/about/faq

    Disclaimer: I am just a fan, and no way associated with itch.io

    Tagged:

  • Is it possible to select an object in the game while running the debugger from the game window directly and not just from the list on the left?

    For example, if you had 100 bullets flying around, and you wanted to pause and select just one of them to see its details?

  • Answer A) On keyboard press UP - set player animation to "walk up"

    On keyboard press Down - set player animation to "walk down"

    etc.

    Answer B)When your game triggers your dialogue event eg: when the player goes up to a NPC and presses a button to talk, you would simply use

    Player - (8 direction - set enabled = false)

    this disables all input control on the 8 direction movement on the player until you call another action (like when he's done talking to the NPC - to enable it again.

    Player - (8 direction - set enabled = True)

  • You are going to want to do some searching on "Lerp" which is a math concept that allows you to move an object over time with a nice start/end speedup/slowdown effect

    but basically it will be

    On "DestinationObject" clicked ->

    (Sub event)Every Tick -> "object that needs to move" set position to

    X = Lerp ( "object that needs to move".X , DestinationObject.X , 0.5*dt)

    Y = Lerp ( "object that needs to move".Y , DestinationObject.Y , 0.5*dt)

    If you play with the value 0.5*dt you can make it faster/slower - eg: try 0.3 or 0.7

  • The biggest error people seem to miss when making a tutorial is explaining "Why" you are doing what you are doing at each step.

    Most stop short at .

    "Press this button, use this number, put this here"

    Every step should be explained why its being done, and how it could apply in other circumstances.

  • In the gamepad object actions, you can specify getting values from the Left or Right Thumbstick.

    So.

    On Left Stick X < 0 -> move player left

    On Right Stick X > 0 -> shoot right

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Move your "subtract 1 from health" action down to the section that has "every 3 seconds"

    Right now its happening "every tick" so that's why its random why sometimes its taking 1 heart and sometimes more.

  • Construct is the perfect game engine for a new developer who wants to make something easy and quick. You've come to the right place.

    For simplicity sake, stick with a more Top Down view like in Dungeons of Dredmore.

    All you need to do to the tile artwork once you make it, is to change where the collision box is. Instead of drawing a box around the entire shape of the sprite for the wall tiles, you put it where the base of the box would be only. This way your player will collide with them appropriately.

    There's 2 plugins that can help with the zsorting (which objects appear behind or infront of other objects, eg: player walking behind wall tiles.

    Zsorter

    scirra.com/forum/plugin-isometric-z-ordering-based-on-y_topic46247.html

    or rex_Zsorter

    dl.dropboxusercontent.com/u/5779181/C2Repo/Zip/plugins/rex_zsorter.7z

    they are both similar, pick the one that makes more sense to you when you check them out.

  • Each tile has to be placed in a equal sized square. When C2 imports the strip, it simply divides by the number of columns/rows you specify equally.

  • Here's a starting template i've been working on for spawning players that will help a bit

    dl.dropboxusercontent.com/u/403350/SpawnPlayerExample3.capx

    But you are on the right track for wanting to get things setup cleanly right from the beginning so you dont have to re code things over and over.

    making use of functions will help repeat tasks with only having to code them once.

    What i've done in this example. is Created a function that spawns a player. I then assign a unique ID or name to the newly created player eg: "player 1", and you can also set specific starting values for their health etc.

    for example

    on object touched "start" - Function Call "Spawn Player"

    you can also add arguments if you want to spawn a player with different variables etc, like more health.

    eg: on object touched "start" - function call "Spawn Player" (100)

    In the function itself you would setup what each of those unique arguments would be eg: argument1 = max health, argument 2 = max damage, argument 3= lives etc.

    Then anytime you need a new character to spawn you would use.

    on object touched "start" - function call "Spawn Player" (100)(40)(3)

    The function itself would look like this...

    Function on "Spawn Player"

    -> create object "PlayerObject"

    -> PlayerObject -Set Health to Function.Param(0)

    -> PlayerObject Set Damage to Function.Param(1)

    etc.

    The same idea can be applied to dealing damage however it occurs.

    Create a function called "DealDamage"

    -> Subtract Function.Param(0) from Player.health

    Now where you would have the event that occurs when a player collides with the lava or an enemy for example.

    You can also add an argument that would specify what type of damage they received, if you want to have multiple different amounts based on who hit who, or what hit what.

    eg:

    in the function called "DealDamage"

    If Function.Param(0) = "lava"

    -> Subtract 10 from Player.health

    If Function. Param (0) = "enemy"

    -> Subtract 20 from Player.health

    So when you call the function On Function Call "Deal Damage" (lava)

    it would know to deal the amount of damage according to how much damage lava does. This is also helpful that all of your variables are in one place to find later when you want to tweak them.

    You can use an argument as well to specify a specific amount of damage taken.

    eg:

    Subtract Function.Param(0) from Player.health

    Player On collision with "enemy" Call Function "Deal Damage" (20)

    See if you can apply these ideas to what you want to do, and fire back any questions you may have and i'll do my best to answer them.

    cheers!

  • I much prefer animating with spine, its way more intuitive for me. Spriter is a pain in the butt for me to use.

  • One way to approach it is to separate out each animation to play only when a specific set of events is true.

    eg: play the crouch walk animation if the down and left keyboard buttons are pressed.

    which would look like

    keyboard On Left Arrow is Down-> play crouch walk animation

    keyboard On Down Arrow is Down

    repeat this for each and every type of unique movement you want the player to do.

    To transition between them nicely, you will also want to make use of the "on animation crouch walk" is finished events.

    So after you are done crouch walking you might trigger the play "stand up" animation so it looks nicer and doesn't just POP into place.

    so that would look like

    PlayerSprite On Animation "crouch walk" finished -> PlayerSprite set animation to "standup" (play from beginning).

    If you find that animations are interrupting each other....

    For example. if you player is playing a falling animation and you press left or right and that makes him start walking again in the air. you can make use of the "is playing animation" event. and then invert it and make it a "is NOT playing" event condition

    eg:

    keyboard on key down "Left"

    (a second condition) PlayerSprite is NOT playing animation "falling" -> play "walk left" animation

    this way the "walk left" animation will only play provided the "falling" animation isnt currently playing.

  • flyovergames is working on a spine plugin! It can be found here: http://www.github.com/flyover/spine-c2-plugin

    Current Features:

    Importing a character rigged and animated in Spine

    FFD Mesh support

    Animation clip switching

    Skin Switching

    Speed Playback Control

    *NEW* Stepping Control

    *NEW* Event Timeline Support

    *NEW* Still image representation in editor view

    How to use----------------------------------------------------------------------------------------------------------------

    1) Add the spine plugin to your Plugins directory and restart Construct, then add it to your layout.

    2) Export your animation from spine using the Export -> Json feature in spine, and make sure to check the box "Create Atlas"

    3) In construct, right click the "Files" folder in the projects window and click import files

    4) Import the 3 files that you just exported from Spine (ex: raptor.atlas, raptor.json, raptor.png)

    5) Select the spine plugin object from the objects window, or click it on your layout and in the properties window set the following:

    Spine Data URL: raptor.json

    Atlas Data URL: raptor.atlas

    Skin Key: (The name of the skin you want to start with) eg: default

    Anim Key: (The name of the default animation you want to play): eg: walk

    6) Press play in construct and see your animation in action.

    Try pinning the spine plugin object to a invisible sprite that has all of your player movement behaviors on it to make it move around.

    Tip: If you want an animation to play from frame zero when you switch to it through actions, make sure after the "Set Anim" action, to add a "Set Time (0)" action as well.

    Please consider using the donate link on the plugin page if you've found this plugin useful!

  • storage.cocoonjsservice.ludei.com/CocoonJSLauncher.apk

    I couldnt get it to load though on the ouya

    it starts then crashes.