brockatkinson's Forum Posts

  • It's all to do with the way you've positioned the images.

    Simply open up your space-ship and bullet, and rotate it 90 degrees to the right. The Construct animation editor has a button for it.

    Problem solved.

    Edit: I'd also recommend that you try other control schemes--the 8-directional movement feels strange for a spaceship. Perhaps try the car?

  • I think it's your While loop which is the trouble.

    Instead of the While, replace that with System.Every X Seconds (2 seconds). Then give it a go.

  • Have three characters that each spawn a bullet every two seconds. This should be done by a simple 'for-each' loop, while waiting two seconds. But the problem with that is, essentially, that they'll be all shooting at the same time.

    So, what you need to do, is to check for when you want them to start firing. This can be done different ways, by checking the nearest enemy, and then seeing if the distance between them and the hero is less than X amount of pixels, or just to activate it when they're all on the screen. Either way, you could set up a global variable that is called 'EnemiesStartFiring'.

    Before you go any further, give each enemy its own boolean variable, called 'ActivateFiring'. Make this condition as part of the 'for-each' loop mentioned above (so in the single action, it should be: for-each ENEMY | Wait 2.0 Seconds | Enemy.ActivateFiring = true.

    Anyway, when EnemiesStartFiring = 1, make an action that sets the ActivateFiring of the closest enemy to be true. Then have the System wait 1 second, and set the second enemy's ActivateFiring to be true. Then, have it wait an additional second before setting the third enemy's ActivateFiring true. Make sure you set EnemiesStartFiring to 0, otherwise that will continue to loop.

    Does that make sense?

    In one of my combat games, I simply have each enemy attack whenever they're within a certain range of the hero. It works well enough, but there's no coordination between the enemies.

  • I've had a look in it, and I'm a little confused as to what you're trying to do.

    I did, however, fix some of the problems. I commented the parts that I changed, except in some parts where I just deleted unnecessarily actions.

    ZOMBIES

    Edit: by the way, awesome artwork!

  • Rooting your desire is perfectly safe, except it voids the warranty. But my phone hasn't had any problems--in fact, it runs faster and better than it ever did with the stock ROM on it. Also, it's virtually impossible to brick your phone--I've 'soft bricked' it a couple of times, but all it requires is for you to delete and reinstall it again.

    Anyway, the code that you'd upload, using Construct, after it's been minified, is ridiculously complex--people wouldn't be able to read it and understand it enough (unless they're a mathematician) to be able to grab the portions of it that they liked.

  • I doubt there would be any more loss of performance than if you had multiple collision masks. They are essentially doing the same thing, at the end of the day.

    That being said, multiple collision masks on single objects are on Ashley's to-do list, albeit quite far back (as more important stuff is needed beforehand, and that this has a workaround).

    Use the 'pin' behavior so that you don't have to worry about it.

  • If you install Cyanogenmod 7 (gingerbread 2.3.3), you won't have that problem.

  • Behaviors are not passed through families. What you're going to need to do, instead of using the Pin Behavior, is to have a ForEach [family] loop, every tick, set their position to another object. This will essentially do the same thing as the pin behavior.

    Though I must ask, from someone more knowledgeable than I--is there a significant performance drop if you set one object's position to another object, provided the other object doesn't move?

  • It can be done with variables, by assigning a variable to a player (let's call the player Hero, and the variable myLayer).

    System -> every tick: Hero.myLayer = Hero.LayerNumber

    Keyboard -> onKeyPress(1): Send Hero to layer 1

    ...

    Keyboard -> onKeyPress(7): Send Hero to layer 7

    IF Hero.myLayer == 2, do.this

    So it's possible, but just a little roundabout.

  • What makes a game good?

    User testing is what makes games good. It's why every Valve game is incredible.

    If you're trying to create a game without user testing, then you're doing it wrong.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • It also happens with the 8-directional movement on occasion.

    I have a problem with it on Chrome mostly, but other browsers seem to be fine. Apparently it's to do with graphics drivers.

    There's nothing really you can do about it, but I will look into it some more.

  • I'd personally put another, invisible sprite behind the main one, making it slightly (depending on the speed of the game) larger than the main one. Then use that to tell your collision, in the sense that if the right-hand side of the object is colliding with a wall, ignore the invalid input.

    There are several ways to do this, but I'd recommend behaviors.

  • You are using 8 directional movement, yes? That's probably why.

    I would recommend that you have you blank event only have ScrollTo on it, and do the movement as events (when keyboard.buttonPressed.Left -> cameraSprite.Move.X = cameraSprite.X - 2 [or whatever it might be]).

  • Tough chin on the guy.

  • Wait so this means it's being done, Ashley?

    Awesome.

    Could I also request to ability to drop down through it, by pressing the down button? Or have the ability to enable that in code (when keyboard.downArrow, disable collision on x object)?