javascript 有没有比usign switch-case更简单的方法来切换映像的符号?

balp4ylt  于 2023-01-16  发布在  Java
关注(0)|答案(1)|浏览(111)

我是JavaScript新手,在一个项目中我尝试用JavaScript开发一个经典的吃豆人游戏。它很好用,但是我的代码太长了,特别是在创建Map的时候。这使得创建不同的关卡变得更加困难。
我的工作方式是使用和“switch -case”。但我每次都要手动更改它。我想知道,是否有可能简化代码。我尝试创建一个“for循环”并使用“if语句”,但我无法使它工作。你有任何提示吗?
这是代码的开始,它继续了另外200多行...

function createImage(src) {
    const image = new Image()
    image.src = src
    return image}

map.forEach((row, zeilen) => {
    row.forEach((symbol, spalten) => {
        switch(symbol) {

            case 'a':
                boundaries.push(
                    new Boundary({ 
                        position: {
                            x: Boundary.width * spalten
                            y: Boundary.height * zeilen
                        },
                        image: createImage('../javascript/images/board/boundaryHorizontal.png')
                    }))
                break
            
            case 'b':
                boundaries.push(
                    new Boundary({
                        position: {
                            x: Boundary.width * spalten,
                            y: Boundary.height * zeilen 
                        },
                        image: createImage('../javascript/images/board/boundaryVertikal.png')
                    }))
                break
0pizxfdo

0pizxfdo1#

查找值,而不是使用开关/case。

const images = new Map([
  ['a', '../image for a'],
  ['b', '../image for b'],
  ['c', '../image for c'],
]);

boundaries.push(
    new Boundary({ 
        position: {
            x: Boundary.width * spalten
            y: Boundary.height * zeilen
        },
        image: createImage(images.get(symbol))
    }))

相关问题