diff --git a/test-map.py b/test-map.py new file mode 100755 index 00000000..68ca7c8c --- /dev/null +++ b/test-map.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python + +import os + +import OpenGL +OpenGL.ERROR_CHECKING = False +from OpenGL.GL import * +from OpenGL.GLU import * + +import pygame, pygame.image +from pygame.locals import * + +textures = [0,0] + +def resize((width, height)): + glViewport(0, 0, width, height) + glMatrixMode(GL_PROJECTION) + glLoadIdentity() + glOrtho(0, width, height, 0, 0, 1); + glMatrixMode(GL_MODELVIEW) + glLoadIdentity() + +def init(): + glEnable(GL_TEXTURE_2D) + load_textures() + glShadeModel(GL_SMOOTH) + glClearColor(0.0, 0.0, 0.0, 0.0) + glClearDepth(1.0) + glEnable(GL_DEPTH_TEST) + glDepthFunc(GL_LEQUAL) + glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST) + +def load_textures(): + texturefile = os.path.join('art','test','groundtest.png') + textureSurface = pygame.image.load(texturefile) + textureData = pygame.image.tostring(textureSurface, "RGBX", 1) + + glBindTexture(GL_TEXTURE_2D, textures[0]) + glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, textureSurface.get_width(), textureSurface.get_height(), 0, + GL_RGBA, GL_UNSIGNED_BYTE, textureData ); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST) + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST) + +def put_map(themap): + glBegin(GL_QUADS) + y = 0.0 + for line in themap: + x = 0.0 + for tile in line: + sy = .0625 * (15 - tile / 16) + sx = .0625 * (tile % 16) + glTexCoord2f(sx, sy); glVertex2f(x, y + 32.0); + glTexCoord2f(sx + .0625, sy); glVertex2f(x + 32.0, y + 32.0); + glTexCoord2f(sx + .0625, sy + .0625); glVertex2f(x + 32.0, y); + glTexCoord2f(sx, sy + .0625); glVertex2f(x, y); + x += 32.0 + y += 32.0 + glEnd(); + +def draw(): + #glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) + glLoadIdentity() + + themap = [ + [ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 ], + [ 17, 0, 1, 1, 1, 33, 1, 1, 1, 1, 1, 1, 2, 33, 3, 17, 17, 17, 17, 17 ], + [ 17, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 16, 17, 19, 3, 17, 17, 17, 17 ], + [ 17, 18, 17, 48, 49, 50, 48, 49, 50, 48, 49, 17, 16, 17, 16, 18, 17, 17, 17, 17 ], + [ 17, 16, 17, 48, 49, 50, 48, 49, 50, 48, 49, 17, 16, 17, 16, 16, 17, 17, 17, 17 ], + [ 17, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 17, 19, 35, 17, 17, 17, 17 ], + [ 17, 32, 1, 1, 1, 1, 1, 1, 1, 1, 33, 1, 34, 1, 35, 17, 17, 17, 17, 17 ], + [ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 ], + [ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51 ], + [ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51 ], + [ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51 ], + [ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51 ], + [ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51 ], + [ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51 ], + [ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51 ], + ] + put_map(themap) + +def main(): + + video_flags = OPENGL|DOUBLEBUF + + pygame.init() + surface = pygame.display.set_mode((640,480), video_flags) + + resize((640,480)) + init() + + frames = 0 + ticks = pygame.time.get_ticks() + start = ticks + while 1: + event = pygame.event.poll() + if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE): + break + + # Enforce 33 fps + while pygame.time.get_ticks() < ticks + 33: + pygame.time.wait(1) + ticks = pygame.time.get_ticks() + + draw() + pygame.display.flip() + frames = frames+1 +# if frames > 200: +# break + + print "fps: %d" % ((frames*1000)/(pygame.time.get_ticks()-start)) + + +if __name__ == '__main__': main() + +#import cProfile +#cProfile.run('main()') + +