oosyrag's Forum Posts

  • Try both - Use an object to predict your future motion based on your current vector, and have a camera object with a lerp towards that one.

    dropbox.com/s/jkb52blsbte0ckh/Smoothcameraexample.c3p

  • dropbox.com/s/cdrpv87sm64akpr/canvasexample.c3p

    Example using the drawing canvas plugin to draw the circle, and a timer to control the rate it grows.

  • Are you using the set animation action rather than set frame? Are your animations set up correctly? Speed not 0, correct frames?

  • The basis of a grapple in physics is the revolute joint. Here is an example.

    dropbox.com/s/uujkpeccyq20vvx/Physics-revolutejoint.c3p

    To get it to wrap around solids, the most straightfoward way is to make a chain of revolute joints. Basically you break up the line into many segments, down to 1 pixel each, and make them all connect to each other in order. You can do this with families and instance variables to keep track of each segment to pick the correct ones to make joints with.

  • It depends on how you are going to set it up. If you're syncing an "isMoving" instance boolean variable.

    For all the peers and host:

    + PlayerObject: [X] Is isMoving

    -> PlayerObject: Set animation to "Idle" (play from beginning)

    + PlayerObject: Is isMoving

    -> PlayerObject: Set animation to "Walk" (play from beginning)

    Then all you need is for the host to properly toggle the isMoving variable for each peer when they are moving or not.

  • You need an event to trigger peer clients to update the animation of the host sprite. You can do it a few ways, like by message or by syncing a variable. Or have some other way for peers to detect if host is moving on their own, such as storing last position and compare with current position.

  • You can set up "states" for animation. On key press, change state to "attacking". Use trigger once while true to play the animation based on the state. Use another trigger event for when your animation completes or a timer to change your state back to idle.

  • IIRC, with R0J0's paster/canvas plugins, the method was to shift the viewport, paste it to the canvas, then move the viewport back, resulting in two views. Please correct me if I'm wrong, since I never actually tried that plugin myself.

    Is this not possible with C3's drawing canvas due to the paste object action only happening at the end of each rendering frame and outside of the normal order of events and actions?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Try using a larger z-elevation difference? The range is from 0-100. Maybe you can't see the parallax effect if the value is too small, and the 9patch is the size of the screen.

    Also, z-elevation won't visibly show anything besides a size change if you aren't scrolling.

    Another thing is to remember z-elevation is not the same as z-order, I had been confused about that before.

  • Are you using physics, platform, or a custom system for movement?

  • Alternatively you can have two behavior states, default is random motion, second triggers when distance is greater than range, move back towards center of constraint area.

  • This should probably go into the suggestions page at construct3.ideas.aha.io

    I for one think its worth looking into, as WeChat is literally the biggest platform in the world by users, although mostly focused in Asia.

    Unfortunately it's probably a long shot, as we'll need to export/compile as a WeChat Mini Program rather than just HTML5.

    Here's a nice primer/summary before diving into the Mini Program SDK and API - lewagon.com/blog/wechat-mini-games-making-noise-how-developers-get-started-guickly

  • What does your z-order list look like? Layers take precedence over z-elevation.

  • Regarding outside corners, I'm using a slightly modified method than from the article. Rather than just one ray at each corner, I'm using two instead, at 0.1 degrees offset at each one so I'll get one that collides and one that doesn't.

    For why I didn't cast at imagepoints, the second part of the example is where I experimented with that (Method 2: By coordinates). More issues popped up than via the first method, although they seem to be gone with the latest update.

    I'll probably end up drawing individual triangles instead of one big poly. Although I avoided the self intersecting problem, other visual glitches popped up, I had another github post on that one.

    Most of the expressions produce a default value of 0 if there was no hit, but for distance it could be because the ray was colliding with an object at it's origin position? More likely that there was no collision.

    The issue here was that I didn't set the line's width to HitDistance unless there was a hit detected as the condition. So there was a hit, and it returned 0. I don't see it occur in R144 at all though.

    With the update, both methods consistently behave as expected. So far so good, thanks!

  • I believe OP's particular issue is that his existing datasets in Google sheets are formatted differently. His primary data is vertical, in the "Y" axis, and subdata is in the "X", so copying into the array editor in the same arrangement is not ideal. I'm assuming he already has a significant amount of data to work with in Sheets and would like to avoid changing it all.