You Decide Competition!
-
Wow! Sounds cool. Look forward to seeing it.
-
@unknownuser said:
Anyway, I have a sprite that does work, but doesn't do anything other than run, run in place, and run backwards. use a joystick. A is jump. Feel free to edit it and post it on the warehouse, because this model was intended to be a building set for my contest. If you wanted to know the contest ends on the first of june.
Nice start.
-
I tried setting it to stand in place and jump without running, but i had trails of emitted objects that i don't want. I don't exactly get it. could you help me with it? try moving the white box while running. Some extra trails will appear, but i can't get rid of them.
-
I think it has something to do with other emitters. Look at this file. In the beginning, there is a [?] box. hit it, and grab the mushroom that appears. you will have a trail of objects following you. The mushroom was actually an emitter emitting the image. There also is another way to get the trails. Go down the pipe at the beginning of the level, and walk through the purple box and find your way up to the machine gun. press "B" when you are near the machine gun to fire. I'm not sure what is going on, but i can tell that it is linked to other emitters.
-
it's saturday, and physicsguy hasn't reached a conclusion. you need to do so quickly or i will have to decide myself. next time, choose the subject on your own to avoid these things
-
Nice model Physicsguy! Clever use of 3d to make a 2d game.
-
I've been trying to make a code that sets a variable to 1 when a key is pressed, but after __ frames will set it back to 0, whether the key is pressed or not. It's just not working so far though .
... Anyone got any ideas?
-
Wacov made one for me, its not exactly what you want but....
if getVar("two")==0; setVar("repeat",1); setVar("time",0); elsif getVar("repeat")==1; setVar("time",frame+350); setVar("repeat",0); end; if frame>getVar("time") && getVar("time")>300; #What you want goes here ; end
-
D'oh! ( In a Hommer Simpson voice)
I forgot you could use 'frame' I was trying to do it all using onTick, which wasn't working out too well
...Now I have a slightly newer problem. Since 'frame' is a dynamic variable, and changes constantly, the script I've been trying to get working won't work.
if key("space")==1 then setVar("timer",frame+10);else setVar("timer",0);end; if frame>=getVar("timer") and key("space")==1 then setVar("go",1);else setVar("go",0);end;
... Basically, I need to find a way to get the frame from when key("space") is first pressed.
UPDATE: I found a work-around, it doesn't work exactly as expected, but I think it's better
... Just wait 'till I'm done -
You guys are finally catching up with the scripting! BTM, I look forward to seeing your game.
Oh, and, off topic, I just thought of a way to make a controllable oscillator. Should be ready soon!
-
Chris, how are you managing to hide and unhide components using script? There are parts of the script you made that I understand, and parts I don't, but it seems the crucial thing is the 'ent.hidden'. The 'ent' is a variable, but I can't find the point where it was created, nor where it was assigned to any specific item. So, how can I assign variables to components? (With the purpose of hiding/unhiding them on command)
-
That must be some of the sketchup ruby API scripting he used. You can find at the sketchup website. Here's another example of using the sketchup API:
if slider("foo")>=0.7 then UI.messagebox ('why do that!?');else slider("foo");end;
-NOTE: be prepared to have to force quit/ quit sketchup if you use that code. -
@wacov said:
Chris, how are you managing to hide and unhide components using script? There are parts of the script you made that I understand, and parts I don't, but it seems the crucial thing is the 'ent.hidden'. The 'ent' is a variable, but I can't find the point where it was created, nor where it was assigned to any specific item. So, how can I assign variables to components? (With the purpose of hiding/unhiding them on command)
The code looks like this:
for ent in $curEvalGroup.definition.entities if ent.definition.name == name+("%02d"%frame) ent.hidden = false else ent.hidden = true end end
First is this:
$curEvalGroup.definition.entities
Without going into details, this amounts to a list of every group inside the hero characters group.
for ent in $curEvalGroup.definition.entities
This means set to be for every entity (groups in this case) inside the character set variable "ent" to be
that group and then...if ent.definition.name == name+("%02d"%frame)
If the "ent" has a certain name then hide or unhide.
ent.hidden=true
Remember "ent" is a Sketchup group and this is how you hide a group using Ruby.
A simpler example:
if(frame==100) $curEvalGroup.hidden=true elsif(frame==200) $curEvalGroup.hidden=false end
This will hide the object at frame 100 and show it again at frame 200
-
Okay... that will be useful, but now I'm wondering how you changed the evaluation group to something outside the group it was written in
Is that what the first part of the script is for?
Also, is it possible to change the default SU material of an object using script? Like when you paint a group, any surfaces within with the default paint will change.
-
You can do that through styles, or when using the paint bucket on a default coloured face, hold shift.
-
No, it has to be through script. There must be a way, because plugins are able to change the material...
-
@wacov said:
Okay... that will be useful, but now I'm wondering how you changed the evaluation group to something outside the group it was written in
Is that what the first part of the script is for?
Also, is it possible to change the default SU material of an object using script? Like when you paint a group, any surfaces within with the default paint will change.
I dont know what you mean. I didnt exactly change the evaluation group. "$curEvalGroup" is the group that the code is running on.
You know how you can make one object in SU and make it a component then copy it. Now when you edit one all of them change. That is because there is one object "definition" and 0 or more "instances" of that object. Every group is actually a instance.
$curEvalGroup.definition.entities
Given an instance ($curEvalGroup) get its definition and then get the entities in that definition.
The first part of the script just gets the x,y,z location of the body.
BTW "$" means global varible in Ruby. You can use the $curEvalGroup but do not and I mean do not try to make new ones. You could mess things up pretty easy.
-
physicsguy you didnt' tell me your challenge decision. i'm using the default option that i decided on a few weeks ago in case of such an event. in future all group decisions for the sp challenges are banned.
-
...Just pick whatever one was voted for the most on the other thread. I'd say that would be the best solution.
-
he'd created loads of polls and voting places dotted around, theres no way i'm goign through all of that, i might as well tell you now, the next challenge will be for a motorcycle.
Advertisement