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
-
- breed [tanks tank]
-
- tanks-own [
- acceleration
- ammunition
- armor
- friction
- is-accelerating?
- is-player?
- max-speed
- max-turn
- speed
- team
- ]
-
- to spawn-tank [tank-team]
- create-tanks 1 [
- set-tank-vars tank-team false
- ]
- end
-
- to set-tank-vars [tank-team player-tank?]
- set acceleration 0.03
- set ammunition 20
- set armor 8
- set friction 0.0075
- set is-accelerating? false
- set is-player? player-tank?
- set max-speed 0.25
- set max-turn 24
- set speed 0
- set team tank-team
-
- set color get-tank-color
- set heading 0
- set shape "tank"
- set size 1.5
- end
-
- to do-tank-logic
- if is-accelerating? [
- accelerate acceleration
- ]
- fd speed
- decelerate friction
- end
-
- to accelerate [amount]
- set speed speed + amount
- if speed > max-speed [
- set speed max-speed
- ]
- end
-
- to decelerate [amount]
- set speed speed - amount
- if speed < 0 [
- set speed 0
- ]
- end
-
- to fire
- if ammunition > 0 [
- set ammunition ammunition - 1
- hatch-bullets 1 [
- set max-travel-distance 8
- set shooter [who] of myself
- set speed 1
- set travel-distance 0
-
- set color white
- set shape "bullet"
- set size 0.5
- ]
- ]
- end
-
- to shot-at [bullet]
- debug "SHOT" (word ([shooter] of myself) " -> " who)
- set armor armor - 1
- if armor = 0 [
- die
- ]
- end
-
- to-report get-tank-color
- if is-player? [ report black ]
- if team = 0 [ report green ]
- report red
- end
|