12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- # bug #2316
- type
- EventType = enum
- QuitEvent = 5
- AppMain* = ref object of RootObj
- width: int
- height: int
- title: string
- running: bool
- event_type: EventType
- App* = ref object of AppMain
- draw_proc: proc(app: AppMain): void {.closure.}
- events_proc: proc(app: AppMain): void {.closure.}
- update_proc: proc(app: AppMain, dt: float): void {.closure.}
- load_proc: proc(app: AppMain): void {.closure.}
- proc initApp*(t: string, w, h: int): App =
- App(width: w, height: h, title: t, event_type: EventType.QuitEvent)
- method getTitle*(self: AppMain): string = self.title
- method getWidth*(self: AppMain): int = self.width
- method getHeight*(self: AppMain): int = self.height
- method draw*(self: App, draw: proc(app: AppMain)): void =
- self.draw_proc = draw
- method load*(self: App, load: proc(a: AppMain)): void =
- self.load_proc = load
- method events*(self: App, events: proc(app: AppMain)): void =
- self.events_proc = events
- method update*(self: App, update: proc(app: AppMain, delta: float)): void =
- self.update_proc = update
- method run*(self: App): void = discard
- var mygame = initApp("Example", 800, 600)
- mygame.load(proc(app: AppMain): void =
- echo app.getTitle()
- echo app.getWidth()
- echo app.getHeight()
- )
- mygame.events(proc(app: AppMain): void =
- discard
- )
- mygame.run()
|