dop2000's Forum Posts

  • 2) I would ask each player to press a button on their gamepad before the game starts.

    "Player 1 press any button"

    Then wait for any button pressed on any of 6 gamepads. When a button is pressed say on gamepad #5, save this number in a variable Player1Gamepad or in array:

    PlayerGamepads.At(1) set to 5

    You can also make a reverse array for convenience - GamepadsToPlayer:

    GamepadToPlayer.At(5) set to 1

    PlayerGamepads[x] will give you gamepad number for player x.

    GamepadToPlayer[y] will give you player number for gamepad y.

  • What type of object is your "answer"? Its icon looks different from the TextBox icon. Is it some custom plugin?

    Have you tried running the project in Debug Mode (ctrl-F4)? You can check the contents of the array, question, answer objects before pressing the button.

  • I think what you need is Pin behavior.

    Set Object2 position, then pin it to Object1 as "Position and Angle".

  • Ok, this one was easy. Just move "Word Set text" to the start of the function:

  • I don't know, but I see on your screenshot (loop.jpg) that you missed "music" tag.

    Should be Audio.PlaybackTime("Music")

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • You can try the advice from this comment:

  • It's getting too difficult to follow.

    Could you share you capx?

    Also, can I ask - did you develop this game from scratch? Or did you use someone else's demo/game template?

    Because some of the code in your project is quite advanced, and yet the questions you are asking are very basic. I'm confused.

  • Well, what you are trying to do is not possible, because you can't refer objects by their name.

    By selecting multiple objects I didn't mean "at once", I meant selecting instances of different objects.

    Say, you can select either Block sprite, or Tree sprite or Rock sprite.

    And understandably you don't want to create 3 almost identical events. (if selectedObject="Block" then set position to block.. if selectedObject="Tree" then set position to Tree.. if selectedObject="Rock" .....)

    So the workaround would be adding all three sprites to a family SelectableSprites. And then do what I suggested in my previous comment - pick family member by UID and set position to family instance.

    And one more thing - BlockMoveable(21) means instance with IID=21, not with UID=21

    https://www.scirra.com/manual/130/common-features

  • See this tutorial:

    https://www.scirra.com/manual/163/line-of-sight

    Have you added "Has LOS to object" event? Your enemy should start shooting only if this event is true:

    Enemy->Has LOS to player -> Enemy spawn bullet

    If you still have troubles, please share your capx

  • Change your events to this:

  • Distance between enemy and player:

    distance(enemy.x, enemy.y, player.x, player.y)

    Angle from enemy to player (to shoot bullets):

    angle(enemy.x, enemy.y, player.x, player.y)

    Or use Line Of Sight behavior if you also need to take into account obstacles. You can set maximum distance for Line of Sight.

  • Move "Function call" after "Sprite133 Set isOccupied=true".

    And remove "Word append.." from this event, because this is done with the function now.

    Edit: actually, you should add another "Function call" in the Else event, after "Letters1 set position to (startY, startY)"

  • Akia410

  • Almost..

    Events 17,18,19 should not be under "On Start of layout".

    I recommend you create a function "UpdateWord" and move these events to the function.

    Call this function after any letter is dropped.

  • No, instance variables. You have them on some other sprites, for example your PlayerBattle sprite has instance variable "health".

    Instance variables is a powerful thing, you should use them more.

    Create instance variable "startX" and "startY" on the Letters sprite. Set them to each letter's position on start of layout.

    This will allow you to return any letter instance to its original position when needed. Say, when it's dropped not on the grey box.