simple lane changes with weird effects

This commit is contained in:
Luke Meyers 2020-02-05 20:57:46 -08:00
parent 894c487390
commit 81e0dbe8d7
3 changed files with 10 additions and 3 deletions

View File

@ -73,6 +73,8 @@ func UpdateState(sOld State) State {
switch chooseCommand(t, sOld) {
case speedUp:
accelerate(t.Baton.Holder)
case left:
t.Baton.Holder.Lane++
}
moveBot(t.Baton.Holder, sOld)
@ -89,6 +91,10 @@ func UpdateState(sOld State) State {
}
func chooseCommand(t Team, s State) command {
h := t.Baton.Holder
if collide(h.Pos+1, h.Lane, s) {
return left
}
return speedUp
}
@ -96,6 +102,7 @@ type command int
const (
speedUp command = iota
left
)
func maybePassBaton(t *Team) {

View File

@ -25,13 +25,13 @@ func accelerate(b *Bot) {
func moveBot(b *Bot, s State) {
for i := 0; i < b.v; i++ {
if !collide(b.id, b.Pos+1, b.Lane, s) {
if !collide(b.Pos+1, b.Lane, s) {
b.Pos++
}
}
}
func collide(id, pos, lane int, s State) bool {
func collide(pos, lane int, s State) bool {
for _, o := range s.Obstacles {
if o.Pos == pos && o.Lane == lane {
return true

View File

@ -29,7 +29,7 @@ func renderBots(s game.State, w *pixelgl.Window, d time.Duration, colors map[*ga
im.Color = colors[&s.Teams[i]]
}
pos := lanePos(bot.Pos, i, botWidth, b)
pos := lanePos(bot.Pos, bot.Lane, botWidth, b)
im.Push(pos)