Please help me with title screen.
Root / Programming Questions / [.]
Retrogamer123Created:
I am working on a title screen that has the options of new game, load game, and exit, butI cannot make it so that I can use a specific option, how would I do this?
'Title screen LOCATE 1,3:PRINT "New game"; LOCATE 1,4:PRINT "Load game"; LOCATE 1,5:PRINT "Exit"; SEL%=0 WHILE 1 IF (BUTTON(2) AND #UP ) && SEL%>0 THEN:LOCATE 0,SEL%+3:PRINT " ";:SEL%=SEL%-1 IF (BUTTON(2) AND #DOWN) && SEL%<2 THEN:LOCATE 0,SEL%+3:PRINT " ";:SEL%=SEL%+1 IF (BUTTON(2) AND #A ) THEN:BREAK LOCATE 0,SEL%+3:PRINT ">"; VSYNC WEND ON SEL% GOTO @NEW,@LOAD,@EXITEdit: okay fine Alright, so the first 3 lines show the options of the title screen ("new game", "load game", and "exit") The next line sets SEL% to 0, making sure the cursor is hovering over "new game" The next line starts an infinite WHILE loop, which is less messy than using a label These next two IF statements are where it becomes complex. The first one handles moving up. It checks to see if you press up on the d-pad and if so, it moves on. It then checks if the cursor is not on "new game" to make sure the cursor won't go past "new game." If that's true, it moves the cursor up by removing the cursor from the screen and subtracting one from SEL%. The second line does the same thing, but for moving down. The next line redraws the cursor at the new place. VSYNC makes sure your program runs at 60FPS if it can. WEND ends the WHILE loop.
This is my code:
LOCATE 20,17 PRINT "New Game LOCATE 20,20 PRINT "Load Game LOCATE 20,23 PRINT "Exit A=17 S=1 @menu B=BUTTON(2) LOCATE 18,A:PRINT"-> IF B AND 1 THEN LOCATE 18,A:PRINT" "S=S-1:A=A-3: BEEP IF B AND 2 THEN LOCATE 18,A:PRINT" "S=S+1:A=A+3:BEEP IF S<1 THEN S=43: A=23 IF S>4 THEN S=1: A=17 VSYNC 1 Goto @MENUWhat I cannot figure out how to do, is make a certain thing happen when you select each option.
This is my code:You need to use GOTO and labels. I see you already used some in your code at line 8. (@MENU) Try this (My edited version of your program posted above):LOCATE 20,17 PRINT "New Game LOCATE 20,20 PRINT "Load Game LOCATE 20,23 PRINT "Exit A=17 S=1 @menu B=BUTTON(2) LOCATE 18,A:PRINT"-> IF B AND 1 THEN LOCATE 18,A:PRINT" "S=S-1:A=A-3: BEEP IF B AND 2 THEN LOCATE 18,A:PRINT" "S=S+1:A=A+3:BEEP IF S<1 THEN S=43: A=23 IF S>4 THEN S=1: A=17 VSYNC 1 Goto @MENUWhat I cannot figure out how to do, is make a certain thing happen when you select each option.
ACLS:Y=17 'Clear the screen:Put cursor next to the "New Game" option. @MAINMENU CLS 'Clear the screen of text, computer! LOCATE 0,0:PRINT "The cursor is this high:";Y;" " 'Print the height of the cursor. LOCATE 18,Y:PRINT "->" 'Print the cursor. LOCATE 20,17:PRINT "New Game" 'Print the "New Game" option. LOCATE 20,20:PRINT "Load Game" 'Print the "Load Game" option. LOCATE 20,23:PRINT "Exit" 'Print the "Exit" option. IF BUTTON(2)==1 THEN 'If the up button is pressed, then... DEC Y,3 'Make the cursor go up. IF Y!=14 THEN BEEP 12 'Make a sound if the cursor moves. ENDIF 'The end of what happens when up is pressed. IF BUTTON(2)==2 THEN 'If the down button is pressed then... INC Y,3 'Make the cursor go down. IF Y!=26 THEN BEEP 12 'Make a sound if the cursor moves. ENDIF 'The end of what happens when down is pressed. IF BUTTON(2)==16 THEN 'If the A button is pressed, then... IF Y==17 THEN GOTO @NEWGAME IF Y==20 THEN GOTO @LOADGAME IF Y==23 THEN END ENDIF 'The end of what happens when A is pressed. IF Y<17 THEN Y=17 'If the cursor gets too high then put it back. IF Y>23 THEN Y=23 'If the cursor gets too low then put it back. VSYNC 1 'Wait for SmileBASIC to finish drawing the text, so all the text does not blink. GOTO @MAINMENU 'Repeat everything! @NEWGAME 'What you want to happen when "New Game" is selected and A is pressed. @LOADGAME 'What you want to happen when "Load Game" is selected and A is pressed.You don't need to use anything after 's because it is just to tell/remind you of what that line of code does. But you can use it though because in SmileBASIC everything after 's are ignored so you can keep notes in your code. :) Also BTW I was making the comments in the code super simple if you did not understand it, if you want be to be less simple then you can ask me to post another program with less simple comments. [poll=p3][/poll]
I know a bit about how to program from petit computer, and I just have not made a menu with more than 2 options before.
I know a bit about how to program from petit computer, and I just have not made a menu with more than 2 options before.Did I help you?