joi, 15 august 2013

PyGame - first interface - part 4

This is another tutorial about pygame.
Tha main goal of this tutorial is to make one box with some text for your application or game.
First i import the pygame module and I set two colors : black and green:
import pygame
import pygame.font
import pygame.event
import pygame.draw
import string
from pygame.locals import *
black=(0,0,0)
green=(0,255,0)
Tne next step is to make a function to create the display box.
def display_box(screen,mess):
        fontobject = pygame.font.Font(None,18)
        pygame.draw.rect(screen,black,((screen.get_width() / 2) - 100,
                (screen.get_height() / 2) - 10,200,20), 0)
        pygame.draw.rect(screen,green,((screen.get_width() / 2) - 101,
                (screen.get_height() / 2) - 11,200,20), 1)
        if len(mess) != 0:
                screen.blit(fontobject.render(mess, 1, (25,255,25)),
                ((screen.get_width() / 2) - 100, (screen.get_height() / 2) - 9))
        pygame.display.flip()
Let's start the pygame window and display the box.
if __name__ == '__main__':
        pygame.init()
        pygame.display.set_caption("Hello world")
        screen = pygame.display.set_mode((320,240))
        pygame.font.init()
        mess = []
        while 1:
                display_box(screen,"Hello world text")
                pygame.display.update()
                pygame.time.delay(10)
                for event in pygame.event.get():
                        if event.type in (pygame.QUIT,pygame.KEYDOWN,pygame.MOUSEBUTTONDOWN):
                                raise SystemExit
The result of this source of code can be see in the next image.

You can also change this source of code to make editbox or another GUI elements.

vineri, 9 august 2013

PyGame - first interface - part 3

Today I will show you just few tips about pygame window.
If we want to put the window in the centre of the screen we can use this:
import os
os.environ['SDL_VIDEO_CENTERED'] = '1'
Most of the pygame windows is made by :
def main():
  background_colour = (25,25,255)
  screen = pygame.display.set_mode((320,240))
  screen.fill(background_colour)
This will create this window:

Now if you don't need a title window , like the next image...

... then you need to use this source code :
  screen = pygame.display.set_mode((320,240),NOFRAME)