oosyrag's Forum Posts

  • If it comes down to that, you can, but it will get quite a bit more complicated.

    You'll be using regex to break apart the contents of the existing text. Because sprite fonts should have a fixed width, you should be able to find out how many characters are before and after your insertion point. With that, you'll be able to use regex replace to insert characters in the middle.

    Positioning the insertion point should be relatively simple, for example if you were using arrow keys it would just move left and right one character width per button press.

    I don't have time to put it together myself right now, but I can imagine how it might work.

  • You're on the right track. If you want to change it, use variables instead of fixed numbers in place of A and B, you can change those variables in any event.

  • OK that's fair. But it is also true that you actually CAN export to every platform and people have done so with finished creations, as advertised. What I think is phenomenal is the support you get when the problem is normally what I would feel is out of the scope of construct to begin with.

    Maybe this is an issue of you get what you pay for? It seems you have advanced to the point where you'll need more robust development kit and in that case it really is time to move on, truthfully.

    But as an artist first I haven't found anything I can slam a prototype/concept together faster than in c2, and having that experience in hand before putting the game together in another development environment is worth immeasurably more than the cost.

    For your analogy....

    Think of construct as the tool box needed to build a bike by hand. Intuitive to use. Cheaper than buying machines to manufacture a bike! The method you use to put it together is up to your own creativity. But this way relies on other peoples parts. Some of these parts don't work as well as the others, but construct gives you what you need to put them together anyway. Eventually though, it could make sense to buy a factory to make your own parts and put them together as well. Best be prepared that that comes with it's own set of problems... Otherwise why don't we see every AAA game released on every platform simultaneously bug free?

    Basically just wanted to make the point that the ideal all in one software that works flawlessly with every platform is really not the job of one company, and it might never be.

    In the end, even if you build a flawlessly working bike, a pothole can wreck you.

  • Cool thanks I'll give it another shot. I recall now focusing on it to type was indeed the problem. I don't think I tried having it off screen instead of invisible. Thanks!

  • First thing that comes to mind would be to either create an animation out of it using sprites, or dynamically generate and place text objects that contain one letter each, then you can manipulate them individually.

  • I'm interested in this as well. I explored this briefly a long time without much success, trying to use an invisible textbox and having the spritefont update every tick to whatever was in the textbox, but I don't recall that working.

    I had thought of another idea where when you click the spritefont, it would enable a group of controls where every keyboard key trigger would append itself to the spritefont text when pressed, but that seemed so clunky and inefficient I never actually tried it.

  • Sorry I'm not familiar with Nuclear Throne, but here are some expressions that might be useful to you.

    [quote:rgz7gf0m]clamp(x, lower, upper) - Return lower if x is less than lower, upper if x is greater than upper, else return x.

    distance(x1, y1, x2, y2) - Calculate distance between to points

    In the event where you set the crosshair to your mouse position every tick, add the condition system compare two values: distance(player.x,player.y,mouse.x,mouse.y)<100. This will make it so that once your mouse gets farther than 100 pixels away from the player, the crosshair will stop updating its position. Probably not the effect you are looking for though...

    Clamping your crosshair position to player x and player y +-100 would result in a square range around your player, also probably not what you are looking for...

    Quick workaround I can think of is to use both together by using two actions every update tick - move the crosshair to player.x, player.y, and then move it at angle towards your mouse, amount being distance from player to mouse clamped at maximum 100. It looks like this:

    Every Tick | Move crosshair to player.x, player.y
               | Move crosshair clamp(distance(player.x,player.y,mouse.x,mouse.y),0,100)
                 pixels towards angle(player.x,player.y,mouse.x,mouse.y) degrees[/code:rgz7gf0m]
    
    Unfortunately I have no idea how you plan on setting up controller aiming so this might not work with that! I hope it gives you some ideas to work with though.
  • Maybe you need to set the Origin Point to the center of the turret sprite? Is it in a corner right now?

    How/where are you creating your bullet? It is a little unclear what exactly your problem is from the picture and description. A capx could help in diagnose the problem.

  • Do you need the other sprites you want to pass through have the platform behavior? If you need it just for gravity, you can do similar with the bullet behavior.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • So the characters are NPCs? Try searching for some pathfinding tutorials. If you can have them go to a certain spot this is an extension of that.

    For each NPC, set up a list of preferred machines, and pick one randomly from that list. This represents the choice. This can be modified by variables such as machine popularity.

    When they reach the machine, toggle the machine availability and change the animation of the sprite to represent they are using it.

    Or am I on the wrong track because I seem to have answered completely differently from previous poster. Maybe clarify exactly what you are trying to do?

  • As far as I know, you'll have to do it manually one way or another.

    1. Set collision polygon

    2. Use invisible collision sprites overlapping the visible one.

    3. If your maze is square, it might be fastest to paint/trace over it in a tile map editor and use the tile map for collisions.

  • The free version can only have 4 layers, although you can put as much as you want on those layers.

  • I'm going to chime in that while dicitonary's and variables are mostly interchangeable in terms of function, variables are autofilled when entering expressions and dictionary keys are not. Instance variables are also logically tied to their objects for picking purposes. Local variables are automatically clean up after themselves. All of these together save me immeasurable amounts of time and brainpower (which unfortunately is always in limited supply).

    As for storing data in any significant quantity, I always resort to arrays as they are much more flexible in what you can do with them.

  • 150 updates+ over 5 years of post release development for a one time payment from what amounts to a one man coding army while also maintaining relatively constant community presence and responsive feedback on these forums?

    Not to mention he gave away pretty much full functionality to I'd assume a majority of users who's projects never make it over 100 events.

    I'd say it was well worth it just provide a very low barrier to entry and exposing a large amount of people to programming and thinking through algorithmic logic, but I'm not the one who needs to feed himself with software sales.

    So yeah I believe in what Ashley is doing.

    Besides that, its not like your license, assuming you bought one, ever expires or you'll stop getting free updates. There's nothing stopping you from experiencing/using multiple tools and sticking with what works best for you. In fact I highly recommend exposing yourself to all the tools available to you to be able to properly compare experiences rather than just through general impression based on a software's public forum.

  • I would try simplifying by cutting out the for each and avoiding UID, two common sources of problems. You probably don't need the array either.

    Try using "pick nearest hrrrn to player.x player.y" in place of the "for each hrrnn" underneath the overlap condition. From then on in this event, only that hrrnn will be affected by actions.