InDWrekt's Recent Forum Activity

  • Ok, here is a capx with the type of movement I believe you are looking for.

    From what I read, it looks like the problem with how you have it set up is, the event "is overlapping background". This is always true if the sprite is overlapping the background and will always run (even if the background is behind the goal and the sprite is only touching the goal, if the background is behind the goal, it is still overlapping the background).

    I use an else to test if not overlapping the goal. Also, I don't know how much his helps, but I think you should initialize all instance variables in a for each block. I did so in my capx for you.

    Good luck with your project.

  • [Edit]

    Apparently, i didn't read all the way through the post well enough. The answer I gave was not really what you were looking for I have removed it.

  • Just wanted to say, it looks good. I Also think it would play better with a different control scheme. The mouse aim would be nice, but it it could also work well with asteroid type movement where pressing the arrow keys turns the player by a few degrees and pressing up or down makes the ship fly in that direction.

  • To get your game on Google play, you need to set up a developers account. Log into your Google account and go to:

    https://play.google.com/apps/publish/

  • In the Layout properties, select the event sheet you want the layout to use.

    [attachment=0:3b1o31x8][/attachment:3b1o31x8]

    All you have to do is select the layout and the properties dialog shows the settings used by the layout.

  • Also, you can combine your click and touch events by placing them in an or block. This will cut down the total number of events you will use by half.

  • Set the second condition in each sub event to an else condition. The way you have it set right now, the sub events trigger consecutively meaning, as soon as you set the value"nuke" and "spawn", the second condition is always true.

    Just to be clear, the 2 conditions "Commander.controlmode = 'nuke'" and "Commander.controlmode = 'spawn'" should be changed so it is just an Else event. This means when the condition before it is not true this condition is true.

  • OK, so I took some time to modify your project and add what I had suggested. To be honest, I don't completely follow all of your logic, so I didn't do any optimizations like I usually would. I did however, have to move around a few events to get it working. Take a look at the changes and test it out. You may be able to run with it and make it much more streamlined with your methods.

    As for your question... Yes, you can combine and/or logic in 1 event. Take a look at event 5. I embedded a simple if/else statement to a set of conditions and wrapped them with an or block. If you don't understand the statement, do a search for "ternary operator" without the quotes. This is a common programming operation and can be used in Construct to simplify a set of if/else events into a single event. Simply put, the first condition says:

    if Pos1X equals Pos2X and Pos1Y does not equal Pos2Y then return "True" if not return "False"

    The value returned is then tested against the "True" string in the first value. There are many other ways this could have been accomplished but, I have been on a ternary operator kick in my examples lately, so that is what you get.

    I hope that clears things up for you and good luck with your project.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I'm getting the same issue when using Chrome. In Firefox, it worked for me though, did you try using another browser?

    BTW, I got a kick out of all the different "death" animations. It's pretty funny. Are you supposed to be able to jump mid air over and over again? I played an entire game where I just tried to see if there was a limit to the number of times I could jump in the air without touching the ground and made it like 10 times before running into a speaker.

  • I downloaded your project and took a look. After the player selects the second tile, you are not doing any validation at all to see if the second is valid to select. If you want to disallow diagonal movement, you need to test the second selection to see if it valid by adding a condition on the event that moves the tiles. This could be as easy as adding a test like this:

    if (selected1.x = selected2.x and selected1.y != selected2.y)

    or

    (selected1.y = selected2.y and selected1.x != selected2.x)

    The entire above block of pseudo code needs to be set as a condition to move the block. Basically it says only move the pieces if either the x values or the y values or different but not both (XOR). You would of course have to figure out how to model it in Construct. This block of code will also work even if the size of the puzzle was larger than 2 by 2.

    Of course this is only 1 way to handle this kind of situation. As it is, you have colored blocks you are placing along the vertical and horizontal lines. You could make sure at least 1 of your tiles is on a block which also contains the color of the other block. This would also have to be set as a condition on the move event. You don't need to check both selected tiles because if 1 is on a color the other will always be as well. This is a rather ugly way to do it, but may work better for you. Especially if you intend to extend the board out and only allow movement to the square directly adjacent to the selected tile.

    I hope one of these solutions works for you and good luck with your project.

  • I would have to see the capx to get an idea of what is going on.

    [EDIT] NVM, I see what you mean on the version I already have. Looking into it now.

    [EDIT] OK, that was an easy fix. I added a variable called, "MonsterExists" 0 for false and 1 for true. I destroyed the off screen monster on start of the layout (you could also just move this monster into view instead of destroying and recreating but this took the fewest steps to get your current set up working) and I added a few actions to your create event including setting MonsterExists to 1 and moved the monster disable action into this event instead of the start of layout.

  • Ok, I have cleaned up your events and have it doing what (I think) you want it to do. I also duplicated your monster follow events to make some equivalent human follow events. This may not be what you want, it is just to show you the setup works both ways. You can find the capx attached.

    A couple notes:

    I noticed you had a couple every tick events as sub events. An every tick event which has any other conditions is redundant. Read this page to get more information:

    https://www.scirra.com/blog/141/common- ... nd-gotchas

    I also noticed, your events to change which player is selected were set up in a way that they were firing every tick. With small project, you wouldn't notice, but as your project grew in complexity, it could really bog it down. I added an event at the start of layout to disable input on the monster and moved all of the events to switch which is controlled as sub-events to the space bar event. That ensures they only fire when you want to change users, not every tick.

    I noticed a scroll to event at the end which, because of your camera seemed redundant. I am not sure why it was there. If there is a reason I don't know about, you will want to add it back in.

    I gave the camera the ability to follow the monster when it is the selected character.

    Finally, because you were using the lerp function to move the camera, I figured the easiest method to move the follower would be to use the same method. I figure if you know enough about it to use it, what I did should make sense to you.

    As a bonus, I decided to help you cut down the number of events by 1 more. Where you set the selected value, you were adding 1 to the value. Then, in a separate event, you were checking to see if the value was above 2. If it was you were setting it to 1. This method works perfectly and is a good way to make this kind of change but eats up another event unnecessarily. So, I threw in a function you can use in your future projects. The method is "whichcharacter = 2 ? 1 : 2". This is a very simple if/then statement and can be used any time you have 2 possible results. This is what it means:

    whichcharacter = 2 -> If whichcharacter is equal to 2

    ? 1 -> Then return 1

    : 2 -> If not, return 2

    Because I wrote the function in the action to set whichcharacter, the result is, whichcharacter is set to the return value. So, if whichcharacter is currently 2, whichcharacter is set to 1. If not, it is set to 2.

    Well, that was a long one but I hope it helps. Good luck with your project.

InDWrekt's avatar

InDWrekt

Member since 19 Sep, 2011

Twitter
InDWrekt has 7 followers

Trophy Case

  • 13-Year Club
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Regular Visitor Visited Construct.net 7 days in a row
  • RTFM Read the fabulous manual
  • Email Verified

Progress

18/44
How to earn trophies