使用密钥WASD添加新玩家

时间:2014-12-03 10:41:37

标签: java class processing move intersect

我真的很喜欢编程。对于我的课程,我正在制作一个游戏,我想在游戏中添加秒针。目前,游戏中随机出现黑圈并继续增长。你是一个圆圈,你需要尽可能长时间避开圆圈。一旦你与一个相交,游戏结束。该圆圈由箭头键控制。但是我想添加一个带有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应用程序。

1 个答案:

答案 0 :(得分:0)

您正在使用keyCode变量,该变量仅适用于不具有关联字符的箭头键。

相反,您可能希望使用键变量,它是一个char并包含键入的字符。

此处有更多信息:http://staticvoidgames.com/tutorials/intermediateConcepts/keyboardInput

编辑:另外,正如Jordi所说,你只是捕捉大写字母。请不要索要电子邮件,因为这会破坏这样的公共网站的全部内容。