Advertisement
Nojus_Globys

pong

May 9th, 2023 (edited)
754
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.17 KB | Software | 0 0
  1. float
  2.     // ball
  3.     ballX = 0, // pradedu nuo viršutinio kairiojo kampo
  4.     ballY = 0,
  5.     wayX = 1, // ballX direction (1 or -1)
  6.     wayY = 1, // ballY direction (1 or -1)
  7.     ballStep, // ball speed
  8.     ballSize,
  9.  
  10.     // paddle
  11.     paddleX,
  12.     paddleY,
  13.     paddleW, // paddle width
  14.     paddleH, // paddle height
  15.     paddleStep; // paddle speed
  16.  
  17. int
  18.     points = 0,
  19.     timer = 0; // kad kamuolys "neužstrigtų" prie paddle
  20.  
  21. void setup () {
  22.     size (1280, 750);
  23.     rectMode (CENTER);
  24.  
  25.     ballSize = height * 0.1;
  26.     ballStep = width * 0.01;
  27.      
  28.     paddleX = width * 0.5;
  29.     paddleY = height * 0.95;
  30.     paddleW = width * 0.125;
  31.     paddleH = height * 0.03;
  32.     paddleStep = width * 0.01;
  33.  
  34.     textSize(50);
  35. }
  36.  
  37. void ball () {
  38.     ++timer;
  39.     ballX += ballStep * wayX;
  40.     ballY += ballStep * wayY;
  41.  
  42.     if ((ballX < 0) || (ballX > width)) // tikrinu šonus
  43.         wayX *= -1;
  44.  
  45.     if ((ballY < 0))
  46.         wayY = 1;
  47.  
  48.     if ((ballY + ballSize / 2 > paddleY - paddleH / 2) // apačia, atsimušti tik tada, jei liečia paddle
  49.         && (ballX > paddleX - paddleW/2 && ballX < paddleX + paddleW/2)
  50.         && timer > frameRate / 2
  51.     ) {
  52.         wayY = -1;
  53.         ++points;
  54.         timer = 0;
  55.     }
  56.  
  57.     if (ballY > height)
  58.         stop ();
  59.  
  60.     fill (255);
  61.     circle (ballX, ballY, ballSize);
  62. }
  63.  
  64. void paddle () {
  65.     if (keyPressed) {
  66.         if (keyCode == RIGHT)
  67.             paddleX += paddleStep;
  68.         if (keyCode == LEFT)
  69.             paddleX -= paddleStep;
  70.     }
  71.  
  72.     fill (255, 0, 0);
  73.     rect (paddleX, paddleY, paddleW, paddleH);
  74. }
  75.  
  76. void keyReleased () {
  77.     // gali būti situacija, kad laikydamas '<-' spusteliu '->'
  78.     // ir tik po kurio laiko atleidžiu '<-' (kurį tai laiką paspausti abu klavišai)
  79.     // atleidus klavišą key/keyCode įgauna atleisto klavišo reikšmę
  80.     // ir tuomet paddle (jei vis dar spaudžiu į '->') juda ne taip, kaip turėtų judėti
  81.     // šitas kodas, rodos, tą problemą išsprendžia
  82.     if (keyCode == LEFT)
  83.         keyCode = RIGHT;
  84.     else if (keyCode == RIGHT)
  85.         keyCode = LEFT;
  86. }
  87.  
  88. void draw () {
  89.     background (0);
  90.     ball ();
  91.     paddle ();
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement