Not signed in (Sign In)

Vanilla 1.1.9 is a product of Lussumo. More Information: Documentation, Community Support.

    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeAug 31st 2014
     
    Important
    Not really a feature request, but it seems that Tapir only gets on once a month. So the next time Tapir will probably get on is September 13.

    Oh, you think this is spam? Here:
    I found a typo: In the scene panel on the right, the tooltip for delete is "Move Down".-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeSep 20th 2014
     
    One thing I really hate is that it doesn't select the top shape when you click. Try making a circle and then add a hinge on top. Deselect the hinge and try to select it again. Instead the circle is selected. It is super annoying.
    Maybe an option to change this.

    Speaking of hinges, I request a multi-joint. Basically it allows connecting 3+ shapes! but it would not be motorized and it would just be a hinge. A setting in the hinge also connects it to the background.

    And please, make the code simpler to use! I am tired of repetition and high amounts of code for simple things like distance formula! WHY do I need 11 lines for a FIVE element array? I can see using n lines (or even n+1) for an array with n elements, but not 2n+1. What happens if each element is the sum of two other numbers? Sixteen lines of code! This is all for FIVE elements! I call this unacceptable. Please condense the code amounts.
    Another example: I want a circle to die when its y position is > (50 + radius). This takes six lines:
    a = Get Position(Entity#42)
    b = Get Circle Radius (Entity#42)
    a = a + b
    c = (a > 50)
    If c == true:
    Destroy Entity#42

    I almost wrote if (a > 50) there. I am so used to being able to combine lines of code:
    Python:
    if (radius(42) + position_y(42) > 50):
    destroy(42)
    JavaScript:
    if (ball.radius + ball.y > 50) {
    ball.destroy();
    }
    CI code:
    See way above, I do NOT want to rewrite it.-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorTapir
    • CommentTimeSep 24th 2014
     
    " it doesn't select the top shape when you click"
    it may be a bug, but I can't reproduce it. May be it only happens under some certain conditions.

    The joints in CIE is strictly defined as a constraint between TWO shapes.
    Later there would be more constraint concepts added.

    Considering the visual programming nature of Piapia lang, it is really hard to make the callings fewer.
    Each line can only contain most one calling, not like other languages, the callings in one line may be many.
    Piapia would become a little compact, but hardly much.-----------------
    My games: Tapir Games
    My phyards: Tapir@phyard
    •  
      CommentAuthorTapir
    • CommentTimeSep 24th 2014 edited
     
    @MathDude,
    btw, I forget in which thread you requested to increase the MP request frequency limit.
    Ok, I will disable the limit for some time temporarily. I will notice you when it is done.-----------------
    My games: Tapir Games
    My phyards: Tapir@phyard
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeSep 24th 2014
     
    There was one programming language that had blocks that you could drag into place. For example:
    [if ()]
    [
    [] An if block.

    {x > 5} Boolean expression.
    And you could do for example
    [if {x > 5}]
    |set x to (5)
    []
    Here I am using parentheses for numbers and curly brackets for Boolean values.-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorBioManiac R2 (Moderator)
    • CommentTimeSep 24th 2014
     
    @Tapir, " it doesn't select the top shape when you click"

    this happens to me all the time too. it happens in cookie mode. Not sure if glued shapes have something to do with it, but I often use them too. It has something to do with the selection order, when cycling through the shapes that are on top of eachother, if you place 4 or 5 different shapes, then use cookie mode (if you glue them you HAVE to use cookie mode) the selection cycling order is odd...
    •  
      CommentAuthorTapir
    • CommentTimeSep 26th 2014
     
    Under the cookie mode, selections is toggle-style. Maybe the current implementation is not perfect.

    @Math
    The MP request frequency limit is disabled now.
    But I think making a request at each step is still too frequent, which will make the server down.
    Maybe most 2 requests/second is ok.

    I know the editor you mentioned is Scratch which uses the Blockly visual programing language.
    The language is cool. Later Piapia will added some similar features.-----------------
    My games: Tapir Games
    My phyards: Tapir@phyard
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeSep 27th 2014
     
    Oh, yeah.
    I will try to make a slightly different game instead of air hockey.-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorBioManiac R2 (Moderator)
    • CommentTimeSep 27th 2014
     
    @Math - want to try to edit my connect 4 game to work with it ?
    •  
      CommentAuthorBioManiac R2 (Moderator)
    • CommentTimeOct 6th 2014
     
    ^ that isn't a feature request D:
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeJan 31st 2015
     
    Rotate Shape Around Local Point. It's annoying to use GetPosition.-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeJan 31st 2015
     
    also, I think set circle radius shows as "#1 = GetCircleRadius(Entity#42)"
    this was an older editor though, might have been fixed-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorTheDudeFromCI (Advanced Member)
    • CommentTimeFeb 7th 2015 edited
     
    I've been using the editor more and more recently. It's nice to see all of the new stuff that's been added. It's pretty awesome. Though I did think of one thing that would make editing and code flow a lot easier to work with. Possibly the ability to create code flow things like you can create custom functions?

    What I mean if stuff like the if block, or while block. It would be able to create various kinds of loops and similar. Being able to dynamically edit local variables each pass, and so on. This would make things much easier as I could create simple functions such as array iterators, and loops like
    (url)
    This would be quite helpful. ^^ Other functions be can used which would view and edit variables on a single line.



    This would allow me to change code that looks like this:
    (url)

    Into this: (Ignore the typo's with the numbers. It's the concept that counts. xD)
    (url)-----------------
    Orange is my favorite number.
    •  
      CommentAuthorTheDudeFromCI (Advanced Member)
    • CommentTimeFeb 7th 2015
     
    Oh! One one other feature that would be nice are "Static Fields."
    They are basically like local variables, however they are not editable, and are directly entered in. The reason for this suggestion is because in many functions, they are times where you'll use a number, (or boolean, or string, etc.) multiple times in the function. However, you realize that the number has a slight offset or something. Instead of going back through the code many, many times looking for each use of that number, testing it, and repeating the process until you find a number that works, you can use a field which can be referenced many times, locally. Then, if you later discover that it needs to be changed, just change the field instead of looking through any code.-----------------
    Orange is my favorite number.
    •  
      CommentAuthorTapir
    • CommentTimeFeb 7th 2015 edited
     
    for-loop, do-while, ..., MCC requested many times.
    Ok, when I get time, I add them.

    New there are two basic code flow control blocks, if-else-endif and while-endwhile.
    I plan to change the while-endwhile to loop-endloop.
    While-endwhile is just a combination of loop-endloop and if-else-endif.
    In fact, all others not implemented can also be represented as combination of loop-endloop and if-else-endif.

    I still don't very understand what the "Static Fields" is.

    -----------------

    BTW, about the development of CIE, I really hope someone can participate and help me improve it.
    But I also think, it is not good time for new maintainers to enter now, for some reasons:
    1. I need refactor the code for more once to make it more understandable and easier to maintain. (In history, the code was refactored about 3 times, each were painful.)
    2. the language is ActionScript, which is not a popular language. CIE may be ported to c++ or javascript later, the code base is really not small (about 120,000+ lines), so the risk is also not small. Maybe rewrite it from scratch is a good idea (or a very bad idea).-----------------
    My games: Tapir Games
    My phyards: Tapir@phyard
    •  
      CommentAuthorTheDudeFromCI (Advanced Member)
    • CommentTimeFeb 7th 2015 edited
     
    @Tapir
    I'm sorry, I guess I wasn't very good at explaining it. Here's a code example.
    In here, if after some testing, I find that 5 is a more accurate number for my purposes then 4, I'd have to go through all the code, find the references to that specific 4, and change them.
    (url)

    While in here, I'm only changing a single number.
    (url)

    Though in a single run, this may seem unnecessary, the main purpose is for testing reasons. Where the developer would have to be constantly running the game with slight number changes, over and over. This can already be done using global variables, in a since. Though I was requesting to make this local.-----------------
    Orange is my favorite number.
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeFeb 7th 2015
     
    Just create a local variable named "Static ___", and use it normally.-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorTheDudeFromCI (Advanced Member)
    • CommentTimeFeb 8th 2015
     
    Alright. I'll just do that.-----------------
    Orange is my favorite number.
    •  
      CommentAuthorTapir
    • CommentTimeFeb 8th 2015 edited
     
    This should be called local constant variables. (They are also static).
    I also has this need. Now I just initialize such variables at the beginning of a function.
    You can use global/world variables instead, but too many of them will mess up the global/world variable space.
    OK, I put it in todo list now.

    In fact, current local variables are static for most cases, except a function is called iteratively.
    The value for local variables will not reset when program exits a function, for piapia is to slow, reseting them will make piapia even slower.
    When program enters the functions again, the old values are still there.
    So for local variables, its first appearance should be at the left as output variable.-----------------
    My games: Tapir Games
    My phyards: Tapir@phyard
    •  
      CommentAuthorTheDudeFromCI (Advanced Member)
    • CommentTimeFeb 8th 2015
     
    Oh, that's a really helpful fact! I wish I would have know that sooner. It makes a lot of sense, and really helps a lot because then local variables can act like small versions of global variables. Using only two lines of code:

    (url)

    I am able to achieve a counter, in which, I would have had to use global variables to do, thus cluttering up the variable menu.

    (url)

    This is really helpful!-----------------
    Orange is my favorite number.
    •  
      CommentAuthorTapir
    • CommentTimeFeb 8th 2015
     
    Yes, default initial value for local number variable is 0.-----------------
    My games: Tapir Games
    My phyards: Tapir@phyard
    •  
      CommentAuthorBioManiac R2 (Moderator)
    • CommentTimeFeb 18th 2015
     
    Unfortunatly, Round Corners doesn't work properly, I don't know why, but if this worked properly than the game would be awesome.

    Besides the obvious fact that the "rounded corner" blocks act as static and also do not move but instead have other blocks move through them
    Round corners also does not seem to work with CI shapes? I do not know why...
    also, Round corners options do not appear in the Batch Modify Settings box.

    Tapir, please fix this and make it work!! :)
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeFeb 18th 2015
     
    Which one are you using? It could be that Box2d doesn't support it.-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorJodi850
    • CommentTimeMar 7th 2015
     
    i actually dont know why this isnt already in the editor. but make the camera show a frame around itself wich shows the viewport size,
    this would allow MUCH easier camera placement with multiple screens in one level-----------------
    (insert good signature here)
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeMar 7th 2015
     
    ^ with an option to turn it on or off.-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorJodi850
    • CommentTimeMar 7th 2015
     
    i dont really see why. just make it show up with a camera selected, and hide it when you deselect it-----------------
    (insert good signature here)
    •  
      CommentAuthorTapir
    • CommentTimeMar 8th 2015
     
    @BioManiac R2,
    currently, round rectangles are always physics disabled.
    The reason is the round corners may be 1/4 eclipse, but box2d doesn't support eclipse now.

    @Jodi,
    good idea, I put it in todo list.-----------------
    My games: Tapir Games
    My phyards: Tapir@phyard
    •  
      CommentAuthorJodi850
    • CommentTimeMar 8th 2015 edited
     
    @Tapir

    good to hear! cant wait when its in :D
    is it very hard to inplent?

    offtopic: is there any built-in way to round a number?

    EDIT: now i think about it. maybe have it be able to toggle it fixed,

    so we can place a camera down, and dont have to select it each time we want to see where to put things-----------------
    (insert good signature here)
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeMar 8th 2015
     
    Good to hear! Can\'t wait till when it\'s in :D Is it very hard to implement?

    offtopic: Is there any built-in way to round a number?

    EDIT: Now that I think about it, maybe have it be able to toggle it on/off, so we can place a camera down and don\'t have to select it each time we want to see where to put things.


    (1) I don't think it will be. Just have it draw a nonfilled rectangle when Camera is Selected.
    (2) Yes. Number -> Usual -> Round, Floor, Ceiling. (Think of the integers as floors of an infinite building. Then ceil(6.8) = 7 since 7 is the ceiling of the room [6, 7]. floor(6.8) = 6 by the same analogy.)-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorJodi850
    • CommentTimeMar 8th 2015
     
    ah thank you very much math! :D-----------------
    (insert good signature here)
    •  
      CommentAuthorVanderwaal
    • CommentTimeMar 8th 2015
     
    Tapir, what does a round rectangle look like?
    •  
      CommentAuthorJodi850
    • CommentTimeMar 8th 2015 edited
     
    @vanderwaal
    (url)
    -----------------
    (insert good signature here)
    •  
      CommentAuthorJodi850
    • CommentTimeMar 21st 2015 edited
     
    is there any way to resize a brother group/ a group of entities?

    i mean in runtime, similar to resizing in the editor while editing



    btw, just found a bug, you can resize a shape below 0.04, but changing anything of it will reset it to 0.04-----------------
    (insert good signature here)
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeMar 24th 2015 edited
     
    I will now repeat my last three comments and Jodi850's last comment:

    Tapir, please:
    (1) Bring back the move scene accurately. I hate it when I need to jump between two parts of a level that are, say, 3000px apart, and can only zoom out to find them.
    (2) Allow us to set the clone distance. Sometimes I want the shape to be 30 pixels right of, or 50 pixels below, the old shape.
    (3) Make the event handler graphics be vector graphics instead of bitmap. That way they look good and nonblurry if you need to zoom in on an area that has event handlers. (Same for gravity controllers, cameras, power sources, etc)
    (4) On the OnJointReachLimit event handler, allow a third option "Reach Both Limits". If I want the same code for each limit, I need two event handlers. This gets annoying.
    (5) Merge:
      • OnEntityCreated + OnEntityInitialized
      • OnLevelBeginUpdate + OnLevelEndUpdate => OnLevelUpdate
      • OnLevelBeginInitialize + OnLevelEndInitialize => OnLevelInitialize
    The reason is they are so similar, they don't really deserve to be separate like this. Of course, just like OnJointReachLimit, you would have an option to choose which one.
    (6) "Push into Array". It simply adds it to the end. You can do this with:
    local[0:"length"] = GetArrayLength(local[1:"array"])
    local[0:"length"] = local[0:"length"] + 1
    InsertArrayElements(local[1:"array"], local[0:"length"], 1, local[2:"value"])
    However, I hate long repetitive code.
    (7) (minor bug) Fix: "Set Static" has "One brother shape" as input.
    (8) It is impossible to change the border color of C.I. Shapes. This could be bad if, say, I want to make "CIE within CIE" and I want selected shapes to have a red border.
    (9) You can resize a rectangle to below 0.04 width/height. But if you open settings and change anything, it becomes 0.04 again.-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorTapir
    • CommentTimeMar 27th 2015
     
    @Jodi850
    there is a shape/common/ScaleShapeWithFixPoint to scale a brother group.
    The API also supports scale connected shapes.

    @Mathdude314
    (1) now you can use the find entity feature to fast move scene position. (input an entity id in text input on the bottom bar then enter)
    (6) the array length will auto increase when you set an element with index >= current_arrray_length
    (8)(9) both are history problems. I forget why these limits were set. Maybe they are really nonsense.-----------------
    My games: Tapir Games
    My phyards: Tapir@phyard
    •  
      CommentAuthorTapir
    • CommentTimeMar 28th 2015
     
    "One brother shape" for "Set Static" is intended.-----------------
    My games: Tapir Games
    My phyards: Tapir@phyard
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeMar 28th 2015
     
    Huh? You're implying "static" just means it's glued to something?-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeApr 3rd 2015
     
    For multiplayer, it's really hard using a light implementation, since I need to then have Player 0's client stor everything (or all players at once, depending on the game). Then I have to send messages to receive the data, etc, etc, etc.-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorJodi850
    • CommentTimeApr 4th 2015
     
    Actually, theres no player 0.
    You have to manually make a system that diterm who is who-----------------
    (insert good signature here)
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeApr 4th 2015
     
    @Jodi: GetMySeatIndexInMultiPlayerInstance() (or something like that)-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorJodi850
    • CommentTimeApr 4th 2015
     
    well, crap, had this system planned to make random numbers sync between clients, guess its not needed anymore :/-----------------
    (insert good signature here)
    •  
      CommentAuthorTapir
    • CommentTimeApr 11th 2015
     
    @MathDudue,
    ok, now I think for the "SetStatic" API, "One brother shape" is not a good param name.
    It makes designer think SetStatic (false) will make the whole brother group movable.

    The principle is if one shape in a brother group changes to static, then the whole brother group will change to static too.

    The heavy mp server will be implemented when the piapia lang supports server scripts.-----------------
    My games: Tapir Games
    My phyards: Tapir@phyard
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeApr 11th 2015 edited
     
    Hm.

    I was thinking of a syntax highlighting feature so we could type our own code rather than having to search for each one. Like this:

    L["x"], L["y"] = GetPosition(Entity#42)
    L["x"] = L["x"] + 1
    MoveShapeTo(Entity#21, L["x"], L["y"])

    This code moves a forcefield object (polyline #21) in front of a generator (#42).-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeJul 23rd 2015 edited
     
    Time and time again, I need to be able to set Custom Entity Properties directly on the shape settings box. For example I'm working on a game and I need to set the starting HP and EP values, and I get tired of using alpha, scale, rotation, density, whatever I can find.
    EDIT: Forgot something! Get Module By ID and Get Module ID.
    EDIT 2: I was writing a GetModuleByID routine and I need a simple "Get First Index Of Element In Array" and one for last index.
    EDIT 3: Does the == in the if block coerce the values into booleans? Because I might want to compare entities in a for (er, while) loop and I don't know if I can pass them directly in the if statement vs. creating a variable.
    EDIT 4: Typo: Type Common == displays "output == input1", not "output = (input1 == input2)".-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeJul 31st 2015
     
    Also, GetFirstIncomingIntersectionWithLineSegment appears to return an array, I assume it's probably x, y, entity, but I don't know the order and I wish it was just three parameters.-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    • CommentAuthorXyuzhg (Moderator)
    • CommentTimeJul 31st 2015
     
    That information is in the wiki: http://wiki.colorinfection.com/index...

    The returned array is [ entity, x, y, normal x, normal y, fraction of line segment, distance from start point ].-----------------
    Hopefully PA is inconsistent.
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeNov 26th 2015 edited
     
    So I ran into a technical difficulty when trying to make a customizable marble track.



    Basically, what I wanted is for each piece to be a module shape so it could be dragged as one entity. However, that's not sufficient as mobile parts are impossible to produce.
    My suggestion is something I call (Custom) Templates.

    A template is an easy way to create multiple instances of a complex structure. For example, you could create an enemy car as a template, then all you need to do is do an API of "Create From Template" or the like, to make very large numbers of enemy cars.

    So, how it would work is this: To edit a template, you are in basically a new scene. There could be joints and triggers and such, and the shapes don't have to be glued.
    In the entity list, you would have the entire template as an entity and then all entities in the template are sub-entities, like "42: Tank > 21: Circle". You might have to disallow infinite loops (template A uses template B which in turn uses A), but I see no reason a template cannot use another template as long as the hierarchy is finite.
    They would also have their own variables. You could choose if they are scene-specific or scene-common.

    Of course, a difficulty arises: [s]should an API like Set Background Color not work on the entire template, or should it affect all applicable shapes?[/s] [i]Actually, templates are not themselves shapes, and thus cannot have Set Background Color called on them.)
    Oh well, either's fine.


    As for the marble race idea, I could have the different tracks as templates, and you could easily move and destroy the entire box (just call Move or Destroy on the template itself) and re-create them.-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...
    •  
      CommentAuthorMathdude314 (Advanced Member)
    • CommentTimeAug 1st 2016 edited
     
    Here's another problem I had: I was working on a game.
    It has upgrades, which are sort of messy and needed organization, so I implemented a type called Upgrade that stores all the data.

    Problem: The upgrade scene and game scene are different, but types are specific to each scene. This is the problem. I want a custom type that can store information in all scenes. If I create a world variable, the type refuses to show, and arrays are so hard to work with.


    Edit: Although I figured out a workaround in my actual project, the feature would still be nice.
    Edit 2: Never mind on that. My "workaround" does not, well, work.-----------------
    If less people are active, that will only make for even less activity. Start making those designs!
    Currently working on a one-round no-elimination quick RP game...