Разработка и ромхакинг > Ромхакинг
Проблема в Програмировании (на BasiEgaXorz)
(1/1)
Winpaul005:
У меня такая проблема в програмировании Игры для Sega MD/Genesis на BasiEgaXorz: при попытке скомпилировать данный код:
--- Код: --- loadtiles fan, 1, 300, 12
palettes col, 0, 0
drawtile 300, 4,4
do:loop
fan:
DATALONG $00000000 ' Tile: 0
DATALONG $00000000
DATALONG $00000888
DATALONG $00778777
DATALONG $00778776
DATALONG $00788876
DATALONG $00788876
DATALONG $00788876
DATALONG $00777776 ' Tile: 1
DATALONG $00777777
DATALONG $00000007
DATALONG $00000007
DATALONG $00007777
DATALONG $00777777
DATALONG $00707777
DATALONG $00800007
DATALONG $08080007 ' Tile: 2
DATALONG $08080007
DATALONG $00000007
DATALONG $00000007
DATALONG $000000F7
DATALONG $000000F7
DATALONG $0000000F
DATALONG $00000000
DATALONG $00000000 ' Tile: 3
DATALONG $00000000
DATALONG $88880000
DATALONG $77777000
DATALONG $66667000
DATALONG $06067000
DATALONG $66667000
DATALONG $60667000
DATALONG $66667000 ' Tile: 4
DATALONG $77777000
DATALONG $70000000
DATALONG $70000000
DATALONG $77777000
DATALONG $CA1C7770
DATALONG $77777070
DATALONG $70000080
DATALONG $70000808 ' Tile: 5
DATALONG $70000808
DATALONG $70000000
DATALONG $77000000
DATALONG $7F700000
DATALONG $7F700000
DATALONG $F7000000
DATALONG $00000000
col:
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 0
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 1
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 2
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 3
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
--- Конец кода ---
У меня выходит такая ошибка:
ERROR:
Line 1: Label does not exist!
Как мне это исправить????!!!! :'( :'( :'( :'( :'( o_0 o_0 o_0 o_0 :ohmy: :ohmy: :ohmy:
SeregaZ:
может быть сначала должна идти дата секция, а уже потом код самой программы? в моем PB так. сначала идут метки с данными. потом код, их использующий. либо можно сначала объявить что существуют такие-то метки. тогда при чтении программы - она сама раздуплится что к чему. при таком объявлении все равно какая очередность.
TiberiyLTim:
Салам. Ты должен знать основы. Что заголовок локации, например "fan:", должен начинаться с красной строки, и впереди него не должно быть пробелов/отступов и мусора. Код загрузки палитры также ты используешь не правильный. Читай документацию. Вот подправил, чтобы компилятор не ругался:
--- Код: --- loadtiles fan, 1, 300, 12
palettes col,0,0,16
drawtile 300, 4,4
do:loop
fan:
DATALONG $00000000 ' Tile: 0
DATALONG $00000000
DATALONG $00000888
DATALONG $00778777
DATALONG $00778776
DATALONG $00788876
DATALONG $00788876
DATALONG $00788876
DATALONG $00777776 ' Tile: 1
DATALONG $00777777
DATALONG $00000007
DATALONG $00000007
DATALONG $00007777
DATALONG $00777777
DATALONG $00707777
DATALONG $00800007
DATALONG $08080007 ' Tile: 2
DATALONG $08080007
DATALONG $00000007
DATALONG $00000007
DATALONG $000000F7
DATALONG $000000F7
DATALONG $0000000F
DATALONG $00000000
DATALONG $00000000 ' Tile: 3
DATALONG $00000000
DATALONG $88880000
DATALONG $77777000
DATALONG $66667000
DATALONG $06067000
DATALONG $66667000
DATALONG $60667000
DATALONG $66667000 ' Tile: 4
DATALONG $77777000
DATALONG $70000000
DATALONG $70000000
DATALONG $77777000
DATALONG $CA1C7770
DATALONG $77777070
DATALONG $70000080
DATALONG $70000808 ' Tile: 5
DATALONG $70000808
DATALONG $70000000
DATALONG $77000000
DATALONG $7F700000
DATALONG $7F700000
DATALONG $F7000000
DATALONG $00000000
col:
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 0
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 1
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 2
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 3
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
--- Конец кода ---
Сразу советую тебе выносить графику из кода в папку. Большой проект прост сложно будет редачить из-за кучи по сути машинного кода и мусора.
Например, сохраняй через прогу тайл или спрайт в BIN-файл, а его уже подгружай в конце ROM так:
EnemyTL: datafile Enemy.BIN,BIN ' 12 Tiles (24x32, 3x4)
Спрайт отрисовывается так:
'загружается тайлсет спрайта в указанное место
LoadTiles Shells_1,4,236
'присваивается имя и размер спрайта (в тайлах 8x8, максимум 4x4)
Shells1=AddSprite(2,2)
'загружается тайлсет спрайта из указанного места, присваивается номер палитры (0-3)
PropSprite Shells1,236,1
'спрайт перемещается по координатам. Нужно учитывать, что верхний левый угол видимого экрана начинается 128x128 пикселей.
MoveSprite Shells1,0,368
Тайл загружается так:
DRAWTILESINC 128,1,15,1,1 'na4alo tileset,x,y,shir,visot
Есть и другие варианты...
Изучай шаблоны и описания функций в мануале.
Winpaul005:
--- Цитата: TiberiyLTim от 13 Ноября 2017, 17:21:09 ---Салам. Ты должен знать основы. Что заголовок локации, например "fan:", должен начинаться с красной строки, и впереди него не должно быть пробелов/отступов и мусора. Код загрузки палитры также ты используешь не правильный. Читай документацию. Вот подправил, чтобы компилятор не ругался:
--- Код: --- loadtiles fan, 1, 300, 12
palettes col,0,0,16
drawtile 300, 4,4
do:loop
fan:
DATALONG $00000000 ' Tile: 0
DATALONG $00000000
DATALONG $00000888
DATALONG $00778777
DATALONG $00778776
DATALONG $00788876
DATALONG $00788876
DATALONG $00788876
DATALONG $00777776 ' Tile: 1
DATALONG $00777777
DATALONG $00000007
DATALONG $00000007
DATALONG $00007777
DATALONG $00777777
DATALONG $00707777
DATALONG $00800007
DATALONG $08080007 ' Tile: 2
DATALONG $08080007
DATALONG $00000007
DATALONG $00000007
DATALONG $000000F7
DATALONG $000000F7
DATALONG $0000000F
DATALONG $00000000
DATALONG $00000000 ' Tile: 3
DATALONG $00000000
DATALONG $88880000
DATALONG $77777000
DATALONG $66667000
DATALONG $06067000
DATALONG $66667000
DATALONG $60667000
DATALONG $66667000 ' Tile: 4
DATALONG $77777000
DATALONG $70000000
DATALONG $70000000
DATALONG $77777000
DATALONG $CA1C7770
DATALONG $77777070
DATALONG $70000080
DATALONG $70000808 ' Tile: 5
DATALONG $70000808
DATALONG $70000000
DATALONG $77000000
DATALONG $7F700000
DATALONG $7F700000
DATALONG $F7000000
DATALONG $00000000
col:
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 0
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 1
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 2
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 3
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
--- Конец кода ---
Сразу советую тебе выносить графику из кода в папку. Большой проект прост сложно будет редачить из-за кучи по сути машинного кода и мусора.
Например, сохраняй через прогу тайл или спрайт в BIN-файл, а его уже подгружай в конце ROM так:
EnemyTL: datafile Enemy.BIN,BIN ' 12 Tiles (24x32, 3x4)
Спрайт отрисовывается так:
'загружается тайлсет спрайта в указанное место
LoadTiles Shells_1,4,236
'присваивается имя и размер спрайта (в тайлах 8x8, максимум 4x4)
Shells1=AddSprite(2,2)
'загружается тайлсет спрайта из указанного места, присваивается номер палитры (0-3)
PropSprite Shells1,236,1
'спрайт перемещается по координатам. Нужно учитывать, что верхний левый угол видимого экрана начинается 128x128 пикселей.
MoveSprite Shells1,0,368
Тайл загружается так:
DRAWTILESINC 128,1,15,1,1 'na4alo tileset,x,y,shir,visot
Есть и другие варианты...
Изучай шаблоны и описания функций в мануале.
--- Конец цитаты ---
Компилятор не ругается но теперь ничего не видно...
TiberiyLTim:
Я же не знаю, что у тебя там должно быть... Вот сделал, чтобы отрисовывались твои тайлы, но я не пойму что там за каракули:
--- Код: ---
Scene_1:
loadtiles fan,6,256
palettes Pal_0,0,0,16
' palettes Pal_1,1,0,16
' palettes Pal_2,2,0,16
' palettes Pal_3,3,0,16
Ink 0
DRAWTILESINC 256,14,12,2,3 'na4alo tileset,x,y,shir,visot
'Loop
While 1
Wend
'EndLoop
fan:
DATALONG $00000000 ' Tile: 0
DATALONG $00000000
DATALONG $00000888
DATALONG $00778777
DATALONG $00778776
DATALONG $00788876
DATALONG $00788876
DATALONG $00788876
DATALONG $00777776 ' Tile: 1
DATALONG $00777777
DATALONG $00000007
DATALONG $00000007
DATALONG $00007777
DATALONG $00777777
DATALONG $00707777
DATALONG $00800007
DATALONG $08080007 ' Tile: 2
DATALONG $08080007
DATALONG $00000007
DATALONG $00000007
DATALONG $000000F7
DATALONG $000000F7
DATALONG $0000000F
DATALONG $00000000
DATALONG $00000000 ' Tile: 3
DATALONG $00000000
DATALONG $88880000
DATALONG $77777000
DATALONG $66667000
DATALONG $06067000
DATALONG $66667000
DATALONG $60667000
DATALONG $66667000 ' Tile: 4
DATALONG $77777000
DATALONG $70000000
DATALONG $70000000
DATALONG $77777000
DATALONG $CA1C7770
DATALONG $77777070
DATALONG $70000080
DATALONG $70000808 ' Tile: 5
DATALONG $70000808
DATALONG $70000000
DATALONG $77000000
DATALONG $7F700000
DATALONG $7F700000
DATALONG $F7000000
DATALONG $00000000
Pal_0:
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 0
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
Pal_1:
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 1
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
Pal_2:
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 2
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
Pal_3:
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 3
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
--- Конец кода ---
Winpaul005:
--- Цитата: TiberiyLTim от 13 Ноября 2017, 21:13:48 ---Я же не знаю, что у тебя там должно быть... Вот сделал, чтобы отрисовывались твои тайлы, но я не пойму что там за каракули:
--- Код: ---
Scene_1:
loadtiles fan,6,256
palettes Pal_0,0,0,16
' palettes Pal_1,1,0,16
' palettes Pal_2,2,0,16
' palettes Pal_3,3,0,16
Ink 0
DRAWTILESINC 256,14,12,2,3 'na4alo tileset,x,y,shir,visot
'Loop
While 1
Wend
'EndLoop
fan:
DATALONG $00000000 ' Tile: 0
DATALONG $00000000
DATALONG $00000888
DATALONG $00778777
DATALONG $00778776
DATALONG $00788876
DATALONG $00788876
DATALONG $00788876
DATALONG $00777776 ' Tile: 1
DATALONG $00777777
DATALONG $00000007
DATALONG $00000007
DATALONG $00007777
DATALONG $00777777
DATALONG $00707777
DATALONG $00800007
DATALONG $08080007 ' Tile: 2
DATALONG $08080007
DATALONG $00000007
DATALONG $00000007
DATALONG $000000F7
DATALONG $000000F7
DATALONG $0000000F
DATALONG $00000000
DATALONG $00000000 ' Tile: 3
DATALONG $00000000
DATALONG $88880000
DATALONG $77777000
DATALONG $66667000
DATALONG $06067000
DATALONG $66667000
DATALONG $60667000
DATALONG $66667000 ' Tile: 4
DATALONG $77777000
DATALONG $70000000
DATALONG $70000000
DATALONG $77777000
DATALONG $CA1C7770
DATALONG $77777070
DATALONG $70000080
DATALONG $70000808 ' Tile: 5
DATALONG $70000808
DATALONG $70000000
DATALONG $77000000
DATALONG $7F700000
DATALONG $7F700000
DATALONG $F7000000
DATALONG $00000000
Pal_0:
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 0
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
Pal_1:
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 1
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
Pal_2:
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 2
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
Pal_3:
DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 3
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
--- Конец кода ---
--- Конец цитаты ---
Спасибо. проблема зародилась, изучая basiegaxorz из этого плейлиста: https://www.youtube.com/playlist?list=PLHx0gZanhY9msn9H-5K5hHYxEhBkndf4M
Навигация
Перейти к полной версии