Mercurial > games > semicongine
comparison tests/test_panel.nim @ 894:2aa26c23cc60
add: initial implementation of "panels"
| author | Sam <sam@basx.dev> |
|---|---|
| date | Sat, 10 Feb 2024 15:55:05 +0700 |
| parents | f2d7529b49ca |
| children | 30cc1deda4c1 |
comparison
equal
deleted
inserted
replaced
| 893:a0826956dc5c | 894:2aa26c23cc60 |
|---|---|
| 7 # setup engine | 7 # setup engine |
| 8 var engine = initEngine("Test panels") | 8 var engine = initEngine("Test panels") |
| 9 engine.initRenderer([]) | 9 engine.initRenderer([]) |
| 10 | 10 |
| 11 # build scene | 11 # build scene |
| 12 var scene = Scene(name: "main") | 12 var |
| 13 var panel = Panel(position: newVec2f(0, 0), size: newVec2f(0.1, 0.1)) | 13 font = loadFont("DejaVuSans.ttf", lineHeightPixels = 210'f32) |
| 14 scene = Scene(name: "main") | |
| 15 origin = initPanel(size = newVec2f(0.01, 0.01), color = newVec4f(0, 0, 0, 1)) | |
| 16 panel = initPanel(size = newVec2f(0.2, 0.2), color = newVec4f(1, 0, 0, 1)) | |
| 17 help_text = font.initText("""Controls | |
| 18 | |
| 19 Horizontal alignment: | |
| 20 F1: Left | |
| 21 F2: Center | |
| 22 F3: Right | |
| 23 Vertical alignment: | |
| 24 F4: Top | |
| 25 F5: Center | |
| 26 F6: Bottom""", scale = 0.0002, position = newVec2f(-0.9, -0.9), horizontalAlignment = Left, verticalAlignment = Top) | |
| 14 | 27 |
| 15 scene.add panel | 28 scene.add panel |
| 29 scene.add help_text | |
| 30 scene.add origin | |
| 16 engine.loadScene(scene) | 31 engine.loadScene(scene) |
| 17 | 32 |
| 18 while engine.updateInputs() == Running and not engine.keyIsDown(Escape): | 33 while engine.updateInputs() == Running and not engine.keyIsDown(Escape): |
| 19 if engine.windowWasResized(): | 34 if engine.windowWasResized(): |
| 20 var winSize = engine.getWindow().size | 35 var winSize = engine.getWindow().size |
| 21 panel.aspect_ratio = winSize[0] / winSize[1] | 36 panel.aspect_ratio = winSize[0] / winSize[1] |
| 37 origin.aspect_ratio = winSize[0] / winSize[1] | |
| 38 help_text.aspect_ratio = winSize[0] / winSize[1] | |
| 39 | |
| 40 if engine.keyWasPressed(F1): panel.horizontalAlignment = Left | |
| 41 elif engine.keyWasPressed(F2): panel.horizontalAlignment = Center | |
| 42 elif engine.keyWasPressed(F3): panel.horizontalAlignment = Right | |
| 43 elif engine.keyWasPressed(F4): panel.verticalAlignment = Top | |
| 44 elif engine.keyWasPressed(F5): panel.verticalAlignment = Center | |
| 45 elif engine.keyWasPressed(F6): panel.verticalAlignment = Bottom | |
| 46 | |
| 47 panel.refresh() | |
| 48 origin.refresh() | |
| 49 help_text.refresh() | |
| 22 | 50 |
| 23 engine.renderScene(scene) | 51 engine.renderScene(scene) |
| 24 engine.destroy() | 52 engine.destroy() |
| 25 | 53 |
| 26 | 54 |
