Estou tentando utilizar o erro da raquete do oponente mostrado no curso, mas acontece um bug de pontos pos a bola sempre fica presa na raquete do oponente. Tentei resolver com código de outras pessoas, mas não consegui. por favor poderia olhar e ver onde esta o meu erro desde ja agradeso a ajuda.
1. //variaveis da bolinha
2. let xBolinha = 300;
3. let yBolinha = 200;
4. let diamentroB = 13;
5. let Raio = diamentroB / 2;
6.
7. //velocidade da bolinha
8. let Velocidadexb = 6;
9. let velocidadeyb = 6;
10.
11. //variaveis raquete obs c e comprimento e l largura
12. let xraquete = 5;
13. let yraquete = 150;
14. let craquete = 10;
15. let lraquete = 90;
16.
17. let colidiu = false;
18.
19. //placar
20. let meuspontos = 0;
21. let pontosoponente = 0;
22.
23. //variaveis oponente
24. let xRoponente = 585;
25. let yRoponente = 150;
26. let velocidadeYoponente;
27. let chancedeerro = 0;
28.
29. //sons do jogo
30. let raquetada;
31. let ponto;
32. let trilha;
33.
34. function preload (){
35. trilha = loadSound ("trilha.mp3");
36. ponto = loadSound ("ponto.mp3");
37. raquetada = loadSound ("raquetada.mp3")
38. }
39.
40. function setup() {
41. createCanvas(600, 400);
42. trilha.loop();
43. }
44.
45. function draw() {
46. background(0);
47. mostrabolinha ();
48. moverbolinha ();
49. colisaobordas ();
50. mostraraquete (xraquete,yraquete);
51. movimentaMinhaRaquete();
52. colisaoMinhaRaqueteBiblioteca(xraquete,yraquete);
53. colisaoMinhaRaqueteBiblioteca(xRoponente,yRoponente);
54. mostraraquete ( xRoponente,yRoponente);
55. movimentaoponente();
56. incluirplacar ();
57. marcarpontos ();
58. bolinhaNaoFicaPresa();
59. }
60.
61. function mostrabolinha (){
62. circle(xBolinha,yBolinha,diamentroB);
63. }
64.
65. function moverbolinha (){
66. xBolinha += Velocidadexb;
67. yBolinha += velocidadeyb;
68. }
69.
70. function colisaobordas (){
71. if (xBolinha + Raio > width||
72. xBolinha - Raio < 0){
73. Velocidadexb *= -1
74. }
75. if (yBolinha + Raio > height ||
76. yBolinha -Raio < 0){
77. velocidadeyb *= -1;
78. }
79. }
80.
81. function mostraraquete ( x,y){
82. rect(x, y,craquete,lraquete)
83. }
84.
85. function movimentaMinhaRaquete(){
86. if (keyIsDown(87)){
87. yraquete -= 10;
88. }
89. if (keyIsDown(83)){
90. yraquete += 10;
91. }
92. }
93. function colisaoMinhaRaqueteBiblioteca(x,y){
94. colidiu = collideRectCircle(x,y,craquete,lraquete,xBolinha,yBolinha,Raio);
95. if (colidiu) {
96. Velocidadexb *= -1;
97. raquetada.play();
98. }
99. }
100. function movimentaoponente(){
101. velocidadeYoponente = yBolinha - yRoponente - craquete / 2 - 30;
102. yRoponente += velocidadeYoponente + chancedeerro
103. calculaChanceDeErrar()
104. }
105.
106. function calculaChanceDeErrar(){
107. if (pontosoponente >= meuspontos){
108. chancedeerro +=1;
109. }
110. if (chancedeerro >= 39){
111. chancedeerro = 40;
112. }else{
113. chancedeerro -= 1;
114. if (chancedeerro <= 35){
115. chancedeerro = 35;
116. }
117. }
118. }
119.
120.
121. function bolinhaNaoFicaPresa(){
122. if (xBolinha - Raio < 0){
123. xBolinha = 23
124. }
125. }
126.
127.
128. function incluirplacar (){
129. stroke (255)
130. textAlign(CENTER);
131. textSize(17);
132. fill (color(64,224,208));
133. rect (150,10,40,20);
134. fill (255);
135. text (meuspontos,170,26);
136. fill (color(64,224,208));
137. rect (450,10,40,20);
138. fill(255);
139. text (pontosoponente,470,26);
140. }
141.
142. function marcarpontos (){
143. if (xBolinha > 590){
144. meuspontos += 1;
145. ponto.play();
146. }
147. if (xBolinha < 10){
148. pontosoponente += 1;
149. ponto.play();
150. }
151. }