Added preset button handlers

This commit is contained in:
2025-10-28 10:14:49 -04:00
parent f1d5cf518f
commit 5c4a6909eb

View File

@ -78,8 +78,8 @@ class SwerveDrive {
// Preset robot generators // Preset robot generators
const PresetConfigs = { const PresetConfigs = {
twoWheel: (size) => [ twoWheel: (size) => [
{ x: 0, y: size / 2, name: "Left" }, { x: size / 2, y: 0, name: "Left" },
{ x: 0, y: -size / 2, name: "Right" } { x: -size / 2, y: 0, name: "Right" }
], ],
threeWheel: (size) => { threeWheel: (size) => {
@ -287,7 +287,8 @@ function drawRobot(ctx, robot) {
// Initialize Variables // Initialize Variables
const robot = new SwerveDrive(PresetConfigs.eightWheel(200)); const robotSize = 200;
const robot = new SwerveDrive(PresetConfigs.fourWheelSquare(robotSize));
let xSpeed = 0; let xSpeed = 0;
let ySpeed = 0; let ySpeed = 0;
let turnSpeed = -1; let turnSpeed = -1;
@ -298,6 +299,37 @@ let xGridOffset = 0;
let yGridOffset = 0; let yGridOffset = 0;
robot.drive(xSpeed, ySpeed, 0, 500); robot.drive(xSpeed, ySpeed, 0, 500);
// Preset button event listeners
preset2WheelBtn.addEventListener('click', () => {
const positions = PresetConfigs.twoWheel(robotSize);
robot.setModules(positions);
});
preset3WheelBtn.addEventListener('click', () => {
const positions = PresetConfigs.threeWheel(robotSize);
robot.setModules(positions);
});
preset4WheelBtn.addEventListener('click', () => {
const positions = PresetConfigs.fourWheelSquare(robotSize);
robot.setModules(positions);
});
preset4RectBtn.addEventListener('click', () => {
const positions = PresetConfigs.fourWheelRectangle(robotSize);
robot.setModules(positions);
});
preset6WheelBtn.addEventListener('click', () => {
const positions = PresetConfigs.sixWheel(robotSize);
robot.setModules(positions);
});
preset8WheelBtn.addEventListener('click', () => {
const positions = PresetConfigs.eightWheel(robotSize);
robot.setModules(positions);
});
function animate() { function animate() {
// Clear and set up canvas // Clear and set up canvas
ctx.clearRect(0, 0, canvas.width, canvas.height); ctx.clearRect(0, 0, canvas.width, canvas.height);