<<< Back to part 1

Getting Started - 02

Now that we've looked at a blank Pygame app, let's add CactusGUI to the mix.

To add CactusGUI to your project, you'll need to download the files and copy them into the same directory as your project. There are other ways to do it, but copying them into the project is by far the easiest and most effective. Once you've done that you can simply import the var 'gui'.

Here's a blank Pygame app with CactusGUI:




import pygame
from cactus_gui import gui

# Window Vars
windowWidth = 500
windowHeight = 300
windowTitle = 'CactusGUI Example'


# Init
pygame.font.init()
screen = pygame.display.set_mode((windowWidth, windowHeight))
clock = pygame.time.Clock()
running = True
pygame.display.set_caption(windowTitle)


# Gui Startup
gui.setup( screen=screen, screen_width=windowWidth, screen_height=windowHeight )
gui.makeState('main')
gui.enterState('main')



#Add a white background for looks
gui.makeBackground('white bg')
gui['white bg'].style(owner='main', color=(255,255,255), z_order=-200)



gui.enterState('main')



while running:
	
	for event in pygame.event.get():
		if event.type == pygame.QUIT:
			running = False 
		elif event.type == pygame.MOUSEMOTION:
			gui.listener.listenForHovers(event.pos)
		elif event.type == pygame.MOUSEBUTTONDOWN:
			gui.listener.listenForMousedowns(event)
		elif event.type == pygame.MOUSEBUTTONUP:
			gui.listener.listenForMouseups(event)
		elif event.type == pygame.KEYDOWN:
			gui.listener.listenForKeydowns(event)
	
	gui.listener.listenToFrames()
	
	pygame.display.flip()
	clock.tick(60)
	

When you run this it should give you a blank white window this time:

Notice that everything CactusGUI does is controlled through the var called 'gui'; this keeps the namespace from getting cluttered up.

Also notice the game loop at the bottom, unlike some other GUI's for pygame, CactusGUI does not take control of your game loop. Yes, this way you've got to write a bit more to attach it onto the loop, but this way the GUI does not prevent you from using any parts of Pygame.

 

Part 3 >>>