我真的很喜欢编程。对于我的课程,我正在制作一个游戏,我想在游戏中添加秒针。目前,游戏中随机出现黑圈并继续增长。你是一个圆圈,你需要尽可能长时间避开圆圈。一旦你与一个相交,游戏结束。该圆圈由箭头键控制。但是我想添加一个带有WASD键的新圆圈。到目前为止这是我的代码。但是当游戏开始时我可以看到圆圈,但我无法移动它。
我担心的代码的主要部分是ProcessUserInput2,因为这是控制WASD的代码。我没有粘贴在我的整个代码中。任何帮助将不胜感激
void draw()
{
//Call functions
if (gameState == 0)//Start Screen
{
ProccessUserInput_Start(); //this function is in a separate tab. It processes what the player inputs into the computer, and then translates it into commands
Render_Start();
savedTime = millis();
}
if (gameState == 1)//Game Playing Screen
{
ProcessUserInput1(); //this is for the arrow keys
ProcessUserInput2(); //this is for WASD
Render();
totalTime = 40000; //Timer (in millis)
for (growingEllipse e:ellipses)
{
e.ellipseGrow();
e.rendering();
}
void ProcessUserInput1()
//Move circle Left, Right, Up or Down using arrow keys
{
if (keyPressed)
{
if (keyCode == LEFT)//Move Left
{
x1 = x1 - 2;
}
if (keyCode == RIGHT)//Move Right
{
x1 = x1 + 2;
}
if (keyCode == UP)//Move Up
{
y1 = y1 - 2;
}
if (keyCode == DOWN)//Move Down
{
y1 = y1 + 2;
}
}
}
void ProcessUserInput2()
//Move circle Left, Right, Up or Down using arrow keys
{
if (keyPressed)
{
if (keyCode == 'A')//Move Left
{
x2 = x2 - 2;
}
if (keyCode == 'D')//Move Right
{
x2 = x2 + 2;
}
if (keyCode == 'W')//Move Up
{
y2 = y2 - 2;
}
if (keyCode == 'S')//Move Down
{
y2 = y2 + 2;
}
}
}
void Render()
{
background(255);
fill(255, 228, 196);
ellipse (x1, y1, r1, r1);
ellipse (x2, y2, r1, r1);
//draw circle for player
}
如果可能,任何真正优秀的程序员都可以给我他们的电子邮件,以便我可以向他们提问吗?我仍然需要添加一些项目,如继承和函数重载。我使用了Processing应用程序。
答案 0 :(得分:0)
您正在使用keyCode变量,该变量仅适用于不具有关联字符的箭头键。
相反,您可能希望使用键变量,它是一个char并包含键入的字符。
此处有更多信息:http://staticvoidgames.com/tutorials/intermediateConcepts/keyboardInput
编辑:另外,正如Jordi所说,你只是捕捉大写字母。请不要索要电子邮件,因为这会破坏这样的公共网站的全部内容。