xxxxxxxxxx
385
let numOfStars = 0;
let leaves = [];
let treeImage;
let wordBackground;
let mouzaImage1,mouzaImage2,mouzaImage3;
let mamaImage1,mamaImage2;
let babaImage1,babaImage2;
let harebImage1,harebImage2,harebImage3;
let shamsaImage1,shamsaImage2,shamsaImage3;
let sheikhaImage1,sheikhaImage2;
let ayshaImage1,ayshaImage2;
let ahmedImage1,ahmedImage2,ahmedImage3;
let daughterImage1,daughterImage2;
let sonImage1,sonImage2;
let sisterImage1,sisterImage2;
let brotherImage1,brotherImage2;
let currentImages = [];
let mouza = [];
let mama = [];
let baba = [];
let hareb = [];
let shamsa = [];
let sheikha = [];
let aysha = [];
let ahmed = [];
let daughter = [];
let son = [];
let sister = [];
let brother = [];
let xBackgroundImages,yBackgroundImagesm;
let jupiterImage;
let phrasesToDisplay = [];
let clickCount = 0;
let maxClicks = 15;
let theEnd = false;
let videos = [];
let numVideos = 5;
let videoFiles = ['video1.mp4', 'video2.mp4', 'video3.mp4', 'video4.mp4', 'video5.mp4'];
let arabicWords = ['اختي', 'موزه', 'عائشه', 'بنتي', 'شمسه', 'شيخه', 'احمد', 'ماما', 'اخوي', 'بابا', 'ولدي', 'حارب'];
let englishWords = ['sister','mouza','aysha','daughter','shamsa','sheikha','ahmed','mama','brother','baba','son','hareb'];
let phrase = ["انطبي", "جب", "كلي خراج وزقج", "حياتي", "قلبي", "روحي", "عيوني", "موح", "ان شاء الله", "صج", "تمام", "هلا", "كل زق", "كلي زق", "استغفر الله", "لا والله", "حماره", "فقحه", "هبله", "مينونه"];
function preload(){
treeImage = loadImage('tree.png');
wordBackground = loadImage('leaves.png');
mouzaImage1 = loadImage('mouza1.png');
mouzaImage2 = loadImage('mouza2.png');
mouzaImage3 = loadImage('mouza3.png');
harebImage1 = loadImage('hareb1.png');
harebImage2 = loadImage('hareb2.png');
harebImage3 = loadImage('hareb3.png');
mamaImage1 = loadImage('mama1.png');
mamaImage2 = loadImage('mama2.png');
babaImage1 = loadImage('baba1.png');
babaImage2 = loadImage('baba2.png');
shamsaImage1 = loadImage('shamsa1.png');
shamsaImage2 = loadImage('shamsa2.png');
shamsaImage3 = loadImage('shamsa3.png');
sheikhaImage1 = loadImage('sheikha1.png');
sheikhaImage2 = loadImage('sheikha2.png');
ayshaImage1 = loadImage('aysha1.png');
ayshaImage2 = loadImage('aysha2.png');
ahmedImage1 = loadImage('ahmed1.png');
ahmedImage2 = loadImage('ahmed2.png');
ahmedImage3 = loadImage('ahmed3.png');
daughterImage1 = loadImage('daughter1.png');
daughterImage2 = loadImage('daughter2.png');
sonImage1 = loadImage('son1.png');
sonImage2 = loadImage('son2.png');
sisterImage1 = loadImage('sister1.png');
sisterImage2 = loadImage('sister2.png');
brotherImage1 = loadImage('brother1.png');
brotherImage2 = loadImage('brother2.png');
jupiterImage = loadImage('jupiter.png');
for (let i = 0; i < numVideos; i++) {
let video = createVideo(videoFiles[i]);
video.hide();
videos.push(video);
}
}
function setup() {
createCanvas(800, 700);
frameRate(7);
imageMode(CENTER);
populateImageArrays();
setVideoProperties();
}
function draw() {
if (!theEnd){
background('rgb(7,23,46)');
drawStars();
drawBackgroundImages();
drawTree();
writeArabicText();
writeEnglishText();
bottomText();
}
else{
fill(0,0,0,150);
rect(0,0,width,height);
playVideos();
}
}
function stopVideo() {
myVideo.stop();
}
function populateImageArrays(){
mouza = [mouzaImage1, mouzaImage2, mouzaImage3];
mama = [mamaImage1, mamaImage2];
baba = [babaImage1, babaImage2];
hareb = [harebImage1, harebImage2, harebImage3];
shamsa = [shamsaImage1, shamsaImage2, shamsaImage3];
sheikha = [sheikhaImage1, sheikhaImage2];
aysha = [ayshaImage1, ayshaImage2];
ahmed = [ahmedImage1, ahmedImage2, ahmedImage3];
daughter = [daughterImage1, daughterImage2];
son = [sonImage1, sonImage2];
sister = [sisterImage1, sisterImage2];
brother = [brotherImage1, brotherImage2];
}
function setVideoProperties(){
for (let i = 0; i < videos.length; i++) {
let x = random(0, width - 200);
let y = random(0, height - 200);
let w = random(150, 250);
let h = random(150, 250);
videos[i].position(x, y);
videos[i].size(w, h);
videos[i].hide();
}
}
function playVideos(){
for (let video of videos) {
video.show();
video.play();
setTimeout(stopVideo, 30000);
}
}
function drawBackgroundImages(){
tint(255, 230);
image(jupiterImage,150,550,jupiterImage.width*0.55,jupiterImage.height*0.55);
noTint();
for (let img of currentImages){
produceCoordinatesForBackgroundImages();
image(img.imageToAdd,img.xCoordinate,img.yCoordinate,img.width, img.height);
}
for (let phrase of phrasesToDisplay) {
text(phrase.phrase, phrase.xCoordinate, phrase.yCoordinate);
}
}
class PhraseData{
constructor(phrase, x, y){
this.phrase = phrase;
this.xCoordinate = x;
this.yCoordinate = y;
}
}
function produceCoordinatesForBackgroundImages(){
let treeCenterX = width / 2;
let treeCenterY = height / 2;
let treeRadius = 150;
let foundCoordinates = false;
while(!foundCoordinates){
xBackgroundImages = random(width);
yBackgroundImages = random(height);
let d = dist(xBackgroundImages, yBackgroundImages, treeCenterX, treeCenterY);
if (d > treeRadius && d < treeRadius + 150) {
foundCoordinates = true;
}
}
}
function drawTree(){
tint('#BDD0A7');
image(treeImage,width/2,height/2-45, 500,500);
noTint();
}
function drawStars(){
fill('#FFFFFF');
let backgroundStarsDisplay = new Stars(numOfStars);
backgroundStarsDisplay.createStars();
backgroundStarsDisplay.display();
numOfStars++;
if (numOfStars<=10000){
numOfStars++;
}
if (numOfStars>=0){
numOfStars++;
}
}
class IndividualStar{
constructor(x,y,size){
this.xCoordinate = x;
this.yCoordinate = y;
this.size = size;
}
}
class Stars{
constructor (numOfStars){
this.amount = numOfStars;
this.stars = [];
}
createStars(){
for (let i = 0; i < this.amount; i++) {
let x = random(width);
let y = random(height);
let size = random(1, 4);
this.stars.push(new IndividualStar(x,y,size));
}
}
display(){
for(let star of this.stars){
ellipse(star.xCoordinate,star.yCoordinate,star.size);
}
}
}
class WordLeafAssociatedTogether{
constructor(x,y,size,word){
this.xPosition = x;
this.yPosition = y;
this.size = size;
this.word = word;
}
}
class ImageData{
constructor(img, x, y,phrase){
this.imageToAdd = img;
this.xCoordinate = x;
this.yCoordinate = y;
let scale = 0.5;
this.width = img.width*scale;
this.height = img.height*scale;
this.phrase = phrase;
}
}
function writeArabicText(){
let centerX = width / 2;
let centerY = height / 2.4;
let radius = 185;
let verticalScale = 0.87;
let horizontalScale = 0.87;
textFont('Nada');
textSize(15);
fill('#E8DE89');
textAlign(CENTER, CENTER);
let angleStep = TWO_PI / arabicWords.length;
for (let i = 0; i < arabicWords.length; i++) {
let angle = i * angleStep;
let x = centerX + radius * cos(angle)*horizontalScale;
let y = centerY + radius * sin(angle)* verticalScale-45;
imageSize = 50;
drawWordBackground(x,y,imageSize);
let newLeaf = new WordLeafAssociatedTogether(x,y,imageSize,arabicWords[i]);
leaves.push(newLeaf);
text(arabicWords[i], x, y);
}
}
function writeEnglishText(){
let centerX = width / 2;
let centerY = height / 2.4;
let radius = 215;
let verticalScale = 0.87;
textFont('Plastik');
textSize(15);
fill('#E8DE89');
textAlign(CENTER, CENTER);
let angleStep = TWO_PI / englishWords.length;
for (let i = 0; i < englishWords.length; i++) {
let angle = i * angleStep;
let x = centerX + radius * cos(angle);
let y = centerY + radius * sin(angle)* verticalScale-40;
text(englishWords[i], x, y);
}
}
function bottomText(){
let x = width - 20;
let y = height - 20;
fill('#E8DE89');
textFont('Nada');
textSize(30);
textAlign(RIGHT, BOTTOM);
text('احبك',x-100,y-30);
text('احبج',x-30,y-70);
text('و انا اموت فيك',x-490,y-15);
text('و انا اموت فيج',x-300,y-50);
}
function drawWordBackground(x,y,imageSize){
tint('#5F9126')
image(wordBackground, x, y, imageSize, imageSize);
noTint();
}
function detectClick(){
for (let leaf of leaves){
let d = dist(mouseX, mouseY, leaf.xPosition, leaf.yPosition);
if (d < leaf.size/2){
clickCount++;
let randomNumber;
let imageToAdd;
produceCoordinatesForBackgroundImages();
let randomPhrase = random(phrase);
let chosenPhrase = new PhraseData(randomPhrase,xBackgroundImages,yBackgroundImages);
phrasesToDisplay.push(chosenPhrase);
if(leaf.word == 'اختي'){
randomNumber = floor(random(0, 2));
imageToAdd = sister[randomNumber];
}
else if(leaf.word == 'موزه'){
randomNumber = floor(random(0, 3));
imageToAdd = mouza[randomNumber];
}
else if(leaf.word == 'عائشه'){
randomNumber = floor(random(0, 2));
imageToAdd = aysha[randomNumber];
}
else if(leaf.word == 'بنتي'){
randomNumber = floor(random(0, 2));
imageToAdd = daughter[randomNumber];
}
else if(leaf.word == 'شمسه'){
randomNumber = floor(random(0, 3));
imageToAdd = shamsa[randomNumber];
}
else if(leaf.word == 'شيخه'){
randomNumber = floor(random(0, 2));
imageToAdd = sheikha[randomNumber];
}
else if(leaf.word == 'احمد'){
randomNumber = floor(random(0, 3));
imageToAdd = ahmed[randomNumber];
}
else if(leaf.word == 'ماما'){
randomNumber = floor(random(0, 2));
imageToAdd = mama[randomNumber];
}
else if(leaf.word == 'اخوي'){
randomNumber = floor(random(0, 2));
imageToAdd = brother[randomNumber];
}
else if(leaf.word == 'بابا'){
randomNumber = floor(random(0, 2));
imageToAdd = baba[randomNumber];
}
else if(leaf.word == 'ولدي'){
randomNumber = floor(random(0, 2));
imageToAdd = son[randomNumber];
}
else if(leaf.word == 'حارب'){
randomNumber = floor(random(0, 3));
imageToAdd = hareb[randomNumber];
}
if (imageToAdd) {
produceCoordinatesForBackgroundImages();
let chosenImage = new ImageData(imageToAdd, xBackgroundImages, yBackgroundImages);
currentImages.push(chosenImage);
}
break;
}
}
}
function mousePressed(){
detectClick();
if (clickCount >= maxClicks) {
theEnd = true;
}
}