-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsketch.js
118 lines (86 loc) · 2.47 KB
/
sketch.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
//have as many images in image folder as the length of matrix, named from the number 1 to n
//run sketch
let dobbleDeckName = "OWTF"; //save files with this name
let n = 7 //order of plane, must be a prime number
let numOfSymbols = n + 1 //number of symbols per card
//saving parameters
let saveSpeed = 60; //the lower the number, the faster it saves files. Vary depending on browser saving limits and rules
let FinishedSaving = false; //the faster the speed, the smaller the images, unless growthFactor is made higher
let saveCount = 0;
//Rate at which card symbols grow. Keep close to 1 to avoid errors.
let growthFactor = 1;
//classes
let matrixGenerator;
let deckCreator;
let packedCard
let grower;
let debugging
//array of number combinations
let matrix;
//array of images
let imageArr = [];
let canvasW = 400;
let canvasH = 400;
function preload() {
matrixGenerator = new MatrixGenerator();
matrix = matrixGenerator.createMatrix()
print(matrix);
for (let i = 0; i < matrix.length; i++) {
imageArr[i] = loadImage(`images/${i + 1}.png`)
}
print(imageArr);
}
function setup() {
deckCreator = new DeckCreator();
debugging = new Debugging();
grower = new Grower();
frameRate(30);
dobbleCanvas = createCanvas(canvasW, canvasH);
background(220);
debugging.circularFrame();
packedCard = deckCreator.createCard();
grower.receiveCard(packedCard);
grower.initialCardGrowth();
}
function draw() {
//IMPORTANT: Save canvas before redrawing background
if (frameCount % saveSpeed == 0 && saveCount < matrix.length) {
deckCreator.saveCard();
packedCard = deckCreator.createCard();
saveCount++
}
background(220);
grower.receiveCard(packedCard);
grower.initialCardGrowth();
debugging.circularFrame();
grower.update();
grower.growthTesting();
drawSymbols(grower.getCardSymbols())
// if (frameCount > 120) {
// noLoop();
// }
}
function drawSymbols(symbols) {
for (let i = 0; i < symbols.length; i++) {
push();
translate(symbols[i].pos.x, symbols[i].pos.y)
rotate(symbols[i].rotation)
noStroke();
rectMode(CENTER);
fill(0)
stroke(0);
fill(255, 255, 255, 150);
fill(0);
noStroke();
imageMode(CENTER);
image(imageArr[symbols[i].symbolNum - 1], 0, 0, symbols[i].w, symbols[i].w);
fill(255, 255, 0);
// text(round(symbols[i].symbolNum), 0, 0);
pop();
}
}
function keyPressed() {
if (key == ' ') {
noLoop();
}
}