Procedures won't take me back to main menu
Author |
Message |
syntax0r
|
Posted: Thu May 05, 2005 9:23 pm Post subject: Procedures won't take me back to main menu |
|
|
Im building a big project for my Compsci class, and I have started making an idea of how my main menu will function.
code: |
import GUI in "%oot/support/lib/GUI"
View.Set ("graphics:vga")
var choice, age : int
proc changeAge
age := 0
end changeAge
procedure doNewGame
cls
put "Put actual Game here..."
changeAge
put "hit 1 " ..
get choice
case choice of
label 1 :
put "hello, I am ", age, " years old."
label :
put "not yet define"
end case
end doNewGame
procedure doOptions
cls
put "Put option menu here"
end doOptions
procedure doAbout
var window := Window.Open ("graphics:200;200,position:truemiddle")
put "Put Menu about"
put "hit 0 to exit"
var a : string (1)
get a
if a = "1" then
Window.Close (window)
else
.......%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% For instance, I would like to have a link taking me back to my created buttons. I tried many ways, and I can't get back to my orignial.
end if
end doAbout
var newGame : int := GUI.CreateButton (maxx div 2, 250, 0, "New Game", doNewGame)
var options : int := GUI.CreateButton (maxx div 2, 200, 0, "Options", doOptions)
var about : int := GUI.CreateButton (maxx div 2, 150, 0, "About", doAbout)
loop
exit when GUI.ProcessEvent
end loop
|
I commented where my problem is.
Basically, it goes like this.
I create some GUI buttons to make a menu. Clicking on the button will result in a procedure being executed.
For example, I click on "Options" and on the options submenu, I have button linking me back to my main menu.
When I try to do something like this, I always end up with a process name not being declared. I tried making the "create GUI buttons" in to a procedure, so then when I click "return to main menu" on any submenu screen. However, that created an conflict.
I know Im doing something wrong, as I've seen more complex programs in Turing have a main menu and sub menus that all work as a family.
Im new to Turing's proc, fnc other non-linear ways of creating Turing programs. So I dont have a mindset on this non-linear programming.
Any comments/tips/suggestions would greatly be appreciated! |
|
|
|
|
|
Sponsor Sponsor
|
|
|
syntax0r
|
Posted: Fri May 06, 2005 8:13 pm Post subject: (No subject) |
|
|
Ok, maybe I was rather vague. Here's a more defined thing I want to accomplish.
code: |
import GUI
View.Set ("graphics:750;510,nobuttonbar")
GUI.SetBackgroundColor (79)
var lineFrame : int
var ch : string (1) %% Getch
var fontMainMenu : int := Font.New ("Palatino:24:Bold,Italic")
lineFrame := GUI.CreateFrame (maxx div 2 - 200, 100, 555, 400, 2)
Font.Draw ("Main Menu", maxx div 2 - 90, maxy div 2 + 90, fontMainMenu, black)
proc doSomething
cls
put "Hit 0 to return"
getch (ch)
if ch = "0" then
%%% I'd like to return to main menu, where all the buttons are, but I can't
put "I'd like to return to main menu, where all the buttons are, but I can't"
end if
end doSomething
%Buttons
var buttonNewGame : int := GUI.CreateButton (maxx div 2 - 65, maxy div 2 + 30, 0, "New Game", doSomething)
var buttonSave : int := GUI.CreateButton (maxx div 2 - 50, maxy div 2, 0, "Save", doSomething)
var buttonLoad : int := GUI.CreateButton (maxx div 2 - 50, maxy div 2 - 30, 0, "Load", doSomething)
var buttonInstructions : int := GUI.CreateButton (maxx div 2 - 67, maxy div 2 - 60, 0, "Instructions", doSomething)
var buttonAbout : int := GUI.CreateButton (maxx div 2 - 53, maxy div 2 - 90, 0, "About", doSomething)
var buttonQuit : int := GUI.CreateButton (maxx div 2 - 51, maxy div 2 - 120, 0, "Quit", GUI.Quit)
%CODE%
loop
exit when GUI.ProcessEvent
end loop
|
Run it, see what I mean. I hope there's a way to get out of this ugly mess! |
|
|
|
|
|
Tony
|
Posted: Sat May 07, 2005 1:31 pm Post subject: (No subject) |
|
|
well you cls the screen. Why would you clear the screen? Clearly you have to draw it back.
I donno, try something like
or be creative |
|
|
|
|
|
syntax0r
|
Posted: Sat May 07, 2005 8:01 pm Post subject: (No subject) |
|
|
I clear the screen so I can put new content. It's like opening a new page. I think it has to do with the buttons (my problem). I have to declare a proc within a button, which makes things so hard. |
|
|
|
|
|
Tony
|
Posted: Sat May 07, 2005 8:59 pm Post subject: (No subject) |
|
|
that's right. Now when you go back to the menu, you have to once again clear the screen and draw the content |
|
|
|
|
|
syntax0r
|
Posted: Sat May 07, 2005 10:46 pm Post subject: (No subject) |
|
|
Oh really? Hehehe, Didn't think of that! How foolish of me.
Thanks! What sucks is that my code will get quite excessive. |
|
|
|
|
|
|
|