Blog: Home | Feed (Atom)

Pimpin' Our Shiznit

Tales From the Tiltboys

Featured Crap

Trip Reports

Other Drivel

Tiltboys in Vegas: Six Sigmas Out

Tiltmeter® Source Code

Create your very own tiltmeters using the following tcl/tk source code. Save this out as "tilt.tcl". Figuring out how to use it is left as an excercise for the reader. Hope this doesn't put you on tilt!

proc create_meter {player x y w h e} {
  global gl_meter_info

  set gl_meter_info($player) $x

  .can create rectangle $x $y [expr $x + $w] [expr $y + $h] -fill white -tags meter
  set i $y
  while {$i < [expr $h + $y]} {
    puts stdout "i = $i h = $h e = $e"
    set i [expr $i + ($h / $e)]
    puts stdout "i =  $i"
    .can create line $x $i [expr $x + 3] $i -tags meter
    .can create line [expr $x + $w] $i [expr $x + $w - 3] $i -tags meter_tick
  }
  set i $y
  set l [string length $player]
  set a 0
  while {$a < $l} {
    set c [string index $player $a]
    .can create text [expr $x + ($w / 2)] $i -anchor n -text $c -tags meter_text
    incr a
    set i [expr $i + 15]
  }
}

proc tilt {person pct} {
  global gl_meter_info
  set x $gl_meter_info($person)
  .can delete tilt_$person
  .can create rectangle $x 150 [expr $x + 20] [expr 150 - (100 * $pct)] -fill red -tags tilt_$person
  .can raise meter_text
  .can raise meter_tick
}

proc create_meter_labels {x y h e labels} {
global gl_meter_info
  set i $y
  set index 0
  while {$i < [expr $h + $y]} {
    .can create text $x $i -anchor ne -text [lindex $labels $index] 
    set i [expr $i + ($h / $e)]
    incr index
  }
  .can create text [expr $x + ([llength [array names gl_meter_info]] * 11)] [expr $y + $h + 2] -anchor n -text "Official Tilt Meter"
}


canvas .can -bg lightblue
pack append . .can {top fill expand}
create_meter RAFE  114 50 20 100 5
create_meter BRUCE 136 50 20 100 5
create_meter PERRY 158 50 20 100 5
create_meter STERN 180 50 20 100 5
create_meter JOSH  202 50 20 100 5
create_meter JOHNNY  224 50 20 100 5
create_meter RUSS  246 50 20 100 5
create_meter TONY  268 50 20 100 5
create_meter PHIL  290 50 20 100 5
create_meter DAVE  312 50 20 100 5

create_meter_labels 114 50 100 5 {MEGA-TILT POWER-TILT FULL-TILT TILTED PSEUDO-TILT}
tilt PHIL 0.19
tilt DAVE 0.18
tilt RAFE 0.19
tilt BRUCE 1.0
tilt PERRY 0.2
tilt STERN 0.22
tilt JOSH 0.2
tilt JOHNNY 0.17
tilt RUSS  0.2
tilt TONY  0.18