123456789101112131415161718192021222324252627282930313233343536373839404142 |
- # --- Test 7. Input handling. --- #
- import nodesnim
- var
- window = newWindow("hello world", 640, 360)
- mainobj: SceneObj
- main_scene = Scene("Main", mainobj)
- colorrectobj: ColorRectObj
- colorrect = ColorRect(colorrectobj)
- main_scene.addChild(colorrect)
- # bind actions:
- Input.addKeyboardAction("forward", K_w)
- Input.addKeyboardAction("left", K_a)
- Input.addKeyboardAction("right", K_d)
- Input.addKeyboardAction("backward", K_s)
- Input.addMouseButtonAction("go", BUTTON_LEFT)
- # Create one handler:
- colorrect.process =
- proc() =
- let speed = 3f
- if Input.isActionPressed("forward"): # check action
- colorrect.move(0, -speed)
- if Input.isActionPressed("left"):
- colorrect.move(-speed, 0)
- if Input.isActionPressed("right"):
- colorrect.move(speed, 0)
- if Input.isActionPressed("backward"):
- colorrect.move(0, speed)
- if Input.isActionPressed("go"):
- let target_position = colorrect.getGlobalMousePosition()
- colorrect.move(colorrect.position.directionTo(target_position)*speed)
- window.setMainScene(main_scene)
- window.launch()
|