oosyrag's Forum Posts

  • Mouse/On clicked object - destroy object.

    You should try following and completing the beginners tutorials before trying to make your own game.

    construct.net/en/tutorials/beginners-guide-construct-1

    construct.net/en/tutorials/platformer-game-2329

  • I don't think 3d means what you think it means... But anyways see if this thread has what you are looking for. construct.net/en/forum/construct-2/beginners-questions-19/endless-loop-scrolling-wrap-107617

  • On event -> System - create sprite at mouse.x, mouse.y.

  • You probably want to use tween instead of lerp.

    The final value in lerp is a percentage point between a and b. If a and b don't change and you use a fixed number for the lerp value, it's going to give you a fixed value in return.

    Example: set position lerp(currentposition,targetposition,0.5) means halfway to the target position. The next tick it is run, go halfway again. Note the second time it is smaller, since you're closer. The amount will get less and less, and you never actually get to the target, only halfway closer each tick.

    In your case, lerp(80, 98, 0.1) means 10% of the way from 80 to 98, which is 81.8. If nothing in the inputs change, it will always be 81.8.

  • Use a global variable. They persist across layouts.

  • I'm afraid I won't be much help here, I use Construct for fun. Here's a resource I found that might be of use. It addresses a few of your questions.

    google.com/amp/s/assets.codementor.io/ultimate-guide-for-hiring-freelance-developers-1o92072302.html

  • Appreciate the advice!

    The concept is a mix between the old arcade game Rampart by Atari and 2d artillery type games, except slinging varying types of missiles through space, also with a variety of obstacles that affect the projectiles on the field.

    Although mostly I just like fooling around making different types of game mechanics. I've been loitering around here for years and have yet to actually finish any projects haha. Do not expect this to be different.

  • Well originally I had thought that the built in speed limit was causing issues resulting in unnatural paths if either the x or y vectors were already near or at the speed limit when attempting a turn, and prevent acceleration on the other axis when setting the vectors manually.

    Eventually I was aiming for variable speed limits to allow for slingshotting and more responsive obstacle avoidance. But then when I tried to add a simple clamp for the max speed I already ran into more issues.

    Seems like (I think?) clamping the vector with the sin and cos functions were not symmetrical, causing irregularities. Guess that's why all the articles I read normalize the vector first.

    Regarding gravity and decay of orbit, that could be done with adding either an overall deceleration force, or a local one when near the target.

    Thanks for the help!

  • That is a boolean variable.

    You can find it as a condition under system - is boolean set

  • I began an attempt at implementing steering vectors with the 8direction behavior, but seem to have run into a wall early on. I would expect that the sprite orbits around the target when approaching at an angle, but it intermittently cuts most (but not all) of its horizontal or vertical velocity upon passing the target, but only sometimes... Am I approaching this wrong in the following?

    + System: Every tick

    -> Sprite: Set 8Direction vector X to clamp(-1×abs(Self.8Direction.Maxspeed×cos(angle(Self.X,Self.Y,Target.X,Target.Y))),Self.8Direction.VectorX+Self.8Direction.Acceleration×dt×cos(angle(Self.X,Self.Y,Target.X,Target.Y)),abs(Self.8Direction.Maxspeed×cos(angle(Self.X,Self.Y,Target.X,Target.Y))))

    -> Sprite: Set 8Direction vector Y to clamp(-1×abs(Self.8Direction.Maxspeed×sin(angle(Self.X,Self.Y,Target.X,Target.Y))),Self.8Direction.VectorY+Self.8Direction.Acceleration×dt×sin(angle(Self.X,Self.Y,Target.X,Target.Y)),abs(Self.8Direction.Maxspeed×sin(angle(Self.X,Self.Y,Target.X,Target.Y))))

    dropbox.com/s/yyn5ab25aoq4vfb/steering.c3p

  • All events are 'if' block. There's generally no need to specify else.

    You can add an system condition else, which states that the event will only run if the previous event did not run in and given tick. Also events run top to bottom. The whole sheet is processed every tick, so if your idle animation event is above your other two, it can normally run every tick and will get overwritten by the other animations when those events activate.

    Else is normally used in cases such as toggles, where one event says if x, then change to y, and the following event says if y, then change to x. Since there will both be true, the toggle can never change to y. This can be solved with the else condition.

    You can use JavaScript directly in Construct 3, although in my opinion that kind of defeats the whole point of C3 in the first place. One of the main selling points for me was how logically intuitive the event system was.

  • If the original json wasn't a construct array, you won't be able to load it directly with the array load action. You can definitely parse it with some loops, though I'll need to take a look at the project to see exactly how to do it. Can check it out later today.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Oh right, if you want a slider to aim rather than a direct target, lerp will work much better.

  • Set angle to clamp(lowerbound,angle(self.x,self.y,target.x,target.y),upperbound)

    IIRC, angle() returns a value between -180 and 180 with 0 facing right, so take that into account when setting your lower and upper bounds.

  • Normal fonts are vectors, sprite fonts are bitmaps. Normal fonts for Chinese are usually procedurally generated, I'm guessing.

    You can definitely generate Chinese character sprite fonts from a normal font, but loading and referencing such a large file into memory could cause problems.

    There are hacky type solutions out there that only load subsets of the font when required, but I have no idea how to go about implementing such a thing.

    The bigger problem is that no one wants to design a nice looking diablo style font in Chinese for some 20,000 characters (actually 50,000, but most of those never get used).