main.nim 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. # main scene
  2. import nodesnim
  3. Window("Novel game", 1280, 720)
  4. var
  5. main = Scene("Main")
  6. button = Button("New game")
  7. # Game scene
  8. game_scene = Scene("Game")
  9. # Backgrounds:
  10. night = load("assets/night.jpg")
  11. # Charapters:
  12. akiko_default = load("assets/test.png", GL_RGBA)
  13. name_charapter = Label()
  14. dialog_text = RichLabel()
  15. background_image = TextureRect()
  16. foreground_rect = ColorRect()
  17. charapter = TextureRect("Charapter")
  18. dialog = @[
  19. ("Me", "H-Hey .. ?", false),
  20. ("Eileen", "NANI??????", true)
  21. ]
  22. stage = -1
  23. game_scene.addChild(background_image)
  24. background_image.setSizeAnchor(1, 1)
  25. background_image.setTexture(night)
  26. background_image.setTextureAnchor(0.5, 0.5, 0.5, 0.5)
  27. background_image.texture_mode = TEXTURE_KEEP_ASPECT_RATIO
  28. game_scene.addChild(charapter)
  29. charapter.setSizeAnchor(1, 1)
  30. charapter.setTexture(akiko_default)
  31. charapter.setTextureAnchor(0.5, 0.5, 0.5, 0.5)
  32. charapter.texture_mode = TEXTURE_KEEP_ASPECT_RATIO
  33. charapter.visible = false
  34. game_scene.addChild(dialog_text)
  35. dialog_text.setSizeAnchor(0.8, 0.3)
  36. dialog_text.setAnchor(0.1, 0.6, 0, 0)
  37. dialog_text.setBackgroundColor(Color(0x0e131760))
  38. dialog_text.addChild(name_charapter)
  39. name_charapter.resize(128, 32)
  40. name_charapter.setAnchor(0, 0, 0, 1)
  41. name_charapter.setBackgroundColor(Color(0x0e131760))
  42. name_charapter.setTextAlign(0.1, 0.5, 0.1, 0.5)
  43. game_scene.addChild(foreground_rect)
  44. foreground_rect.setSizeAnchor(1, 1)
  45. foreground_rect@on_ready(self):
  46. foreground_rect.color = Color(0x0e1317ff)
  47. foreground_rect@on_process(self):
  48. if foreground_rect.color.a > 0f:
  49. foreground_rect.color.a -= 0.001
  50. foreground_rect@on_input(self, event):
  51. if event.isInputEventMouseButton() and not event.pressed:
  52. inc stage
  53. if stage < dialog.len():
  54. name_charapter.setText(dialog[stage][0])
  55. dialog_text.setText(clrtext(dialog[stage][1]))
  56. charapter.visible = dialog[stage][2]
  57. main.addChild(button)
  58. button.text = "New game"
  59. button.resize(128, 32)
  60. button.setAnchor(0.5, 0.5, 0.5, 0.5)
  61. button.on_touch =
  62. proc(self: ButtonRef, x, y: float) =
  63. changeScene("Game")
  64. addScene(main)
  65. addScene(game_scene)
  66. setMainScene("Main")
  67. windowLaunch()