Ashley's Recent Forum Activity

  • It is possible to calculate an approximate normal to the surface of something. The ball behavior does this internally, and I wrote some of the code for it. However, it's complicated and I'm sure you don't need it here.

    You should probably adopt a system a bit like the 8 direction movement's engine. The algorithm works like this:

    Attempt to move in X direction

    If X direction is blocked by solid, move back to original position

    Attempt to move in Y direction

    If Y direction is blocked by solid, move back to original position

    This per-axis check means if you are blocked by something, you can still move along the unblocked axis. It might not work perfectly for all shapes and sizes of wall, but it seems to do the job for the 8 direction movement. It is also a suitable solution... the normal detection algorithm might be quite tricky in events, and is definitely overkill for something this simple.

  • This would be a nice feature. In the meantime, here's the maths you need.

    When A collides with spinning B and you want A to stick on to B, first calculate the distance and angle offset from B to A and store these in private variables, eg.

    Set 'dist' to distance(B.X, B.Y, A.X, A.Y)

    Set 'ang' to angle(B.X, B.Y, A.X, A.Y) - B.angle

    then, from then on, always set A's X and Y co-ordinates to

    B.X + cos(A('ang') + B.angle) * A('dist')

    B.Y + sin(A('ang') + B.angle) * A('dist')

    I can't check this works right now but its the right idea. Some kind of 'Stick' feature would definitely be useful instead of this though.

  • Events will very rarely be the bottleneck of your game. Almost always, you can assume the rendering is going to be what slows your game down, if anything.

    Read the article - it explains how quite often the events will actually have zero impact on your game's performance.

  • I've just moved in to my new house for this year of uni. However the internet isn't installed until wednesday. I'm on at the library right now, but hopefully back to normal soon! (I'll try not to suffer any withdrawal symptoms)

    Has anyone seen that episode of South Park? "I'm gonna head out west, find me some internet..."

  • Parallaxing is a good way to go - if there are 3 levels of scenery moving at different speeds when the screen scrolls, you get a much better feel of depth than a completely flat level. Dropshadows (use the Dropshadow object, not the effect, it's faster and doesnt use pixel shaders) can also add some depth too.

    Blur horizontal/blur vertical are the two slowest effects. I'd avoid them except where absolutely necessary if you can. They can be optimised though and I'll try to do it soon.

  • Family object picking works like normal object picking: if you have

    + Family Red 'Health' less or equal 0

    -> Destroy Family Red

    then only objects from the family Red with 'Health' <= 0 get destroyed. They shouldn't all be indiscriminately destroyed. If they are, it might be a bug, so upload a .cap showing this behaviour and I'll take a look.

    The way family private variables work is like this. Suppose you have 'SpriteA' and 'SpriteB' in family 'Red'. The private variables available in Red are the ones common to both SpriteA and SpriteB. So if you have:

    SpriteA's variables: VarA, VarB, VarC

    SpriteB's variables: VarA, VarB

    then via the family Red, you can access VarA and VarB, because all objects in the family have them. You can't access VarC: if you did 'Set VarC to 5', SpriteB doesn't have a VarC, so it's impossible to carry out this action. However, in ordinary non-family events referring to SpriteA, you can still use VarC like a normal private variable.

    The Family Manager dialog allows you to add and remove private variables to all the objects in the family at the same time. If you have 17 objects in family Red and you want to have a new variable 'VarD', you don't want to have to add 'VarD' individually to 17 objects. So you just hit 'Add new family variable' and add 'VarD', and it adds it to all of them. Because all of them have the variable in common, it becomes a family variable.

    I should note families keep a separate record of which objects are picked in the events. So if you have:

    + Bullet collides with family 'Red'

    -> Destroy SpriteA (which is in family 'Red')

    then this event treats SpriteA as unpicked by the event, so all SpriteAs will be destroyed. If you want to use only the objects affected by the event, choose an action under the 'Red' family in the event wizard (eg. Family 'Red': Destroy).

    Hope that explains it!

  • We get this request from time to time. The Windows version isn't even at 1.0 yet - it should definitely be completed and mature before we go porting it anywhere. Also, porting an application as large as Construct is a complex and very time-consuming task. Construct is developed primarily by three volunteers in our spare time (most of us are doing full time university courses as well), so we just don't have enough coders.

    If you want a mac or linux version you have one viable option:

    • Find a mac or linux programmer to do the port. Construct is open source, so anybody can do this.
  • You should be able to, but global objects dont seem quite with it at the moment. I'll try have that sorted soon.

  • Not yet, on the todo list.

  • How much video memory do you have? I guess running that app in the VM will tell you what the VM thinks - you need at least 64MB of VRAM to be able to run Construct effectively.

  • That's right, you can refer to layers by name as well. Anywhere you put a layer number, you can also put a layer name. And so long as you keep the same name, the layer ordering doesn't matter.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • That's awesome! It's a slinky!

Ashley's avatar

Ashley

Early Adopter

Member since 21 May, 2007

Twitter
Ashley has 1,427,629 followers

Connect with Ashley

Trophy Case

  • Jupiter Mission Supports Gordon's mission to Jupiter
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • Forum Wizard Made 5,000 posts in the forums
  • Forum Unicorn Made 10,000 posts in the forums
  • Forum Mega Brain Made 20,000 posts in the forums
  • x108
    Coach One of your tutorials has over 1,000 readers
  • x62
    Educator One of your tutorials has over 10,000 readers
  • x3
    Teacher One of your tutorials has over 100,000 readers
  • Sensei One of your tutorials has over 1,000,000 readers
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • RTFM Read the fabulous manual
  • x36
    Great Comment One of your comments gets 3 upvotes
  • Email Verified

Progress

32/44
How to earn trophies

Blogs