xxxxxxxxxx
138
/// Welcome to the 🎓 CUM ACADEMY 🎓
// I'm your professor, the 🧙🏻♂️ CUM SORCERER 🧙🏻♂️
// Follow these instructions below and soon you will be
// a 🍎🍏 CUM SORCERER'S APPRENTICE 🍎🍏
// You can press the ▶️ PLAY button ▶️ in the top left corner to start the code. And you can press the ⏹️ stop button ⏹️ to stop the code.
// Today's Lesson:
// We will building a 🌈🌪️ RAINBOW CUM VORTEX 🌪️🌈
// PRE-REQS
// the various p5.js functions:
// preload()
// setup()
// draw()
// 👨🏻🏫 TODAY'S SKILLS 🔠 🔢
// (1) how to position and aim a wheel of penises 🍆
// (2) how to use a timer to make dicks cum 🔊
// (3) how to use the keyboard for input ⌨️
const CW = 1080;
const CH = 1080;
let RainbowCocks = {
imgpath: 'assets/img',
images: [],
}
//-- ⭐ ⭐ ⭐ IMAGES ⭐ ⭐ ⭐ ⭐ ⭐ ⭐
function preload() {
RainbowCocks.images = [
'00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11'
].map(n => loadImage(`${RainbowCocks.imgpath}/cock-hue-${n}_12.png`));
}
const TWELVE = [0,1,2,3,4,5,6,7,8,9,10,11];
const TWENTYFOUR = [TWELVE,TWELVE.map(t => t+12)];
let INNER_DICKS = [];
const WHEEL_CENTER = {
x: 1/2 * CW,
y: 1/2 * CH,
}
const WHEEL_HUB = 400;
function setup() {
createCanvas(CW, CH);
// 🍆 🍆 DICK 🍆 🍆
INNER_DICKS = TWENTYFOUR.map(i => {
const d = new Dick(
RainbowCocks.images[i%12],
WHEEL_CENTER.x + WHEEL_HUB * sin(i * TWO_PI/24),
WHEEL_CENTER.y - WHEEL_HUB * cos(i * TWO_PI/24),
i * TWO_PI/24 - PI
);
d.setHeight(CW/8);
d.setGirth(25);
d.setInitialDisplacement(30);
// 🐎 🐎 VELOCITY 🐎 🐎
d.setVelocityFunction(angle => {
const anglet = angle;
const vx = random(-1, 1);
const vy = random(-6, -4);
return createVector(
vx * cos(anglet) - vy * sin(anglet),
vx * sin(anglet) + vy * cos(anglet)
)
});
d.setAcceleration(createVector(0, 0));
return d;
});
}
function draw() {
background(0);
// 🍆 🍆 DICK 🍆 🍆
for (d of INNER_DICKS) d.update();
}
let timeouts = [];
// ⏳ ⏳ TIMER ⏳ ⏳
function startThing() {
const BEAT_TIME = 100;
const NUM_CUM = 15;
const CUM_DELAY = 6;
for (let i = 0; i < INNER_DICKS.length * 10; i++ ) {
// ⏳ ⏳ TIMER ⏳ ⏳
let timeout = setTimeout(() => {
const i1 = i % INNER_DICKS.length
const i2 = (i + INNER_DICKS.length/2) % INNER_DICKS.length;
// ⚪ ⚪ PARTICLE ⚪ ⚪
INNER_DICKS[i1].cum(NUM_CUM, CUM_DELAY);
INNER_DICKS[i2].cum(NUM_CUM, CUM_DELAY);
}, i * BEAT_TIME);
timeouts.push(timeout);
}
}
// ⏳ ⏳ TIMER ⏳ ⏳
function stopThing() {
for (timeout of timeouts) {
clearTimeout(t);
}
}
// 🕶️ 🕶️ KEYBOARD 🕶️ 🕶️
function keyPressed() {
if (keyCode === KEY_SPACE) {
startThing();
} else if (keyCode === KEY_SPACE) {
stopThing();
}
}