UI Coding Tutorial #2 Main Menu
Button Position Manipulation
Buttons positions are
determined with x and y coordinates. You may remember these annoying
buggers from high school math, and they haunt many of us to this
day, sometimes even with their buddy the z axis. But not to worry,
he doesnt show up in the main menu of Quake3. Here is the code for
the positioning of the SinglePlayer button. I will detail with a
commented line what each line does:
// gives ys definition, you dont need this , specify y
yourself. y =
134; // tells what MTYPE the
button is. It can also be MTYPE_BITMAP
s_main.singleplayer.generic.type =
MTYPE_PTEXT; // flags to tell
how it acts and stuff s_main.singleplayer.generic.flags =
QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS; // its position on the x plane. (up and down)(goes
from 480 to 0)
s_main.singleplayer.generic.x = 320; // its position on the y plane. (left and right)(goes
from 640 to 0)
s_main.singleplayer.generic.y = y; // the ID for it (makes
reference to the CASE ID_whatever above s_main.singleplayer.generic.id =
ID_SINGLEPLAYER; // what menu
its making the command under
s_main.singleplayer.generic.callback = Main_MenuEvent; // what text shows up s_main.singleplayer.string = "SINGLE
PLAYER"; // The color of the
text, can be color_black; color_white; color_yellow; color_blue;
color_orange; s_main.singleplayer.color = color_red; // the style of the text, and the value
they give is style, which is defined above (top of this
function)
s_main.singleplayer.style = style;
Now with this you
can do many wonderful things. First of all, to demonstrate something
you could do, lets move the SinglePlayer button somewhere else on
the screen, and call it Bot Play in the color blue. To do this,
youll need to change the following: (note: you will need to
change the original code to this or paste this after the original
and comment out the original in order for it to work)
s_main.singleplayer.generic.type =
MTYPE_PTEXT; s_main.singleplayer.generic.flags =
QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS; // everything above we keep the same, but notice the
following differences // x coordinate is same (middle of screen
left and right)
s_main.singleplayer.generic.x = 320; // no more y for the y coordinate! now the y coordinate
is 20, higher up on the screen
s_main.singleplayer.generic.y = 20; // still acts the same when clicked
s_main.singleplayer.generic.id =
ID_SINGLEPLAYER; // same menu
called
s_main.singleplayer.generic.callback = Main_MenuEvent;
// weve changed the text to
BOT MODE, which will show up in the menu instead of
singleplayer
s_main.singleplayer.string = "BOT MODE"; // here we changed the text color to
orange
s_main.singleplayer.color = color_orange; // style is the same, no need to change
it s_main.singleplayer.style
= style;
I hope you understand the main menu of
Quake3 even better, and I look forward to seeing some interesting
menus later on! I will deal with images for buttons and more in
later tutorials! -IoN_PuLse
Latest Features UI Coding
Tutorial #2 - IoN_PuLse - 29/04 Quake Food
Guide - Marine71 - 27/04 UI Coding
Tutorial #1 - IoN_PuLse - 22/04 The Q3Center
Map Contest Verdict - PaRaDoX - 30/03 Q3 Console by
Keen - Bigdog -
11/03
|