Logo Bolo: a re-envisioning of the classic tank game by Stuart Cheshire in NetLogo
Não pode escolher mais do que 25 tópicos
Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
|
- ;; lobo: Logo Bolo
- ;; (c) Ben Kurtovic, 2011
-
- globals [
- player
- player-deaths
- player-has-target?
- player-kills
- player-target-xcor
- player-target-ycor
- ]
-
- ;; ==========
- ;; Procedures
- ;; ==========
-
- to spawn-player [tank-xcor tank-ycor tank-heading]
- create-tanks 1 [
- set player tank who
- set-tank-vars true 0 tank-xcor tank-ycor tank-heading
- ]
- end
-
- to do-player-logic
- if mouse-inside? [
- if mouse-down? and not mouse-was-down? [
- let txcor round mouse-xcor
- let tycor round mouse-ycor
- ifelse player-has-target? and player-target-xcor = txcor and player-target-ycor = tycor [
- cancel-target
- ] [
- set is-accelerating? true
- set player-has-target? true
- set player-target-xcor txcor
- set player-target-ycor tycor
- ]
- ]
- set mouse-was-down? mouse-down?
- ]
-
- ifelse player-has-target? [
- tank-facexy player-target-xcor player-target-ycor
- let dist distancexy player-target-xcor player-target-ycor
- if dist < 2 and speed > 0.075 [
- ; Turn on "brakes" if we're getting
- ; close and we're moving fast:
- decelerate friction * 5
- ]
- if dist < 0.1 [
- cancel-target
- ]
- ] [
- tank-facexy mouse-xcor mouse-ycor
- ]
- end
-
- to cancel-order
- if player-has-target? [
- cancel-target
- ]
- end
-
- to cancel-target
- set is-accelerating? false
- set player-has-target? false
- set speed speed / 2
- end
|