Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - M. I. Wright

Pages: [1]
1
TI Z80 / Re: Fruit Ninja for the CSE
« on: April 19, 2015, 07:45:02 pm »
https://www.dropbox.com/s/0m83jmldo0gwkot/FRTNINJA%20%281%29.8xp?dl=0

Good news, I'm releasing a beta version of this! I finally figured out how to display fruit sprites, and so far I've added apples, cherries and tomatoes. I've also added bombs, so watch out for those!

A gameplay screenie:


And you know what? It's even more fun if you set your calculator to degrees instead of radians!

2
TI Z80 / Re: Fruit Ninja for the CSE
« on: April 18, 2015, 01:42:28 pm »
Thanks for your help- but I ended up using the formula from this Wikipedia article:

abs((y2-y1)x-(x2-x1)y+x2*y1-y2*x1
sqrt((y2-y1)^2+(x2-x1)^2))

It still returns a divide-by-0 error for a certain distance between lines, but that can be easily rectified by doing this:
Code: [Select]
:If not(sqrt((y2-y1)^2+(x2-x1)^2
:x2+1->x2
:If 16>=abs((y2-y1)x-(x2-x1)y+x2*y1-y2*x1/sqrt((y2-y1)^2+(x2-x1)^2)) //16 because that'll be the sprite width in pixels
:"do stuff

Any idea how I would handle drawing and erasing sprites quickly? For now I'm just drawing a size-3 inverted pixel with real(7,4,X,Y,3 and then re-inverting it later to erase it, but that's obviously not going to cut it for an actual Fruit Ninja remake.

3
TI Z80 / Re: Fruit Ninja for the CSE
« on: April 13, 2015, 06:57:53 pm »
Can someone help? I found this formula on math.stackexchange.com to test if a point is on a line:

Code: [Select]
y-y1=((y2-y1)/(x2-x1))*(x-x1)
It worked, but I had to tweak it a bit to account for the fact that I'll be using 16x16 sprites at some point in the future:


Code: [Select]
((y2-y1)/(x2-x1))*(x-x1)-(y-y1)<17
It works flawlessly, but only if the line is horizontal or diagonal. If the line is vertical, x2-x1=0 and it throws a divide-by-0 error; I could test to see if x2-x1=0 before running it, but then the user won't get any points if they draw a vertical line. I have no idea how, so could someone adapt the formula to work if the line is vertical so I could do something like this?
Code: [Select]
If not(x2-x1 //if the line isn't vertical
Then
If ((y2-y1)/(x2-x1))*(x-x1)-(y-y1)<17
points+1->points
Else
If [version of formula for vertical line]
points+1->points
End
Thanks.

4
TI Z80 / Re: Fruit Ninja for the CSE
« on: April 11, 2015, 12:15:15 am »
This is looking pretty sweet so far!
So it's in hybrid basic?

Good luck finishing it off!

Yes it is, and thank you!

I got a decently fast "fruit" (size-3 pixel) working; I don't think the speed at which it travels is quite right, but it's good enough for a test.
Download here.
Dunno if it's gonna be this fast with actual fruit sprites. Fingers crossed for now.

5
TI Z80 / Fruit Ninja for the CSE
« on: March 19, 2015, 11:39:50 pm »
If you want to see how this looked like when it first started, go to this Cemetech thread, but from now onwards I'll be crossposting everything from there to here and vice versa.

Anyway! This is an attempt to clone @Deep Thought 's monochrome Fruit Ninja game for the color calcs using xLIBC (as such, it requires Doors CSE to run). The control scheme is pretty similar so far (swipe across the keypad to draw a line onscreen, the screen is mapped from the MATH row downwards, every key works except for ON) except for those annoying dots that appear... but those'll be fixed easily enough.
A demo:


Download here (If you just want the program without the background pic, that's here). The code alone is here.

edit: some more important info from the Cemetech thread--
Quote
For those wondering how it works:
You may have noticed that the TI-OS's getKey command maps keys by row, then column. Using the ᴇ, iPart() and fPart() commands, the program extracts those row/column values, multiplies them to make them usable on the screen, and uses the multiplied column value/multiplied row value as X/Y coords to draw the line.

The example in the video uses xLIBC to draw the lines , but I have one that just moves an O around on the homescreen using pure TI-BASIC; that can be found here. (code here)

6
TI-BASIC / Using {Yx} as a variable and modifying X/Y Min/max
« on: February 11, 2015, 11:23:19 pm »
Hey there! So I just got started on TI programming this afternoon; since then, I've made a program that will graph any form of equation. It works quite nicely, as a matter of fact (I've attached a .8xp and you can see the code HERE). I wanted to add something, though, and it doesn't seem to work that well:

[I'm using the slope-intercept part of the code as an example because it's the easiest]

Code: [Select]
:If Q=1
:Disp "y=Mx+B"
:Disp ""
:Prompt M,B
:"MX+B"→{Y1}
:B+5->Ymax:-B-5→Ymin
:{Y1}/M-B → Xmax:({Y1}/M-B)*-1→Xmin

The last line is what I'm referring to (the last two lines aren't in the .8xp or the Pastebin I linked). I'm trying to make it so that it automatically sets the window to something that'll fit the equation, and while the second-to-last line works perfectly, it seems that the calculator runs into problems using Y1 as a variable. Just to test it, I tried 'calculating' Y1 on its own, and, well...



...yeah. This was with Y1 [in the Y= window] set to "6x+5".

So, two questions- first, why is Y1 so astronomically high compared to what I put in? Second, how can I make it work with the equation? [because the equation needs a Y-value to work; the whole point of it is to solve for X]

I hope this made sense... thanks for taking time out to read it!

EDIT: Yep, that made no sense. BASICALLY what the last two lines in the code do is try to adjust the Ymin/max and Xmin/max values according to the X and Y intercepts. The Y-intercept code [second-to-last line] works flawlessly, but the last line is having trouble.

Pages: [1]