mindfaQ's Forum Posts

  • The use of webstorage is deprecated, so if you want to learn this stuff, better do it with the LocalStorage object from the get-go I'd suggest.

  • Tag the wall hit "wallhit" when playing it. Then in the collision event add another condition (audio: is tag playing "wallhit") and invert it. This way it will only play, when the wall hit sound is not already playing.

  • is overlapping a: texta

    else

    is overlapping b: textb

    else

    is overlapping c: textc

    else: notoverlapping

    Or more elegant, put them into a family.

    is overlapping family: set text to family.texttodisplay (instance variable)

    else: set text to "not overlapping"

  • Ich bin nicht wirklich erfahren genug um dir Herausforderungen zu stellen.

    Jedoch vielleicht einige Denkanstöße (müssen garnicht immer komplette Spiele sein, sondern können einfach nur (sozusagen modular) Spielelemente sein, die mman - wenn man sie einmal verstanden hat, in seine Spiele mit einbauen kann):

    • Dialogsystem (Texte aus einer Textdatei importieren und dann über Funktionen "abspielen")
    • Itemsystem (so ein wenig der objektorientierte Ansatz, jedes Item hat verschiedene Eigenschaften, die sich dann auf einen oder mehre exemplarische Spielecharaktere auswirken sollen (schnellere Bewegung, mehr HP, sowas in der Art, neue Fähigkeiten verleihen); die Itemeigenschaften werden wieder aus einer externen Datei geholt, die man im einem Texteditor erstellt hat und alles Nötige enthält)
    • Speichersystem (vielleicht ja deinen Charakter mit der Itemausrüstung abspeichern und ein Level wieder in den Zustand versetzen können, in dem es war)
    • Ein Labyrinth generieren lassen und eine optische Präsentation davon erstellen
    • Die Karte für ein Roguelike generieren lassen
    • ein Shmup bauen mit möglichst vielen oder kreativen Arten von Bewegungen / Schussmustern, ....
  • Programmers should know of scoping, too.

  • Force users to not use IE. Even Microsoft slowly ditches IE by programming Edge (/Spartan) for Win 10.

  • 2. The evaluation event will pick all items that match one of the conditions, so it will pick UID1 and UID2 both together. If the uids don't match, no object is selected, or if only one matches, only one is selected of course. If you only want it to work, when you sucessfully picked two objects, then add the condition object.pickedcount = 2. If none is selected, the actions don't run, true.

    3. When the container object, that contains the flag, is picked, the flag that is contained will automatically get selected with it. So the on created event should already have the correct flag selected.

    4. Remove the "destroy outside of layout", then add an event: if object.y - object.height/2 > scrolly + originalwindowheight/2 : destroy object

    (- object.height/2 if your point of origin is in the middle of the object, if you have the origin point on the bottom of the object, it would be - object.height; if you have it on top, if would be 0)

    Well I am not sure why you think the timer behavior let's you not do that what you have described, because it does imo .

  • Give them a new family instance variable where you save their type as string or whatever (so for all big ones it is "big", for the small ones it is "small").

    For the second problem - you need to understand how picking works. You start with all objects picked basically and then reduce the selection continuously by placing your conditions.

    So if you want to select two different instances of one family in one event but you only have two different UIDs to separate them from the rest, you need to do a "pick by evaluate" and then do

    pick by evaluate: family.uid = someUID1 | family.uid = someUID2

    This way you pick the instances with someUID1 and someUID2. The "|" is the logical or operator in construct.

    If the instances are different objects like sprite1 and sprite2, you can easily do it as you've written:

    pick something1 where uid = someUID

    pick something2 where uid = someUID2 - destroy something1, destroy something2

    Don't know about pin performance, less frequent updating should use up less resources I guess, but... can't say for sure.

    3) you probably need to pin it manually, but you should try it out and see what happens, when you don't pin it. In case you want to pin it automatically on creation, but have different events creating stuff, you can use an event like:

    on created (family or sprite) - pin flag to (family or sprite)

    4) move downward = bullet behavior with bullet angle of motion set to 90°; you can deactivate setting the angle, so that the bullet behavior does not rotate your object by 90°

    Control when it is created: there is a timer behavior, use it

  • Waiting one tick is enough.

  • array.at(floor(random(0,array.width)))

    for a one-dimensional array

  • Put the words into a text file, each word on its own line.

    Then at start, ajax request the project file.

    When the ajax-request finished, do a for loop from 1 to tokencount(ajax.lastdata, newline): dictionary add key: tokenat(ajax.lastdata, loopindex-1, newline) with value: 0

    Now each word is a key in your dictionary.

    Now you can use the comparison:

    dictionary has key "yourtexttocompare": do stuff

    Ofc you can also use a regex match, then you don't need the dictionary.

  • If I have the choice I'll pick the female character more often than not. If the character has it's own story or what not, then either is fine. But it should believable. When much muscle work is required, a thin, sexy woman in the role might come off as fake/fictional, etc..

  • Hmm, one's I played quite a bit:

    • Protector III (TD)
    • Gem TD (TD)
    • Kongai (CCG)
    • Fantastic Contraption (physics game)
    • Super Stacker (physics game)

    Yeah... those are the ones I remember.

  • The only thing you need to understand about LocalStorage contrary to WebStorage is, that data is fetched asynchronously, meaning on one tick you may get or set data, but it will not be immediately available in that tick, like it would with the webstorage.

    When getting or setting the data is finished, localstorage will trigger the "on item 'x' get" / "on item 'x' set" etc. events, so you use those events to do the followup actions (like setting the highscore variable to the highscore data from the storage)

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • this is the LocalStorage equivalent of your code: