oosyrag's Forum Posts

  • Assuming you're using a tilemap.

    The first step is to pick a random point to check if it is valid or not. You'll need to save this point to a instance variables, since if it is valid after checking we'll want to move to that spot.

    First set variables targetx and targety to round(random(layout.width)) and round(random(layout.height)).

    Use system compare two values to check if tile at that location is valid. tilemap.tileat(positiontotilex(self.targetx)),positiontotiley(self.targety)) = valid tile.

    If it is, then set pathfinding move to targetx and targety. Else run the event/function again with a new random target.

  • From my own experiences, I've found updating text objects every tick can cause major slowdowns, especially when more text objects are involved. I would say best practice would be to update the text only when it changes, usually by putting the set text action in the same event that causes the change in the first place.

    If you want to save and simplify the events, containers are perfect for this situation where sets of certain objects are always associated with each other. When picking any of the objects in a container, the associated instances of the other objects in the container are picked at the same time too.

  • An iframe should work.

  • Kiwi Story is a pretty big project! Probably best to mess with the two beginner tutorials more.

    Here's how I dug into it...

    First I was looking for the events that control inputs. The ePlayer event sheet seemed like a good bet so I started there, and indeed there was a "Player Input" group. This group looked like it had various input methods like keyboard and gamepad doing the same thing, calling the player move/turn functions. The functions I found in the next section below, where I could see that movement used the platform behavior, on the Player_Base object. So the Player_Base object is the one with the platform behavior settings. I found under Object Types > Level Objects > Player > Player_Base.

    However when clicking this you might see that all the properties on the left says "No Instances", so we need to find where this object is placed on a layout in the project to set the defaults. You can do this by right clicking the Player_Base object and then "Find all references". The first entry shows that it is on the ObjectBank layout. So open that layout, then you can modify the default platform behavior properties.

    Note that half of the above complexity was digging/searching through the organizational structure of someone else's project, you normally would know where things are set in your own project!

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Are the videos embeddable? Have you tried using the iframes object?

  • Looks fine? Does it work?

  • On event 13, you aren't picking any text objects in the conditions, so the actions apply to all text objects instead.

    You'll need to either have some way to identify the correct text object to set, or set the text at the same time the text object is spawned, which automatically picks it.

    To associate a text object with a sprite object, you can put them both in a container, or upon spawning set an instance variable in the sprite to text.uid (or the other way around). Then you can use the pick by uid condition (Or pick by compare instance variable, if you did it the other way).

    It looks like setting the text when spawning isn't going to work in this case since you want it to update every tick.

  • Try adding a "for each" sprite object condition and see if that resolves your issue.

  • Assuming your scroll speed is a variable...

    You can use the every x seconds system condition to increment it.

    Or you can use a timer behavior on triggered.

    Or you can set it based on score, if that's something you're keeping track of.

  • Zoom out in the layout editor.

    Or just draw it.

  • Check out the Blend Modes example. editor.construct.net

    The one you'll be interested in is Source In. To set up, the mask and the map should be on the same layer, with the force own texture property checked. The mask should be at the bottom of the layer, while the map is on top. The mask has no blending option set, and the map is Source In. The filled in opaque of the mask are what will show, and the transparent areas will not be visible.

    You will move your map sprite object according to how the player moves, scaled to however your minimap scale is compared to your actual layout. Alternatively you might be able to do it with parallax settings on the minimap layer.

  • The simplest way would be to actually have a minimap sprite object that is a zoomed out picture of your actual map, and crop it with blending modes.

    An alternative for really huge maps that might be more efficient is to use a tilemap with single pixel tiles. This could be good in a game where the main map is built from tiles in the first place.

  • Might or might not work depending on your application but it is also an option to have multiple instances of the same array object, or to put your different array objects into a family.

    You'll still need a condition to pick the relevant arrays somehow though, by IID, UID, or instance variable.

  • I put a suggestion in for you which you can add votes to - construct3.ideas.aha.io/ideas/C3-I-1560

    The manual entry on arrays where it talks about the array editor does have a link to the AJAX object's page. I can see why AJAX might be intimidating to a beginner who doesn't know what AJAX is, since it may be an unfamiliar term. It's basically a way to import data from files or or other outside sources like webpages into memory, where your game will be able to use it. You'll also need to know how expressions work.

    A step by step guide is definitely what the tutorials, written or video, are for. There's one written by the developer here - construct.net/en/tutorials/using-project-files-12.

    The bigger problem is that there is so much information out there sometimes it's hard for a beginner to know what to search for, or even ask the right question (xy problems are very very common). But that's what the forums are for!

  • Parsing basically just means to read through a set data and extract what you want from it.