-
Notifications
You must be signed in to change notification settings - Fork 1
/
importImage.js
118 lines (95 loc) · 2.05 KB
/
importImage.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
//////////////////////////////////////////////////////////////////////
// importImage //
//////////////////////////////////////////////////////////////////////
function importImage(){
this.name = 'import image';
let panel, img, x, y, scale, xOffset, yOffset, mouseLocked;
this.setup = function(){
panel = createDiv()
.parent(toolPanelsContainer)
.hide();
createFileInput(loadImage)
.parent(panel);
createElement('hr')
.parent(panel);
createButton('increase size')
.mousePressed(scaleUp)
.parent(panel);
createButton('decrease size')
.mousePressed(scaleDown)
.parent(panel);
createButton('reset size')
.mousePressed(resetScale)
.parent(panel);
createElement('hr')
.parent(panel);
createButton('ok')
.mousePressed(next)
.parent(panel);
}
this.enter = function(){
cursor('default')
img = undefined;
x = width/2;
y = height/2;
scale = 1;
panel.show();
};
this.draw = function(){
background(0);
if(img){
if(mouseLocked){
cursor('grabbing');
}
else {
cursor('grab')
}
imageMode(CENTER)
image(img, x, y, img.width * scale, img.height * scale);
}
};
this.gotImage = function(){
loadImage(dropedFile);
};
this.mousePressed = function(){
mouseLocked = true;
xOffset = mouseX - x;
yOffset = mouseY - y;
}
this.mouseDragged = function(){
if(mouseLocked && img){
x = mouseX - xOffset;
y = mouseY - yOffset;
}
}
this.mouseReleased = function(){
mouseLocked = false;
}
this.exit = function (){
panel.hide();
if(img){
img.remove();
}
};
function resetScale(){
x = width/2;
y = height/2;
scale = max(width/img.width, height/img.height);
};
function scaleUp(){
scale *= 1.2;
};
function scaleDown(){
scale *= 0.8;
};
function next(){
game.scenes[sceneIndex].imageData = cnv.elt.toDataURL('image/png')
mgr.showScene(editScene);
};
function loadImage(file){
if(img){
img.remove();
}
img = createImg(file.data, 'droped image', '', resetScale).hide();
};
}