CodeWalrus

General => General Help & Troubleshooting => Topic started by: xMarminq_ on November 08, 2016, 04:56:54 PM

Title: Is This Possible?
Post by: xMarminq_ on November 08, 2016, 04:56:54 PM
I been busy with making this game, with some dialogue. Every line I make I put a Wait command, and can make it REALLY long. What I am trying to do is make a setting that sets a variable to the wait time to increase or decrease delay on some parts. Heres the thing I basically want to implement, but the calc isnt reading the Y= , and making the Y 0 so it has no delay



Title: Re: Is This Possible?
Post by: p2 on November 08, 2016, 05:26:30 PM
could you add the source as a text for all those that dont have a calc around right now? ^^ :)
Title: Re: Is This Possible?
Post by: Dream of Omnimaga on November 08, 2016, 05:32:45 PM
Here is the source for those without a calc or TI-Connect. Thanks for providing a download link as well for those who do, though:

ClrHome
Output(6,1,"NOTICE:THIS WILL DETERMINE YOUR SPEED. DO 1. THIS IS FOR ME TO MAKE DIALOUGE FASTER"
Prompt Z
If Z=1
1=Y
If Z=2
0.1=Y
If Z>2
Return
If Y=0.1
If Y=1
ClrHome
Wait 3
Output(1,1,"1"
Wait 1Y
Output(1,2,"2"
Wait 1Y
Output(1,3,"3"
Wait 1Y
Output(1,4,"4"
Wait 1Y
Output(1,5,"5"
Wait 1Y
Output(1,6,"6"
Wait 1Y
Output(1,7,"7"
Wait 9


Anyway, the issue is you need to use the STO character to store stuff into variablees. The standard PC-like language syntax will not work on TI calculators. Basically, do 1->Y instead of 1=Y

Also unrelated, but if you have an extra variable to spare, the the last part of the code should be changed to this:

For(A,1,7
Wait 1Y
Output(1,A,A
End
Wait 9
Which is slightly slower (since you use Wait the speed drop is negligible compared to without Wait) but takes much less space.
Title: Re: Is This Possible?
Post by: p2 on November 08, 2016, 05:53:47 PM
As DJ Already said, Use 1->X instead of X=1 ;)
Also you need to memorize this:
If X=1
  1->A
2->B
3->C

ONLY line 2 is executed depending on the condition (an IF without a THEN only affects the first command coming afterwards.
So it's handled as if it would be like this:
If X=1 Then
  1->A
End
2->B
3->C

which means line 3 and 4 are ALWAYS executed as the IF doesn't touch them.
To execute all of them only if  the condition is met, do this:
If X=1 Then
  1->A
  2->B
  3->C
End

But if you really only want the first command (in this case 1->A) to be affected by the condition, use the first code instead of the second :)
Title: Re: Is This Possible?
Post by: xMarminq_ on November 08, 2016, 06:01:17 PM
Thanks! It works!
You will see what I am making soon...
On my basic progress topic
Title: Re: Is This Possible?
Post by: Dream of Omnimaga on November 08, 2016, 06:06:28 PM
I can't wait. :)

On a side note, the Wait command is very new. It was only added a few months ago on the TI-84 Plus CE. Beforehand we had to use For(Z,0,999:End or stuff like RandRandRandRandRandRand for delays
Title: Re: Is This Possible?
Post by: xMarminq_ on November 08, 2016, 11:14:21 PM
Glad I came after the update
Title: Re: Is This Possible?
Post by: Dream of Omnimaga on November 08, 2016, 11:31:44 PM
Well, to be fair, programs that don't use Wait can at least run on more OSes due to better compatibility and can even be ported to older calcs more easily, but they're larger.
Title: Re: Is This Possible?
Post by: p2 on November 09, 2016, 12:54:36 AM
True but as its only that single command, with one single input parameter...
I bet someone could create a tool to replace the wait command in any .8xp source file with our old  FOR method ^^
Title: Re: Is This Possible?
Post by: xMarminq_ on November 09, 2016, 03:05:05 AM
If there is a menu with a lbl A and a variable A, do they cause interference?
1k already for the project
Title: Re: Is This Possible?
Post by: Dream of Omnimaga on November 09, 2016, 05:09:59 AM
Lbl names are totally independent from variable names. Also lbl names can be up to 2 characters. You can use A variable without any issue.
Title: Re: Is This Possible?
Post by: xMarminq_ on November 11, 2016, 01:35:35 AM
Cool. 3k now...