Skip to content

Maps ja

Shiraishi_AKi edited this page Oct 6, 2026 · 1 revision

Map ใ‚ทใ‚นใƒ†ใƒ 

English | ็น้ซ”ไธญๆ–‡ | ๆ—ฅๆœฌ่ชž | ํ•œ๊ตญ์–ด

BIT8_CLI ใฏใ€2D ใ‚ฒใƒผใƒ ใฎไธ–็•Œใ‚’ไฝœๆˆใ™ใ‚‹ใŸใ‚ใฎ Tile ใƒ™ใƒผใ‚นใฎ Map ใ‚ทใ‚นใƒ†ใƒ ใ‚’ๆไพ›ใ—ใพใ™ใ€‚

Map ใฏ็™ป้Œฒๆธˆใฟ Asset ID ใ‚’ไฝฟ็”จใ—ใ€ใ‚ตใ‚คใ‚บใฎๅค‰ๆ›ดใซๅฏพๅฟœใ—ใฆใ„ใพใ™ใ€‚ใพใŸใ€Node ใ‚„ Camera ใ‚’ๅซใ‚ใ‚‹ใ“ใจใ‚‚ใงใใพใ™ใ€‚

ใ“ใฎใ‚ฌใ‚คใƒ‰ใงใฏใ€BIT8_CLI 0.1.0 ใฎ Map ใ‚ทใ‚นใƒ†ใƒ ใซใคใ„ใฆ่ชฌๆ˜Žใ—ใพใ™ใ€‚

1. Map ใฎๆฆ‚่ฆ

BIT8_CLI ใฎ Tile ใ‚ตใ‚คใ‚บใฏๅ›บๅฎšใ•ใ‚Œใฆใ„ใพใ™ใ€‚

8 ร— 8 ใƒ”ใ‚ฏใ‚ปใƒซ

ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใฎ Map ใ‚ตใ‚คใ‚บใฏๆฌกใฎใจใŠใ‚Šใงใ™ใ€‚

64 ร— 64 Tiles

Map ใฎๅน…ใจ้ซ˜ใ•ใฏใ€ใใ‚Œใžใ‚Œๆฌกใฎ็ฏ„ๅ›ฒใง่จญๅฎšใงใใพใ™ใ€‚

1 ๏ฝž 256 Tiles

Map Cell ใฎๆœ€ๅคงๆ•ฐใฏๆฌกใฎใจใŠใ‚Šใงใ™ใ€‚

65,536 Cells

Map ใฎใ‚ตใ‚คใ‚บใฏใ€64ร—64 ใƒ”ใ‚ฏใ‚ปใƒซใฎใ‚ฒใƒผใƒ ็”จ Framebuffer ใจใฏ็‹ฌ็ซ‹ใ—ใฆใ„ใพใ™ใ€‚

ใใฎใŸใ‚ใ€็”ป้ขใซ่กจ็คบใ•ใ‚Œใ‚‹็ฏ„ๅ›ฒใ‚ˆใ‚Šใ‚‚ๅคงใใช Map ใ‚’ไฝœๆˆใงใใพใ™ใ€‚

2. Map ใƒ•ใ‚กใ‚คใƒซ

BIT8_CLI ใฏๆฌกใฎๆ‹กๅผตๅญใ‚’ไฝฟ็”จใ—ใฆ Map ใƒ‡ใƒผใ‚ฟใ‚’ไฟๅญ˜ใ—ใพใ™ใ€‚

.b8map

ไพ‹๏ผš

world.b8map

Map ใƒ•ใ‚กใ‚คใƒซใซใฏ Tile ใƒ‡ใƒผใ‚ฟใŒๅซใพใ‚Œใ€Node ใ‚„ Camera ใ‚’ๅฎš็พฉใ™ใ‚‹ใ“ใจใ‚‚ใงใใพใ™ใ€‚

ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆๆง‹ๆˆใฎไพ‹๏ผš

my-bit8-game/
โ”œโ”€โ”€ main.b8
โ”œโ”€โ”€ bit8.assets.toml
โ”œโ”€โ”€ world.b8map
โ””โ”€โ”€ assets/
    โ””โ”€โ”€ terrain (A).png

ใ“ใ‚Œใฏๆง‹ๆˆไพ‹ใงใ™ใ€‚

3. Map ๅบงๆจ™

Map ใฏ Tile ๅบงๆจ™ใ‚’ไฝฟ็”จใ—ใพใ™ใ€‚

ๅ„ Map Cell ใฏใ€ใ‚ฒใƒผใƒ ไธ–็•Œๅ†…ใฎ 8ร—8 ใƒ”ใ‚ฏใ‚ปใƒซใฎ้ ˜ๅŸŸใ‚’่กจใ—ใพใ™ใ€‚

ไพ‹๏ผš

Tile (0, 0) โ†’ World Pixel (0, 0)

Tile (1, 0) โ†’ World Pixel (8, 0)

Tile (2, 0) โ†’ World Pixel (16, 0)

Tile (0, 1) โ†’ World Pixel (0, 8)

Tile ๅบงๆจ™ใ‚’ Pixel ๅบงๆจ™ใซๅค‰ๆ›ใ™ใ‚‹ใซใฏใ€ๆฌกใฎ่จˆ็ฎ—ใ‚’ไฝฟ็”จใ—ใพใ™ใ€‚

pixel_x = tile_x ร— 8
pixel_y = tile_y ร— 8

ไพ‹ใˆใฐใ€Tile ๅบงๆจ™ (5, 3) ใฏ World Pixel ๅบงๆจ™ (40, 24) ใซๅฏพๅฟœใ—ใพใ™ใ€‚

4. Map Cell

ๅ„ Map Cell ใฏ็™ป้Œฒๆธˆใฟ Tile ใ‚’ๅ‚็…งใงใใพใ™ใ€‚

ไพ‹๏ผš

A1
A2
A3

ใ“ใ‚Œใ‚‰ใฎ่ญ˜ๅˆฅๅญใฏใ€ๆฌกใฎใƒ•ใ‚กใ‚คใƒซใง็ฎก็†ใ•ใ‚Œใ‚‹็™ป้Œฒๆธˆใฟ Asset ใ‚’ๅ‚็…งใ—ใพใ™ใ€‚

bit8.assets.toml

็ฉบใฎ Map Cell ใฏๆฌกใฎใ‚ˆใ†ใซ่กจใ•ใ‚Œใพใ™ใ€‚

--

็ฐก็•ฅๅŒ–ใ—ใŸ Map ใฎไพ‹๏ผš

A1 A1 A1 A1 A1
A1 -- -- -- A1
A1 -- A2 -- A1
A1 -- -- -- A1
A1 A1 A1 A1 A1

ใ“ใ‚Œใฏ Map Cell ใฎๆฆ‚ๅฟตใ‚’็คบใ™ไพ‹ใงใ‚ใ‚Šใ€ๅฎŒๅ…จใช .b8map ใƒ•ใ‚กใ‚คใƒซใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚

5. Map ใฎๆ็”ป

็พๅœจใฎ Map ใ‚’ๆ็”ปใ™ใ‚‹ใซใฏ map() ใ‚’ไฝฟ็”จใ—ใพใ™ใ€‚

func draw()
    cls(0)
    map()
end

ใ“ใฎใ‚ณใƒผใƒ‰ใฏ Framebuffer ใ‚’ใ‚ฏใƒชใ‚ขใ—ใ€Map ใ‚’ๆ็”ปใ—ใพใ™ใ€‚

่กจ็คบ็ฏ„ๅ›ฒใฏ Framebuffer ใจ็พๅœจๆœ‰ๅŠนใช Camera ใซใ‚ˆใฃใฆๆฑบใพใ‚Šใพใ™ใ€‚

ๅฎŒๅ…จใชๅผ•ๆ•ฐใฎไป•ๆง˜ใซใคใ„ใฆใฏใ€ๅฏพๅฟœใ™ใ‚‹ BIT8_CLI ใฎใƒชใƒชใƒผใ‚นใ‚ฝใƒผใ‚นใ‚’ๅ‚็…งใ—ใฆใใ ใ•ใ„ใ€‚

6. Map Cell ใฎ่ชญใฟๅ–ใ‚Š

BIT8_CLI ใฏๆฌกใฎ API ใ‚’ๆไพ›ใ—ใพใ™ใ€‚

mget(...)

ใ“ใฎ API ใฏ Runtime Map ใ‹ใ‚‰ Tile ใฎๅ€คใ‚’่ชญใฟๅ–ใ‚Šใพใ™ใ€‚

Map ๆ“ไฝœใงใฏ Pixel ๅบงๆจ™ใงใฏใชใ Tile ๅบงๆจ™ใ‚’ไฝฟ็”จใ—ใพใ™ใ€‚

7. Map Cell ใฎๅค‰ๆ›ด

BIT8_CLI ใฏๆฌกใฎ API ใ‚’ๆไพ›ใ—ใพใ™ใ€‚

mset(...)

ใ“ใฎ API ใฏ Runtime Map ๅ†…ใฎ Tile ใฎๅ€คใ‚’ๅค‰ๆ›ดใ—ใพใ™ใ€‚

Runtime ใง่กŒใ‚ใ‚ŒใŸ Map ใฎๅค‰ๆ›ดใฏใ€ๅฎŸ่กŒไธญใฎใ‚ฒใƒผใƒ ็Šถๆ…‹ใซๅๆ˜ ใ•ใ‚Œใพใ™ใ€‚

Editor ใ‚’ไฝฟ็”จใ—ใฆๅ…ƒใฎ .b8map ใƒ•ใ‚กใ‚คใƒซใซๅค‰ๆ›ดใ‚’ไฟๅญ˜ใ™ใ‚‹ๆ“ไฝœใจใฏ็•ฐใชใ‚Šใพใ™ใ€‚

8. Map Workspace

BIT8_CLI ใฎ VS Code Extension ใซใฏ Map Workspace ใŒ็ตฑๅˆใ•ใ‚Œใฆใ„ใพใ™ใ€‚

Map Workspace ใฏใ€Map ใƒ‡ใƒผใ‚ฟใ‚’่ฆ–่ฆš็š„ใซ็ทจ้›†ใ™ใ‚‹ใŸใ‚ใฎใƒ„ใƒผใƒซใ‚’ๆไพ›ใ—ใพใ™ใ€‚

ไธปใชๆฉŸ่ƒฝ๏ผš

  • Map Canvas
  • Tile ใฎ้ธๆŠž
  • Tile ใฎๆ็”ป
  • Map Cell ใฎ็ขบ่ช
  • Zoom ๆ“ไฝœ
  • Node ใฎ้ธๆŠžใจ็ทจ้›†
  • Camera ใฎๅฏ่ฆ–ๅŒ–
  • Property ใฎ็ขบ่ช

Map Workspace ใฏ Runtime ใจๅ…ฑ้€šใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใƒ‡ใƒผใ‚ฟใ‚’ไฝฟ็”จใ—ใพใ™ใ€‚

Editor ใฎใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใƒผใ‚น่‡ชไฝ“ใŒ Map ใฎๅ‹•ไฝœไป•ๆง˜ใ‚’ๆฑบๅฎšใ™ใ‚‹ใ‚ใ‘ใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚

9. Map ๅ†…ใฎ Node

Map ใซใฏ Node ใ‚’้…็ฝฎใงใใพใ™ใ€‚

Node ใซใฏๆฌกใฎๆƒ…ๅ ฑใ‚’ๅฎš็พฉใงใใพใ™ใ€‚

  • ๅฎ‰ๅฎšใ—ใŸ Node ID
  • ๅๅ‰
  • ไฝ็ฝฎ
  • ๆœ‰ๅŠนใƒป็„กๅŠนใฎ็Šถๆ…‹
  • Script ใฎๅ‚็…ง
  • ไปปๆ„ใฎ Sprite ๅ‚็…ง
  • ไปปๆ„ใฎ Collider

Node ใฏใ‚ฒใƒผใƒ ไธ–็•Œใฎๆง‹้€ ใ‚’ๆง‹ๆˆใ™ใ‚‹่ฆ็ด ใงใ™ใ€‚

Node Script ใฏ Runtime ใฎๅฎŸ่กŒไธญใซๅ‹•ไฝœใ‚’ๅˆถๅพกใงใใพใ™ใ€‚

ไพ‹๏ผš

func update()
    self.x = self.x + 1
end

่ฉณใ—ใใฏ Nodes ใ‚’ๅ‚็…งใ—ใฆใใ ใ•ใ„ใ€‚

10. Map ๅ†…ใฎ Camera

Map ใซใฏ Camera Node ใ‚’ๅซใ‚ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚

Camera ใฏใ‚ฒใƒผใƒ ไธ–็•Œใฎใฉใฎ็ฏ„ๅ›ฒใ‚’่กจ็คบใ™ใ‚‹ใ‹ใ‚’ๆฑบๅฎšใ—ใพใ™ใ€‚

BIT8_CLI ใฏ 64ร—64 ใƒ”ใ‚ฏใ‚ปใƒซใฎ Viewport ใ‚’ไฝฟ็”จใ—ใพใ™ใ€‚

Camera ใฎๅบงๆจ™ใฏ Viewport ใฎไธญๅฟƒใ‚’่กจใ—ใพใ™ใ€‚

World ๅบงๆจ™ใซๅฏพๅฟœใ—ใŸๆ็”ปๅ‡ฆ็†ใฏใ€ๆœ‰ๅŠนใช Camera ใซๅŸบใฅใ„ใฆๅบงๆจ™ๅค‰ๆ›ใ•ใ‚Œใพใ™ใ€‚

ไธ€ๆ–นใ€ๆฌกใฎใ‚ˆใ†ใช Screen ๅบงๆจ™ใฎๆ็”ปๅ‡ฆ็†ใฏ๏ผš

cls(0)
pix(32, 32, 7)

ๅผ•ใ็ถšใ Screen ๅบงๆจ™ใ‚’ไฝฟ็”จใ—ใพใ™ใ€‚

่ฉณใ—ใใฏ Camera ใ‚’ๅ‚็…งใ—ใฆใใ ใ•ใ„ใ€‚

11. Solid Tile ใจ Collision

็™ป้Œฒๆธˆใฟ Tile ใฏ Solid ใซ่จญๅฎšใงใใพใ™ใ€‚

ไพ‹๏ผš

solid = [6]

ใ“ใ‚Œใฏใ€ๅฏพๅฟœใ™ใ‚‹ Tilesheet ใฎ 6 ็•ช็›ฎใฎ Tile ใ‚’ Solid ใจใ—ใฆๆŒ‡ๅฎšใ™ใ‚‹่จญๅฎšใงใ™ใ€‚

Solid Tile ใฏ Collision ๅˆคๅฎšใซใŠใ„ใฆใ€8ร—8 ใƒ”ใ‚ฏใ‚ปใƒซๅ…จไฝ“ใ‚’ๅ ๆœ‰ใ—ใพใ™ใ€‚

Node ใฏๆฌกใฎใƒกใ‚ฝใƒƒใƒ‰ใ‚’ไฝฟ็”จใงใใพใ™ใ€‚

self:collide(dx, dy)
self:move(dx, dy)

่ฉณใ—ใใฏ Collision ใ‚’ๅ‚็…งใ—ใฆใใ ใ•ใ„ใ€‚

12. Map ใ‚ตใ‚คใ‚บใจใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚น

ใ‚ตใƒใƒผใƒˆใ•ใ‚Œใ‚‹ๆœ€ๅคง Map ใ‚ตใ‚คใ‚บ๏ผš

256 ร— 256 Tiles

ๆœ€ๅคง Cell ๆ•ฐ๏ผš

65,536 Cells

Map ๅ…จไฝ“ใŒ 64ร—64 ใƒ”ใ‚ฏใ‚ปใƒซใฎ Framebuffer ๅ†…ใซๅŽใพใ‚‹ๅฟ…่ฆใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚

็พๅœจใฎ Viewport ใซใฏใ€ใ‚ฒใƒผใƒ ไธ–็•Œใฎไธ€้ƒจๅˆ†ใŒ่กจ็คบใ•ใ‚Œใพใ™ใ€‚

ๅคงใใช Map ใ‚’่จญ่จˆใ™ใ‚‹ๅ ดๅˆใฏใ€ๆ็”ปๅ‡ฆ็†ใ‚„ใ‚ฒใƒผใƒ ใƒ—ใƒฌใ‚คใซๅฟ…่ฆใชใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใ‚‚่€ƒๆ…ฎใ—ใฆใใ ใ•ใ„ใ€‚

13. ็พๅœจใฎๅˆถ้™

BIT8_CLI 0.1.0 ใฏ Tile ใƒ™ใƒผใ‚นใฎ Map ใ‚ทใ‚นใƒ†ใƒ ใ‚’ๆไพ›ใ—ใพใ™ใ€‚

ๆฌกใฎๆฉŸ่ƒฝใฏใ€็ขบ็ซ‹ใ•ใ‚ŒใŸ 0.1.0 ใฎ Map ใ‚ทใ‚นใƒ†ใƒ ใซใฏๅซใพใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚

  • ่ค‡ๆ•ฐใฎ็‹ฌ็ซ‹ใ—ใŸ Map Layer
  • ๅคงใใช่ƒŒๆ™ฏ็”ปๅƒใ‚’ World Object ใจใ—ใฆ็›ดๆŽฅ้…็ฝฎใ™ใ‚‹ๆฉŸ่ƒฝ
  • ๅฎŒๅ…จใช Physics Engine

ใ“ใ‚Œใ‚‰ใฏๅฐ†ๆฅใฎใƒใƒผใ‚ธใƒงใƒณใงๆคœ่จŽใ•ใ‚Œใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚

ๆฌกใธ

ๆฌกใฎใƒšใƒผใ‚ธ๏ผš

Nodes

้–ข้€ฃใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ๏ผš

Map ใฏไธ–็•Œใ‚’ๅฎš็พฉใ—ใ€Node ใฏใใฎไธ–็•Œใซๅ‹•ไฝœใ‚’ไธŽใˆใพใ™ใ€‚

Clone this wiki locally