0 Members and 3 Guests are viewing this topic.
Hmm, I recognise the problem, but I did not see the issue in your source code immediately. Hopefully I will take a look at it tomorrow and possibly figure out the issue.I would also like to point out that you can do signed comparisons. For example, {J-6}<<0 to see if it went below zero. I think Axe probably does an auto-optimisation for that.I tried my attempt above and found that it doesn't work (I forgot some of the nuances of Axe ). I did get it to work in BASIC, though.
;draw from B,C to D,E (b=x1)D-B→DE-C→E1→F:1→G ;these are the xinc and yincIf D<0-1→FIf E<0-1→Fabs(E→Eabs(D→DIf not(AnsThen ;draw a vertical lineFor(A,C,C+E,GPxl-On(A,BEndReturnEndD→A2D→D2E→EFor(H,1,.5DPxl-On(C,BB+F→BA-E→AWhile A<0C+G→CPxl-On(C,B ;ideally, this should come first and be skipped on the first iteration of the loop, but this isn't that easy in BASICA+D→AEndEndPxl-On(C,B
While A<0C+G→CPxl-On(C,B ;ideally, this should come first and be skipped on the first iteration of the loop, but this isn't that easy in BASICA+D→AEnd
If 0Lbl 01Pxl-On(B,CEndC+G→CA+D→AIf <0 ;well, change this to the proper Axe syntaxGoto 01End
-snipped-
That looks great! I was in town earlier today with no obligations, so I programmed for a bit and converted my BASIC code to Axe and then modified it a little. It currently only does one bullet at a time, but I am going to add in code to have a bullet buffer. I managed to figure out a way to make sure bullet movement was not bugged except for one case with an acceptable bug (I think). Shooting vertically will cause it to shift 1 pixel off course, but I don't think that should be a problem. Anyways, see the screenshot EDIT: Updated the code, now it uses a bullet buffer. It currently handles 64 bullets on screen at a time and it is still at 6MHz. Feel free to use any of the code or look at it or whatever!