Skip to content

Commit 0444dc0

Browse files
committed
Refactor sprite functions
1 parent 191f8fe commit 0444dc0

File tree

1 file changed

+17
-29
lines changed

1 file changed

+17
-29
lines changed

player.js

+17-29
Original file line numberDiff line numberDiff line change
@@ -112,34 +112,28 @@ function ajiGetSprite(id) {
112112
}
113113

114114
async function ajiSetSprite(id, src) {
115-
for (let i = 0; i < ajiSprite.length; i++) {
116-
if (ajiSprite[i].id == id && ajiExistData(src) == true) {
117-
await new Promise((resolve, reject) => {
118-
ajiSprite[i].image.onload = () => resolve(ajiSprite[i].image);
119-
ajiSprite[i].image.onerror = (e) => reject(e);
120-
ajiSprite[i].image.src = ajiGetData(src);
121-
});
122-
break;
123-
}
115+
if (ajiExistSprite(id) == true && ajiExistData(src) == true) {
116+
const i = await ajiFindSpriteNumber(id);
117+
await new Promise((resolve, reject) => {
118+
ajiSprite[i].image.onload = () => resolve(ajiSprite[i].image);
119+
ajiSprite[i].image.onerror = (e) => reject(e);
120+
ajiSprite[i].image.src = ajiGetData(src);
121+
});
124122
}
125123
}
126124

127125
function ajiDeleteSprite(id) {
128-
for (let i = 0; i < ajiSprite.length; i++) {
129-
if (ajiSprite[i].id == id) {
130-
ajiSprite.splice(i, 1);
131-
break;
132-
}
126+
if (ajiExistSprite(id) == true) {
127+
ajiSprite.splice(ajiFindSpriteNumber(id), 1);
133128
}
134129
}
135130

136131
function ajiExistSprite(id) {
137-
for (let i = 0; i < ajiSprite.length; i++) {
138-
if (ajiSprite[i].id == id) {
139-
return true;
140-
}
132+
if (ajiFindSpriteNumber(id) >= 0) {
133+
return true;
134+
} else {
135+
return false;
141136
}
142-
return false;
143137
}
144138

145139
function ajiFindSpriteNumber(id) {
@@ -152,20 +146,14 @@ function ajiFindSpriteNumber(id) {
152146
}
153147

154148
function ajiDrawSprite(id, x, y) {
155-
for (let i = 0; i < ajiSprite.length; i++) {
156-
if (ajiSprite[i].id == id) {
157-
ajiContext.drawImage(ajiSprite[i].image, x, y);
158-
break;
159-
}
149+
if (ajiExistSprite(id) == true) {
150+
ajiContext.drawImage(ajiSprite[ajiFindSpriteNumber(id)].image, x, y);
160151
}
161152
}
162153

163154
function ajiDrawSpriteZoom(id, x, y, w, h) {
164-
for (let i = 0; i < ajiSprite.length; i++) {
165-
if (ajiSprite[i].id == id) {
166-
ajiContext.drawImage(ajiSprite[i].image, x, y, w, h);
167-
break;
168-
}
155+
if (ajiExistSprite(id) == true) {
156+
ajiContext.drawImage(ajiSprite[ajiFindSpriteNumber(id)].image, x, y, w, h);
169157
}
170158
}
171159

0 commit comments

Comments
 (0)