Asmodean's Forum Posts

  • I have three:

    One from you and Donelwero: NormalMap Extended (I think that needs another image),

    from ChrisbRobs: normal_map, only one Image but that looks more like bumpmapping.

    and from GamesWarp: Normal Mapping, only one image and with light effect.

  • Construct does type casting. If you put a string, which is a number into a number-variable, it will be a number. If it's a string and you try to put it into a number-variable you get a NaN (not a Number). You can test your variable if it's a NaN. So you only have to put the return value in a number-variable an look if it's a NaN. If it's a NaN it is a string otherwise a number.

    Something like only her comes the string from a Textbox:

    Global number myNumber = 0

    + Button: On clicked

    -> System: Set myNumber to TextBox.Text

    + System: myNumber is NaN

    -> Text: Set text to "String"

    + System: Else

    -> Text: Set text to "Number"

  • The easiest is if the player bounces only upwards.

    Make a second ImagePoint on your enemy (Image Editor, second icon from bottom on the left, in the image point window press the plus icon) and place the ImagePoint on the top of your enemy (8 on the Numpad).

    You need 2 events:

    + Player: On collision with Enemy

    + System: Player.Y < Enemy.ImagePointY(1) -> Player: Simulate Platform pressing Jump

    If you don't want that your player jumps as high as the normal jump you can use vectorY:

    + Player: On collision with Enemy

    + System: Player.Y < Enemy.ImagePointY(1) -> Player: Set Platform vector Y to -250

    Be aware that the value of vectorY has to be negative.

    The second ImagePoint isn't really necessary. You could also use the origin ImagePoint, but you can get funny side effects if the origin ImagePoint is not in the middle of the Sprite.

    If you use the origin you need only Enemy.Y

    I assume that your player has the platform behavior and the enemy the solid.

  • Does your enemy has any behaviors like platform or solid? Do you want the player only bounce upwards on the enemy or should it also bounce to the direction it moves?

  • arrasia

    construct.net/en/forum/construct-3/plugin-sdk-10/paid-plug-in-conversion-135327

    But for the C2 runtime in C3 only, not for the new runtime version.

  • You could try it with 'tokenat'.

    tokenat(src, index, separator)

    Return the Nth token from src, splitting the string by separator. For example, tokenat("apples|oranges|bananas", 1, "|") returns oranges.

    Something like:

    File Choooser > On Changed > Array > Set Value at 0 to tokenat(FileChooser.FileNameAt(0),0,".")

  • It's all in elizadata.js in the plugin-folder. You can alter that if you want, a little help about the data structure is here: masswerk.at/elizabot

    I never tried it, so I can't help you with that.

    I don't think there is an easy way to use a database. You have to change how Eliza receives the data for this.

  • I tried on collision -> Player set vector Y 2000 for example, but it just doesn't cut it.

    That should work. Please keep in mind that you are still bound to the parameters from the platform behavior. That means if your 'Max speed' is 60 an you would give an impulse with vector X, the speed would never go over 60 no matter of your value you set the vector X. The same with Max fall speed and Deceleration and other parameters.

    Another point is that VectorY = 2000 would give an impulse to the bottom. If you want an impulse up you have to use -2000 (The upper left corner is 0,0 in coordinates)

  • My guess you haven't set the animation speed (in Animation Properties) to 0 in the Sprite Editor.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • You have to put your ground_item in a family, so you have it as sprite and as family otherwise you can't compare it.

    Then you could do it like that:

    The compare condition looks like that:

    The 'sprite.AnimationFrame=firstItem&Sprites.AnimationFrame=secondItem' are an And-Expression and if is true it's 1.

    firstItem and secondItem are the frames you want to compare.

  • Sprites have a condition 'is on-screen' if you negate this you can destroy the sprite if is not on the visible screen. Your sprite has to be on screen from start or spawn on screen otherwise it would be destroyed immediately.

    Bullet| (not) Is on-screen -> Bullet| Destroy

  • I like that, especially at the beginning the build up of the labyrinth.

    On little note, if you use the arrow keys and space, some keyboards won't recognize three keypresses at once (two arrow keys + space). You can get funny side effects. I would use the shift or control instead of space.

  • Without looking at your code, I think that is a limit of your keyboard (maybe I'm wrong here and is your code). There are keyboards where you can press only two keys at once in some combination. Mostly the shift and control keys are an exception. So try to use the control or shift key.

    "In order to save money, keyboard manufacturers often put many keys on the same "circuit" of sorts within the wiring of the keyboard. This prevents multiple keys in the same region of the keyboard from being pressed simultaneously. Sometimes it even prevents more than 2 keys at all from across the whole keyboard being pressed at once. Often the shift, ctrl, and alt keys are not within this limitation, so you can hold shift and press 2 other keys at once and it will still work fine."

    gaming.stackexchange.com/questions/6669/how-do-i-remove-the-limit-on-pc-keyboard-button-presses

  • The problem is the triggert event 'on touch'. It picks one instance, the 'for each' sees only one instance so there is no comparison with other UIDs possible. You have to use 'pick all' before 'for each'.

    I made another example. I hope that will help you more:

    drive.google.com/uc

  • What is in your Family? Are using sprites as tiles instead of a tilemap?