﻿ A Revolution is Coming - Page 14

1. Re: A Revolution is Coming

... ... You have the strangest spacebar I've ever seen in a forum user. It doesn't work after commas or periods. Sell it on Ebay. I bet someone would buy it with a vivid enough description. :p

Yeah, I think I'm going to post that little bit somewhere where more people could see it. I'm working on an extension over at ZCU's review forum.
??? Sorry,I dont quite understand. For some reason,that made no sense to me.

2. Re: A Revolution is Coming

All that just to make a combo move diagonally. In original FF combo form, you just had to set one value to 1 and another to -1. :eyebrow: (Well, if it makes a zigzag line rather than a solid diagonal, then that looks to be the easier way.)

... ... You have the strangest spacebar I've ever seen in a forum user. It doesn't work after commas or periods. Sell it on Ebay. I bet someone would buy it with a vivid enough description. :p
Lol.

3. Re: A Revolution is Coming

Yea, that's one of those new time saving spacebar features, those are high dollar.

I noticed that the revolution isn't visible in the preview mode.
Cool feature, but it will be a while before I can really set down and try to figure it out.
I have to wait for some brain cells to grow back.
Maybe I can get some of those rotating fireballs figured out one of these days.

4. Re: A Revolution is Coming

Well, I'm gonna be offline for a while. I need to take a cram course of C++.

5. Re: A Revolution is Coming

Note: Frames refer to frames of game logic. To put things in perspective, the game logic is designed to run 60 times per second. Think of them as 'tics'

SETV d0,100

This sets the d0 register to 100. Tis is a counter used to determine how long the ff combo should move for in frames (as I'll explain below)

SETV xd,1
SETV yd,1

Sets the X speed and the Y speed to 1 pixel and1 pixel respectively. This makes the platform move diagnoally lright-down.

WAITFRAME

Lemme explain this a bit further (ignore the (1) for now. When a script executes, it continues executing instructions indefinitely until 1 of three things are found 1) a QUIT statement. 2) The end of a script, and 3) a WAITFRAME statement. What this basically means is that the script stops executing for that particular frame. In the next frame of game logic, the script will resume execution from the satement AFTER the WAITFRAME statement.

SUBV d0,1

Subtracts 1 from the d0 register and puts the result into d0. So, it starts at 100, so thisdecrements it by 1.

COMPAREV d0,0

Checks to see if d0 is equal to 0. Since it's not equal, the TRUEFLAG (an internal flag used by the scripts) is not set. BTW, since d0 is 99 right now, and 99 >= 0, the MOREFLAG will be set, but that's not important right now.

GOTOTRUE 9
GOTO 4

GOTOTRUE will go to the instruction number listed if the TRUEFLAG (described above) is set. Since it isn't set, it will simply skip over this instruction. GOTO goes to the instruction number regardless of anything else. So basically, the logic of this function decrements d0 by 1 every frame (instruction 4 is WAITFRAME, so it jumps to this) until d0 is 0. During this time, the platform moves 1 pixel down and 1 pixel right every frame. When d0 is 0, the TRUEFLAG is set, and GOTOTRUE executes, going to instruction 9 (see below).

SETV d0,100 ; Instruction 9
SETV xd,-1
SETV yd,-1
WAITFRAME ; Instruction 12
SUBV d0,1
COMPAREV d0,0
GOTOTRUE 1
GOTO 12

Now we can figure out the logic of this statement. d0 is set to 100 initially again, and the x accel and y accel values are reversed to -1 and -1 repectvely. Then, a WAITFRAME is read, and on the next frame, it decrements d0 by 1, checks if d0 is equal to 0, then jumps to instruction 1 if it is zero, thus restarting the script. Otherwise, it jumps to instruction 12, where it WAITFRAMES, decrements d0 again, and checks for 0 again. When 0 is reached, z accel and y accel are set to 1,1 again. Thus, the ff combo moves diagnoally right-down for 100 frames, then up-left for 100 frames, repeat ad infinium.

Hope that isnt too hard to understand.

6. Re: A Revolution is Coming

Holy crap. That is hard to grasp.

But I'm sure I'll learn it just like I learned any other things, like the entire ZQuest program in the first place. :p

7. Re: A Revolution is Coming

Let's see:
Code:
`    SETV d0,100`
This one set's variable d0 to 100, this is just a variable, not speed, position or something else.
Code:
```    SETV xd,1
SETV yd,1```
Set's X speed to 1 and Y speed to 1
Code:
`    WAITFRAME`
To prevent... Infinite loops? and to let other things animate.
Code:
`    SUBV d0,1`
Substracts 1 from d0, which is actually 100, lets d0 at 99.
Code:
`    COMPAREV d0,0`
This is an easy one, C equivalent:
Code:
```if(d0 == 0)
GOTOTRUE 9
else
GOTO 4```
In other words, if d0 is 0 the script will GOTOTRUE 9 but d0 is 99 right now, so the script ignores this sentence and goes directly to the next sentence, which is GOTO 4, the script will go to the fourth sentence, WAITFRAME then follow to SUBV d0,1, it will substract 1 to d0, leaving it in 98, this loop will continue until d0 reaches 0.
Code:
`    SETV d0,100`
When d0 reaches 0, COMPAREV d0,0 will become true and GOTOTRUE 9 will no longer be ignored, the script will continue in this sentence. which will set d0 to 100 again.
Code:
```    SETV xd,-1
SETV yd,-1```
Will set X speed to -1 and Y speed to -1.
Code:
```    WAITFRAME
SUBV d0,1
COMPAREV d0,0
GOTOTRUE 1
GOTO 12```
This is pretty much the same as above, when d0 reaches 0 the script will continue in sentence 1, meaning that the script will repeat itself.
Code:
`    QUIT`
EOF (End of file)

8. Re: A Revolution is Coming

:unhappy:

I'll take your word for it. Okay, I think it's time to actually start learning this scripting thing.

9. Re: A Revolution is Coming

This is definitely one awesome feature. Good job, jman2050.

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•