Miksiköhän tämä syöttää puskuriin(pushToBuffer) kakkosen kun painaa vasenta kontrollia?
void Input::updateBuffer()
{
for(int i=0; i < SDLK_LAST; i++)
{
if(keyboard[i] && !keys[i])
{
if(islower(i))
{
if(keyboard[SDLK_LSHIFT])
pushToBuffer(toupper(i));
else
pushToBuffer(i);
}
else if(isspace(i))
{
if(i == SDLK_RETURN)
pushToBuffer('\n');
else
pushToBuffer(i);
}
else if(isdigit(i))
pushToBuffer(i);
keys[i]=1;
}
else if(keys[i] && !keyboard[i])
keys[i]=0;
}
}Koska (char)SDLK_LCTRL = (SDLK_LCTRL % 256) = (306 % 256) = 50 = '2'. Tarkistuksissasi ei ole järkeä, kun i > 255, joten huomioi tämä joko if-lauseella tai rajoittamalla for-silmukkaa.
if (i > 255) {
// tyhjä
} else if (islower(i)) { ... }Sillähän se selvisi.
Kiitokset.
Aihe on jo aika vanha, joten et voi enää vastata siihen.