5 svar
34 visningar
7la_ 26
Postad: 22 nov 20:16

Programmering-Pong

Hur kan jag:

  • få bollen att studsa på spelarna när de är rätt placerade
  • skriva ett meddelande på skärmen att spelet är slut och vem som missade

Notera att player 1 och 2 kan studsa på bollen men player 3 och 4 kan inte studsa på bollen och jag vet inte hur jag kan få dem att studsa. Bollen spawnar inte i mitten heller i alla sidor, hur kan jag fixa det?

Här är koden:

<script src="https://koda.nu/simple.js">


  var player1 = {x: 10, y: totalHeight/2-40};

  var player2 = {x: totalWidth-20, y: totalHeight/2-40};

  var player3 = {x: totalWidth/2-40, y: 10};

  var player4 = {x: totalWidth/2-40, y: totalHeight-20};

  

  var ball = {x: totalWidth/2-5,

              y: totalHeight/2-5,

              xSpeed: 3,

              ySpeed: 3};


  function update()

  {

    fill("black");

    

    rectangle(player1.x, player1.y, 10, 80, "blue");

    rectangle(player2.x, player2.y, 10, 80, "yellow");

    rectangle(player3.x, player3.y, 80, 10, "purple");

    rectangle(player4.x, player4.y, 80, 10, "pink");

    

    circle(ball.x, ball.y, 10, 10, "pink");

    

    if (ball.y > totalHeight-10)  { ball.ySpeed = - ball.ySpeed; }

    if (ball.y < 0)               { ball.ySpeed = - ball.ySpeed; }

    

    if (ball.x > totalWidth-30 && 

        ball.y > player2.y && 

        ball.y < player2.y+80)

    {

      ball.xSpeed = -ball.xSpeed;

    }

    else if (ball.x > totalWidth-30)

    {

      ball.x = totalWidth/2-5

    }

    

    if (ball.x < 20 &&

        ball.y > player1.y &&

        ball.y < player1.y+80)

    {

      ball.xSpeed = -ball.xSpeed;

    }

    else if (ball.x < 20)

    {

      ball.x = totalWidth/2-5;

    }

    


    

    if (keyboard.w)    { player1.y -= 5; }

    if (keyboard.s)    { player1.y += 5; }

    

    if (keyboard.up)   { player2.y -= 5; }

    if (keyboard.down) { player2.y += 5; }

    

    if (keyboard.c)    { player3.x -= 5; }

    if (keyboard.v)    { player3.x += 5; }

    

    if (keyboard.n)    { player4.x -= 5; }

    if (keyboard.m)    { player4.x += 5; }

  

    ball.x += ball.xSpeed;

    ball.y += ball.ySpeed;

  }

    

</script>

CurtJ Online 694
Postad: 22 nov 21:20

Ett liknande problem är beskrivet här https://www.pluggakuten.se/trad/visa-vinnare-infoga-text/

Det kanske kan hjälpa dig på traven.

7la_ 26
Postad: 22 nov 23:53

Jag har bara två problem och det är hur jag kan: 

  • få bollen att studsa på spelarna när de är rätt placerade
  • skriva ett meddelande på skärmen att spelet är slut och vem som missade

Kan fortfarande inte lösa dem :(

Laguna Online 22263
Postad: 23 nov 05:38

Jag har inte kört koden, bara läst den, men är det inte så att bollen alltid studsar i övre och nedre kanten, vare sig en spelare är där eller inte?

7la_ 26
Postad: 23 nov 23:41
Laguna skrev:

Jag har inte kört koden, bara läst den, men är det inte så att bollen alltid studsar i övre och nedre kanten, vare sig en spelare är där eller inte?

Nej inte riktigt. Bollen spawnar i mitten om player 1 och player 2 (De som står till höger och vänster)missar den, men om dom inte missar den så kommer bollen att studsa på dem. Så är det inte med player 3 och player 4(De som står övre och nedre). Alltså bollen spwanar inte i mitten när den nuddar spelarna eller deras vägg. Jag vet inte vad jag ska skriva mer för att få spelet fungera som den ska. Och hur kan jag skriva ett meddelande på skärmen att spelet är slut och vem som missad förresten?

7la_ 26
Postad: 23 nov 23:50
Laguna skrev:

Jag har inte kört koden, bara läst den, men är det inte så att bollen alltid studsar i övre och nedre kanten, vare sig en spelare är där eller inte?

 Om du vill så kan du gå in i http://koda.nu/labbet och klistra in min kod så förstår du mer om vad jag menar. Du kan röra spelaren 1 som har färget blå med (W och S). Spelare 2 är gul och du kan röra den med pilarna som går upp och ner. Player 3 har färget lila och du kan röra den med (C och V). Och sist spelaren 4 som är råsa och den kan du röra på med (N och M)

Svara Avbryt
Close