xxxxxxxxxx
let posX = 0;
let posY = 0;
let velX = 0.5;
let velY = 0.5;
let dirX = 1;
let dirY = 1;
let rad = 20; // Ana dairenin yarıçapı
let colorChange = 0; // Renk değişimi için
let particles = []; // Hareketli arka plan parçacıkları
function setup() {
createCanvas(windowWidth, windowHeight);
noStroke();
// İlk hızları ayarla
velX = random(2, 5);
velY = random(2, 5);
// Başlangıç konumu
posX = width / 2;
posY = height / 2;
// Parçacık oluştur
for (let i = 0; i < 50; i++) {
particles.push({
x: random(width),
y: random(height),
size: random(5, 15),
speedX: random(-1, 1),
speedY: random(-1, 1),
color: [random(100, 255), random(100, 255), random(100, 255), 100],
});
}
}
function draw() {
// Hafif şeffaf arka plan
background(20, 20, 40, 40);
// Arka plan parçacıkları
for (let p of particles) {
fill(p.color);
circle(p.x, p.y, p.size);
p.x += p.speedX;
p.y += p.speedY;
// Kenardan çıkarsa tersine dön
if (p.x < 0 || p.x > width) p.speedX *= -1;
if (p.y < 0 || p.y > height) p.speedY *= -1;
}
// Kenarlara çarpma ve yön değiştirme
if (posX < 0 || posX > width) {
dirX *= -1;
velX = random(2, 5);
posX = constrain(posX, 0, width);
}
if (posY < 0 || posY > height) {
dirY *= -1;
velY = random(2, 5);
posY = constrain(posY, 0, height);
}
// Konumu güncelle
posX += velX * dirX;
posY += velY * dirY;
// Renk geçişi
colorChange += 1;
if (colorChange > 255) {
colorChange = 0;
}
// Parlama efekti
push();
translate(posX, posY);
fill(colorChange, 150, 255 - colorChange, 100);
circle(0, 0, rad * 4); // Daha büyük, şeffaf daire
pop();
// Ana daire
push();
translate(posX, posY);
fill(colorChange, 150, 255 - colorChange);
circle(0, 0, rad * 2);
pop();
// Dinamik boyut değişimi
rad = map(sin(frameCount * 0.05), -1, 1, 15, 30);
}
// Fare tıklanınca hız ve boyut değişir
function mousePressed() {
velX = random(5, 10);
velY = random(5, 10);
rad = random(30, 50);
}