BigKabeza's Forum Posts

  • I want to a sound to stop but i have to enter a tag witch i don't what is it.

    When you select the action "Play Sound" you can write there the tag, so you can stop it with the same tag you wrote there.

  • I'm sorry I don't think I understand how to do any of that.

    Ok, i will try to simplify it.

    Every cell in your game is an sprite called Sprite_Cell. Imagine that you make a grid of 8x8 with those Sprite_Cell of size 64x64.

    So you add instance variables(number) to the Sprite_Cell: Cell_X and Cell_Y to identify the column and the cell for each instance.

    Why this? Because "Tile Movement Behavior" has its own grid, but Drag & Drop, Bullet and Turret do not automatically know about it. You have to make them use the same cell size and grid position.

    An object using Tile Movement already knows its cell. You can get this with Player.TileMovement.GridX and Player.TileMovement.GridY.

    If the Player or other object haven´t the Tile Movement you can calculate the Sprite_Cell with:

    Player.Cell_X=floor(Player.X/64), the same for Cell_Y.

    Here is how that apply to your examples:

    -For drag & drop: When you drop the player-> On drop: Set X to floor(Player.X/64)*64+32 and the same for Y. This finds the cell where the piece was dropped and moves it to its center.

    -For damaging every enemy in the bullet's cell: Give the bullet and the enemies instances the same variables: Cell_X and Cell_Y, so you can compare if:

    (Enemy.Cell_X = Bullet.Cell_X and Enemy.Cell_Y = Bullet.Cell_Y)--->Substract health from enemy.

    -Showing movement range: You can check the distance form the player with:

    (abs(Sprite_Cell_X-Player.Cell_X)+abs(Sprite_Cell_Y-Player.Cell_Y)

    For example, if you make a for each(Sprite_Cell) and the distance is less than or equal to the Range of Movement that you chose--->Change Sprite_Cell color.

    The nested X and Y loops I mentioned before are only useful when creating or checking the entire grid. You do not need them just to snap one object to a cell.

    I hope this make sense, but i know that could be difficult to understand, also its difficult to me to explain this with text.

  • When I work with cells, i like to give each instance the vars Cell_X and Cell_Y, it doesn't represente the x/y possition, it represent the position on the grid, like 0-0, 0-1, 0-2, etc.

    So you can iterate over it with a for loop inside another for loop:

    -For "x" loop

    ---For "y loop

    If you have a player use also Cell_X and Cell_Y there, so you can compare its possition with the cells of the grid.

  • WackyToaster You’re absolutely right. Getting this to work required a lot of custom logic, especially Z comparisons between different collision volumes.

    So I completely agree with the point of your post. Hopefully we’ll see more 3D support added to the existing behaviors soon. 🙂✌️

  • Regarding the final "Super Mario 64" point, you can already get closer than it might seem with event sheets, although it takes quite a lot of custom work.

    I’m building a template covering movement, jumping, ramps, elevation, collisions and camera handling. It’s still a WIP, but this is the current result:

    Subscribe to Construct videos now
  • I've added GLB to relevant categories - if it doesn't work still let me know what category you're uploading to.

    I was trying to upload as "Graphics->Asset Packs", I have checked and I can see the GLB file format is now available there.

    Thank you so much! 🙂✌

  • I’m preparing a Graphics Asset Pack containing game-ready GLB models for Construct 3’s official 3D Model object. The uploader does not list GLB as an accepted file type. Can GLB files be distributed inside the ZIP? Are any plans to include a specific 3D section inside the graphics category?

  • You create two instance variables: Cell_X and Cell_Y (this doesn't represent the x and y of the square in the layout, it represent the possition on the grid you are creating on start of layout).

    When you create the square assign values to Cell_X and Cell_Y using the "loopindex", in this way you have all the squares mapped.

    After, when you are touching over a square compare in wich direction is your touch, so for example if you move your finger or mouse to the left, you can pick the square that has the touched square.cell_X-1.

    Hope it helps

  • Hi everyone,

    I've published FunctionFlow on the Construct Asset Store.

    It’s a small read-only desktop tool for Construct 3 projects. The idea is simple: open a Construct 3 folder project and get a function-focused view of the project logic.

    It can show things like:

    -which functions call other functions

    -which functions are called from many places

    -root event chains

    -functions that appear unused

    The tool does not edit or modify your project files. It only reads the Event Sheet JSON files and builds a static overview.

    It’s a first version, so I’m sure there are things that can be improved, but I thought it could already be useful for people working on medium or larger Construct projects.

    If anyone tries it, I’d really appreciate feedback, bug reports, or ideas for future improvements.

    Thanks!

    construct.net/en/game-assets/tools/function-flow-5609

  • Nice, keep us posted on your progress. I don't use nested functions but I can definitely benefit from a tool that lists all functions in my project alphabetically.

    Finally I've built a version of it and uploaded to the construct store. For anyone interested you can find it here.

    construct.net/en/game-assets/tools/function-flow-5609

  • Iirc I think you can use CTRL+F Find, type "on function", and you will get a list of all your functions (assuming no comments have "on function").

    That’s right. CTRL+F is useful, but lately I’ve been nesting functions inside other functions, and in some of my projects it gets difficult to follow the flow with CTRL+F alone.

    This is the tool I’m building to help me keep track of it, so it's easy to see from where a function is being called and what other functions this function calls.

  • It is helpful, indeed. I barely use "wait for signal" in my projects. Thanks for sharing! 🙂

  • Hi everyone,

    As Construct 3 projects grow, it can become harder to understand the overall function flow across the Event Sheets(at least for me, because I like to use functions everywhere😅).

    For example, when a function is called by another function, which is called by another function, and so on. Or when the same function is called from many different places.

    I’m curious if others also deal with this in medium or large projects.

    Do you mostly rely on Find all references, comments, naming conventions, groups, or some other workflow?

    The reason I’m asking is that I’m developing a small read-only desktop app that opens a Construct 3 folder project and shows a function-focused view: functions, callers, root event chains and unused functions.

    I’m building it because I find this kind of overview useful when working with larger projects, but I’d like to hear how others handle this workflow.

    If there is interest, I may polish it further and consider releasing it on the Construct Asset Store later.

    What do you think?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • There are many improvements in the last 4 years.

    The most obvious and recent is the 3d support and the construct game services.

    But for sure, at least for me, the thing that most changes how i work with construct is the possibility to add html,css and javascript to your project.

    I have also been long time without using construct, but when i opened after long time i felt as coming back home. Many things changed but the experience remains the same.

  • I use a GPT project in wicht I give it the Construct3 manual in pdf as reference. If you use javascript in your project it really can help a lot, but if you are using event sheets...if you make a rigth click in the event sheet to expand all the events and after you click on print(to save as pdf), gpt understand this pdf very well, with the exception of booleans, because it appears with an red arrow when your condition is "boolean IS NOT".

    For my personal use I can say is great, i had an app published that i did long time ago(10 years) when i started to use construct, this project was:

    -10.700 events,

    -14.000 conditions

    -41.000 actions

    All over 12 event sheets.

    Using the method i described above and asking for optimizations, my project is now:

    -2.400 events,

    -3.200 conditions

    -6.200 actions

    ----------------------

    Its really a pleasure to optimize a proyect this way and see the things that you have done using a lot of repetition, to be redone only on a few events.

    For example, the biggest event sheet of my project went from 3715 events to only 47.

    So, definetly give a try. 🙂✌