No arduino here but I think this should work, I've digitised the analogs on pins 2-5 leaving 0 and 1 as the real analog as before.
Whether it's laggy remains to be seen...
#define STICK_X 0
#define STICK_Y 1
#define OVERVAL 0
int Xstick;
int Ystick;
int Temp;
int myPins[] = {0,1,2,3,4,5,6,7};
boolean buttonState[] = {true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true};
boolean oState[] = {true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true};
void setup() {
int i;
for (i = 0; i < 8; i = i + 1) {
pinMode(myPins[i], INPUT_PULLUP);
}
Joystick.begin(false);
}
void loop() {
Xstick = map(analogRead(STICK_X), OVERVAL, 1024-OVERVAL, -127, 128);
Xstick = constrain(Xstick, -127 , 128);
Joystick.setXAxis(Xstick);
Ystick = map(analogRead(STICK_Y), OVERVAL, 1024-OVERVAL, 128, -127);
Ystick = constrain(Ystick, -127 , 128);
Joystick.setYAxis(Ystick);
int i;
for (i = 0; i < 8; i = i + 1) {
buttonState[i] = digitalRead(myPins[i]); //read physical pin to corresponding buttonState
if(buttonState[i] != oState[i]) { //check against previous button state, if changed do something
if(buttonState[i] == LOW) { //button has been pressed
Joystick.pressButton(i); //press corresponding "joystick" button
}
else { //button has been released
Joystick.releaseButton(i); //release corresponding "joystick" button
}
oState[i] = buttonState[i]; //save state to compare next time
}
Temp = analogRead(2)
if (Temp < -30) {
if buttonState[8] = 0{
buttonState[8] = 1
}
else
if buttonState[8] = 1{
buttonState[8] = 0
}
}
if (Temp > 30) {
if buttonState[9] = 0{
buttonState[9] = 1
}
else
if buttonState[9] = 1{
buttonState[9] = 0
}
}
Temp = analogRead(3)
if (Temp < -30) {
if buttonState[10] = 0{
buttonState[10] = 1
}
else
if buttonState[10] = 1{
buttonState[10] = 0
}
}
if (Temp > 30) {
if buttonState[11] = 0{
buttonState[11] = 1
}
else
if buttonState[11] = 1{
buttonState[11] = 0
}
}
Temp = analogRead(4)
if (Temp < -30) {
if buttonState[12] = 0{
buttonState[12] = 1
}
else
if buttonState[12] = 1{
buttonState[12] = 0
}
}
if (Temp > 30) {
if buttonState[13] = 0{
buttonState[13] = 1
}
else
if buttonState[13] = 1{
buttonState[13] = 0
}
}
Temp = analogRead(4)
if (Temp < -30) {
if buttonState[14] = 0{
buttonState[14] = 1
}
else
if buttonState[14] = 1{
buttonState[14] = 0
}
}
if (Temp > 30) {
if buttonState[15] = 0{
buttonState[15] = 1
}
else
if buttonState[15] = 1{
buttonState[15] = 0
}
}
Joystick.sendState()
}