Animmaniac's Forum Posts

  • You do not have permission to view this post

  • You do not have permission to view this post

  • You do not have permission to view this post

  • harrio, in that case I think would be more appropriate to use a For each instead of Or:

    +For each mailbox

    +mail box is not empty

    add 1 to delivered

    I also agree with Arima that Or events should run only once per tick, otherwise things gets confusing.

    I can envision lots of people loosing hair because of variables acting strange an being incremented in an unexpected way in case the Or remains the way it currently is.

  • Ok, now is clear what you are trying to achieve.

    I made an example that halfs the height using a sine function. I think this is what you are looking for:

    Sphere-mapping-03

  • You do not have permission to view this post

  • Sorry, but I'm not totally following your thinking. If you apply the Lambert cylindrical equal-area projection in that rectangular texture you will only get some distortion near the equator line.

    Like I said earlier, if you want to be able to have a noise texture that properly wraps a sphere without distortion you will need to create an algorithm that generates the noise in that "rhombic" space that Rojo posted, and transform it in a rectangle with the previous example I made (that I think results in an approximation of the Lambert projection).

    Take a look at this

    Also take a look at Sinusoidal Projection.

    If this is you goal then know that is impossible to transform that rectangular texture to fit a sphere without seems or distortions. That texture has more information near the poles than what can fit in a sphere surface. If this is not your goal then I misunderstood the purpose of this topic.

  • You do not have permission to view this post

  • Here is the projection without distortion at the poles:

    sphere-mapping-01.cap

    However bear in mind that is impossible to distort this texture to fit perfectly a sphere without seems or distortion. If your goal is to achieve a sphere with an uniform noise you will need to generate the noise with the proper detail density across the poles in a way that it wraps perfectly.

  • You do not have permission to view this post

  • Yes, that's right harrio. Although I wasn't accounting for an ElseIf, it can be extended that way.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I think mixing different behaviors depending on the condition type involved is very counter-intuitive and should be avoided at all cost. This will cause lots of confusion in complex eventsheets.

    Decomposing the problem:

    In the scope of Else there is basically two types of conditions: Logic conditions and Picking conditions.

    The most intuitive behavior for an Else of a Logical condition like "System: Variable=0" is just treating it like a logical inverse. For a Picking condition like "Sprite: X<320" the most intuitive behavior for the Else is picking the opposite instances.

    So for an event that mix both types, the most intuitive behavior would be consistent with the previously stated.

    <img src="http://www.scirra.com/images/else3.png" border="0" />

    For the events above, the Else should be executed whenever the Variable!=0 and there's an instance of Sprite>=320, picking any instance of Sprite that meets the new criteria. This behavior is very straight-forward and easy to follow, and should cover most situations.

    What is breaking the logic above and causing trouble is the fact you are trying to accommodate this type of situation without always returning 0:

    <img src="http://dl.dropbox.com/u/7871870/construct/Else-normal-01.png" border="0" />

    For this variable not be always set to zero, the Else needs to run only when it's parent event is False, and not parallel like the more intuitive way.

    So the real problem is not related to picking, but if the Else should be executed parallel to it's parent or just when the parent is False. For most situations running parallel is more intuitive, but there's this exception where it can add further functionality.

    You can quickly solve any confusion by limiting the Else to work with only one of these cases, but the optimal solution would be to allow both. So for an optimal solution what is needed is a mechanism that allows the user to choose which situation he desires: execute in parallel, or just when the parent event is false.

    A way to allow this is by adding the above options when placing the Else (maybe a dropdown), and showing it's state (type of execution) in the Else condition.

    Another possibility is to use the positioning of the Else in relation to it's parent to change the execution type:

    -if the Else is in the same level as it's parent, the Else runs parallel;

    -if the Else is placed as a sub-event of it's parent, the Else runs only when the parent is False.

    Following this logic this would always set the Variable to 0:

    <img src="http://dl.dropbox.com/u/7871870/construct/Else-normal-01.png" border="0" />

    While this would set the Variable to 1 or 0 depending on the Variable value:

    <img src="http://dl.dropbox.com/u/7871870/construct/Else-subevent-01.png" border="0" />

    There should be more ways of doing this, these are just the ones I could think right now.

    Independently of the final solution, I agree with Fimbul that the Else should be listed in the right-click menu. It would act similar to an "Add blank sub-event", but adding the proper Else below the current event instead of a blank sub-event.

    *Edit: added images for better demonstration and improved the explanations.

  • For some reason I'm not allowed to vote on this poll, but my vote would go for more event sheet features. They are the base for everything else.

  • You do not have permission to view this post

  • You do not have permission to view this post