lucid's Forum Posts

  • I'm not about to quote all that so:

    if you wanted to destroy all bullets there are four ways you can do it, off the top of my head.

    First there is a System - Advanced Collision condition, that allows you to choose whether either object involved gets picked. If no instances of an object are picked, it's as if all of them were picked. you could use that.

    You could use the 'family trick', where you put the bullets in a family called "blue" lets say. And on collision with bullet, blue.destroy. Families have their own separate picking lists, so you can do things like bullet, on collision with blue, and control the hitting bullet, and 'hitee' separately. in this case, since only the bullet was involved in the collision, all blues(bullets in that family) would be destroyed

    you could use a function, this is messy as you said, unless the process involves more than just a simple destroy. you could make a function that destroys all bullets. and function calls allow you to choose whether or not picking is conserved inside the function

    you could use my 's' plugin. it intimidates alot of users, and indeed it's more advanced core features have probably the largest learning curve of any construct plugin I'm aware of, but there are several handy easy to use things as well. In this case, there is a Pick Object action, and a Pick Object condition. They serve the same purpose, just allow you to use them in two different places. All this does is allow you to choose any object type, and order construct to pick a specific instance, unpick a specific instance, pick all that type, unpick all of that type. You can also choose whether it's picked as itself, or as a family, so you can say pick all bullets as blue, and even if there are other things in the blue family, it would only pick all the bullets there.

    there's also python, but that's overkill if you're not already using python, which unlike gamemaker, scripting isn't needed for even very advanced games, with very unique needs. I wouldn't recommend even touching python, until you realize how you can make everything you think you can't make without it.

    Controlling views. You can control views directly with the system object. controlling scrollx and y and zoom, globally as well as independently for each layer. A simple way to make a great camera is to make an invisible sprite object, and just tell the camera to "always" scroll to that object. Then put a bullet behavior on that invisible sprite, and make it always follow what you want at a speed based on the distance, that way it smoothly slows as it approaches objects. any type of movement you can conceive of except for 3d camera rotation is possible with these few simple system actions. also, there is a 3rd party 'magiccam' plugin which does alot of neat stuff for you, but I haven't used it myself, nor kept track of it's stability or development

    there's no handy tile editor as of yet (though there is grid snapping), other than cool examples made with construct you can probably find in the tutorials section of the forum. the platform school tutorial if I remember correctly had some ugly square tiles covered with pretty graphics, and that's a perfectly valid and common way to do it. If you mean one large tileset sprite, and you only reveal whichever part you need, this would be an involved process using uv distortion, which is entirely possible, but not the easy way to do it. the straightforward way is to load all the separate tiles into a single sprite animation. set the animation speed to 0, and then just switch frames in the editor like this :

    Subscribe to Construct videos now

    If by multiple views with multiple huds, you mean split screen, there have been a few examples of someone doing this with the canvas mostly. there's was a particularly awesome one here:

    I also came from GameMaker, which I purchased long long ago. The second I tried to create a script that did bezier curves, or split a convex polygon into multiple triangles though, it completely choked showing me that the engine wasn't capable of anything truly computationally complex. I can assure you that construct is capable of doing anything, gamedesignwise, that gamemaker can do in a much more intuitive way. seriously, try out the ghost shooter tutorial, and if you're like me, you'll be in love with construct halfway through it. then move onto 'platform school' tutorial, and dropout halfway through once you "get it". once you understand the basic workflow and logic to construct, you'll likely find that it's much more simple and enjoyable to make anything you can think of then you would have even hoped possible. pretty much any 2d gametype or feature you can think of, you can make.

  • nah

    I just forgot honestly. what does a fractional exponent do?

    isn't it something weird like 6 to the 1/5 power is like taking the 5th root of 6 or something?

    if that's the case then it still doesn't make sense why it'd be equivalent...

    wait wait

    found it

    http://www.mathsisfun.com/algebra/expon ... ional.html

    yeah, I guess the confusion was thinking timedelta was an exact science. there's no way taking the nth root of something can give truly similar results to multiplying by some other random a/b.

    so basically what you guys are saying is that they really won't run at exactly the same speeds when moving at two different framerates, even in a perfect world where you had a perfectly exact timedelta. so just come up with some random equation that seems to work, or use one you saw someone else use somewhere?

  • I think each time you Set a new animation you have to Play it as well

    could be wrong though. just try it!

  • System - always

    -------Set Sprite2 Position to Sprite1

    MouseKeyBoard - On Left Button Clicked

    --------Set Sprite2 Visible - Visible

    --------Set Sprite1 Visible - Invisible

    MouseKeyBoard - On Left Button Released

    --------Set Sprite2 Visible - Invisible

    --------Set Sprite1 Visible - Visible

  • yeah, I was just suggesting another way of doing it

    after switching the animation, did you use a Play Animation action?

  • Is there a spot to implement Global Variables? I'd like to have a running tally of each "Enemy" in the game, so that when it's down to 0, you win the game.

    When you go to select your objects, for actions and such, choose the system object. It has global variables. Just make an action. System-Set Value

    For this particular case though, unless you don't really have all those enemies there, are you're making like a wave of enemies and behind the scenes you're creating them offscreen or something, There is actually a System expression that counts objects CountMatching(objectname). it counts the objects currently picked, so if you don't have any type of picking condition before you use that expression it will just count all the objects of that type in the layout

    [quote:19ilh352]What's a good way to do a transition between 2+ layouts? Can you do this with 2 doors, 1 in each room to take you into the other? If so, how best would this be accomplished?

    I've never worked with multiple layouts other than quick experiments so I'll leave that one to someone else

    [quote:19ilh352]Sometimes my character or one of the enemies will be sent outside of the room, how do I fix this neither of us can leave the layout? Also, sometimes the physics will get wacky and when an enemy pushes me up or down through a platform I teleport through it, any method to alleviate this issue?

    first question is do you mean physics like the Physics behavior? or just the general sense of the word physics and you're using the Platform behavior? if physics behavior what actions are you using to set the speed or strength of the enemy? If platform, what actions are you using to simulate pushes?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • there are many ways to do this of course. personally I would probably take what you already have there, and make it an invisible character sprite. Then add 3 sprites, one for each age, and add the animations to that individual sprite, and then always set it's location to the invisible character sprite (when it's the selected age), and make them invisible or visible as needed. Just seems a less messy way to handle the animation sheets. Each age has it's own full set of animations in a separate sprite.

  • ok, I guess my real question is what does

    x^y

    do when 0<y<1

    I keep trying to google it, but not getting what I'm looking for. I'm used to exponents providing very different answers to multiplication, you know

    5*3=15,

    5^3=125

  • That good news, about the performance. Now, how easy is it to access object's instances in your event system. For example(a pretty extreme case actually), I have an object. It collides with something, and I want to either destroy, or lower life on certain objects, but only in that area(say a bounding circle). How easy is it to access only those specific instances of said object that are within the circle, and for (example) weaker enemies, destroy them, and stronger enemies simply lower life?

    you could do it with a distance expression, but you said circle, so for this example, I'll use an actual sprite circle:

    let's say you put several life lowerable objects in a family called Hurtable

    Victim----on collision with Something:

    --------------------Move SplashCircleSprite to Position of Something

    -----For Each Hurtable

    -----------Hurtable is overlapping SplashCircleSprite

    --------------------------------Hurtable private variable Energy minus 10

    Hurtable private variable Energy equal to or less than 0

    -------------------Destroy Hurtable

    The 'picking' system automatically (in ways defined by the plugin) picks the objects relevant to the condition. So any actions under a condition, so for example:

    On Sprite Collides with OtherSprite

    would automatically only act on the particular Sprite(s) and OtherSprite(s) involved in the collision

    [quote:2lknlr9u]

    Also, say I want to create my own plugin for sounds, using maybe OpenAL, or cAudio. In your XAudio2 plugin, it has 64 channels, but the I would do it would not to have channels. The audio API manages all of that(including mixing) and simply returns pointers to sounds, which you need in order to stop or change position(3d sound) of the currently playing sound. Now if you can't easily return/send actual C pointers to/from the plugin, I could simply create a data structure to hold all the pointers, and return an index. But, can you describe a little how that would work, either pointers or simple integer indices???

    you can do any type of c++ you can think of in a plugin, period. plugins are able to communicate with eachother if necessary and pass any type of data through void pointers.

    you design the interface for the construct user within the confines of the ActionConditionExpression system.

    Basically, you decide a list of possible actions (things they can do, ie. Set Reverb to 10), conditions (things they can check, or have triggered, If Player is within hearing distance of Sprite), and expressions (GetCurrentReverbLevel).

    as i said before though, the plugin is just c++, you can include whatever libraries, and do whatever you'd expect to in a c++ program

    ...

    ....just reread your question, and I realize I misinterpreted it maybe, so

    you mean return these pointers to the Construct user?

    yes, indices in a vector, list, etc, would probably be the simplest way to give these to the enduser. The XAudio plugin has AutoPlay features that does something similar already. You can Autoplay sound "blahblah", and if the user still wanted to know what channel it was autoplayed to they can Set Private Variable MyPV to XAudio.LastChannelPlayed.

    The beauty of it is how flexible it is, though:

    I'm not saying this would or wouldn't be a good/bad idea, but an example of how many different ways you could approach it if you wanted to be weird/creative. for example you 2 plugins, a soundmanager plugin and a sound effect plugin. when a sound was played through Soundmanager, it would create a soundobject, which they could then move around the layout with it's xyz coordinates, even add a behavior to if they wished. It could automatically destroy itself when the sound completed playing. You actually would need SoundManager at all except for caching sounds or whatever prior to playing them if you were doing that.

    welcome to the boards, btw

  • What does this do exactly? Interpolates based on timedelta? The lower the framerate the closer you are to one of points? If the lerp value from 0-1 doesn't change, then how does it ease in/out?

    just think of it like lerp(a,b,0.5)

    each tick it would go halfway to the destination.

    as it got closer it'd be a lower and lower distance.

    so it's a nice smooth slow down that looks like a cosine curve

  • Oops...

    Also, a simpler method is also just move Moveable toward Bolla with a negative speed

  • What they said

    I have something to add to what deadeye said though.

    Sometimes the gameplay idea might emerge from the story.

    Maybe the character is up against overwhelming odds and he can't hack and slash, how does he do it? He avoids enemies, and steals intelligence info from within their base. So you brainstorm on how to translate sneaking and stealing into fun gameplay.

    Maybe the story says your character is a flower creature. who needs to be pollinated every 5 minutes. Then you figure out how to space out pollination opportunities to make it challenging and fun.

    The point is. From your story, determine what your character must do, and the unique challenges they face, and then figure out which parts of it can be turned into gameplay. Make it a point to imagine your character doing what he or she does in a story or movie context, and not just automatically picture them running andjumping. Then brainstorm how it can be turned into gameplay. That way you're not just shooting in the dark for "an idea"

  • K let's start with what I do understand.

    I know the purpose of timedelta, to help you keep game speed consistent even when the fps changes. and I know that its the amount of time that has passed since last tick

    I understand lerp(here.x,there.x,0.5). And why that would give you a nice ease out from one location to another. And I also understand how I can use ^timedelta in my own caps just based off this with no greater understanding

    What I don't understand is the math logic behind using timedelta as an exponent

    Supposedly this is how ashley did it in some example, and I tested it with unlimited and fixed frames and it seems to keep the speed consistent.

    I just really want to understand why, mathematically, this should work. It makes no sense to me at all. If someone understands the math behind using an exponent, and how it creates the correct effect, id appreciate it. And just in case: no, I'm not satisfied just understanding That it works. I want to know Why it works

  • I'm not at home testing this, just looking at the screeshot, but I notice, your many apps have a ui with lots of text and buttons and sliders always. I understand how this can be done with objects and events, but its a tedious process. Are you using a particular plugin or technique that's cutting out some of the tedium, or are you just more patient than me?

  • 2 is how id do it if dealing with 1000's of tiles

    As long as its not too important to keep track of offscreen enemies navigating the terrain or anything