处理 js - 关卡滚动
Processing js - Level Scroll
>im试图用鼠标滚动地图,我有一些问题/疑问想问。
- 有没有更好的方法来设计更复杂的关卡? 我有点认为这种方式在性能方面不是很好。
- 滚动有一些问题; 如果你看到,当我们向右滚动时,最后所有第一行都会向左移动一点。 当我们向左滚动时也会发生。 第一个方块向右移动。 有没有办法防止这种情况?
这是我的代码:
/* @pjs preload="images/grass.png" */
var level = [];
var level_1 = [
"egggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggge",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
"egggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggge",
];
var wid;
var hi;
var Ground = function(x, y, label) {
this.x = x;
this.y = y;
this.label = label;
};
Ground.prototype.draw = function() {
if(this.label == "g") {
PImage name;
name = loadImage("images/grass.png");
image(name, this.x, this.y);
}
};
void makeLevel() {
for(var i = 0; i < level_1.length; i++) {
for(var j = 0; j < level_1[i].length; j++) {
switch(level_1[i][j]) {
case "g" :
level.push(new Ground(j*15, i*15, "g"));
break;
case "e" :
level.push(new Ground(j*15, i*15, "e"));
break;
}
wid = level_1[i].length-1;
}
}
}
makeLevel();
void draw() {
background(0);
for(var i=0; i < level.length; i++) {
level[i].draw();
if(mouseX <= width && mouseX >= width-15 && level[wid].x > width-15) {
level[i].x -= 5;
}
if(mouseX <= 15 && mouseX >= 1 && level[0].x < 0) {
level[i].x += 5;
}
if(mouseY >= height-15 && mouseY <= height && level[level.length-1].y > height-20) {
level[i].y -= 5;
}
if(mouseY <= 15 && mouseY >= 1 && level[0].y < 0) {
level[i].y += 5;
}
}
}
提前感谢=)
我有一个解决方案来解决您问题的第 2 部分:
在可汗学院的代码中,将"+0.5"添加到草的 x 位置。它应该看起来像这样:
level.push(new Ground(j*20 + 0.5, i*20, "g")); // grass
我真的无法解释为什么这有效,而且这可能不是最好的解决方案,因为它将草移动了 0.5px,但这是一个快速解决方案,可以避免一排草突然消失的问题。
相关文章:
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- Myo和Node.js:从四元数滚动/俯仰/偏航
- 为什么 JS 不在滚动时调用函数
- 在向下滚动JS/HTML/CSS wordpress网站时替换徽标图像
- 使用JS滑动或滚动图像
- fullpage.js和物化.js;使用实体侧导航禁用鼠标滚动
- css/js:通过滚动固定位置
- Skrollr js没有在手机中向下滚动
- 如何在Angular JS中滚动显示元素
- fullpage.js在滚动时更改滚动方向
- JS/CSS:如何在向下滚动超过1200像素(高度)后更改z索引值
- Javascript-Nightmare.JS无限滚动操作
- Sammy.js缓存和滚动位置时,返回历史
- 如何使用鼠标滚动控制fullPage.js垂直滑块
- 平滑滚动js不滚动
- 自动滚动JS幻灯片不起作用
- JS加载顺序 - 滚动JS禁用,回调解决方案,或者更简单
- 如何使用航点无限滚动.js
- 触摸板上的双指滚动js
- 带骨干的无限滚动js