R0J0hound's Forum Posts

  • You can do it with the tilemap expressions. First you use the expressions to convert the touch.x and y to the tile column and row. Next you use another one of the expressions to to convert the row and column to the xy of a tile.

  • Did you include the while condition?

    If you did and it still leaves it behind how fast is Sprite going?

  • Here's an improvement:

    while

    sprite: is overlapping sprite2

    --- sprite2: move 1 pixels at angle Sprite.8Direction.MovingAngle

    You can still run into the issue of sprite passing through sprite2 if it's speed is so high that one frame sprite is on one side of sprite2 and the rest it's on the other without colliding. But this is usually not an issue and the solution is to check the inbetween positions for collisions.

  • For 1 make the bottom layer transparent before capturing the screenshot.

    For 2 same as above but you hide all the other layers.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Like you said, Construct Classic is 100% free. There are no licences you need to get with it.

  • [quote:2feohdlr]The worry is how C2 is converting it to JS

    I wouldn't worry. You can literally put any text for a function name without issues.

  • This is probably deliberate, since jpg compression can create artifacts that would effect the other images in the sprite sheet.

  • You can use the asJSON expression.

    Add an textbox and a event like this:

    Time=1.0 seconds

    --- textbox: set text to particles.asjson

    The copy the text in the textbox into your favorite text editor and replace all the " with '. Then add " to the beginning and end of it, and select it all and copy it.

    Now in your game you can remove the textbox and that event and add a event:

    on start of layout

    --- particles: load from json ...

    Just paste the copied text instead of ... and voila, it starts pre-running.

  • My solution was just an idea to better use "overlaps at offset". You'll probably get the same amount of collisions with either method.

  • My mistake. It's the character select screen, event 32.

  • It's just a typo since i haven't used the utility with something that uses effects. In the lines that loop over the effects use "effectid" instead of "id".

    When running it on your file the value it fixed doesn't look far off. It basically added one, so I don't know if it was the cause.

    As far as the runtime errors you are using the "or" condition on your title screen. "or" causes runtime errors, especially when changing layouts, and shouldn't be used.

  • +----------------------------------+
    | repeat array.width times         | array: set at loopindex to (loopindex+1)%array.width
    +----------------------------------+
    
    global number index2=0
    global number tmp=0
    
    +----------------------------------+
    | repeat 10 times                  | set index2 to int(random(array.width))
    | repeat array.width times         |
    +----------------------------------+
        +------------------------------+
        |index2 <> array.at(loopindex) | set tmp to array.at(index2)
        |loopindex <> array.at(index2) | array: set at index2 to array.at(loopindex)
        |                              | array: set at loopindex to tmp
        +------------------------------+[/code:1bm3id39]
  • Maybe this?

    PlayerDetect is overlapping at offset ledge at (PlayerDetect.PlayerDirection*8, 0)

    The offset is relative to the player. It's the same as if the object is moved 8 pixels to the left or right before checking for the overlap.

  • You probably could use python to do it. The Sprite.NumVars expression gives the number of private variables and then you can do something like this to loop over all the variables.

    for i in range(Sprite[0].NumVars):

    Sprite.Value(i)

    The trick here is you can access a value by it's index instead of by it's name.

    I don't have time to make a full solution but you can access everything you need from python. Next you'd need to come up with a way to save and load that data to and from the disk. It's not hard just takes a bit of thought.

  • If you put most of your images on another layout the texture will only be loaded when you create an object. Unloading occurs when switching layouts or using the unload textures system action, just as long as there is no created sprites that are using it.

    Another thing to consider is any open layouts in the editor use video memory. You could try closing them before running a preview. Yet another thing that could happen is previous previews didn't close correctly so you'll see temp.exe, temp2.exe... Etc in the task manager. Ending those tasks will free the vram they're using.