Project

General

Profile

Revision 271

lemmings: modified turning and speed slightly to allow for better straight line following

View differences:

lemmings.c
165 165
    error = bom_id - 20;
166 166
  }
167 167

  
168
  *turn_speed = error * 20; // set turn speed
169
  *speed = -SPEED * error * error / 25 + SPEED; // set speed
168
  // set turn speed and main speed
169
  // if error is small, turn slowly and travel at normal speed
170
  // if error is large, turn faster and travel at reduced speed
171
  switch(error)
172
  {
173
  case 0:
174
    *turn_speed = 0;
175
    *speed = SPEED;
176
    return;
177
  case 1:
178
  case -1:
179
    *turn_speed = error * 5;
180
    *speed = SPEED;
181
    return;
182
  case 2:
183
  case -2:
184
    *turn_speed = error * 8;
185
    *speed = SPEED;
186
    return;
187
  case 3:
188
  case -3:
189
    *turn_speed = error * 12;
190
    *speed = SPEED;
191
    return;
192
  case 4:
193
  case -4:
194
    *turn_speed = error * 16;
195
    *speed = SPEED - SPEED * error * error / 36;
196
    return;
197
  }
198
  // if not in a case
199
  *turn_speed = error * 20;
200
  *speed = SPEED - SPEED * error * error / 36;
170 201
}
171 202

  
172 203
// create connected components and pick a leader for each chain

Also available in: Unified diff