Glitches, Querks, notable problems or solutions

fishZombiefishZombie Member, PRO Posts: 46
edited March 2012 in Working with GS (Mac)
I just started, which is where most complaints come from, I'm sure. Not used to the software yet... but...
Some things are frustrating:
1) Not able to zoom in an out on the Scene Editor to see my whole map.
2) If I click the scene button, then Layers, and I click an actor, it goes to the actor, but then I have to go through all that clicking again to select the next actor. This is of course if they are under a layer. Too much clicking.
3) This is BIG. Why do things remember a state they were in forever?
Example:
Create 2 actors, and a Game Level Boolean Attribute... called DoIt.... set to false.
then give Actor 1 a rule: Actor receives a touch AND DoIt is true, then Display text "Hello"
Actor 2 has a rule: Actor receives a touch, then change DoIt to true.
I would then assume that Actor 1 would ONLY display "Hello" if both conditions are valid, meaning I clicked on it when DoIt was true.
But if you test this, you will see that you can click on Actor 1, then go over and Click on Actor 2 (changing DoIt to true) and then the text will change on Actor 1.
This is like pressing a doorbell, when the power is off, then expecting to hear a Ding-Dong when you go in the other room and turn the power ON.
4) I've also noticed that Booleans are not so booleany sometimes. To make sure I get the result I want, I have to say "If XX is True, and If XX is NOT False, then do something". I can not just get away with saying "If XX is True, do blabla..." I've noticed this more during loops.
5) The color of the text is WHITE? Why? There should be a way of setting this in preferences. I have to change it to Black every time I want to use it.

I'm glad they made this software, but there are some real bothers with it right now. If anyone knows solutions to these things, or has anything else, they want to add, feel free.

Comments

  • simo103simo103 Member, PRO Posts: 1,331
  • tenrdrmertenrdrmer Member, Sous Chef, Senior Sous-Chef Posts: 9,934
    @fishzombie While the UI and workflow stuff you mention is something we have been asking for for a while. I have a feeling your code is causing you more problems than anything with the "bugs" you are reporting. you should not and I do not ever have to specify a boolean as true and not false. just true will work just fine. as for your other What are you actually using to designate the touch. touch is pressed, touch is inside, mouse button down, etc… These all do different things I just tested this using touch is pressed and it works perfectly. It sounds to me like you are using mouse button is down. If you feel you have some bugs on your hands though I do suggest you send in a bug report with your existing project file to http://arcade.gamesalad.com/feedback

    Cheers
    Aaron
  • tenrdrmertenrdrmer Member, Sous Chef, Senior Sous-Chef Posts: 9,934
  • fishZombiefishZombie Member, PRO Posts: 46
    http://www.crypes.com/work/GS_ButonPresRels.mov
    Here is a short clip showing the difference between Pressed, and Released. Pressed is a temporary state Change, and Released is a Permanent State change.
    http://www.crypes.com/work/Actor1_code.png
    http://www.crypes.com/work/Actor2_code.png
    My complaint is that they both should be Temp State.
    I would love to have a "Change State" option on the choices for a boolean, instead of just True/False in the rules pulldown. So if it's true, make it false. If false, then make it true.
  • tatiangtatiang Member, Sous Chef, PRO, Senior Sous-Chef Posts: 11,949
    edited March 2012
    [Edit: you beat me to it. Yes, Released is a permanent state change and it really shouldn't be.]

    You're using when Touch is Released instead of Touch is Pressed. My understanding of that condition is that it is true when touch has been pressed and is now released (e.g. right after a touch or a long time after a touch). Someone correct me if I'm wrong. For a long time, I assumed that Touch is Released meant _exactly when_ the actor was released. It should really be named something like Touch Has Been Pressed At Some Point or Touch Is Not Pressed.

    Try this and you'll see what I mean:

    image

    New to GameSalad? (FAQs)   |   Tutorials   |   Templates   |   Greenleaf Games   |   Educator & Certified GameSalad User

  • tatiangtatiang Member, Sous Chef, PRO, Senior Sous-Chef Posts: 11,949

    New to GameSalad? (FAQs)   |   Tutorials   |   Templates   |   Greenleaf Games   |   Educator & Certified GameSalad User

  • tatiangtatiang Member, Sous Chef, PRO, Senior Sous-Chef Posts: 11,949
    Okay, I'm cross-posting to that thread (forgive me). Here's Touch is Released as I envision it:

    image

    New to GameSalad? (FAQs)   |   Tutorials   |   Templates   |   Greenleaf Games   |   Educator & Certified GameSalad User

  • fishZombiefishZombie Member, PRO Posts: 46
    I found more weirdness. 2 things: 1) I can not get a character to change speed, when affected by something else. I have a single actor Move at speed 30 in X, when he collides with Actor2 I tried Velocity, Accelerate, Change Velocity, MoveTo, as well as Move. None work.
    What I notice is that Actor1 only sees those changes during the time it's colliding with Actor2.
    After passing through, it reverts back to the original Move Command.
    I tried setting a boolean called ConTact. When Actor1 collides with Actor2 change attribute ConTact to True.
    Then another Rule: If ConTact is True accelerate, move, moveto, etc, etc. Not so good.
    Same result.
    Can you help?
  • tatiangtatiang Member, Sous Chef, PRO, Senior Sous-Chef Posts: 11,949
    @fishZombie how about having a custom speed self.speed? Then on your collision rules, change the actor's self.speed and have a move rule that moves at speed=self.speed.

    New to GameSalad? (FAQs)   |   Tutorials   |   Templates   |   Greenleaf Games   |   Educator & Certified GameSalad User

  • tenrdrmertenrdrmer Member, Sous Chef, Senior Sous-Chef Posts: 9,934
    Have you tried the collide behavior?
  • MotherHooseMotherHoose Member Posts: 2,456
    edited March 2012
    #1. the sceneEditor shows us what the player will see …the visible size of everything

    in programming …
    one should not rely on eye-balling the placement of objects …
    one should define the location of objects precisely (okay to get a proximity at first)
    align pixelRows (X) and pixelColumns(Y) …
    for each actor's currentPosition in a scene
    Rule: when
    Event: key: left shift is down
    --displayText: self.Position.X.."\n"..self.Position.Y
    (you can drag the rule to Custom Behaviors and then easily drag to all prototypes)

    best to preview in your scenePreview
    rather than trying to remember those numbers …
    keep left shift down and click anywhere on your desktop
    numbers stay visible and you can write them down

    #2. not preserving the user defined state is most annoying to all of us … we are getting a new GUI … hopefully that functionality will be there for us.

    #3. the order of your conditions is important
    (this is the condition … continue processing
    this is not the condition … stop processing)
    though with just two conditions … order shouldn't matter
    sometimes good to nest the rules in one master rule
    but I couldn't duplicate the problem

    release anywhere on the scene is a release of touch
    release is the defaultState … just as mouseButton (& keyboard keys) up are defaultStates

    #4. computer does not rerun the rules …
    unless the condition of the Attribute changes
    best to nest the rules:
    the touch event is when you want the actor to react
    the state of the boolean is what determines the reaction
    Rule: when
    Event: touch is pressed
    --Rule: when
    --Attribute: game.Dolt is false (the initial state you assigned to it)
    ----leave the behaviors empty!
    --Otherwise:
    --DisplayText

    #5. in order for the Engine to run … all attributes/parameters have a default state …
    as most displayText behaviors show text on the default black scene …
    the default fontColor is white

    #6. Move is a persistent behavior (not affected by other events)
    to define when to Move behavior active … have it in a rule
    Rule: when
    Attribute: game.ConTact is false
    --Move

    all these things … are good questions to ask yourself and in the forum

    it helps me to ask myself WHEN and then WHAT
    and drag Note behaviors in to ask the question in the actor I am working with

    image MH
  • NmdogdudeNmdogdude Member Posts: 174
    for question 5, try using the display text attribute with a rule
    Also, white is the default color and you need to change it every time.
  • fishZombiefishZombie Member, PRO Posts: 46
    I found some answers. The trouble is knowing when something is a Permanent State. Collision is a TempState, but I gave it a Permanent State command (goto completion), so I figure it should follow that command. It does not. It only follows the accelerateTo command as long as it's contacting the collision obj.
    To fix this, I had to create an attribute boolean, that goes True on contact, and have Actor1's rule look at that, instead of the actual contact.
    This helps for the first hit, but what if I want it to accelerate each time an event happens. I can not predict how many times they will get hit, and then create that many Boolean rules.
    @MotherHoose zooming in and out helps a lot. If I am setting up a map, and want to see the overall layout, It would be nice to zoom out. The little white box tells me what the device will see. I want to see the big picture. And when objects are small on screen, every time I want to move them to a new location, it first scales them. No safe place to click when they are small.
    Zoom in. Zoom Out. Helps.
    Is there a way to input data into a table with an attribute?
Sign In or Register to comment.