R0J0hound's Recent Forum Activity

  • logic would probably be along the lines of :

    every 0.5 seconds
    -- enemy has los to player
    -- -- enemy: find path to player
    -- -- enemy: set mode to "seek"
    -- [X] enemy has los to player
    -- -- enemy: stop following path
    -- -- enemy: set mode to choose("walk", "stand", "turn")
    
    enemy: mode = "walk"
    -- enemy: move forward
    
    enemy: mode = "turn"
    -- enemy: rotate choose(-90,90) degrees clockwise
    -- enemy: set mode to "walk"
    
    enemy: on path found
    -- enemy: follow path

    Or something like that.

  • Oh strange since it’s smooth on my end. I’ll have to test again. Maybe add a trace of the mouse path to debug.

    Either you’re moving the mouse in a path I didn’t test or the easing is flawed on other refresh rates? You can try to set t to 100*dt or something instead of what it has now and see if that affects things.

    It’s probably easy to switch it back to moving relative to where it clicked on the ground. Could also rotate based on where we clicked on the ground too, but then we’d need a separate control for tilt.

    Edit:

    Did you change any of the values? When I had t=exp(-100*dt) the ease was super gradual.

    If you find older topics about it the dev explained his reasoning a few times.

    As I recall he was into audio processing in university so he prefers decibels. And he says volume isn’t linear so 50% doesn’t sound half as loud so decibels are better.

    But probably best to look up what he said exactly.

    But I prefer setting volume from 0-100 instead of -infinity to 0 so the conversion formula is helpful for me.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads

    Yeah. But they seem pretty adamant at using db for volume. Fun fact, the underlying sound apis set volume with a percentage.

    Anyways you can just convert the percentage to decibels with a simple formula.

    construct.net/en/forum/construct-3/how-do-i-8/user-change-volume-percentage-162705

  • Everything in construct, including tilemap use collision polygons not per pixel collisions. You should be able to set the polygon per tile. I think there’s a button for that on the tilemap toolbar.

  • Here's a modification that includes the rotation fix. I apologize, the events ended up looking a bit different since I tried simplifying a lot while I was trying to pinpoint what was causing the bug.

    * All mouse input is on the ui layer now.

    * As a side effect the drag move formula is a bit uglier since it has to rotate the mouse position delta by the rotation. Before you used mouse position from the 3d layer but that was giving NaN's when tilt was 0. Reverting back to use mouse position from the 3d layer has it's merits though since the point on the ground where you started dragging would match where you dragged to.

    * It now only moves the target object directly and the cam object eases toward the target. Also it eases position, zoom, tilt and angle. That was the main change that enabled the fix.

    * The lerping is now framerate independent. It was a small change basically using exp(-100*dt) instead of 0.2*60*dt.

    * The 3d camera position is calculated in one go with spherical coordinates which incorporates zoom, angle and tilt. It should end up the same as what you had.

    dropbox.com/scl/fi/ljuplixdxjtghe23ijzdo/2d3dcam_Test.c3p

  • It wants me to create an account to download.

    I was just saying these two should be the same.

    sprite: timer: is timer running "foo"
    system: pick by comparison: sprite, timer.duration("foo") <> 0

    The "<>" means "not equal to".

    Anyways, the rest of my other post was the reasoning why it would be the same. You can ignore that.

  • You'd get a similar jerk in motion when using anglelerp and the target angle differs more than 180 degrees. Best i can tell you're easing the positions and getting angles from that so it's indirectly the same thing.

    One possible solution could be to use a variable for the current angle and add the change of the mouse position to that and lerp another angle to that. Here's a minimal example showing the difference between normal angle lerping and that. Could be something to try at least.

    dropbox.com/scl/fi/q8cf0o8htz5h8dubo25e1/rotationEasing.capx

  • Clickteam products used to have rules about that so maybe that’s why you’re asking.

    You can look that up pretty easy.

    For Construct you can read the end-user license agreement from the about dialog in the editor. It restricts piracy, reverse engineering and selling games made in the free version. There is nothing listed that restricts the content of the games you make.

    On this site (arcade, forum, tutorials,..etc) the community guidelines don’t allow NSFW content. So probably don’t post about it here since content should be family friendly.

    construct.net/en/forum/general/open-topic-33/forum-community-guidelines-141035

  • Probably comparing timer.duration(tag) <> 0 would work.

    Once the timer finishes any expression with the tag will equal zero.

  • You could open the c3 examples and just manually replicate it in c2 events since it will be similar. Or at the very least it would give you ideas.

    Roughly it seems to mostly be a matter of creating a bunch of physics objects with a force toward the player or some variation of that.

  • This comes up fairly often. There are a lot of examples around.

    Here’s a basic example. It works up to t for trillions. For 64bit numbers you’d need a list of about 100 suffixes or you could come up with a way to automate it.

    n = int(Log10(value)/3)

    Set text to int(value/10^(3*n)) &tokenat(“,k,m,b,t”, n, “,”)

R0J0hound's avatar

R0J0hound

Member since 15 Jun, 2009

Twitter
R0J0hound has 155 followers

Connect with R0J0hound