56 lines
2.1 KiB
Plaintext
56 lines
2.1 KiB
Plaintext
|
|
|
||
|
|
Currently, my demo game includes a hotkey system. You will use the
|
||
|
|
existing hotkey system as inspiration to build a menu system.
|
||
|
|
|
||
|
|
In my lua code, I can create a class such as "sphere." Then
|
||
|
|
I can create an instance of that class and make it appear in
|
||
|
|
the world.
|
||
|
|
|
||
|
|
I can also define a lua function "sphere.lookhotkeys" which adds
|
||
|
|
hotkeys to objects of class sphere. When I aim the crosshairs
|
||
|
|
at a sphere, a widget WB_Hotkeys appears, and it shows me the
|
||
|
|
hotkeys for spheres.
|
||
|
|
|
||
|
|
I can then press one of those hotkeys. The WB_Hotkeys widget
|
||
|
|
handles the key event, displaying visual feedback, and it
|
||
|
|
also invokes a lua function which eventually leads to the
|
||
|
|
proper hotkey action being taken in lua.
|
||
|
|
|
||
|
|
I want you to study this mechanism, learning exactly how this
|
||
|
|
process works. Then, I want you to implement a menu system
|
||
|
|
that operates on exactly the same principles.
|
||
|
|
|
||
|
|
Currently, my demo game contains a sphere and a cube which
|
||
|
|
both have hotkeys. I want you to reprogram the cube
|
||
|
|
so that it has a menu instead of hotkeys.
|
||
|
|
|
||
|
|
The menu system will require me to write a lua function
|
||
|
|
such as cube.lookmenu, which generates the contents of the
|
||
|
|
menu. When I point the crosshairs at a cube, the menu
|
||
|
|
widget WB_Menu will appear in minimized form. In minimized
|
||
|
|
form, the WB_Menu widget will just look like a little
|
||
|
|
circle or something. This is just enough of a clue to
|
||
|
|
the user that a menu is there to be activated.
|
||
|
|
|
||
|
|
When the user clicks the left mouse button, WB_Menu will
|
||
|
|
switch to active form: it will display the menu and put
|
||
|
|
the mouse pointer on the first menu item. I can then
|
||
|
|
drag the mouse and select a menu item, or I can drag off
|
||
|
|
the menu to choose nothing. When I release the mouse
|
||
|
|
button, if the mouse is over a menu item, there's some
|
||
|
|
visual feedback, and the appropriate lua closure is
|
||
|
|
invoked. Then, the menu goes back to minimized state.
|
||
|
|
|
||
|
|
You must implement all of this using a combination of lua
|
||
|
|
and blueprint-language. No C++. You can use the UE
|
||
|
|
Wingman plugin to edit blueprints.
|
||
|
|
|
||
|
|
Along the way, it is possible that the UE Wingman plugin may
|
||
|
|
fail - it's still in beta. If so, please pause, notify me,
|
||
|
|
and you and I will work together to get things up and
|
||
|
|
running again.
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|