Автор Тема: Проблема в Програмировании (на BasiEgaXorz)  (Прочитано 3120 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Winpaul005

  • Пользователь
  • Сообщений: 3
    • Просмотр профиля
У меня такая проблема в програмировании Игры для 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

  • Пользователь
  • Сообщений: 2538
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
Проблема в Програмировании (на BasiEgaXorz)
« Ответ #1 : 12 Ноябрь 2017, 19:47:45 »
 может быть сначала должна идти дата секция, а уже потом код самой программы? в моем PB так. сначала идут метки с данными. потом код, их использующий. либо можно сначала объявить что существуют такие-то метки. тогда при чтении программы - она сама раздуплится что к чему. при таком объявлении все равно какая очередность.

Оффлайн TiberiyLTim

  • Пользователь
  • Сообщений: 357
  • Пол: Мужской
  • -=TLT=-
    • Просмотр профиля
Проблема в Програмировании (на BasiEgaXorz)
« Ответ #2 : 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

Есть и другие варианты...

Изучай шаблоны и описания функций в мануале.

Оффлайн Winpaul005

  • Пользователь
  • Сообщений: 3
    • Просмотр профиля
Проблема в Програмировании (на BasiEgaXorz)
« Ответ #3 : 13 Ноябрь 2017, 19:02:44 »
Салам. Ты должен знать основы. Что заголовок локации, например "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

  • Пользователь
  • Сообщений: 357
  • Пол: Мужской
  • -=TLT=-
    • Просмотр профиля
Проблема в Програмировании (на BasiEgaXorz)
« Ответ #4 : 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

Оффлайн Winpaul005

  • Пользователь
  • Сообщений: 3
    • Просмотр профиля
Проблема в Програмировании (на BasiEgaXorz)
« Ответ #5 : 04 Апрель 2018, 11:03:28 »
Я же не знаю, что у тебя там должно быть... Вот сделал, чтобы отрисовывались твои тайлы, но я не пойму что там за каракули:


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