SoldjahBoy's Forum Posts

  • If the enemy is going inside the wall, check the size of your collision cells for the path finding behaviour. I assume you're using the path finding behaviour for moving the enemy to this "last seen object" you have?

    Also check the collision bounds of the wall objects and the enemy character too, and make sure they're good.

    To make the enemy go exactly on the object - check for a close distance (proximity) on the object... once you have this close distance (after using path finding) then turn path finding off and use "moveto" behaviour or some other movement method to go straight to final position. The path finding will work when the enemy is far away (so it will avoid walls and such) but then move to the exact place once within your defined distance (10-20 pixels maybe?).

    ~Sol

  • Bah! I haven't worked enough with multiplayer stuff to know for sure then... it just seemed like the logical solution to me.

    Is there another event somewhere that you're sending the room list too often? It may be a triggering issue as well... I mean, it sounds like something, somewhere, is popping through too many requests in a single tick maybe, or you're getting some weird cascading in your conditional requirements.

    If you can post your capx I can take a look and mess with it as well.

    ~Sol

  • Not remove the loop itself... just MOVE the request action (from event 28) into an isolated event so it's not triggering (with a 1 seconds delay) for every [loopindex].

    So instead of requesting in that loop - set a global variable or something as a trigger (1?). Use that trigger to do the request only once instead of X "rooms" loopindex - then set itself back to (0?).

    I'll be surprised if that doesn't fix it :/

    It's either that, or something is telling the signalling server someone is joining constantly... I notice your master condition there is set off by "on join".

    ~Sol

  • I have been meaning to check out LiteTween lately - but I've been finding it just as easy to do them manually - so I'm not sure exactly what results you're getting.

    When you say "it does work, but not with the plugin" what do you mean? What part works and what part doesn't?

    If it's moving to the position, but then it's kind of "floating" around when you move - that's easy to solve. If it's something else, then try to explain specifically.

    ~Sol

  • For Y component you can do "self.y" - if I understand your problem I think that will work.

    In which case you would do something like;

    [if ABC]

    --- set thing.x position = otherthing.x

    --- set thing.y position = thing.y (or self.y)

    If that doesn't work then can you draw a diagram of what you want to happen - and then I should be able to explain better, or make an example.

    ~Sol

  • I have done this for a few projects already.

    I would recommend using Pode HTML5 pack for the iframe object. You can place an iframe inside of your project to display whatever website you want to inside of it.

    Unfortunately though you cannot add UI on top of any website because of the way things work; like iFrames, text.boxes, buttons, and lists - etc

    If you need to have UI on top of the website for some functionality, you will need to do something like build a special version of your site that has the UI buttons you desire. You can maybe take a static image of your site (if it doesn't need all links to work in the project) and scroll it up and down in your project, adding whatever UI elements you want on top since it would be a sprite object.

    ~Sol

  • Your request for game_name instance is happening every loopindex... so that's what's causing it.

    What you probably need to do is move that particular action out from under the loop, and have the loop trigger a boolean value or something once it's counted your rooms - then use the triggered boolean to request the game_name, etc.

    If you have say 10 rooms, then that request is triggering 10 times in the matter of about 0.016 seconds. The "wait" you have put only delays this fact, since there will still be 10 requests waiting to check with a tiny delay between each 1 second wait. It's still causing a "cascade" effect.

    ~Sol

  • If you can space out your link ( l i k e t h i s ) so someone can get the whole thing - we can download it and check it out for you.

    It sounds like what SimoneT said though... you've somehow unlinked your event sheet to the layout, or something. If this is a school project then I assume your teacher knows about Construct 2 and how to use it... maybe he/she will be able to help you solve the problem also if nobody else here can.

    ~Sol

  • The Canvas2Layer and Layer2Canvas thing I was talking about is more specifially used to track objects between varying layers of parallaxing. For example in my project I have a light source on a parallaxed layer, but the object that gives the illusion of it actually being "light" is on a non-parallaxed layer. I had to make the "light" follow the source between the varying parallax values... so this is the use of Layer2Canvas and Canvas2Layer.

    UltimateArceus3

    If you set your heart to something like:

    heart.x = ViewportLeft("whatever layer name or number")+5

    heart.Y = ViewportBottom("same layer name or whatever as above") -5

    It will place the heart at 5px from the left and 5px from the bottom of the current layer (UI layer?) and always stay there no matter where the player moves to.

    *EDIT*

    Kyatric ninja... ninja, RAH!

    ~Sol

  • If you know how to create an object at runtime you're almost there...

    You will need an ice looking sprite object, and give it an instance variable (let's call it IceTimer) and give that a default value of 10 in the layout editor. This way, any ice block when created automatically has a value of 10 for the variable IceTimer.

    When you create the ice block (press button -> create ice.sprite) it will have our IceTimer value of 10.

    Now, you need an event that is [Every 1 seconds] as well as [Compare two values (ice.sprite.count is greater than 0)] with the action of "minus 1 from ice.sprite variable IceTimer"

    Finally one more event that is [Ice.sprite variable IceTimer=0] -> Destroy ice.sprite

    This would work for one ice sprite only (I think) - you may need to add some "for each ice.sprite" loops in the "every 1 seconds" event as well as the event that deletes the ice once the timer is at 0.

    Hopefully this makes sense.

    ~Sol

  • Punch it with a hammer...

    Actually I don't really know to be honest. If nobody else can help though, the hammer is probably a bad idea.

    ~Sol

  • Calling mudmask, come in mudmask...

    ~Sol

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • It looks like you're using point sampling instead of linear.

    Check your project properties and make sure the sampling is set to linear.

    ~Sol

  • Yes it is possible. It depends which platform you are developing for, as to the best way to do something like this.

    If you are making the project for PC, then you can use NWjs and simply pick files from a folder at random to display - whether they're text or pictures.

    If you are making this for mobile then you can use other methods, like loading the images from a URL perhaps - of it your images are embedded in the project you can just make them all in one sprite object as animation frames, then set the animation frames randomly.

    IT also depends what you mean by "database". The way data structure is typically/easily done in Construct 2 is via JSON, but you can do any way you like depending on your ability. I have made database structure will token delimited plain text, as well as JSON, as well as nested dictionary JSON. It really just depends how you want to make it work

    ~Sol

  • Using bullet behaviour should work fine?

    If you set the angle towards the player, and set the speed to something like say, 400... it will fall if it's above the player.

    If the problem you're having is that the falling thing goes back UP again after it goes below the player, you need to set conditions on the movement. If you only want the thing to move and aim at the player if it is above the player and not below, then make the condition something like;

    [Compare Y position of falling.object -> is less than player.object]

    --- Set angle to player.object

    --- Set speed to 400

    I guess you should draw a picture of how you want this to work in your game though, because I still don't really understand what you're trying to do.

    ~Sol