Advertisement
Guest User

Untitled

a guest
Apr 30th, 2017
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. #include <SPI.h>
  2. #include <Wire.h>
  3. #include <Adafruit_GFX.h>
  4. #include <Adafruit_SSD1306.h>
  5. #define OLED_RESET 4
  6. Adafruit_SSD1306 display(OLED_RESET);
  7.  
  8. int pot1 = A0;
  9. int varB1;
  10. int var1;
  11.  
  12. int pot2 = A1;
  13. int varB2;
  14. int var2;
  15.  
  16. int ballX = 128 / 2;
  17. int ballY = 32 / 2;
  18. int ballSpeedX = 2;
  19. int ballSpeedY = 1;
  20.  
  21. int score1;
  22. int score2;
  23.  
  24. int wins1;
  25. int wins2;
  26.  
  27. void setup() {
  28. display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  29. display.clearDisplay();
  30. display.display();
  31. pinMode(pot1, INPUT);
  32. pinMode(pot2, INPUT);
  33. Serial.begin(9600);
  34. }
  35.  
  36. void drawField() {
  37. display.drawRect(0, 0, 128, 32, WHITE);
  38. display.drawFastVLine(64, 0, 2, WHITE);
  39. display.drawFastVLine(64, 7, 4, WHITE);
  40. display.drawFastVLine(64, 15, 4, WHITE);
  41. display.drawFastVLine(64, 23, 4, WHITE);
  42. display.drawFastVLine(64, 30, 2, WHITE);
  43. }
  44. void drawBall() {
  45. display.fillRect(ballX, ballY, 2, 2, 1);
  46. ballX += ballSpeedX;
  47. ballY += ballSpeedY;
  48. }
  49.  
  50. void winCount() {
  51. if (score1 == 25) {
  52. wins1++;
  53. score1 = 0;
  54. score2 = 0;
  55. }
  56. if (score2 == 25) {
  57. wins2++;
  58. score1 = 0;
  59. score2 = 0;
  60. }
  61. }
  62.  
  63. void drawScore() {
  64. display.setTextColor(WHITE);
  65. display.setTextSize(1);
  66. display.setCursor(46, 24);
  67. display.print(score1);
  68. display.setCursor(70, 24);
  69. display.print(score2);
  70. display.setCursor(46, 1);
  71. display.print(wins1);
  72. display.setCursor(70, 1);
  73. display.print(wins2);
  74. }
  75.  
  76. void collisionControl() {
  77. if (ballY >= 31 || ballY <= 1) {
  78. ballSpeedY *= -1;
  79. }
  80. if (ballX >= 127) {
  81. ballSpeedX *= -1;
  82. score1 ++;
  83. }
  84. if (ballX <= 1) {
  85. ballSpeedX *= -1;
  86. score2 ++;
  87. }
  88. }
  89.  
  90. void playerCollision() {
  91. if (ballX >= 0 && ballX <= 2 && ballSpeedX < 0) {
  92. if (ballY > var1 && ballY < var1 + 10) {
  93. ballSpeedX *= -1;
  94. }
  95. }
  96. if (ballX >= 124 && ballX <= 126 && ballSpeedX > 0) {
  97. if (ballY > var2 && ballY < var2 + 10) {
  98. ballSpeedX *= -1;
  99. }
  100. }
  101. }
  102.  
  103.  
  104. void loop() {
  105. varB1 = analogRead(pot1);
  106. var1 = map(varB1, 0, 1023, 1, 21);
  107. varB2 = analogRead(pot2);
  108. var2 = map(varB2, 0, 1023, 1, 21);
  109. display.clearDisplay();
  110. display.drawFastVLine(2, var1, 10, WHITE);
  111. display.drawFastVLine(125, var2, 10, WHITE);
  112. drawField();
  113. drawBall();
  114. drawScore();
  115. winCount();
  116. playerCollision();
  117. collisionControl();
  118. display.display();
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement