Repository navigation
Maps zh TW
English | ็น้ซไธญๆ | ๆฅๆฌ่ช | ํ๊ตญ์ด
BIT8_CLI ๆไพไปฅ Tile ็บๅบ็ค็ Map ็ณป็ตฑ๏ผ็จไพๅปบ็ซ 2D ้ๆฒไธ็ใ
Map ไฝฟ็จๅทฒ่จปๅ็ Asset ID๏ผๆฏๆด่ชฟๆดๅฐๅๅฐบๅฏธ๏ผไนๅฏไปฅๅ ๅซ Node ่ Cameraใ
ๆฌๆๅไป็ดน BIT8_CLI 0.1.0 ็ Map ็ณป็ตฑใ
BIT8_CLI ไฝฟ็จๅบๅฎ็ Tile ๅฐบๅฏธ๏ผ
8 ร 8 ๅ็ด
้ ่จญ Map ๅฐบๅฏธ็บ๏ผ
64 ร 64 Tiles
Map ็ๅฏฌๅบฆ่้ซๅบฆๅฏไปฅ่จญๅฎ็บ๏ผ
1 ่ณ 256 Tiles
Map Cell ็ๆๅคง็ธฝๆธ็บ๏ผ
65,536
Map ๅฐบๅฏธ่้ๆฒ็ 64ร64 framebuffer ไบ็ธ็จ็ซใ
ๅ ๆญค๏ผ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
้ๆฏ็คบๆๆง็ๅฐๆก็ตๆงใ
Map ไฝฟ็จ Tile ๅบงๆจใ
ๆฏๅ Map Cell ไปฃ่กจ้ๆฒไธ็ไธญ็ 8ร8 ๅ็ด ๅๅใ
ไพๅฆ๏ผ
Tile (0, 0) โ ไธ็ๅ็ด (0, 0)
Tile (1, 0) โ ไธ็ๅ็ด (8, 0)
Tile (2, 0) โ ไธ็ๅ็ด (16, 0)
Tile (0, 1) โ ไธ็ๅ็ด (0, 8)
Tile ๅบงๆจ่ฝๆๆๅ็ด ๅบงๆจ็ๅ ฌๅผ๏ผ
pixel_x = tile_x ร 8
pixel_y = tile_y ร 8
ไพๅฆ๏ผTile (5, 3) ๅฐๆไธ็ๅ็ด ๅบงๆจ (40, 24)ใ
ๆฏๅ Map Cell ้ฝๅฏไปฅๅผ็จๅทฒ่จปๅ็ Tileใ
ไพๅฆ๏ผ
A1
A2
A3
้ไบ่ญๅฅ็ขผๅฐๆๅฐ๏ผ
bit8.assets.toml
ไธญๅทฒ่จปๅ็ Tilesheetใ
็ฉบ็ฝ Map Cell ไฝฟ็จ๏ผ
--
่กจ็คบใ
็ฐกๅ็ Map ๅฏ่ฝ้ท้ๆจฃ๏ผ
A1 A1 A1 A1 A1
A1 -- -- -- A1
A1 -- A2 -- A1
A1 -- -- -- A1
A1 A1 A1 A1 A1
้ๅชๆฏ Map Cell ็ๆฆๅฟต็คบๆ๏ผไธๆฏๅฎๆด็ .b8map ๆชๆกๆ ผๅผใ
ไฝฟ็จ map() ็นช่ฃฝ็ฎๅ็ Mapใ
func draw()
cls(0)
map()
end้ๆๆธ ้ค framebuffer๏ผไธฆ็นช่ฃฝ Mapใ
ๅฏฆ้ๅฏ่ฆ็ฏๅๅๆฑบๆผ framebuffer ่็ฎๅๅ็จ็ Cameraใ
ๅฎๆดๅๆธ็ดฐ็ฏๆไปฅๅฐๆ็ๆฌ็ BIT8_CLI ๅๅง็ขผ็บๆบใ
BIT8_CLI ๆไพ๏ผ
mget(...)้ๅ API ๅฏไปฅ่ฎๅ Runtime Map ไธญ็ Tile ๅผใ
Map ๆไฝไฝฟ็จ Tile ๅบงๆจ๏ผ่ไธๆฏๅ็ด ๅบงๆจใ
BIT8_CLI ๆไพ๏ผ
mset(...)้ๅ API ๅฏไปฅไฟฎๆน Runtime Map ไธญ็ Tile ๅผใ
Runtime Map ไฟฎๆนๆๅฝฑ้ฟๆญฃๅจๅท่ก็้ๆฒ็ๆ ใ
้่้้ Editor ๅฐไฟฎๆนๅฒๅญๅๅๅง .b8map ๆชๆกไธๅใ
BIT8_CLI ็ VS Code Extension ๅ งๅปบ Map Workspaceใ
Map Workspace ๆไพ่ฆ่ฆบๅ็ๅฐๅ็ทจ่ผฏๅทฅๅ ทใ
ๅ ๅซ๏ผ
- Map ็ซๅธ
- Tile ้ธๆ
- Tile ็นช่ฃฝ
- Map Cell ๆชข่ฆ
- ็ธฎๆพๆงๅถ
- Node ้ธๆ่็ทจ่ผฏ
- Camera ่ฆ่ฆบๅ
- ๅฑฌๆงๆชข่ฆ
Map Workspace ไฝฟ็จ่ Runtime ็ธๅ็ๅบๅฑคๅฐๆก่ณๆใ
Editor ไป้ขๆฌ่บซไธๆฏ Map ่ก็บ็ๆ็ตๅฎ็พฉไพๆบใ
Map ๅฏไปฅๅ ๅซ Nodeใ
Node ๅฏไปฅๅฎ็พฉ๏ผ
- ็ฉฉๅฎ็ Node ID
- ๅ็จฑ
- ไฝ็ฝฎ
- ๅ็จ็ๆ
- Script ๅ็ ง
- ้ธ็จ็ Sprite ๅ็ ง
- ้ธ็จ็ Collider
Node ๆฏ้ๆฒไธ็็ตๆง็ไธ้จๅใ
Node Script ๅฏไปฅๅจ Runtime ๅท่กๆ้ๆงๅถๅ ถ่ก็บใ
ไพๅฆ๏ผ
func update()
self.x = self.x + 1
end่ฉณ็ดฐ่ณ่จ่ซ้ฑ่ฎ Nodeใ
Map ๅฏไปฅๅ ๅซ Camera Nodeใ
Camera ๆฑบๅฎ้ๆฒไธ็ไธญๅชๅๅๅๆ้กฏ็คบๅจ็ซ้ขไธใ
BIT8_CLI ไฝฟ็จ 64ร64 Viewportใ
Camera ๅบงๆจไปฃ่กจ Viewport ็ไธญๅฟใ
ๆฏๆดไธ็ๅบงๆจ็็นชๅๆไฝๆไพ็ ง็ฎๅๅ็จ็ Camera ้ฒ่ก่ฝๆใ
่่ขๅนๅบงๆจ็นชๅๆไฝ๏ผไพๅฆ๏ผ
cls(0)
pix(32, 32, 7)ไป็ถไฝฟ็จ่ขๅนๅบงๆจใ
่ฉณ็ดฐ่ณ่จ่ซ้ฑ่ฎ Cameraใ
ๅทฒ่จปๅ็ Tile ๅฏไปฅ่จญๅฎ็บ Solidใ
ไพๅฆ๏ผ
solid = [6]ไปฃ่กจๅฐๆ Tilesheet ็็ฌฌๅ ญๅ Tile ่ขซๆจ่จ็บ Solidใ
Solid Tile ๅจ็ขฐๆๅคๅฎไธญไฝๆๅฎๆด็ 8ร8 ๅ็ด ๅๅใ
Node ๅฏไปฅ้้๏ผ
self:collide(dx, dy)
self:move(dx, dy)่ Solid Tile ้ฒ่ก็ขฐๆๅคๅฎใ
่ฉณ็ดฐ่ณ่จ่ซ้ฑ่ฎ Collisionใ
ๆๅคงๆฏๆด Map ๅฐบๅฏธ๏ผ
256 ร 256 Tiles
ๆๅคง Cell ๆธ้๏ผ
65,536 Cells
Map ไธ้่ฆ้ๅถๅจ 64ร64 framebuffer ๅ งใ
็ฎๅ่ฆ่งๅชๆ้กฏ็คบไธ็็ไธ้จๅใ
่จญ่จๅคงๅ Map ๆ๏ผไปๆ่ๆ ฎ้ๆฒ็็นช่ฃฝ่ๅท่ก้ๆฑใ
BIT8_CLI 0.1.0 ๆไพไปฅ Tile ็บๅบ็ค็ Map ็ณป็ตฑใ
ไปฅไธๅ่ฝๅฐไธๅฑฌๆผๅทฒ็ขบ็ซ็ 0.1.0 Map ็ณป็ตฑ๏ผ
- ๅคๅ็จ็ซ Map Layer
- ็ดๆฅๆพ็ฝฎๅคงๅ่ๆฏๅ็ไฝ็บไธ็็ฉไปถ
- ๅฎๆด็ฉ็ๅผๆ
้ไบๅ่ฝๅฏไปฅๅจๆชไพ็ๆฌไธญ็นผ็บๆข็ดขใ
็นผ็บ้ฑ่ฎ๏ผ
็ธ้ๆไปถ๏ผ
Map ๅฎ็พฉไธ็๏ผNode ็บไธ็ๅธถไพ่ก็บใ
Current Version: 0.1.0