Guia de Programació Creativa amb p5.js: Exemples Pràctics
Enviado por Chuletator online y clasificado en Inglés
Escrito el en
catalán con un tamaño de 2,39 KB
1. Pinzell interactiu: Canvi de color i mida
Aquest codi permet crear un pinzell que canvia les seves propietats segons les tecles premudes.
let mida = 20; // Variable per a la grossària
let color = "black"; // Variable per al color
function setup() {
createCanvas(400, 400);
background(255);
}
function draw() {
if (mouseIsPressed) {
noStroke();
fill(color);
circle(mouseX, mouseY, mida);
}
}
function keyPressed() {
if (key == 'r') color = "red";
if (key == 'v') color = "green";
if (keyCode == UP_ARROW) mida += 5;
if (keyCode == DOWN_ARROW) mida -= 5;
if (key == ' ') background(255);
}2. Bucle de rectangles amb ones de color
Utilitzem el mode HSB per generar una animació d'ones suaus.
let angle = 0;
function setup() {
createCanvas(400, 400);
colorMode(HSB, 360, 100, 100);
rectMode(CENTER);
}
function draw() {
background(0, 0, 95);
for (let x = 0; x <= width; x += 20) {
let variacio = sin(angle + x * 0.05) * 50;
let y = height / 2 + variacio;
let colorActual = (x + angle * 10) % 360;
fill(colorActual, 80, 90);
noStroke();
rect(x, y, 15, 60);
}
angle += 0.05;
}3. Joc d'estats aleatoris amb imatges i comptador
Exemple de gestió d'estats (inici, joc, final) amb imatges i text.
let fotos = [];
let index = 0;
let estat = 0;
let temps = 10;
let frases = ["¡Eres un crack!", "¡Sigue así!", "¡Casi lo tienes!"];
function preload() {
for (let i = 0; i < 3; i++) {
fotos[i] = loadImage("foto" + i + ".jpg");
}
}
function setup() {
createCanvas(400, 400);
textAlign(CENTER);
}
function draw() {
background(200);
if (estat == 0) {
text("Clica per començar", 200, 200);
} else if (estat == 1) {
image(fotos[index], 50, 50, 300, 200);
text(frases[index], 200, 300);
if (frameCount % 60 == 0 && temps > 0) temps--;
text("Temps: " + temps, 200, 350);
if (temps <= 0) estat = 2;
} else if (estat == 2) {
text("¡GAME OVER!", 200, 200);
text("Prem R per reiniciar", 200, 250);
}
}4. Codi de joc de cartes (Sergi)
Implementació d'un sistema de cartes amb descripcions i lògica d'atzar.
// Lògica de cartes i estats del joc
let nom = ["Llança de Silici", "Consell de delegats", ...];
// ... (resta del codi de Sergi)