Repository navigation
Collision zh TW
English | ็น้ซไธญๆ | ๆฅๆฌ่ช | ํ๊ตญ์ด
BIT8_CLI ๆไพ้ฉๅ Tile-based 2D ้ๆฒ็่ผ้ๅ็ขฐๆ็ณป็ตฑใ
ๅจ BIT8_CLI 0.1.0 ไธญ๏ผNode ๅฏไปฅ้้ Solid Tile ๅๆฏๆด็ Collider ่ณๆ๏ผๆชขๆฅ้็ค็ฉไธฆๅท่ก็ขฐๆๆ็ฅ็งปๅใ
้ๅฅ็ณป็ตฑ่้ๆผ็ฐกๅฎใๅฏ้ ๆธฌ็็งปๅ่ก็บ๏ผ่ไธๆฏๅฎๆด็็ฉ็ๆจกๆฌใ
Collision ็ณป็ตฑไธป่ฆ้ฃๆฅไธๅ็ตไปถ๏ผ
- Solid Tile๏ผ ๆ้ปๆ็งปๅ็ Map Tileใ
- Node Collider๏ผ ่ Node ้่ฏ็้ธ็จ็ขฐๆๅๅใ
- Movement API๏ผ ็จๆผๆชขๆฅ่ๅท่ก็งปๅ็ๆนๆณใ
ไธป่ฆ็ Node ๆนๆณ๏ผ
self:collide(dx, dy)
self:move(dx, dy)้ไบๆนๆณ่ฎ Node Script ๅฏไปฅ่็ขฐๆไธ็ไบๅใ
ๅฏไปฅ้้ Asset Registry ๅฐ Tile ่จญๅฎ็บ Solidใ
Asset Registry ๅฒๅญๅจ๏ผ
bit8.assets.toml
ไพๅฆ๏ผ
solid = [6]้ๆๅฐๅฐๆ Tilesheet ็็ฌฌๅ ญๅ Tile ๆจ่จ็บ Solidใ
้ๅชๆฏ่จญๅฎ็ๆฎต๏ผไธๆฏๅฎๆด็ Registry ๆชๆกใ
Solid Tile ๅจ็ขฐๆๅคๅฎๆๆๅ ๆๅฎๆด็ 8ร8 ๅ็ด ๅๅใ
BIT8_CLI ไฝฟ็จ 8ร8 ๅ็ด Tileใ
ไพๅฆ๏ผ
Tile (0, 0) โ Pixels (0โ7, 0โ7)
Tile (1, 0) โ Pixels (8โ15, 0โ7)
Tile (0, 1) โ Pixels (0โ7, 8โ15)
Solid Tile ๆ้ปๆ็ฉไปถ้ฒๅ ฅๅฎๆๅ ๆ็ๅๅใ
Node ็งปๅไฝฟ็จไธ็ๅ็ด ๅบงๆจ๏ผๅ ๆญคๅฏไปฅๆฏ Tile Grid ๆด็ฒพ็ดฐๅฐ็งปๅใ
Node ๅฏไปฅๅ ๅซ้ธ็จ็ Collider ่ณ่จใ
Collider ๅฎ็พฉ่ Node ้่ฏ็็ขฐๆๅนพไฝๅๅใ
Runtime ๅฏไปฅๅฉ็จๆฏๆด็็ขฐๆ่ณๆ้ฒ่ก็งปๅๅคๅฎใ
Collider ่จญๅฎ่ Node ็ Map ่ณๆไธ่ตทๅฒๅญใ
ๅฏฆ้ๆฏๆด็ Collider ๅฑฌๆง่ๆชๆกๆ ผๅผ๏ผๆไปฅ 0.1.0 ็ๅฏฆไฝ็บๆบใ
ไฝฟ็จ๏ผ
self:collide(dx, dy)ๆชขๆฅ้ ๅฎ็็งปๅๆฏๅฆๆ็ผ็็ขฐๆใ
ไพๅฆ๏ผ
func update()
if self:collide(1, 0) then
-- ๅณๆน็็งปๅๅๅฐ้ปๆใ
end
endๅๆธไปฃ่กจ้ ๅฎ็็งปๅๅ็งป้ใ
็ขฐๆๆฅ่ฉขไธๆๆน่ฎ Node ็ไฝ็ฝฎใ
ไฝฟ็จ๏ผ
self:move(dx, dy)ๅจ้ตๅฎๆฏๆด็็ขฐๆ่ฆๅไธๅ่ฉฆ็งปๅใ
ไพๅฆ๏ผ
func update()
self:move(1, 0)
end้ๆๅ่ฉฆ่ฎ Node ๅๅณ็งปๅ 1 ๅ็ด ใ
ๅฆๆ้ๅฐ้็ค็ฉ๏ผๅฏฆ้็งปๅ่ท้ขๅฏ่ฝๅฐๆผ่ฆๆฑ็่ท้ขใ
BIT8_CLI 0.1.0 ไฝฟ็จๆฏๆฌก 1 ๅ็ด ็ๆญฅ้ฒๆนๅผ่็็ขฐๆๆ็ฅ็งปๅใ
่็้ ๅบ็บ๏ผ
- X ่ปธ
- Y ่ปธ
ไพๅฆ๏ผ
self:move(3, 2)Runtime ๆๅ ๅ่ฉฆๆฐดๅนณ็งปๅ๏ผๅ่็ๅ็ด็งปๅใ
ๆฏๅๆนๅ้ฝๆ้้ๅ็ด ็ดๆญฅ้ฒ้ฒ่กๅคๅฎใ
้็จฎๆนๅผ้ฉๅ่ผ้ๅ Tile-based Movementใ
ๅ ฉๅๆนๆณๆไธๅ็จ้ใ
| ๆนๆณ | ็จ้ | ๆฏๅฆๆน่ฎไฝ็ฝฎ |
|---|---|---|
self:collide(dx, dy) |
ๆชขๆฅ้ ๅฎ็งปๅ | ๅฆ |
self:move(dx, dy) |
ๅ่ฉฆ็ขฐๆๆ็ฅ็งปๅ | ๅฏไปฅ็งปๅๆๆๆน่ฎ |
ๅฎ็ด็็งปๅ้ๅธธๅฏไปฅ็ดๆฅไฝฟ็จ self:move()ใ
ๅฆๆ้ๆฒ้่ผฏ้่ฆๅ
ๆชขๆฅ้็ค็ฉ๏ผๅๆฑบๅฎๅพ็บ่ก็บ๏ผๅฐฑๅฏไปฅไฝฟ็จ self:collide()ใ
ไปฅไธ็ฏไพไฝฟ็จๆนๅ่ผธๅ ฅๅธธๆธ๏ผ
func update()
if btn(LEFT) then
self:move(-1, 0)
end
if btn(RIGHT) then
self:move(1, 0)
end
if btn(UP) then
self:move(0, -1)
end
if btn(DOWN) then
self:move(0, 1)
end
end้ๆไพๅบๆฌ็ๅๆนๅ็ขฐๆๆ็ฅ็งปๅใ
็ฏไพๅ่จญ Script ๅทฒ็ถ้่ฏ่ณ้ฉ็ถ่จญๅฎ็ Nodeใ
Node ไนๅฏไปฅ็ดๆฅไฟฎๆนๅบงๆจ๏ผ
self.x = self.x + 1ไฝ็ดๆฅไฟฎๆนไฝ็ฝฎ่ๅผๅซ๏ผ
self:move(1, 0)ไธฆไธ็ธๅใ
็ถ้็ค็ฉๆ่ฉฒๅฝฑ้ฟ Node ็็งปๅๆ๏ผๆไฝฟ็จ็ขฐๆๆ็ฅ็งปๅใ
ๅฆๆ้่ฆๅปๆ้ๆฐๅฎไฝ็ฉไปถ๏ผๅฏไปฅ็ดๆฅไฟฎๆนๅบงๆจใ
Collision ่ณๆ่ Map ๅฏๅ็ธ้ใ
Map ๅฒๅญ Tile ่ณๆ๏ผAsset Registry ๅ่ญๅฅๅชไบๅทฒ่จปๅ Tile ๆฏ Solidใ
Node ๆๅจ็ขฐๆๆฅ่ฉขๅ็งปๅ้็จไธญไฝฟ็จ้ไบ่ณ่จใ
่ฉณ็ดฐ่ณ่จ่ซ้ฑ่ฎ Map ่ Asset ่ Tilesheetใ
BIT8_CLI 0.1.0 ๆไพ่ผ้ๅ็ขฐๆ็ณป็ตฑใ
ๅฎไธๆฏๅฎๆด็ Physics Engineใ
็ฎๅๅทฒ็ขบ็ซ็็ขฐๆๆจกๅไธๅ ๅซ๏ผ
- ๅฎๆด็ Rigid Body Dynamics
- ่ชๅ็ฉ็้ๅๆจกๆฌ
- ็ๅฏฆ็ฉ็ๅ้่ๅ้
- ้็จ็ฉ็ๆกๆถไธญ็้ฒ้็ขฐๆๅฝข็
้็ผ่ ๅฏไปฅ้้ Node Script ่ช่กๅฏฆไฝ้ๆฒ้่ฆ็็งปๅ่ก็บใ
็นผ็บ้ฑ่ฎ๏ผ
็ธ้ๆไปถ๏ผ
Collision ๆฑบๅฎ Node ๅฏไปฅ่ตฐๅฐๅช่ฃกใ
Current Version: 0.1.0