Nice. Good luck on this. Will it be in ASM or Axe?Axe. :)
Ok cool, I can't wait for screenshots :)Well, I haven't done so much yet. Maybe when the tilemapping goes smoothly an correct, I can upload an animation.
Alright. Yesterday, because of my own fault I caused my program to do an infinite loop which crashed my calc. I took out a battery and when I put it back in my files were GONE. This was really bad luck because it was the only time I didn't archive my source before starting it.Ahh... Sounds familiar :(
Oh my god! I want to know if it is like a screamer or something. I am scared to play it :'(No, there isn't. It's actually kinda sad :(
Yeah, I know what you mean Chocosta. I hope so too.I hope so too. I'm looking forward to it.
I hope I can make it fast enough and in time for the contest.
It's where you multiply your X- and Y-values by 256, so you can have greater precision in dealing with them. For example, if you draw the sprite with Pt-On(X/256,Y/256,Pic0), you can add 128 to X every frame and it'll look like your sprite is moving "half a pixel" per frame.Thank you. I'll try this tomorrow.
Hope that makes sense. I'm writing a tutorial on it as we speak :D
(myself, I haven't inflated by 256, even *64 seems like more precision than you need with such a small screen :P)The reason everyone inflates by 256 is because *256 and /256 are two of the simplest operations on a Z80 processor. They're several times more optimized than 64.
That shouldn't be too bad -- you just need to decide what the X and Y values mean. They might represent the X and Y coordinates of the top-left corner of the screen in terms of the larger map, in which case the player would be about 44 pixels to the right of that and 28 pixels down, or they might represent the actual position of the player.Well, normally in my game Y and X are the coordinates of the top left corner of the map itself. I draw my sprite at 24,40(I think it was that). It should actually have been 40,24 to have been in the middle of the screen, but I just kept it like this.
.GREY
DiagnosticOff
[FCACACFC007C3828]→Pic1
[3F35353F003E1C14]
[FCACACFC007C3848]
[3F35353F003E1C12]
[FCACACFC007C3818]
[3F35353F003E1C18]
[FCACACFC007C3824]
[3F35353F003E1C24]
[0000000000000000]→Pic2
[FFFFFFFFFFFFFFFF]
[010101010101010101010101010101]→GDB1
[010000000000000000000000000001]
[010000000100000000000000000001]
[010000000101000000000000000001]
[010000000000000000000101000001]
[010000000000000000000000000001]
[010000000000000000000000000001]
[010101010101010101010101010101]
0→X
0→Y
1→C
0→M
0→N
ClrDraw
sub(H)
Pt-On(24,40,Pic1)
DispGraph
Repeat getKey(15)
If getKey(2)
1→M
If C<4
C+1→C
Else
1→C
End
End
If getKey(3)
1→N
If C<4
C+1→C
Else
1→C
End
End
If M=1
0→M
For(A,1,8)
sub(P)
Lbl T
If (C=1)
Pt-On(24,40,Pic1)
End
If (C=2)
Pt-On(24,40,Pic1+16)
End
If (C=3)
Pt-On(24,40,Pic1+32)
End
If (C=4)
Pt-On(24,40,Pic1+48)
End
DispGraph
End
Y-1→Y
End
If N=1
0→N
For(A,1,8)
sub(Q)
Lbl U
If C=1
Pt-On(24,40,Pic1+8)
End
If C=2
Pt-On(24,40,Pic1+24)
End
If C=3
Pt-On(24,40,Pic1+40)
End
If C=4
Pt-On(24,40,Pic1+56)
End
DispGraph
End
Y+1→Y
End
.MAPDRAW
End
.STARTDRAW
Lbl H
ClrDraw
For(J,0,8)
For(I,0,13)
Pt-On(I*8,J*8,{(J*15)+I+Y+GDB1}*8+Pic2
End
End
Return
.RIGHT
Lbl Q
Pt-Off(24,40,Pic2)
Horizontal -
For(J,0,8)
Pt-On((12*8)-A,(J*8)+R,{(J*15)+12+Y+GDB1}*8+Pic2
End
Return
.LEFT
Lbl P
Pt-Off(24,40,Pic2)
Horizontal +
For(J,0,8)
Pt-On(–8+A,J*8,{(J*15)-1+Y+GDB1}*8+Pic2
End
Return
Stefan,
Correct me if I'm wrong, but a TI83 would be unable to include the music, color, or transparent ghosting effects that Grey depends on. Without those I don't see how it is possible to tell the game's story.
I replied and told him this:You are correct about the music. But I don't think thats so important. I think Grey without sound still is good.
I'm using AXE PARSER(http://www.ticalc.org/archives/files/fileinfo/428/42813.html) to make this. With it stuff go a lot faster than the original language and I am able to have some greyscale(see the screenshots in the link). I would use different sprites and greyscales to make it look more 'lively' every time, in stead of colour. The ghosty effect will probably work with greyscale too.
You can let me try, can you?
Stefan
...
Basically the concept of smooth scrolling is that you have two variables for the X and Y offset of the map, and two variables for the characters X and Y position, so four variables in total. To handle movement, just do it normally by changing the character's X and Y values. Like, getkey(3)+X-(getkey(2))->X or whatever. You don't have to do it like that, but just remember to change the character's X and Y, not the offset. Then, every iteration of the main game loop, you center the character on the screen (unless he's at the edge of the map, he should go to the side of the screen to signify the edge) and calculate the offsets accordingly. At least, that's how I do it. And this way, you can have smooth movement (*256 coordinate inflation) and a big map, because you calculate the offset based on the nearest pixel (/256)Thanks for the answer. :D
:[010101010101]->GDB1 etc...
If I could get it to this::[111111]->GDB1 etc...
I would have it reduced by two. But I don't know. Also I probably have to rewrite my whole mapdrawer. :(You can, but you would have to draw two sprites per byte :How does my GDB look like then?Spoiler For Spoiler:
You can, but you would have to draw two sprites per byte :How does my GDB look like then?Spoiler For Spoiler:
Pt-On((12*8)-A,(J*8)+R,GetCalc("appvGreyMap",{(J*15)+12+Y+GDB1}*8+Pic2)
Also which kind of appvar? I'm not so used to the 83+. A GDB?
Hayleia, what do you mean with graph function. This? :Code: [Select]Pt-On((12*8)-A,(J*8)+R,GetCalc("appvGreyMap",{(J*15)+12+Y+GDB1}*8+Pic2)
Also which kind of appvar? I'm not so used to the 83+. A GDB?
bigger than 32k??? If it is bigger than 32k, you can't create it (it won't fit in your RAM). But you can split into 2 appvars ;).
But what kind of file?An appvar is a .8xv file that contains only data.
How do you edit such a file? Trough the computer or do you let an axe program create it?bigger than 32k??? If it is bigger than 32k, you can't create it (it won't fit in your RAM). But you can split into 2 appvars ;).But what kind of file?An appvar is a .8xv file that contains only data.
The appvar creator should look like this (it is an example that I got from my Pokemon):But you'll not name your appvar PokeType -.-°Spoiler For Spoiler:
Then, at the beginning of the game you do
GetCalc("appvGreyMap",Y0) (you can name your appvar otherly, and use Y1 as well ;))
Then you access your map with the pointer Y0, so the first byte of your map is at {Y0}
How do you edit such a file? Trough the computer or do you let an axe program create it?With an Axe prog. In the spoiler of my previous post, I gave you an example of how to create an appvar filled with data.
Yes, but when I run an axe prog it must be unarchived right? And my map is so big...How do you edit such a file? Trough the computer or do you let an axe program create it?With an Axe prog. In the spoiler of my previous post, I gave you an example of how to create an appvar filled with data.
Yes, but when I run an axe prog it must be unarchived right? And my map is so big...Or you run maphalf1 on Wabbit, then delete it and run mapahlf2 then delete it, and extract the two appvars from Wabbit.
Maybe I should do it like this:
First send maphalf1 to your calc. This runs and creates the appvar and archives it. Then you delete maphalf1.
Then You sent maphalf2 to your calc and do the same.
Then I sent Grey itself to the calc?
Y(incremented or decremented with getkeys 1 and 4) * (the number of columns of the entire map)->B
For the column-position : a little bit harder, I think something like(number of columns) - X(incremented or decremented with getkeys 2 and 3)->A
{B+A+GDB0}
What do you mean by drawing the whole map? Do you mean by drawing entire tilemap data instead of only displaying 12x8 portion of the map?I think so, and that's what I was doing, too ^^
What do you mean by drawing the whole map? Do you mean by drawing entire tilemap data instead of only displaying 12x8 portion of the map?I mean drawing the part of the map visible on the screen(something like 13*8). But I'll see if I can use 'horizontal' and 'vertical'.