### Author Topic: xLIB-BASIC ERR:DIM  (Read 1470 times)

0 Members and 1 Guest are viewing this topic.

#### hellninjas

• LV7 Elite (Next: 700)
• Posts: 625
• Rating: +17/-0
##### xLIB-BASIC ERR:DIM
« on: September 15, 2013, 05:20:17 pm »
So I have this current problem while playing with tilemaps.
Code: [Select]
:ClrDraw:8→X:8→Y:[[0,0,0,0,0,0,0,0,0,0,0,0][0,1,1,1,1,1,1,1,1,1,1,0][0,1,1,1,1,1,1,1,1,1,1,0][0,1,1,1,1,1,1,1,1,1,1,0][0,1,1,1,1,1,1,1,1,1,1,0][0,1,1,1,1,1,1,1,1,1,1,0][0,1,1,1,1,1,1,1,1,1,1,0][0,0,0,0,0,0,0,0,0,0,0,0]]→[A]::0→K:Repeat K=45:¦ :¦ real(2,0,0,0,12,8,0,12,0,8,1,0,8,0:¦ real(1,X,Y,1,8,1,2,0,0,0,1:¦ :¦ X→S:Y→T:¦ :¦ getKey→K:¦ If K=24:¦ X-8→X:¦ If K=25:¦ Y-8→Y:¦ If K=26:¦ X+8→X:¦ If K=34:¦ Y+8→Y:¦ :¦ If [A](X,Y)=0:Then:¦ ¦ S→X:T→Y:¦ End::End
And it seems to redirect me to the beginning line of code:
Code: [Select]
:8→X:8→Y://Beginning of Matrix : It directs me here.
I'm not sure what it is that's wrong with my code, and i've tried changing:
Code: [Select]
:¦ If [A](X,Y)=0:Then:¦ ¦ S→X:T→Y:¦ End
To:

Code: [Select]
:¦ If [A](X/8,Y/8)=0:Then:¦ ¦ S→X:T→Y:¦ End
But that seems to prevent me from going to most of the places on the tile-map.
So how would I get this to work..?

EDIT: Sorry, this is using xLIB. (Forgot to mention.)

#### DJ Omnimaga

• Former TI programmer
• CoT Emeritus
• LV15 Omnimagician (Next: --)
• Posts: 55845
• Rating: +3151/-232
• CodeWalrus founder & retired Omnimaga founder
##### Re: xLIB-BASIC ERR:DIM
« Reply #1 on: September 15, 2013, 05:24:12 pm »
Wait, do you mean it keeps looping back to the beginning of the code? That seems strange, considering there's no While/For/If/Repeat/etc before the 1st code you posted.
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF

#### hellninjas

• LV7 Elite (Next: 700)
• Posts: 625
• Rating: +17/-0
##### Re: xLIB-BASIC ERR:DIM
« Reply #2 on: September 15, 2013, 05:26:45 pm »
Sorry, I should've been more clear.

When I start the program, if I move my character left, or up, it gives me the error: "ERR:DIM"
Which, if I press "Goto Error" it brings me to that said line of code.

Code: [Select]
:8→X:8→Y://Beginning of Matrix : It directs me here.
« Last Edit: September 15, 2013, 05:26:58 pm by hellninjas »

#### tr1p1ea

• LV7 Elite (Next: 700)
• Posts: 647
• Rating: +110/-0
##### Re: xLIB-BASIC ERR:DIM
« Reply #3 on: September 15, 2013, 05:50:12 pm »
Remember that matrices on the 83+ are column first, so it should be [A](Y,X).
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."

#### DJ Omnimaga

• Former TI programmer
• CoT Emeritus
• LV15 Omnimagician (Next: --)
• Posts: 55845
• Rating: +3151/-232
• CodeWalrus founder & retired Omnimaga founder
##### Re: xLIB-BASIC ERR:DIM
« Reply #4 on: September 15, 2013, 05:50:41 pm »
Oh I found it! It took a while because I got used to HP BASIC >.<. With some TI-BASIC commands, X and Y are inverted, so instead of If [A](X,Y)=0 you have to use If [A](Y,X)=0. Even then, try to avoid using Y at any cost, because some TI-OS bug will often reset it to zero.

EDIT Ninja'd. I think that every pixel-based command are inverted, but not graph-based ones.
« Last Edit: September 15, 2013, 05:51:23 pm by DJ Omnimaga »
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF

#### hellninjas

• LV7 Elite (Next: 700)
• Posts: 625
• Rating: +17/-0
##### Re: xLIB-BASIC ERR:DIM
« Reply #5 on: September 15, 2013, 08:19:15 pm »
So because the values of X and Y reach 0, that's what I end up checking for in the Matrix, which doesn't have a 0,0.
But if I add one to X or Y than my sprite has the ability to go off the field.
This is getting frustrating

#### tr1p1ea

• LV7 Elite (Next: 700)
• Posts: 647
• Rating: +110/-0
##### Re: xLIB-BASIC ERR:DIM
« Reply #6 on: September 15, 2013, 08:48:37 pm »
Just out of interest, where are you adding 1?

You only need to do it in the matrix check: If [A]((Y/8)+1,(X/8)+1)=0:Then
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."

#### hellninjas

• LV7 Elite (Next: 700)
• Posts: 625
• Rating: +17/-0
##### Re: xLIB-BASIC ERR:DIM
« Reply #7 on: September 15, 2013, 08:53:04 pm »
Code: [Select]
:ClrDraw:16→X:16→Y:[[0,0,0,0,0,0,0,0,0,0,0,0][0,1,1,1,1,1,1,1,1,1,1,0][0,1,1,1,1,1,1,1,1,1,1,0][0,1,1,1,1,1,1,1,1,1,1,0][0,1,1,1,1,1,1,1,1,1,1,0][0,1,1,1,1,1,1,1,1,1,1,0][0,1,1,1,1,1,1,1,1,1,1,0][0,0,0,0,0,0,0,0,0,0,0,0]]→[A]::0→K:Repeat K=45:¦ :¦ real(2,0,0,0,12,8,0,12,0,8,1,0,8,0:¦ real(1,X,Y,1,8,1,2,0,0,0,1:¦ :¦ X→S:Y→T:¦ :¦ getKey→K:¦ If K=24:¦ X-8→X:¦ If K=25:¦ Y-8→Y:¦ If K=26:¦ X+8→X:¦ If K=34:¦ Y+8→Y:¦ :¦ If [A]((X/8)+1,(Y/8)+1)=0:Then:¦ ¦ S→X:T→Y:¦ End::End
Repasted~

#### tr1p1ea

• LV7 Elite (Next: 700)
• Posts: 647
• Rating: +110/-0
##### Re: xLIB-BASIC ERR:DIM
« Reply #8 on: September 15, 2013, 09:18:24 pm »
You still have X then Y, Y needs to come first:

If [A]((Y/8)+1,(X/8)+1)=0:Then

Code: [Select]
:ClrDraw:8→X:8→Y:[[0,0,0,0,0,0,0,0,0,0,0,0][0,1,1,1,1,1,1,1,1,1,1,0][0,1,1,1,1,1,1,1,1,1,1,0][0,1,1,1,1,1,1,1,1,1,1,0][0,1,1,1,1,1,1,1,1,1,1,0][0,1,1,1,1,1,1,1,1,1,1,0][0,1,1,1,1,1,1,1,1,1,1,0][0,0,0,0,0,0,0,0,0,0,0,0]]→[A]::0→K:Repeat K=45::real(2,0,0,0,12,8,0,12,0,8,1,0,8,0:real(1,X,Y,1,8,1,2,0,0,0,1::X→S:Y→T::getKey→K:If K=24:X-8→X:If K=25:Y-8→Y:If K=26:X+8→X:If K=34:Y+8→Y::If [A]((Y/8)+1,(X/8)+1)=0:Then:S→X:T→Y:End:End
« Last Edit: September 15, 2013, 09:23:27 pm by tr1p1ea »
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."

#### hellninjas

• LV7 Elite (Next: 700)
• Posts: 625
• Rating: +17/-0
##### Re: xLIB-BASIC ERR:DIM
« Reply #9 on: September 15, 2013, 09:24:24 pm »
Problem solved!
eheh
Thanks a bunch you two