lucid's Recent Forum Activity

  • yes, it's a dx/windows controls issue

    off topic: alastair, any relation to alspal?

    edit...oh just realized...same url in userthingy...just curious, unless it's a deep dark secret(in which case pm me ), why the reboot?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • c09x and c2 ponies!!!

    <img src="http://dl.dropbox.com/u/1013446/c1c2.png">

  • I couldn't care less about gaga or kanye. I'm not into either of their music, but chances are they or their video guy/gal is/are just atheist, and think "satanic" imagery looks cool . I haven't seen the videos, but I kinda agree. The pentagram looks cool, especially on fire. upside down crosses are thought of as symbolic of profound evil. In this sense that a villain can be awesome, even if they wouldn't be cool if they were real, like venom from spiderman comics, or sephiroth from ff7, sometimes people just think evil, dark, gothic stuff is cool in a fictional, visual context. I personally think most of the evil imagery does look cool. Demons are badass, depictions of hell are cool. the idea of selling souls is cool. Of course if any of it were real, I wouldn't want anything to do with a demon, or selling my soul. but it's just a music video.

    if you realize the people doing it are just using it the way you might put zeus or some egyptian god in a video game as a character, you'll realize to them it's not such a big deal. or what everyone else said about trying to get a reaction out of you. I'm sure in interviews and such they spout some bs about wanting to make a statement about society or some crap. but in reality both of them are pretty much bs artists with nothing significant to say.

  • That's nifty-- though it would probably be more space and cost effective to just emulate a SNES on your PSP or DS-- I have no doubt though, that if people saw you carrying that thing around you would become supa popular.

    I almost just said

    "this"

    I vowed I'd never do it.....damn you facebook and youtube 'like' buttons......you've ruined me

    but yeah...and ha...supa popular

    <img src="http://s-ak.buzzfed.com/static/imagebuzz/web02/2009/12/23/1/stop-using-win-and-fail-as-complete-sentences-com-31293-1261549830-19.jpg">

    This is one of the moments where I regret, that I never got used to C++. I have programming skills, the will to solve problems and a long experience with (oop)BASIC and several script tools. But whenever I try C++, I see all that overhead. VS Express is so bloated. It takes so long to start, there are so many files to create and I always wonder, what that editor expects from me. Compared to something like Real Studio or just Notepad to start Python, it just discourages me.

    I really hope there will be dozens of C++-skilled people interested in further development of 0.x

    I really do

    hey tulamide

    I know there are alot of neighsayers

    ^_^

    , but i happen to love VS. maybe it's not the only one that does this, but it's the main thing I've used since I started in modern languages, and so it's the only one I've used, but some things it does are just so useful.

    If there is a function I wrote somewhere and I see it somewhere, and I need to doublecheck and make sure I didn't screw something up - rightclick - go to definition.

    Maybe it's a function buried somewhere deep in some obscure construct IDE c++ file, instantly opens the file and takes me there.

    Used a variable or function a few times, and now you realized everywhere you used it, you want to add something else? right click - find all references, and it brings up a list of places you can double click on to be transported there.

    Beautiful find/replace that let's you replace all in selected text, currently open document, all open documents, entire project, or entire solution.

    When you get that 80 mile list of errors the first time you try to compile your master piece, double click on each error to be transported to that line of code.

    As you press the :: or . or -> to access the members of a class, or struct, it brings up a handy list of anything valid you can type there, hover your mouse over any of them to see the variable type, or the return type of a function. left some comments on the definition? they'll be there for you to read as well.

    A plugin like 's', or the animator I'm working on now simply wouldn't be possible for me to do alone without the wonders of visual studio.

    Also, I know it's not the only one that does this, but the vs equivalent of persist files is flawless. I can stop working in mid command if need be and shut the program, and it reopens scrolled to the exact line i was working on, and the recovery from unexpected shutdown of the program actually works. there's been a power outage or whatever a few times, and everything is exactly as if I had saved the moment before it happened.

    like I said, I know alot of people hate it. I just haven't figured out why. I tried eclipse, and woohoo opensource free yay, but, I just missed visual studio the whole time.

  • The problem only arose if you were pointing to the highest indexed location of something

    So, to have the problem, you would have to be pointing to an address with at least one numerical index in it that was the highest index for that array. If you did this, it would 'think' it was out of range and read the index as 0

    Like if the array "stackofstuff" had had 5 things in it

    ({"stackofstuff",4}), would be the last thing in it. If you pointed a pointer to that it would would be like putting {("stackofstuff"})

    In any other situation, including numerical indexes less than the highest in the array, it should have worked

  • When working object oriented, you will have an easier life using one of the two object oriented tools: 's'-plugin or python

    In the third post on this page, lucid gives a very fine example of how 's' could help you solve any of your issues.

    yeah, I agree!!!

    the level editor there, if you haven't taken a look is only 4 events. add all your objects to an array, create spatial info array (automatically generates an array with your choice of any combination x,y,z,angle,width,and height of all the objects in the array)

    and then save, your choice of encrypted or not

    at a later time I may add the option to save pv values as well, but that's a simple matter

    create an array to hold the pvs

    for each object in array, add the private variable to the new array. and save after that instead

    loading would just be the reverse. when you load you can tell s to automatically apply the spatial info array, and you'll have all your objects back in their original location, and in the array. and then you can just For Each Object in array, set pv to {"yourpvarray",loopindex}

    in s, it's loopindex, it's just li, but if you don't know that and you plan to use 's', better start them tutorials

  • you rock pyteo

    thanks for this

  • I would say to start with something like a double jump or a wall jump, but try and get as far as you can, even if its just guesses that don't work, expirement and mess up, then post your question thread. Also, a lot of new peopl are afraid to 'annoy' people with a lot of new question threads. Just ask your double jump help question in a new thread so the title can let people know if its an area they'll be able to help you with.

    Edit: I wrote this before the intervening posts, but never hit post, so this isn't to say to ignore minor's blog post

  • Not really. I've never ran into any performance problems until I got to the point where it was several thousand commands running per frame, or several thousand objects.

    Edit:oh yeah, and the tiled background is faster because there's only one of them for a large area. Where as a sprite would take many for the same space. If you're wondering, yes, you can distort the uv of a sprite to make it look like a tiled background, and use it in its place. Tiled background just simplifies the process

  • new additions 9-10-11

    hi guys, big update. For those of you who could just never get the whole moving things with lerp thing, of for those who get sick of typing in the events. Math now has actions to autointerpolate over time. there are two different ways.

    first is to create a value to interpolate, that you can retrieve from expressions.

    The second is to interpolate object positions,rotations,and dimensions automatically over a given time. like being able to order an object to a location. there are also triggered conditions for when interpolation completes, and actions to pause and resume interpolation. using the automated interpolated value actions and expressions, you could automate anything like pv's, opacity, and color.

    also, the interpolation allows you to set a speed curve control point anything from 0 to 1, 0 is ease in, 0.5 is linear, and 1 is ease out.

    hope it comes in handy, have fun!!!

    new additions 9-11-11

    • added the ability to set the current value, of interpolated values, which will create the value if it doesn't exist.
    • you can now access values like this: math.yourvaluename and you have not yet created the value, it will return 0
    • if you do it like this: math.yourvaluename(somedefaultvalue) and you have not yet created the value, it will return your default value
    • added the ability to change the total time for the interpolation on the fly, as well as the time elapsed, and interpolation curve control point

    special thanks to FrenchYann and Somebody for suggestions and testing

    (latest update (9-11-11   10:30am:additional bug fixes)

    this will be an evergrowing plugin of math functions:

    http://dl.dropbox.com/u/1013446/sharinplugs/math/plugins.rar

    AngleLerp(a,b,t)

    is like lerp(a,b,t) for angles

    basically you can lerp two angles, between 0 and 360 (EDIT:no longer has the limitation of having to be angles between 0 and 360), and not have to worry about crossing the 0/360 line just lerp and be happy, knowing that everything is taken care of, and your brainchildren are safe

    the second one is Get T which is simply typed t

    it's for helping with lerp functions, it's the opposite of lerp

    if lerp is x==lerp(a,b,t)

    then t==t(a,b,x)

    in simpler terms, t(a,b,x) will give a value between 0 and 1 that represents how far between a and b x is.

    I'll give more detailed examples later, but this one should suffice for people who already understand lerp and can do this without the t function: say you're looping between 2 and 6 and you want to set create a sprite between point a and b that starts at a and ends at b as you go through the loop evenly spaced in between you would just do

    lerp(a,b,t(2,6,loopindex))

    hidden functions:

    the intersectx, and intersecty expressions

    they aren't on the expression list, but they work

    example cap here:

    http://dl.dropbox.com/u/1013446/New%20folder%20%286%29/New%20folder/intersection.cap

    these give you the point at which two lines intersect

    you can do this 4 ways

    specify 4 xy coordinates:

    ntersectx(x1,y1,x2,y2,x3,y3,x4,y4)

    intersecty(x1,y1,x2,y2,x3,y3,x4,y4)

    specify 3 xy coordinates(the first two form a line, the 3rd is assumed to be on a perpendicular line):

    ntersectx(x1,y1,x2,y2,x3,y3)

    intersecty(x1,y1,x2,y2,x3,y3)

    specify 4 objects

    ntersectx("object1name","object2name","object3name","object4name")

    intersecty("object1name","object2name","object3name","object4name")

    specify 3 objects (the first two form a line, the 3rd is assumed to be on a perpendicular line):

    ntersectx("object1name","object2name","object3name")

    intersecty("object1name","object2name","object3name")

    all 4 methods are available in the example cap, just toggle them on and off

  • howdy yall. I noticed I messed up on the pointer and loop based addressing system in 's'

    oops

    I guess no one was really using those features since no one complained. but here's the new working version

    http://dl.dropbox.com/u/1013446/New%20f ... 6%29/s.rar

    they're both handy features. somewhere in these 12 pages is the explanation of what they do, but I'll do a quick reminder here for anyone interested.

    The Set Pointer action lets you make a pointer

    I'll use an actual example from my current project where I realized they weren't working and fixed them

    I had a bunch of events that looked like this:

    [quote:ymgud9jw]add objectarray "icon" to super {"window",s.sule({"window"}),"entries",s.sule({"window",s.sule({"window"}),"entries"})}

    needless to say that's very ugly, hard to read, and easy to make a mistake with, so with a pointer I could say

    [quote:ymgud9jw]Set Pointer "currententry" to {"window",s.sule({"window"}),"entries",s.sule({"window",s.sule({"window"}),"entries"})}

    then I can do this instead of the original way

    [quote:ymgud9jw]add objectarray "icon" to super {"p","currententry"}

    the "p" at the start of an address tells s the next part of the address is a pointer name, and it will act as if instead of "p","pointername" you typed in all that stuff that you set the pointer to

    you can also use pointers in pointer addresses, which I actually did in the same example like

    [quote:ymgud9jw]Set Pointer "currentwindow" to {"window",s.sule({"window"})}

    and when I needed to use something within that address over and over I did:

    [quote:ymgud9jw]Set Pointer "currententry" to {"p","currentwindow"),"entries",s.sule({"window",s.sule({"window"}),"entries"})}

    you can use them as partial addresses as you see above as well, where I started the address with the pointer and the continued on to go in entries within that pointed to super

    the loop address thing does the same thing

    if you're in a loop(an s loop, not a system loop), say you're looping through some insane address

    [quote:ymgud9jw]{"window",s.sule({"window"}),"entries",s.sule({"window",s.sule({"window"}),"entries"})}

    and your loop is called "myentries"

    anywhere you need to refer to that long address you can just use

    [quote:ymgud9jw]{"l","myentries"}

    and all the same rules as the pointers talked about above work, except you start with "l" for 'loop' instead of "p" for 'pointer'

    it's especially useful as you being looping through an array, and then looping a loop within that one of another array within the first one, etc, etc, and you not only don't have to type in the whole address you're looping through each time you add another nesting loop, or when you need to access the size of an array or something from a very outer loop, you don't have to keep track of any of the addresses

    one last thing about pointers by the way...they can kinda be used as variables, too

    no special commands or anything, but for example, let's say you have two object arrays, one called "air targets", and one called "ground targets"

    you can set a pointer called "current targets"

    then do all your commands on that address, and not care which array it's currently pointing to

    oh yeah, last last thing about pointers. it's meant to be simple, if you Set a Pointer you haven't set yet, it is created, if it has already been set, it will be overwritten with the new address

lucid's avatar

lucid

Member since 16 Jan, 2009

Twitter
lucid has 22 followers

Connect with lucid

Trophy Case

  • 15-Year Club
  • Entrepreneur Sold something in the asset store
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • Coach One of your tutorials has over 1,000 readers
  • RTFM Read the fabulous manual
  • Email Verified

Progress

22/44
How to earn trophies