# How to draw a text using the bge module I

I´m trying to draw a text using the bge module. This is my code:

# import game engine modules
from bge import render
from bge import logic
# import stand alone modules
import bgl
import blf

def init():
"""init function - runs once"""
# create a new font object, use external ttf file
# store the font indice - to use later

# set the font drawing routine to run every frame
scene = logic.getCurrentScene()
scene.post_draw = [write]

def write():
"""write on screen"""
width = render.getWindowWidth()
height = render.getWindowHeight()

# OpenGL setup
bgl.glMatrixMode(bgl.GL_PROJECTION)
bgl.gluOrtho2D(0, width, 0, height)
bgl.glMatrixMode(bgl.GL_MODELVIEW)

# BLF drawing routine
font_id = logic.font_id
blf.position(font_id, (width * 0.2), (height * 0.3), 0)
blf.size(font_id, 50, 72)
blf.draw(font_id, "Hello World")


I add an object, a sensor and a controller as you can see in the next picture:

But, when I pulse "p" on the 3D viewer screen and it´s suppose my game runs I only see this:

I´ve tried to change the text´s size and the frequency of the sensor. Any idea about something that may be failing?

 font_path = logic.expandPath('//Zeyada.ttf')