Halfgeek's Forum Posts

  • caad8user

    In your specific case, you need two variables. Player_HP and Player_HPMax. Both starts at 100.

    Set HP bar sprite width to ((Player_HP / Player_HPMax) * 100).

    When you upgrade, raise the Player_HPMax to 300. So if the player health is 100/300, the bar width is 1/3 of 100 pixels only. Until you raise the Player_HP.

    You can also apply that to enemies or npcs too if you want to scale their health but keep the bar the same width max.

    Hope that helps you.

  • megatronx

    Your desire for better pathfinding or smarter pathfinding is in fact seeking the holygrail of RTS AI. Many many big-time RTS still struggle with smart pathfinding. What they achieve, it's all logic from "hacks and work-arounds", thinking outside the box.

    I doubt we will ever get a smart pathfind AI out of the box. It's gonna require a lot of logic.

  • I don't mind work arounds or hacks to get things to work, but I do mind some major technical limitations.

    I'd be happy with some memory controls, load sprites into vram, unload from vram, giving the developer more control (optional) over this is required for very large games to run well on weaker hardware.

    The biggest limitation I see currently is single-thread logic. JS/HTML5 has higher CPU overhead and we're limited to 1 thread when modern CPUs have 4-8 is quite backwards. Yes, multi-thread programming is very difficult. But other game engines have MT functional, even Unity these days are moving to DX12 and multi-thread native.

  • You can do a On Create Blast Wave check.

    Followed by Pick All Enemies by Evaluate.

    Then evaluate for a distance check.

    distance(Player.X, Player.Y, Enemies.X, Enemies.Y) < 400 (or whatever pixels distance you need).

    Set Enemy Angle to whatever angle you desire. If its away from the player, you can set it to Player.Angle - 180. You can add random elements into it as well.

    The above is run whenever a blast wave is created.

  • Have you tried using the Pick All Instances? Then add Is Overlap below it.

    Pick All Instance Monster

    Is Monster Overlapping Square = > Zoom in

    Alternately, you can do something like a counter with a variable "MonsterOnSquare=0", then have it +1 each time a Monster overlaps or collides with square. So if there's 6 monsters, you can do a command that checks:

    MonsterOnSquare = 6 (or greater) & Player is Overlap Square => Zoom in.

    You'll need a -1 to that variable everytime a monster is off the square or dies. etc.

    It's a little outside the box thinking. Hope it helps.

  • The way you describe it, walls or doors that obstruct other sprites that LoS is checking for, ie. Monster or Loot.

    So have the normal LOS for Monster/Loot.

    Have separate distance/angle check for Walls or Doors.

    Does that make sense?

  • Put the sprites that you want to spawn into the same container.

    Then do a For Each Spire X, set position to Sprite Y (image point).

    So whenever you fire that weapon, just create the first sprite of that container, the rest will spawn immediately and be positioned in relation to the others.

    Hope that helps!

  • You can add a separate distance and angle comparison check to bypass those restrictions.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I also found this: http://aurelregard.tumblr.com/

    A very good read. I wish Aurel the best in his future endeavors!

  • And I just don't know why because C2 is able to make any 2D games. It's powerful and we have good selling platforms that facilitates for all of us. Steam is a mother for indie devs and a huge "self-publishing-promoting-InsertMore" with almost any need to pay. I don't understand why. It should be treated as a more importantly thing because why would someone care about invest so much time and effort to complete a good and polished game for PC if, in the end, scirra doesn't fully support the integration with the biggest selling platform for PC?

    That has been a concern of mine for awhile as well as many others.

    But it isn't totally broke yet. We just have to jump a lot of hoops to get it to function on Steam.

  • Some of you guys have launched any game on steam? If so which compiler did you use and how is it's performance?

    I've got a release on Steam with C2, NW 10.5, nobody has complaint about lack of smoothness. It runs 60 fps locked, even on pretty old hardware. Most of the complaints are due to game-balance (too hard mostly).

    C2 is perfectly capable of running a very fast paced arcade racer smoothly:

    http://store.steampowered.com/app/332250/

    C2 is also perfectly capable of running a very complex game smoothly:

    http://steamcommunity.com/sharedfiles/f ... =513945382

    The most annoying thing for PC build is in fact we still have to rely on NW 10.5 because Steam GreenWorks doesn't get updated.

  • If C3 is multi-threaded... awww yeah, one can wish!

  • But it isn't, evidently, as you already mention. HTML5 games just doesn't cut it (yet?) when it comes to a "smooth" experience, native exporters feel more "snappy" and responsive.

    Only for a few of the broken Chromium versions. NW 10.5 is very smooth and snappy.

    Did you guys hear about 2K Games's Bioshock on iOS? It was removed. The recent iOS update broke the game. O_o

    So it's not just us little guys that get screwed over for problems created by Apple or Google.

  • For each of the sprite (spine, torso, neck) etc, have an event that checks its current angle in relation to the body part sprite that its connected to.

    It's a case of if, else logic.

    ie.

    If Neck.Angle > Spine.Angle + 45 => Set Neck.Angle to Spine.Angle + 45.

    Thus, the Neck can never rotate more than 45 degrees in relation to the spine. It will snap to 45 degrees relative to the spine whenever you go beyond. Do to the same for the Spine.Angle -45 or whichever way in reverse and it will work.

    Hope that helps!

  • This is a case of using the pick instance on evaluate, then you can add an instance variable to your family of targets, then filter them out with the pick usage.

    ie. Pick All Target when Target.IsPriority=1 will only select any target which has its instance variable "IsPriority" = to 1. which you can set base on other calculations.

    Hope that helps!