main.nim 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. # main scene
  2. import nodesnim
  3. Window("Novel game", 1280, 720)
  4. var
  5. # Backgrounds:
  6. night = load("assets/night.jpg")
  7. # Charapters:
  8. akiko_default = load("assets/test.png", GL_RGBA)
  9. dialog = @[
  10. ("Me", "H-Hey .. ?", GONE),
  11. ("Eileen", "NANI??????", VISIBLE)
  12. ]
  13. stage = 0
  14. build:
  15. - Scene main:
  16. - Button button:
  17. call:
  18. setText("New game")
  19. resize(128, 32)
  20. setAnchor(0.5, 0.5, 0.5, 0.5)
  21. @onTouch(x, y):
  22. changeScene("game_scene")
  23. - Scene game_scene:
  24. - TextureRect background_image:
  25. texture_mode: TEXTURE_KEEP_ASPECT_RATIO
  26. call:
  27. setSizeAnchor(1, 1)
  28. setTexture(night)
  29. setTextureAnchor(0.5, 0.5, 0.5, 0.5)
  30. - TextureRect charapter:
  31. texture_mode: TEXTURE_KEEP_ASPECT_RATIO
  32. visibility: GONE
  33. call:
  34. setSizeAnchor(1, 1)
  35. setTexture(akiko_default)
  36. setTextureAnchor(0.5, 0.5, 0.5, 0.5)
  37. - Label dialog_text:
  38. call:
  39. setSizeAnchor(0.8, 0.3)
  40. setAnchor(0.1, 0.6, 0, 0)
  41. setBackgroundColor(Color(0x0e131760))
  42. setPadding(8, 8, 8, 8)
  43. - Label name_charapter:
  44. call:
  45. resize(128, 32)
  46. setAnchor(0, 0, 0, 1)
  47. setBackgroundColor(Color(0x0e131760'u32))
  48. setStyle(style({
  49. border-radius: "8 8 0 0"
  50. }))
  51. setTextAlign(0.1, 0.5, 0.1, 0.5)
  52. - ColorRect foreground_rect:
  53. call setSizeAnchor(1, 1)
  54. color: Color(0x0e1317ff)
  55. - AnimationPlayer animation:
  56. loop: false
  57. call addState(foreground_rect.color.a.addr,
  58. @[(tick: 0, value: 1.0), (tick: 100, value: 0.0)])
  59. @onReady():
  60. animation.play()
  61. foreground_rect@onInput(self, event):
  62. if event.isInputEventMouseButton() and not event.pressed:
  63. if stage < dialog.len():
  64. name_charapter.setText(dialog[stage][0])
  65. dialog_text.setText(dialog[stage][1])
  66. charapter.visibility = dialog[stage][2]
  67. inc stage
  68. addMainScene(main)
  69. addScene(game_scene)
  70. windowLaunch()