added renderer

This commit is contained in:
josch 2008-11-25 15:45:41 +01:00
parent 486f7e6029
commit 6f63bc97ca
5 changed files with 23 additions and 14 deletions

3
hr.py
View file

@ -21,6 +21,7 @@ import pyglet
from lib.mapset import * from lib.mapset import *
from lib.interface import * from lib.interface import *
from lib.mapview import * from lib.mapview import *
from lib.render import *
from lib.window import Window from lib.window import Window
import sys import sys
@ -37,7 +38,9 @@ class LoadScreen(object):
self.label.text = "INITIATING MAPVIEW..." self.label.text = "INITIATING MAPVIEW..."
mapview = MapView(mapset, self.window) mapview = MapView(mapset, self.window)
interface = Interface(self.window) interface = Interface(self.window)
renderer = Renderer(self.window, mapview, interface)
self.window.pop_handlers() self.window.pop_handlers()
self.window.push_handlers(renderer)
self.window.push_handlers(mapview) self.window.push_handlers(mapview)
self.window.push_handlers(interface) self.window.push_handlers(interface)
self.window.push_handlers(self.window.keys) self.window.push_handlers(self.window.keys)

View file

@ -159,7 +159,7 @@ def extract(filename):
(exp, ) = struct.unpack("<I", h3m_data.read(4)) (exp, ) = struct.unpack("<I", h3m_data.read(4))
(isSecSkill, ) = struct.unpack("<B", h3m_data.read(1)) (isSecSkill, ) = struct.unpack("<B", h3m_data.read(1))
if isSecSkill == 0x01: if isSecSkill == 0x01:
(skills_count) = struct.unpack("<I", h3m_data.read(4)) (skills_count, ) = struct.unpack("<I", h3m_data.read(4))
for i in range(skills_count): for i in range(skills_count):
(skill_id, ) = struct.unpack("<B", h3m_data.read(1)) (skill_id, ) = struct.unpack("<B", h3m_data.read(1))
(skill_lvl, ) = struct.unpack("<B", h3m_data.read(1)) (skill_lvl, ) = struct.unpack("<B", h3m_data.read(1))

View file

@ -36,3 +36,20 @@ class Interface(object):
pass pass
else: else:
return pyglet.event.EVENT_HANDLED return pyglet.event.EVENT_HANDLED
def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers):
if IF_LEFT < x < (self.window.width-IF_RIGHT):
pass
else:
return pyglet.event.EVENT_HANDLED
if IF_BOTTOM < y < (self.window.height-IF_TOP):
pass
else:
return pyglet.event.EVENT_HANDLED
def draw(self):
pyglet.gl.glColor4f(1, 0, 1, 1)
pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM)
pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height)
pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height)
pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height)

View file

@ -127,21 +127,10 @@ class MapView(object):
self.view_x = mod_x - self.tile_size - (self.tile_size - 32) // 4 self.view_x = mod_x - self.tile_size - (self.tile_size - 32) // 4
self.view_y = mod_y - self.tile_size - ((self.tile_size - 32) * 3) // 2 self.view_y = mod_y - self.tile_size - ((self.tile_size - 32) * 3) // 2
def on_draw(self): def draw(self):
pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT)
pyglet.gl.glPushMatrix()
pyglet.gl.glTranslatef(self.view_x+IF_LEFT, self.view_y+IF_BOTTOM, 0) pyglet.gl.glTranslatef(self.view_x+IF_LEFT, self.view_y+IF_BOTTOM, 0)
pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0)
self.batch.draw() self.batch.draw()
pyglet.gl.glPopMatrix()
pyglet.gl.glLoadIdentity()
pyglet.gl.glEnable(pyglet.gl.GL_BLEND)
pyglet.gl.glColor4f(1, 0, 1, 1)
pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM)
pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height)
pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height)
pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height)
self.label.draw()
def _move(self, dx, dy): def _move(self, dx, dy):
# new map position # new map position

View file

@ -29,7 +29,7 @@ class Window(pyglet.window.Window):
self.fps = pyglet.clock.ClockDisplay() self.fps = pyglet.clock.ClockDisplay()
pyglet.clock.schedule(lambda dt: None) pyglet.clock.schedule(lambda dt: None)
def on_draw(self): def draw(self):
self.fps.draw() self.fps.draw()
def on_key_press(self, symbol, modifiers): def on_key_press(self, symbol, modifiers):