javascript - p5 tiledmap 卡在加载中
问题描述
我在这里创建了 p5 代码,以使用文本文件创建轨道。我相信它们被称为瓷砖地图。
我正在使用在线编辑器并将 .png 保存在与代码相同的文件夹中名为 sprites 的文件夹中。有没有人知道为什么会发生这种情况以及我的代码中是否有任何错误。提前致谢!
这是名为 track.txt 的 .txt 文件中的地图
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 1 1 1 0 0 0 0 0
0 0 0 1 0 0 0 0 0 1 1 0 0 0 0
0 0 0 1 0 0 0 0 0 0 1 1 0 0 0
0 0 1 1 0 0 0 0 0 0 0 1 0 0 0
0 1 1 0 0 0 0 0 0 0 0 1 0 0 0
0 1 0 0 1 1 1 0 0 1 1 1 0 0 0
0 1 0 0 1 0 1 0 0 1 0 0 0 0 0
0 1 0 0 1 0 1 0 0 1 1 1 1 1 0
0 2 0 0 1 0 1 1 0 0 0 0 1 1 0
0 1 0 0 1 0 0 1 1 0 0 0 0 1 0
0 1 0 0 1 0 0 0 1 0 0 0 0 1 0
0 1 1 1 1 0 0 0 1 0 0 0 1 1 0
0 0 1 1 0 0 0 0 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This is the code:
let track = [];
let images = [];
function preload() {
images[0] = loadImage("sprites/grass.png");
images[1] = loadImage("sprites/road.png");
images[2] = loadImage("sprites/finish.png");
}
function setup() {
createCanvas(400, 400);
loadStrings("track.txt", getTrack);
}
function getTrack(arr){
for(let i = 0; i < arr.length; i++)
{
let line = arr[i].trim(); //This is to make sure trailing spaces don't break the code
let tempArr = line.split(" ");
track.push(tempArr);
}
}
function getImage(col, row) {
return images[track[col][row]];
}
解决方案
我无法重现您遇到的任何问题。您的代码没有绘图代码或其他方式来查看加载步骤是否完成。您的资产可能存在问题,但从您提供的信息中无法判断。您应该检查控制台是否有错误,并在您的问题中包含任何相关内容。
let track = [];
let images = [];
function preload() {
images[0] = loadImage("https://www.paulwheeler.us/files/stackoverflow69240406/grass.png");
images[1] = loadImage("https://www.paulwheeler.us/files/stackoverflow69240406/road.png");
images[2] = loadImage("https://www.paulwheeler.us/files/stackoverflow69240406/finish.png");
}
function setup() {
createCanvas(400, 400);
loadStrings("https://www.paulwheeler.us/files/stackoverflow69240406/track.txt", getTrack);
}
const imgSize = 20;
const padding = 2;
function draw() {
background(255);
for (let x = 0; x < track.length; x++) {
for (let y = 0; y < track[x].length; y++) {
let img = getImage(x, y);
if (img) {
image(
img,
padding + (x * (imgSize + padding)),
padding + (y * (imgSize + padding)),
imgSize,
imgSize
);
}
}
}
}
function getTrack(arr) {
for (let i = 0; i < arr.length; i++) {
let line = arr[i].trim(); //This is to make sure trailing spaces don't break the code
let tempArr = line.split(" ");
track.push(tempArr);
}
console.log('track loaded');
}
function getImage(col, row) {
return images[track[col][row]];
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script>
推荐阅读
- javascript - 面临将 JavaScript 字符串转换为 JavaScript 对象的问题
- regex - sed 重复匹配行为不端
- reactjs - npx create-react-app 每次都需要很长时间
- flutter - 单个文件中的小部件与 Flutter 中的多个文件
- python - 在python中剪切字符串的第一个和最后一个字符
- react-native - ReactNative TextInput GIF 键盘插入
- php - 在php7.4中将布尔值声明为属性的正确方法是什么
- git - git - 将本地存储库从 machine1 复制到 machine2
- mysql - 在 mac 上设置 localhost 时遇到问题
- reactjs - React:使用来自孩子的价值在父母中设置状态的最佳方式