Förlåt om jag tjyvar din tråd, men jag har med ett litet problem som antagligen är ganska lätt att knäcka..
Sitter och programmerar ett 3D spel för tillfället och har börjat lite smått på kontrollerna, MEN jag har satt så att på CTRL (VK_CONTROL) så duckar man och på CTRL && 'W' så crouch-går man.
Men problemet är att efter man tryckt på CTRL en gång så måste man trycka på CTRL en gång till för att det ska gå att gå framåt igen (bara 'W') eftersom jag har låst satserna i 'W'.
Koden hittills:
void KeyPressed()
{
if(GetKeyState(VK_UP) & 0x80 || GetKeyState('W') & 0x80) {
if(GetKeyState(VK_SHIFT) & 0x80 || GetKeyState(VK_CONTROL)){
}
else{
g_Model.SetLegsAnimation("LEGS_RUN");
if((model.speed.x+model.speed.y+model.speed.z)/3 <= 0.7){
model.speed.x += model.heading.x * 0.0055 * airdrag;
model.speed.y += model.heading.y * 0.0055 * airdrag;
model.speed.z += model.heading.z * 0.0055 * airdrag;
}
}
}
if(GetKeyState(VK_DOWN) & 0x80 || GetKeyState('S') & 0x80 ) {
g_Model.SetLegsAnimation("LEGS_BACK");
if((model.speed.x+model.speed.y+model.speed.z)/3 >= -0.3)
{
model.speed.x -= model.heading.x * 0.002 * airdrag;
model.speed.y -= model.heading.y * 0.002 * airdrag;
model.speed.z -= model.heading.z * 0.002 * airdrag;
}
}
if(GetKeyState(VK_UP) & 0x80 && GetKeyState(VK_SHIFT) & 0x80 || GetKeyState('W') & 0x80 && GetKeyState(VK_SHIFT) & 0x80) {
g_Model.SetLegsAnimation("LEGS_WALK");
if((model.speed.x+model.speed.y+model.speed.z)/3 >= -0.3)
{
model.speed.x += model.heading.x * 0.00165 * airdrag;
model.speed.y += model.heading.y * 0.00165 * airdrag;
model.speed.z += model.heading.z * 0.00165 * airdrag;
}
}
if(GetKeyState(VK_CONTROL) & 0x80) {
if(GetKeyState('W') & 0x80){
}
else{
g_Model.SetLegsAnimation("LEGS_IDLECR");
}
}
if(GetKeyState(VK_CONTROL) & 0x80 && GetKeyState('W') & 0x80) {
g_Model.SetLegsAnimation("LEGS_WALKCR");
if((model.speed.x+model.speed.y+model.speed.z)/3 <= 0.7)
{
model.speed.x += model.heading.x * 0.002 * airdrag;
model.speed.y += model.heading.y * 0.002 * airdrag;
model.speed.z += model.heading.z * 0.002 * airdrag;
}
}
if(GetKeyState(VK_LEFT) & 0x80 || GetKeyState('A') & 0x80) {
model.direction += 0.04;
}
if(GetKeyState(VK_RIGHT) & 0x80 || GetKeyState('D') & 0x80) {
model.direction -= 0.04;
}
Den
röda texten är var koden verkar förbi låst tills man tryckt på CTRL en gång till.
Någon som har någon aning?
EDIT: Måste städa koden.. den är HEMSK..