_player1537 wrote:
Ooh, this sounds cool... and like I've heard of it before. Speaking specifically about characters being used to make maps. Can't wait to see it Mufin
(Btw, welcome to Cemetech! [Oh, and I'm Tanner from IRC btw
])
Yeah, I figured you were Tanner when you knew right away about what I posted on that thread for equation variables. Not quite about maps, but I suppose it could be used for maps. It's mainly to be used for those times you want to make your name to sparkle in a different way from others (default text capital letters, verses mixed case default letters, verses animations like in Angel games) so although this program wouldn't be used often by a programmer, it would become something that most programmers would want to have.
KermMartian wrote:
Welcome to Cemetech indeed! I've seen you lurking for many months; I hope you'll participate in our on- and off-topic discussions and share more about this and future projects.
Hahaha, less so lurking, more of using the Source Coder program on this website. After using it so many times, I figured I ought to register, and after hearing about the activity of this website, figured I may as well start contributing myself.
The forums I usually check are on the DevHardware site, but they have been dying as of late, with almost only me as an active member, with the exception of a handful of others, or passing mods or admins, who have limited knowledge of the TI series. Most of the recent activity is only new members asking a question, saying thanks, then forgetting the url, and even more rarely one of the few regulars will ask the rest of us on a method or optimizing a code, so it's nice to see these forums are so alive. (5 replies, and it hasn't even been a full day!)
But still, back to the reason I've gotten back on. This is largely a program for displaying your name in an unusual way (and by unusual, I mean different from the default) that will give your program more of a professionally done feel to it. Although the program is far from done, here's a sample of it.
Code:
:ClrDraw
:0→C
:0→D
:Text(C,D+1,"O
:Pxl-Off(C+5,D+2
:Text(C,D+3,"Ouf:KO
:Pxl-Off(C+5,D+4
:Pxl-Off(C+1,D+5
:Pxl-Off(C+2,D+7
:Pxl-Off(C+2,D+9
:Pxl-On(C+5,D+14
:Pxl-Off(C+5,D+21
:Text(C,D+22,"O¿F_uf:K
:Pxl-Off(C+5,D+23
:Pxl-Off(C+1,D+24
:Pxl-Off(C+1,D+27
:Pxl-Off(C+3,D+28
:Pxl-Off(C+2,D+36
:Pxl-Off(C+2,D+38
:Pxl-On(C+5,D+43
:{16,45
:For(A,1,dim(Ans
:Pxl-Off(C+1,D+Ans(A
:Pxl-Off(C+1,D+1+Ans(A
:Pxl-Off(C+1,D+2+Ans(A
:Pxl-Off(C+2,D+Ans(A
:Pxl-Off(C+2,D+1+Ans(A
:Pxl-Off(C+2,D+2+Ans(A
:End
It was how I did my name. It uses C and D as variables for the top left corner, so the program can be drastically optimized, but only because when I made it, I was unsure of where in the screen I wanted it to be.
The way I'm going to have the program work is in a format similar to the way this one works. It will output as much text as it can, then turn on and off pixels in order from left to right, then continue with text, and so on, until it reaches the end, and then it will turn off large groups of pixels in the top two rows above a letter, to try and save memory.
As souvik1997 asked, it will be like custom fonts, except choosing which letters from each font you want to use. If you want Bubbly letters, and they are an option, you can use all bubbly letters. If you want every other one to be bold, go for it. I'm going for complete customization, as it is an easy enough concept to program (tell it to add one more of a certain character to the text list, then tell it to add so many more coordinates to the pxl-on and pxl-off lists, then continue with the next letter) so any and all of your custom letters and characters will be accepted.
I have completed programming for the first page in the actual program (not the intro) that displays all the letters in the alphabet numbers 0-9, a plus sign for symbols, and a space button at the bottom, so a concept is far from needed anymore. Instead, I'll just post the source code for it. Again, as I said, it is only the first page which will route the user to each letter and all their options, and I'm planning on actually making the engine this works as more generic engine, so it can be applied for all the letters as well, reducing the need for making more engines to run it. Anyway, here's the program as is, with titles:
Code:
prgmSIGNATUR
:ClrDraw
:0→Xmin
:1→ΔX
:‾62→Ymin
:1→ΔY
:prgmSIGNATR1
:1→D
:1→O
:0→M
:" →Str0
:For(A,0,6
:For(B,0,4
:Pxl-Change(A,B
:End
:End
:Repeat G=45 or G=91
:{6O+5,‾9D,‾9D-10
:Pt-On(Ans(1),Ans(2),3
:Line(Ans(1),Ans(2),Ans(1),1+Ans(2),0
:Pt-On(Ans(1),Ans(3),3
:Line(Ans(1),Ans(3),Ans(1),‾1+Ans(3),0
:Repeat Ans
:getKey→G
:End
:D→F
:O→Q
:If G=22
:Then
:Line(0,‾6,9,‾6,0
:Text(0,0," A 1
:not(M→M
:5M
:Line(Ans,0,Ans+4,0
:Line(Ans+4,0,Ans+4,‾6
:Line(Ans+4,‾6,Ans,‾6
:Line(Ans,‾6,Ans,0
:For(A,1,5
:For(B,5M+1,5M+3
:Pxl-Change(A,B
:End
:End
:End
:If not(M) and max(G={41,42,43,51,52,53,54,55,61,62,63,64,65,71,72,73,74,75,81,82,83,84,85,91,92,93,95}) or M and max(G={72,73,74,82,83,84,92,93,94,95,102
:Then
:If M
:Then
:3→D
:max({1,2,3,4,5,6,7,8,9,10,11}(G={102,92,93,94,82,83,84,72,73,74,95→O
:Else
:max(G={41,42,43,51,52,53,54,55,61,62,63,64,65})+2max(G={71,72,73,74,75,81,82,83,84,85,91,92,93})+3(G=95→D
:G
:If Ans≥71
:max({41,42,43,51,52,53,54,55,61,62,63,64,65,64}(G={71,72,73,74,75,81,82,83,84,85,91,92,93,95→G
:max({0,1,2,3,4,5,6,7,8,9,10,11,12}(G-40={1,2,3,11,12,13,14,15,21,22,23,24,25→O
:End
:26→G
:End
:If max(G={24,25,26,34
:Then
:Pt-Off(6Q+5,‾9F,3
:Pt-Off(6Q+5,‾9F-10,3
:D+(G=34)-(G=25→E
:O+(G=26)-(G=24→P
:{9E+6,6P+4
:If not(E) or not(pxl-Test(Ans(1),Ans(2)) or pxl-Test(Ans(1),Ans(2)+1) or pxl-Test(Ans(1),2+Ans(2
:Then
:If max(G={24,26
:Then
:[[1,13][1,13][2,12][7,7
:Ans(E,1+(P<7→P
:Else
:If not(E
:Then
:{2,3,3,3,4,4,4,4,4,3,3,3,2
:Ans(P→E
:Else
:1→E
:End
:End
:End
:If E=4
:7→P
:E→D
:P→O
:End
:End
And the sub program which displays the first page:
Code:
prgmSIGNATR1
:For(A,0,94)
:Line(A,‾8,A,‾38,0
:End
:Text(0,47,"Choose Letter:
:Line(94,‾7,47,‾7
:Line(47,‾7,40,0
:For(A,0,2
:For(B,1,13
:Text(9A+11,6B+4,sub("ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789+ ",13A+B,1
:End
:End
:Text(38,38,"SPACE
:Line(36,‾39,36,‾45
:Line(36,‾45,42,‾45
:Line(52,‾45,58,‾45
:Line(58,‾45,58,‾39
:Text(46,1,"Preview:
:Line(0,‾45,29,‾45
:Line(29,‾45,37,‾53
:Line(0,‾53,94,‾53
:Text(0,1,"A 1
The controls for the menu was meant to be very intuitive. Of course, up is up, and down is down, and so forth, but beyond that, there is wrapping around the screen, press the mode button to switch between pressing letters to quickly go to that letter against pressing numbers to quickly go to that number.
This engine in particular was rather tricky, because I was trying to keep it simple, without making many exceptions to the rules. So opposed to allowing it to move once it met certain conditions, I came up with a new idea. No matter where you are, you should be able to move, keeping in mind wrapping around the screen, and its only that when the place you're trying to move doesn't have a letter (the 3 pixel tests in one if condition) or tries to go off the screen (E is the down of where it's trying to move to, so when E is zero, which would be off the screen. This part had to be included because if you try to move up when the cursor is below the Choose Letter part in the top right corner, the pixel tests qualify there to be a letter above them) then it will wrap you around the menu.
In the words of a commercial I just saw, I was trying to replace "can't" with "can" by always allowing you to move.
Anywho, I'm going to work on the finishing touches for this engine that will allow me to apply the specific letters to it, instead of the entire alphabet. After that, the only thing I'll really need for the guided menu is the actual letters to put in the program, and then to work on the code generator. I appreciate you guys already offering to pitch in for this project, and again will include all of you in the credits, which will show in the intro screen(s) before this program boots.[/code]