xxxxxxxxxx
360
var colorset = [
["234D32","68E296","E6C05E","E59A4F","E26141"],
["DE281D","E04C2A","631E32","583347","73D6B7"],
["FD6138","EDB349","D3DC80","3FB79E","2E3F67"],
["FCF89A","C5DB87","55B0AC","286371","171E32"]
]
let current_colors = colorset[0]
var name;
var money;
var address;
var birthdate;
var phonenumber;
var middleinitial;
var alignments;
var col1;
var col2;
var col3;
var body;
var rarm;
var larm;
var rleg;
var lleg;
var head;
var sign;
var glitter;
let can;
let myFont;
let font_links = [
"GloriaHallelujah.ttf",
"Inconsolata-Regular.ttf",
"Jura-SemiBold.ttf"
]
let holo_frames = [];
let fonts = [];
function preload(){
holo_frames.push(loadImage("/holo/frame_00.gif"))
holo_frames.push(loadImage("/holo/frame_01.gif"))
holo_frames.push(loadImage("/holo/frame_02.gif"))
holo_frames.push(loadImage("/holo/frame_03.gif"))
holo_frames.push(loadImage("/holo/frame_04.gif"))
holo_frames.push(loadImage("/holo/frame_05.gif"))
holo_frames.push(loadImage("/holo/frame_06.gif"))
holo_frames.push(loadImage("/holo/frame_07.gif"))
holo_frames.push(loadImage("/holo/frame_08.gif"))
holo_frames.push(loadImage("/holo/frame_09.gif"))
holo_frames.push(loadImage("/holo/frame_10.gif"))
holo_frames.push(loadImage("/holo/frame_11.gif"))
holo_frames.push(loadImage("/holo/frame_12.gif"))
holo_frames.push(loadImage("/holo/frame_13.gif"))
holo_frames.push(loadImage("/holo/frame_14.gif"))
holo_frames.push(loadImage("/holo/frame_15.gif"))
holo_frames.push(loadImage("/holo/frame_16.gif"))
holo_frames.push(loadImage("/holo/frame_17.gif"))
holo_frames.push(loadImage("/holo/frame_18.gif"))
holo_frames.push(loadImage("/holo/frame_19.gif"))
for(let i = 0; i < font_links.length; i++){
console.log("/font/" + font_links[i])
fonts.push(loadFont("font/" + font_links[i]))
}
myFont = random(fonts);
}
function setup() {
can = createCanvas(360, 270);
can.parent('p5canvas');
col1 = color("#" + current_colors[1]);
//col1 = color(102, 159, 249);
col2 = color("#" + current_colors[4]);
col2 = color(red(col2), green(col2), blue(col2), 238);
//col2 = color(22, 60, 119, 240);
col3 =color("#" + current_colors[3]);
col3 = color(red(col3), green(col3), blue(col3), 230);
//col3 = color(170, 204, 255, 230);
name = "";
money = 0;
address = "";
birthdate = "";
alignments = "";
button = createButton('start');
button.position(0, 0);
button.mousePressed(input_start);
}
function draw() {
background(220);
col1 = color("#" + current_colors[1]);
//col1 = color(102, 159, 249);
col2 = color("#" + current_colors[4]);
col2 = color(red(col2), green(col2), blue(col2), 238);
//col2 = color(22, 60, 119, 240);
col3 =color("#" + current_colors[3]);
col3 = color(red(col3), green(col3), blue(col3), 230);
//col3 = color(170, 204, 255, 230);
push();
translate(0,0);
textFont(myFont);
textSize(20);
fill(col1);
strokeWeight(0);
push();
blendMode(BURN);
rect(0, 0, 360, 270);
image(holo_frames[Math.floor(frameCount/7)%holo_frames.length], 0, 0)
pop();
//name
push();
translate(10,10);
fill(col2);
strokeWeight(2);
stroke(col1);
rect(10,0,320,35,5);
fill(col1);
strokeWeight(0);
textAlign(LEFT);
textFont(myFont);
text("Name:",20,23);
fill(col1);
rect(90,7,220,20, 5);
fill(col2);
textSize(16);
text(name,110,22);
pop();
push();
translate(180,45);
fill(col3);
rect(5,10,150,200, 5);
push();
blendMode(DODGE);
if (body != null) {
image(body,0,10, 150, 200);
}
if (rarm != null) {
image(rarm,0,10, 150, 200);
}
if (larm != null) {
image(larm,0,10, 150, 200);
}
if (rleg != null) {
image(rleg,0,10, 150, 200);
}
if (lleg != null) {
image(lleg,0,10, 150, 200);
}
if (head != null) {
image(head,0,10, 150, 200);
}
pop();
pop();
push();
translate(10,50);
fill(col2);
rect(10,10,150,30, 5);
fill(col1);
textSize(16);
text("Money: $" + money,20,29);
pop();
push();
translate(10,90);
fill(col2);
rect(10,10,150,90, 5);
fill(col1);
textSize(14);
text(address,20,29, 130);
pop();
push();
translate(10,190);
fill(col2);
rect(10,10,150,50, 5);
fill(col1);
textSize(16);
text(birthdate,20,29, 130);
pop();
pop();
}
function inputReceived(result) {
let len = result.length;
let col_idx = map(parseInt(result.substring(0, 3)), 0, 200, 0, colorset.length - 1, true)
console.log("COLIDX", col_idx)
current_colors = colorset[Math.floor(col_idx)]
var bodyNum = result[Math.floor(map(1, 0, 9, 0, len-1, true))];
var bodyString = "body0" + str(bodyNum) + ".png";
var rarmNum = result[Math.floor(map(2, 0, 9, 0, len-1, true))];
var rarmString = "rarm0" + str(rarmNum) + ".png";
var larmNum = result[Math.floor(map(3, 0, 9, 0, len-1, true))];
var larmString = "larm0" + str(larmNum) + ".png";
var rlegNum = result[Math.floor(map(9, 0, 9, 0, len-1))];
var rlegString = "rleg0" + str(rlegNum) + ".png";
var llegNum = result[Math.floor(map(5, 0, 9, 0, len-1))];
var llegString = "lleg0" + str(llegNum) + ".png";
var headNum = result[Math.floor(map(4, 0, 9, 0, len-1))];
var headString = "head0" + str(headNum) + ".png";
body = loadImage(bodyString);
rarm = loadImage(rarmString);
larm = loadImage(larmString);
rleg = loadImage(rlegString);
lleg = loadImage(llegString);
head = loadImage(headString);
}
let input_mode = false
let input_string = ""
let tm = null
let reading = false
let last_input_time = null
function isASCII(str) {
return /^[\x00-\x7F]*$/.test(str);
}
function keyPressed() {
if(!input_mode) return
loop_grab()
if(!isNaN(key)) {
input_string += key
} else {
middleinitial = key;
}
return false; // prevent default
}
function loop_grab(){
if(last_input_time == null){
reading = true
tm = setTimeout(check_if_done, 250)
}
last_input_time = new Date()
}
function addMinutes(date, minutes) {
return new Date(date.getTime() + minutes*60000);
}
function check_if_done(){
let sec_ago = addMinutes(new Date(), (0.25)/(60.0))
if(sec_ago > last_input_time){
clearTimeout(tm)
tm = null
last_input_time = null
reading = false
launch()
}
}
function launch(){
console.log(input_string)
//alert("done.. string is " + input_string)
inputReceived(input_string);
grab_user(input_string);
}
function input_start(){
button.html("reading....")
input_mode = true
input_string = ""
}
function you_are(){
input_string = ""
// alert("you are.... " + userinfo.results[0].name.first + " " + userinfo.results[0].name.last)
var username = userinfo.results[0].login.username;
username = username.replace(/[0-9]/g, '');
username = username.charAt(0).toUpperCase() + username.substring(1);
var lastname = userinfo.results[0].name.last;
lastname = lastname.charAt(0).toUpperCase() + lastname.substring(1);
middleinitial = userinfo.results[0].name.first.charAt(0);
name = username + " " + middleinitial.toUpperCase() + ". " + lastname;
address = userinfo.results[0].location.street + " " + userinfo.results[0].location.city + ", " + userinfo.results[0].location.state + " " +
userinfo.results[0].location.postcode;
var month;
var monthNames = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
]
month = monthNames[parseInt(userinfo.results[0].dob.date.substring(5,7)) - 1];
birthdate = "DOB: " + userinfo.results[0].dob.date.substring(8,10) + " " + month
let idx = userinfo.results[0].dob.age;
let font_idx = Math.floor(map(idx, 20, 50, 0, fonts.length - 1, true))
myFont = fonts[font_idx]
money = userinfo.results[0].dob.age;
}
function grab_user(seed){
console.log(seed)
grab_color()
let url = "https://randomuser.me/api/?nat=gb,us&seed=" + seed
$.ajax({
url: url,
dataType: 'json',
success: function(data) {
userinfo = data
you_are();
}
});
}
function grab_color(){
let url = "http://thecolorapi.com/scheme?hex=0047AB&rgb=0,71,171&hsl=215,100%,34%&cmyk=100,58,0,33&format=html&mode=analogic&count=3"
$.ajax({
url: url,
dataType: 'json',
success: function(data) {
console.log("color success:", data)
}
});
}