I want to make arrays for bullets and enemies, but I can't find the format for it on Axe. I know how to do it in Basic, but it does a compile error if I try it on Axe. The pictures don't exist anymore for this tutorial: http://www.omnimaga.org/index.php?action=articles;sa=view;article=61 So I can't see what they're talking about. Halp please!
Is there an alternative or way to make menu( work in Axe programs? Or would I have to use: http://ourl.ca/4129;msg=99195 ? What are the r1, r2, r3 things in that routine, and where are they located?
I made this game (Birds eye view zombies game), it's pretty simple. I know it needs a lot of optimizing and whatnot, but it makes more sense to have it in Axe first. The game is an attachment, here is the annotated source: (for whatever reason some characters change in the source, like arrows to Ü's, so use the attachment)
Line(5,57,11,57:Line(5,57,5,36 Line(5,36,11,36:Line(11,36,11,48:Line(11,57,20,45:Line(20,45,20,57:Line(20,57,26,57:Line(26,57,26,36:Line(26,36,20,36:Line(20,36,11,48: Text(22,28,"AZI" Line(50,57,68,57:Line(50,57,50,52):Line(50,52,61,52:Line(61,52,50,41:Line(68,57,68,52 Line(68,52,57,41 Line(50,41,50,36):Line(50,36,68,36:Line(68,36,68,41 Line(68,41,57,41 Text(22,70,"OMBIES") //Main menu graphic 0üA 100üQ Lbl 42 getKeyüK If K=105:Then 0üK:ClrDraw:Goto 41:End If A=4:Then 999üQ:0üA Text(52,24,"CHEAT ENABLED!" //Confirmation of cheat code entered correctly End If Kø92 and Kø94 and Kø72 and Kø0:Then 0üA:End
If K=92 or K=94 or K=72:Then If A=1:Then Goto 11:End If A=2:Then Goto 12:End If A=3:Then Goto 13:End If K=92:Then 1üA:Else:0üA End 0üK Goto 42 Lbl 11 If K=94:Then 2üA:Else:0üA End 0üK Goto 42 Lbl 12 If K=94:Then 3üA:Else:0üA End 0üK Goto 42 Lbl 13 If K=72:Then 4üA:Else:0üA End 0üK Goto 42 End Goto 42 End //Enables 999 health cheat after typing "1337" on main menu
Text(55,6,"-") Line(4,8,4,11) Line(5,8,5,11) Line(4,11,11,11:Line(4,12,12,12:Line(6,10,6,10 //Drawing map graphic and weapons graphics
Lbl 99 //Begining of game loop getKeyüK
If K=102:Then 0üL:Else:End If K=92:Then 1üL:Else:End If K=93:Then //Press 0 for pistol, 1, 2, and 3 for other guns 2üL:Else:End If K=94:Then 3üL:Else:End
If K=26 or K=25 or K=24 or K=34:Then Pxl-OffY,X) Pxl-OffY-1,X-1 Pxl-OffY,X-1) Pxl-OffY-1,X) KüJ If D=0:Then KüI End:End
X+1(K=26 and pxl-TesY,X+1)ø1 and pxl-TesY-1,X+1)ø1)-1(K=24 and pxl-TesY,X-2)ø1 and pxl-TesY-1,X-2)ø1)üX Y-1(K=25 and pxl-TesY-2,X)ø1 and pxl-TesY-2,X-1)ø1)+1(K=34 and pxl-TesY+1,X)ø1 and pxl-TesY+1,X-1)ø1)üY
Pxl-On(Y,X) Pxl-On(Y-1,X-1 Pxl-On(Y-1,X) Pxl-On(Y,X-1) //Movement and wall detection (so you can't walk through walls)
If K=21 and D=0:Then //Shoot button pressed, and no bullets fired 1üD:1üT End
If D=1:Then //Moves the bullet origin so you don't shoot yourself JüI:XüH:YüG H-1(I=24)üH G-1(I=25)üG 2üD End
If T=1:Then //If this bullet is in the air Pxl-OffG,H) H-1(I=24)+1(I=26)üH //Then move the bullet in the direction indicated by I G-1(I=25)+1(I=34)üG If G=W or G=W-1:Then //If the bullet hits the enemy, -100 to its health If H=V or H=V-1:Then E-100üE End:End If pxl-TesG,H:Then:5üH //If the bullet hits a wall, then the bullet is no longer in the air (T is 0) 5üG:0üT:0üD Else Pxl-On(G,H) //Otherwise display the bullet and keep going End:End
If E=0:Then //If enemy is dead, then +100 to score and make enemy dissapear S+100üS 100üE 0üZ Pxl-OffW,V) Pxl-OffW,V-1) Pxl-OffW-1,V-1:Pxl-OffW-1,V) 3üW 90üV 0üZ End
If Z=0 and R=2 //If no enemies, then end round Then:0üR:P+1üP:End
If K=41 and Z=0:Then //If no enemies and no round is going, press MATH to start next round 1üR:End
If R=0:Then Text(10,3,"PRESS MATH TO START ROUND") End If R=1:Then Text(2,26,"ROUND") Text(10,2," " Text(2,47,P) 2üR 2üZ End
If Z=2:Then //If round starting, put a semi-random location for enemy to spawn randInt55,90)üV 5üW 1üZ Pxl-On(W,V) Pxl-On(W-1,V) Pxl-On(W,V-1) Pxl-On(W-1,V-1 End U-1(Uø0)üU If Z=1 and U=0:Then //If round going, move toward player (unless theres a wall in the way)
Pxl-OffW,V) Pxl-OffW-1,V) Pxl-OffW,V-1) Pxl-OffW-1,V-1) W+1(Y>W and pxl-TesW+1,V)ø1 and pxl-TesW+1,V-1)ø1)-1(Y V+1(X>V and pxl-TesW,V+1)ø1 and pxl-TesW-1,V+1)ø1)-1(X Pxl-On(W,V) Pxl-On(W-1,V) Pxl-On(W,V-1) Pxl-On(W-1,V-1) OüU End
If V=X+1 or V=X-2 or V=X or V=X-1 or V=X+2:Then //If enemy touches you, -25 health If Y=W or Y=W+1 or Y=W+2 or Y=W-1 or Y=W-2:Then Q-25üQ
If Q÷0:Then //If your health is 0, go to end script Goto 45:End End:End
Text(2,10,Q) //Display health If Q<100:Then Text(2,18," " Else:End
Text(55,18,A) //Display gun ammo values Text(55,33,B) Text(55,48,C) Text(55,65,S) //Display score Goto 99 //END OF GAME LOOP
Lbl 45 //Game over graphic menu when you die ClrDraw Text(10,30,"GAME OVER") Text(20,25,"YOU SURVIVED") Text(27,45,P) If P=1:Then //Display how many rounds survived Text(34,37,"ROUND") Else Text(34,37,"ROUNDS") End Text(50,10,"PLAY AGAIN") Text(50,65,"EXIT") Line(9,14,48,14:Line(48,14,48,6:Line(48,6,9,6) Line(9,6,9,14) 1üA Lbl 46 getKeyüK If K=26:Then Line(9,14,48,14,0) Line(48,14,48,6,0) Line(48,6,9,6,0:Line(9,6,9,14,0) Line(64,14,82,14) Line(82,14,82,6:Line(82,6,64,6 Line(64,6,64,14 2üA //Draw box around option selected (Play again/Exit) End If K=24:Then Line(64,14,82,14,0) Line(82,14,82,6,0) Line(82,6,64,6,0) Line(64,6,64,14,0) Line(9,14,48,14:Line(48,14,48,6:Line(48,6,9,6) Line(9,6,9,14) 1üA End
If K=105 and A=1:Then prgmZOMBIES:End //End program, or restart depending on their choice If K=105 and A=2:Then ClrDraw:ClrHome:Stop:End Goto 46
This is my first major program and it is incomplete still.
Things I can do later on my own: -Shop system -Highscores list -Better looking map
Things I need help with: -Optimizing -Converting to Axe -Creating array for multiple enemies to spawn -Creating array for multiple bullets to be going (as well as functionality for other three guns)
The other guns I want to add are: -Shotgun (shoots one pixel forward, and two others going 1 pixel away from the main bullet every 2 pixels) -Battle Rifle (shoots 3 bullets in a line) -Wunderwaffe (shoots a multiplication sign and either chain-hits zombies or explodes like a grenade)
I don't expect anyone to convert it all (but that would be godly!), but just give me suggestions and help. Thank you, I appreciate any help!
Dang... Well say I want to change 3 programs from basic to Axe, is there any programs or apps that will convert it automatically? Or do I have to go piece by piece and replace them after I learn the language?
Also, does that mean that you have to convert the source with the axe compiler each time you wish to test it?
So this is my first time using axe, I've done pretty much all you can do in BASIC. When I try to compile a BASIC program into Axe, it says "INVALID TOKEN" on Ymin/Ymax and Xmin/Xmax and Zstandard and AxesOff and pretty much anything to do with the graph. How can I compile programs that need those components?