oosyrag's Forum Posts

  • You could always use the built in plugin for a peer to peer connection.

    But there is literally no such thing as instantaneous either way as far as the internet is concerned. Any and all communications are asynchronous by nature, as there is no way to know ahead of time how long it takes for any given message to be received regardless of the method.

  • You can't change the viewport position in the editor, but you can reposition it at runtime. So scroll to a position below/above your layout.

  • You want to use a repeat loop to spawn bullets.

    For example if you had 2 bullets spawn, one on either side, in 5 degree increments, you would use

    + System: Repeat 16 times

    -> System: Create object Bullet on layer 0 at (0, 0), create hierarchy: False

    -> Bullet: Set angle to Bullet.Angle+LoopIndex×5 degrees

    -> System: Create object Bullet on layer 0 at (0, 0), create hierarchy: False

    -> Bullet: Set angle to Bullet.Angle-LoopIndex×5 degrees

  • The line of sight behavior is what you're looking for. There are examples in the start page as well.

    construct.net/en/make-games/manuals/construct-3/behavior-reference/line-of-sight

    Line-of-sight can also perform Raycasting. Normal line-of-sight checks there are no obstacles in a straight line between two objects. With raycasting, if there is an obstacle in the way, you can find the exact position of the obstacle in the way, as well as the surface normal and angle of reflection. The Instant hit laser example provides a demonstration of how to use raycasting.

  • There is not, but you can work around it by using a viewport sized (or otherwise, depending on your desired effect), and simply working outside the bounds of the layout.

  • you are telling it to 'play from the first frame' constantly so it will appear static. You can try 'set animation' instead

    Change 'start animation' to 'set animation'

  • I suppose the strict answer is no.

    But you could easily simulate it with multiple instances of the tilemap object, as you already described.

  • Have you completed the multiplayer tutorials? For a turn based game you probably won't need the 4th part, but it's a good idea to go through it anyways.

    If you have a specific question I'd be happy to help... But you'd need have a question to ask first.

    One way to assign turn orders is to simply use the same order clients connected to the room.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I have no idea what you mean by that, but as it is now since it is taking inputs from the accelerometer, it will definitely be affected by shaking as well.

  • Do you have your basic controller movement set up?

    You'll add to that with an event that adjusts the 8direction maximum speed, proportional to the distance your stick is from the center.

    To get the distance from center, you want sqrt(gamepad.axis(gamepad,indexX)^2,gamepad.axis(gamepad,indexY)^2)

    indexX and indexY are the numbers of the x and y axes of the gamepad respectively, I'm guessing 0 and 1 but I'm not sure.

    Divide that by 100 to get a value between 0 and 1, and use the resulting number to limit your maximum speed proportionally with the lerp expression so...

    Every tick set sprite 8direction max speed to lerp(0,definedmaxspeed, (sqrt(gamepad.axis(gamepad,indexX)^2,gamepad.axis(gamepad,indexY)^2))/100)

    definedmaxspeed is your maximum speed in a single direction. Note that diagonals will exceed this speed. There's probably a better way around this but I can't think of it at the moment.

    Now there's going to be a problem where the maximum speed is set to 0 immediately after releasing the stick, which will stop your character right away and I'm assuming that would be undesirable.

    So instead, you would set the maximum speed to the higher of the two values between current speed and stick speed limit by using the max(a,b) expression. Resulting in...

    max(sprite.8direction.speed,lerp(0,definedmaxspeed, (sqrt(gamepad.axis(gamepad,indexX)^2,gamepad.axis(gamepad,indexY)^2))/100)

    Unfortunately I don't have a gamepad to test with so I'm almost certain I made a mistake in there or overlooked something, so that's why I wrote out the thought process. Let me know how it goes.

  • Touch.AccelerationXWithG-1

    should be

    Touch.AccelerationXWithG * (-1)

    If you want things to move faster, simply apply a multiplier of your choice to the touch.acceleration values.

  • that is what I was trying to do actually. Can I see somewhere the status of the variable?

    f

    If you mean to display a global variable, make a text object and use the set text action to the variable's name.

    Saving to local storage is generally not necessary, as global variables do not reset when changing layouts by default.

  • Request motion permission with touch object. Must be user triggered.

    Disable gravity, obstacles set to immovable, in physics objects on start of layout.

    -> Sprite: Apply Physics force (Touch.AccelerationXWithG×-1, Touch.AccelerationYWithG) at image point 0

    You probably also want to turn on bullet mode or adjust the stepping values for the sprite so it doesn't get stuck in or teleport through walls.

  • On enemy created

    Increment player instance variable "bonus target" by 1

    On enemy destroyed

    Add 1 to player instance variable "bonus counter"

    If "bonus counter" = "bonus target", spawn bonus.

    You'll need some way to differentiate groups and time out the bonus. I'd use an invisible helper sprite per enemy group. Each enemy can store the helper sprite's uid on creation to keep track of which group it belongs to. You can use this helper object instead of the player object to store instance variables as well.

  • If you lack knowledge, you could always learn - there are plentiful resources online. The built in multiplayer requires learning as well if you are not very familiar with it. If you're making something with any significant concurrent user count, it is highly recommended to utilize a suitable back end service that can handle it like Colyseus. Photon seems to be a popular choice as well.

    If you're set on using the multiplayer plugin, it does have the ability to run a central dedicated host by simply distributing clients that can only join as peers, while you run and manage the copy that runs as a host on a server of your choice.

    Again, developing a multiplayer game in general, with or without the plugin, will take significant effort and research. It can be beneficial to learn how to use the most suitable tools from the start, given that you'll need to study regardless.