Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

148
Visualizações
La pelota no regresa después de chocar en p5.js
var x, y, speed, speed2, speedx, speedy; function setup() { createCanvas(1200, 630); x = 50; y = 300; speed = 20; speed2 = 20; speedx = createSlider(2, 50, 20); speedx.position(1000, 100); speedx.style('width', '200px'); speedy = createSlider(10, 50, 20); speedy.position(1000, 150); speedy.style('width', '200px'); } function draw() { background("white"); x = x + speedx.value(); y = y + speedy.value(); if (x > 1170) { x = x - speedx.value(); } if (x < 10) { x = x + speedx.value(); } if (y > 610) { y = y - speedy.value(); } if (y < 15) { x = x + speedx.value(); } let color1 = color("black"); fill(color1); ellipse(x, y, 20); }

** Soy nuevo en p5.js e hice esto (mi primer código) pero no funciona como esperaba

Por favor ayúdame respondiendo este código **

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Actualmente, su código no hará que la pelota "regrese" porque, si bien limita las posiciones x e y, no cambia las velocidades x e y (por lo que una vez que la pelota llega al borde, solo va a pega ahí). También tiene algunos defectos en la lógica de limitación de bordes.

  1. Sus controles deslizantes siempre son positivos, por lo que la pelota solo puede moverse hacia abajo y hacia la derecha.
  2. Cuando compara la posición y con el mínimo, modifica la posición x en lugar de la posición y.
  3. Cuando verifica la posición x contra el valor mínimo, está sumando las velocidades, pero presumiblemente cuando esto sucede, la velocidad sería negativa (es decir, se movería hacia la izquierda), por lo que aún desea restar.

 var x, y, speedx, speedy; function setup() { // make the canvas cover the window createCanvas(windowWidth, windowHeight); x = width / 2; y = height / 2; // create slider ranges such that things don't always go down and to the right speedx = createSlider(-10, 10, 2); speedx.position(10, 10); speedx.style("width", "200px"); speedy = createSlider(-10, 10, 2); speedy.position(10, 50); speedy.style("width", "200px"); } function draw() { background("white"); x = x + speedx.value(); y = y + speedy.value(); if (x > width - 10) { x = x - speedx.value(); } if (x < 10) { // presumably the reason we're going off the screen is that speedx is negative. x = x - speedx.value(); } if (y > height - 10) { y = y - speedy.value(); } if (y < 10) { y = y - speedy.value(); } let color1 = color("black"); fill(color1); ellipse(x, y, 20); }
 html, body {margin:0}
 <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script>

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede hacer algo como esto (visite codecademy para obtener más detalles: https://www.codecademy.com/courses/learn-p5js/lessons/p5js-animation )

 speedx *= -1

Puedes hacer lo mismo con speedy

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda