1mrpaul1's Forum Posts

  • I want to draw on the mask, just white brush and just on one layer, and delete to alpha.

    How?

    I saw tutorials for drawing by points, on the canvas, but I need freehand brush tool

  • really, how? when select the camera, you can't change any parameters

  • plugin dosnt work with the last version of the construct (408)

    Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'bindBuffer')

    at Object3DInstance.Tick (instance.js:240:25)

    at Array._tickFunc (sdkInstanceBase.js:8:200)

    at EventHandler._FireAsGenerator (handler.js:10:399)

    at _FireAsGenerator.next (<anonymous>)

    at C3Runtime.DebugIterateAndBreak (runtime.js:142:131)

    at C3Runtime.DebugFireGeneratorEventAndBreak (runtime.js:142:247)

    at C3Runtime.Step_AfterPreTick (runtime.js:94:144)

    at async C3Runtime.Tick (runtime.js:89:435)

    Tick instance.js:240

    _tickFunc sdkInstanceBase.js:8

    _FireAsGenerator handler.js:10

    DebugIterateAndBreak runtime.js:142

    DebugFireGeneratorEventAndBreak runtime.js:142

    Step_AfterPreTick runtime.js:94

    await in Step_AfterPreTick

    SetSuspended runtime.js:84

    _OnVisibilityChange runtime.js:80

    (anonymous) runtime.js:12

    _OnEventFromDOM runtime.js:19

    _OnMessageFromDOM runtime.js:16

    C3Runtime._messagePort.onmessage runtime.js:12

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Here is my guess:

    Your C3 shortcut is linked to a specific version, so it keeps going back to old version when you close it. This probably breaks offline mode too because I am guessing C3 only stores the last version of C3 that you were using (meaning that it updates to latest version, prepares offline mode for latest version, close C3, turn off Internet, open C3, it tries to open old version that isn't ready for offline mode).

    Check the shortcut, I assume you want beta every time so you would have the shortcut be editor.construct.net/beta

    Then, once you have done this, open C3 again, make sure you are logged in to C3, and wait for the notification at bottom-left that tells you that offline mode is now ready.

    Then you can test it out, close C3, turn off Internet, open C3, and it should work.

    Sometimes it works normally, you just open the app and it works, sometimes, it loads wrong. probably, and while I see that the app is downloaded and ready for online, in practice, it is not. on the video btw, I had "downloaded" message, but as you can see on the video, it is not downloaded

  • Whenever I try it, offline support works. I just tried it again and it works for me. Usually whenever people complain about this, it turns out they're making some mistake, such as not waiting for the "ready to use offline" notification, or using browser privacy settings that prevent Construct saving itself for use offline.

    If you run in to a problem with offline support please file an issue - but note the steps to reproduce need to include clearing your browser cache, loading Construct, waiting for the "ready to use offline" notification, and then proceeding to reproduce the problem.

    anyhow, something is wrong in the update process

    Each time I need to update the app, it is good that it is updating, because previously I even wasn't able to update it.

    But without internet, I will not be able to launch the app

    https://www.youtube.com/watch?v=s1OsiTurixo

  • The latest beta release is still r404. Click the link where it says r404 and it will open it.

    i,m using Construct as an app, for me the issue was resolved by allowing updates to not stable versions, but I just wonder, why after updating till the stable version construct doesn't want to update newer beta version(how it happen before)

  • Today tried to open my game, but can't because it was saved in 404 while the current version is 397.2 (the last version for now)

    What is it?

    was construct auto-downgraded?

  • yes, it is true, not much training, also, many AI models have serious issues with logic.

    But Clause AI is very good, it really doesn't know Construct 3 JS code well, cause it is a really rare thing, but I see it understands the construct well and does good logic and math.

    The only issue as I said, it is too long to reproduce his advice inside construct, at least much longer than just copy past a code block with all logic and math inside

    But if you said the code is completely wrong, so, no way, for sure

    I thought maybe we could change some methods, and it would work, in this case, anyway, this AI help could be very important

  • My guess is that for Unity are so much more examples that an AI can lern from. For scripting in Construct there are only the manual and a few examples and that is not enough for useful code.

    I'm afraid if you want use scripting you have to go the hard way an learn it yourself.

    AI can help us, it helped me many times, for example, it helped me to make a script that converts Google Sheets pages into json to construct array

    And helped many times with small things that I forgot

    But the code that I showed above, is a very complex logical and math task, which is hard to realize

    So, it is good to have some skilled help

    I believe there are ways, AI models that will work with construct, we just need to find it

  • That looks like a mix between Python and Javascript, that won't work.

    And I have my doubts that an AI can do anything usable in construct.

    Maybe pure Javascript for scripting, but without understanding what the AI is generating, I think it will still not useful for you.

    i can understand JS, but the issue here is how to call construct behaviors like touch and other systems, AI can try to generate logic something as events, and as I see it is understanding how construct 3 is working. but it is hard to repeat events from AI, because you don't know, if will it work in the end haha

    with code things can be easier, just copy past and test, work or not, but we need a working code

    In unity AI can help very well, maybe we need specified construct 3 model for this job, or maybe somebody knows workarounds

  • I am trying to use AI tools to develop with C3

    and without luck

    looks like the construct doesn't accept what AI is doing

    for example, this code, Construct shows error on line 9, in "Function ConvertToGridCoord(x, y):" so, it can't start function, sometimes showing a null object'

    we can say that it is just bad AI code, but in unity it works quite good, so, I believe there are some mistakes in transition of the JS to construct JS

    Can it be resolved? maybe somebody has the same experience

    // Global variables
    Variables:
     cellSize = 118 
     cellHeight = 102 
     gridWidth = 10 
     gridHeight = 10 
    
    // Function for converting screen coordinates to grid coordinates
    Function ConvertToGridCoord(x, y):
     let qF = (Math.sqrt(3)/3 * x - 1/3 * y) / cellSize
     let rF = (2/3 * y) / cellSize
     let q = Math.round(qF)
     let r = Math.round(rF)
     let s = Math.round(-qF - rF)
     
     let qDiff = Math.abs(q - qF)
     let rDiff = Math.abs(r - rF)
     let sDiff = Math.abs(s - (-qF - rF))
     
     if (qDiff > rDiff && qDiff > sDiff):
     q = -r - s
     else if (rDiff > sDiff):
     r = -q - s
     
     return {q: q, r: r}
    
    // Function for converting grid coordinates to screen coordinates
    Function ConvertToScreenCoord(q, r):
     let x = cellSize * (Math.sqrt(3) * q + Math.sqrt(3)/2 * r)
     let y = cellSize * (3/2 * r)
     return {x: x, y: y}
    
    // Function to check if a cell is within the grid boundaries
    Function IsInGrid(q, r):
     return q >= 0 && q < gridWidth && r >= 0 && r < gridHeight
    
    // Function to get the neighbors of a cell
    Function GetNeighbors(q, r):
     let directions = [
     {q: 1, r: 0}, {q: 1, r: -1}, {q: 0, r: -1},
     {q: -1, r: 0}, {q: -1, r: 1}, {q: 0, r: 1}
     ]
     let neighbors = []
     for (let dir of directions):
     let newQ = q + dir.q
     let newR = r + dir.r
     if (IsInGrid(newQ, newR)):
     neighbors.push({q: newQ, r: newR})
     return neighbors
    
    // Function for pathfinding (A* algorithm)
    Function FindPath(startQ, startR, endQ, endR):
     let openSet = [{q: startQ, r: startR, g: 0, h: 0, f: 0, parent: null}]
     let closedSet = []
     
     while (openSet.length > 0):
     let current = openSet.reduce((min, item) => item.f < min.f ? item : min, openSet[0])
     
     if (current.q === endQ && current.r === endR):
     let path = []
     while (current):
     path.push({q: current.q, r: current.r})
     current = current.parent
     return path.reverse()
     
     openSet = openSet.filter(item => item !== current)
     closedSet.push(current)
     
     let neighbors = GetNeighbors(current.q, current.r)
     for (let neighbor of neighbors):
     if (closedSet.some(item => item.q === neighbor.q && item.r === neighbor.r)):
     continue
     
     let gScore = current.g + 1
     let isInOpenSet = openSet.some(item => item.q === neighbor.q && item.r === neighbor.r)
     
     if (!isInOpenSet || gScore < neighbor.g):
     let h = Math.abs(neighbor.q - endQ) + Math.abs(neighbor.r - endR)
     let f = gScore + h
     
     if (!isInOpenSet):
     openSet.push({q: neighbor.q, r: neighbor.r, g: gScore, h: h, f: f, parent: current})
     else:
     let existingNeighbor = openSet.find(item => item.q === neighbor.q && item.r === neighbor.r)
     existingNeighbor.g = gScore
     existingNeighbor.f = f
     existingNeighbor.parent = current
     
     return null // путь не найден
    
    // Events
    
    On start of layout:
     // Grid initialization (creating cell sprites)
     For q = 0 to gridWidth - 1:
     For r = 0 to gridHeight - 1:
     let pos = ConvertToScreenCoord(q, r)
     Create object Cell at (pos.x, pos.y)
    
    On Touch object Cell:
     let touchX = Touch.X
     let touchY = Touch.Y
     let gridCoord = ConvertToGridCoord(touchX, touchY)
     let path = FindPath(Ship.GridQ, Ship.GridR, gridCoord.q, gridCoord.r)
     
     if (path):
     Ship.PathToFollow = path
     Ship.CurrentPathIndex = 0
     System.Trigger("MoveShipAlongPath")
    
    System event: MoveShipAlongPath:
     if (Ship.CurrentPathIndex < Ship.PathToFollow.length):
     let nextCell = Ship.PathToFollow[Ship.CurrentPathIndex]
     let screenCoord = ConvertToScreenCoord(nextCell.q, nextCell.r)
     
     Ship.TweenPosition(screenCoord.x, screenCoord.y, 0.5, "ease-out-quad")
     Ship.GridQ = nextCell.q
     Ship.GridR = nextCell.r
     
     Ship.CurrentPathIndex += 1
     else:
     Ship.PathToFollow = null
     Ship.CurrentPathIndex = 0
    
    On TweenPosition completed for Ship:
     System.Trigger("MoveShipAlongPath")
    
  • True, piracy still happens, and actually, in the case of the game engine, piracy is good, it will enlarge the cover in the engine markets, and enlarge the community, which will lead to the growth of the engine at the end

    Like Windows OS, Microsoft could kill piracy very fast but it will kill the OS as well, this is why they just make problems for pirates but do not close the OS completely

    another argument about working in a browser allowing to work on the phone is also not an argument, because it is impossible to work on the phone, especially on modern phones with swipe controls

    so, this online browser app is just decreasing the popularity of the Construct

    And when you are saying that the app can work online, but it is not working online it is just a Lie to your customers

  • There is no offline support in construct 3, while we can see developers saying it is exists, it always requires an internet connection.

    Is it possible to resolve?

    I understand Skirra is living in 3024 year where the internet is 24/7 all over the globe, but in 2024 still a lot of cases when we can't always be online, don't we deserve an always working app?

  • Also you might be the first person to ever mention it

    this is another reason why sometimes I want to leave Construct

    When you see some very unsuccessful UI/UX workflows in some engine, and it is do not bother anybody, it means that nobody really works deeply with the engine, which is a sign of a dead engine.

    Ok with this blue overlay, I found many workarounds on how to pass it, it is hard and annoying, but possible

    But when I see something more weird UX solution that you can't pass in any way, like changing the scale of the sprite in the editor after you change the image order in this sprite, it works like this for years but nobody cares in the community, it is so frustrating

  • you can disable it with alt, which can be handy when you want to color pick into the selected instance. (there is also a "bug", which lets you keep that state, hold alt while going into the color picker, then it stays like that)

    Great workaround

    Sadly it doesn't work with the tiles

    Color distortion there sometimes makes work harder