2
$\begingroup$

I am making a racing game and I want to know something: How do I make gauges for my game. I have 6 gears on car set by states, but only way to visualiate them is game debug. But game debug is ugly- I want to make fancy gauges. How do I make them?

$\endgroup$
3
  • $\begingroup$ Hi, please only ask one question at a time. If you want to ask multiple questions then please ask them separately as separate posts. $\endgroup$ Commented Dec 19, 2014 at 13:27
  • $\begingroup$ But if they are about one and the sme thing, just 2 actions- can't I ask them both in one place? This is easier for me to check for answers... $\endgroup$ Commented Dec 19, 2014 at 13:46
  • 3
    $\begingroup$ I don't think they are the same. One is about visualising data and one is about getting a car to accelerate. $\endgroup$ Commented Dec 19, 2014 at 14:28

1 Answer 1

3
$\begingroup$

Assuming the gauges are in an overlay scene, you'll need to establish communication with message sensors.

  1. Send a "gearUp" or "gearDown" message to the gauge when the gear changes
  2. Put message sensors on the gauge that execute whatever action you desire

Here's a quick sample - use the up and down arrow keys to send messages. https://dl.dropboxusercontent.com/u/19279604/static/misc/gauge_example.blend

If the gauges are in the same scene, then it's a whole lot easier. You can shift+click multiple objects and connect gauge actuators directly to the gear controller.

EDIT

There really isn't a good way to copy properties between scenes with logic bricks. Here's a Python example that can be adapted to your needs:

import bge

def copyProps(cont):
    # Get a reference to the object running the script
    own = cont.owner

    # Get a reference to the overlay scene
    overlay = bge.logic.getSceneList()[1]

    # Find the object in the overlay scene
    other = overlay.objects['Speedometer']

    # Copy the desired properties
    other['Text'] = own['speed']

if __name__ == '__main__':
    cont = bge.logic.getCurrentController()
    copyProps(cont)
$\endgroup$
6
  • $\begingroup$ I will check it out, but looks useful. Can you also show, how to make it show property value?(I have "speed" property) $\endgroup$ Commented Dec 20, 2014 at 17:04
  • $\begingroup$ Unfortunately we can't directly copy properties between scenes with logic bricks. You're pretty much stuck with sending incremental messages. I suppose you could send a message for each unit of speed, but that's a bit silly. I've edited the answer to include a Python script that directly copies properties. $\endgroup$
    – pqftgs
    Commented Dec 20, 2014 at 18:36
  • $\begingroup$ What object is Speedometer? Which one shouldI call Speedometer? $\endgroup$ Commented Dec 20, 2014 at 19:49
  • $\begingroup$ Should I make evrything else like in your example? Where should I put the scrip controller? $\endgroup$ Commented Dec 20, 2014 at 19:50
  • $\begingroup$ Actually, there is an alternate- I can put gauges in the same scene, maybe- I will try... $\endgroup$ Commented Dec 20, 2014 at 19:50

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .