Shviller's Forum Posts

  • Done! (Request ID 2487638)

    I fail to reproduce the problem with object icons, unfortunately. It remains exclusive for the .cap file I uploaded in this thread. (and files this one was derived from) I'll post more about it if I manage to reproduce it.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • My SF.net username is Shviller.

    The very least I can do is add some info about how rotating and zooming works. Hopefully I can help more as I learn more about Constuct.

  • Hello everyone.

    I was fiddling with Platform behavior and found something strange. I created a solid object, some platforms and an object with platform behavior. When it's collision mode is set to Per pixel - everything works as expected (I spawned a lot of objects with platform behavior to make the demonstration more obvious):

    Setting collisions to Point also works fine:

    However, when I set collisions to bounding box, I get strange results:

    It seems to happen regardless of what objects are used, so the chances that I messed up something in either platforming object's of ground's settings are pretty low:

    It only happens with left slopes, though. Right slopes are fine:

    Also there's definitely something I don't know about Platform behaviour. If you run the included .cap file with collision modes for PlayerParticle (small blue circle) and OtherPlayerParticle (bigger red circle) set to Per-pixel you'll notice that blue ones can climb pretty steep slopes, while red ones are stopped by those slopes, however, they can still climb gentler slopes. Probably that has to do with the original sprites' sizes.

    There's another problem with the included file. I somehow managed to get rid of Ladder_left's icon (this probably happened when I tried to edit it manually, which in turn happened because the icon didn't update when the image changed. You can see an example of this behavior in CurvedSolid's icon - it is considerably different from the sprite itself, and in fact represents the previous version of this sprite). Not only this icon doesn't show in object list, it completely messes up the icons in the event wizard. I think it skips over non-existing icon, so n+1st object's icon gets assigned to the nth object.

  • Thank you for your replies!

    1.

    You can manipulate pretty much all behavior parameters at runtime

    You can access these through the tabs that appear when the object is picked in the event wizard dialog.

    Thanks, Ashley and Linkman!I feel stupid for not clicking on that 'Platform' tab I saw in the event wizard.

    2.

    There's no condition like that, but here's how you could do it: every enemy has a value called "spawned".

    A very nice trick, Linkman! I'll stick to it, since there's less places in event sheets to keep track of. If I notice performance issues (which seems unlikely) I'll switch to function objects, like Ashley recommended. Well, I'll probably have a whole lot of questions about how Construct works on the inside (for example is 'Compare private variable' condition evaluated for every object of the required type every cycle, or only when the variable actually changes, etc), but that'll be much later - only when I'm able to make those questions comprehensible.

    3.

    At the start of the layout, have the width of the background set to LayoutWidth and the height set to LayoutHeight.

    Yeah, that's pretty much what I thought.

    I think in the latest builds the Tiled Background can scale the texture inside, but only if it's a power-of-two sized texture

    Good to know, thanks! By the way, I've encountered a small quirk that may be considered a bug. When the 'Set image scale' action is displayed in the event sheet, it only shows one argument, (X Scale), not two. Probably a legacy from the times when you couldn't set X and Y scaling separately.

    4.

    it's a simple as going to the event editor and setting the zoom through the System/Set Zoom action

    Thanks for pointing that system action out, Linkman! I think I should read about all existing actions and conditions before I ask another stupid question like that.

    However, I've noticed that the zoom is apparently applied after the scrolling (both 'scroll to...' actions and 'center view on me' attribute), so if you have unbounded scrolling disabled it's quite possible to have the object the view centers on off-screen. The easiest way to see this behavior is to create a layout that can scroll only horizontally, place an object with 'center view on me' attribute somewhere at the bottom of it and use a System/Display/Set Zoom action to zoom to, say, 200%.

    Another interesting thing with unbounded scrolling is related to System/Display/Set display angle. If Construct can't display the view without showing areas that are outside of the layout (because of the rotation), it simply displays it as if display angle is set to 0. If you move the view so that it can be displayed properly - it will be displayed properly. It's easy to see if you make a large (taller than the window) layout and an object with platform behavior at the bottom of it, set display angle to, say, 5 in the 'Start of layout' event. When you start jumping, the view will tilt when you're in the air, and go back to horizontal when you're on the ground - all without touching the Set display angle action.

    It's particularly interesting to set the display angle to 180 - sometimes it will work properly (everything is drawn upside-down), and sometimes not (switching back and forth between normal and upside-down as you jump). I don't think it's a bug - after all, the user have disabled the unbounded scrolling property - but that 180 degrees thing seems just weird. Anyway, this quirk should probably be documented.

    On the other hand, this "scroll first, zoom later" thing seems a bit counterintuitive, so it may be considered a bug. Even if that's the intended behavior, I'd really love to see it documented. I could add it to the wiki, if you like, just tell me where such info is appropriate. Well, if Ashley and others are ok with allowing mostly-strangers like me to edit the wiki, that is.

    5.

    Split screen games aren't currently supported, unfortunately, and as far as I know there's no way to do what you want with multiple views.

    Aw, it's a pity. Well, Rome wasn't built in a day... By the way, is it possible to implement it as a plugin via SDK? If so, I'm willing to help. I have pretty much no idea about what's possible and what's impossible to do with it, though...

    6.

    Are you talking about the Platform checkbox under Attributes?

    Yes, Platform attribute is what I meant. Sorry for the garbled explanations. Good to know it's going to be fixed. By the way, thanks a lot for your great Platform School!

  • Hello.

    I'm new to Construct, so after a bit of tinkering I've decided to ask some questions, since I couldn't figure them out by myself.

    First and foremost, is it possible to manipulate parameters of a behavior some object has at runtime? Say, I spawn a bunch of objects with platform behavior, and I want them to have slightly different parameters, for example one has jump strength of 800, another has 790, some of them have jump sustain enabled, some don't, etc.

    Another question: is there an 'Object created' event condition? Say, I take Ghost Shooter tutorial and add some way for ghosts to respawn. I need to set the direction of every new ghost to random. Of course, I could add that action right after the one that creates a new ghost, but imagine there are ten different events that spawn ghosts. I'll need to add that action to each of them, and change it in all those 10 places every time I decide that the way to spawn them need to be changed (say, they need to have different colors, or different sizes with their starting health proportional to the size, etc.). Of course it's doable, and I could probably store all that custom initialization code in a function and call it from all those 10 places, but having an event that fires when the object is created seems easier.

    Is it possible to make a tiled background cover the whole layout regardless of the layout's size? It should be pretty easy to do with events, but what about something like, I don't know, setting background's width to be something like CurrentLayout.Width? Or, for that matter, is it possible to stretch a background, or do I need a Sprite object if I want to stretch it?

    Is it possible to make 'camera zoom in/out', so that the area of the layout that is seen is smaller/larger than the window's size? In Game Maker I could do it by setting view's 'View in room' and 'Port on screen' to be different from each other and that was it.

    Is it possible to make split-screen games? Or' for that matter, anything that has several 'cameras'? For example, to make a sniper scope that shows a zoomed-in portion of the layout in addition to what is normally visible.

    When I give an object platform behavior, it behaves in an unexpected way. I expect it to be completely 'transparent' (that is, the player can move through it freely), except when the player is jumping on it (that's when the object acts as a platform and allows the player to stand on it). In practice there's a situation, when the player is trying to walk through the platform. In that case the platform acts as a solid. Imagine the player standing on the ground, and a large block in his way, which is an object with platform behavior. The player won't be able to walk through it, but jumping through it works fine. Is that an intended behavior? The inconsistency (I can't walk through it, but I can jump through it) makes me think it's a bug.

    Anyway, even if it's not currently possible to do the things I ask about, please tell me if it'll be possible later, or with some kind of addon. Say, if there's no 'object created' condition, but there is a way to add it - I'll gladly have a shot at implementing it (I do have some experience with C++), hoping to make Construct even more impressive and convenient than it already is.