russian ROMhacking
[ Новые сообщения · Участники · Правила форума · Поиск ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Форум ромхакеров » Около темы » Геймдев » Танковый TDS в стиле T.N.K. III/Blazer/Shock Troopers на... (Mega Drive (раб. назв. - Операция "Свинцовый туман"))
Танковый TDS в стиле T.N.K. III/Blazer/Shock Troopers на...
ТомахомэДата: Суббота, 23.12.2017, 06:17 | Сообщение # 16
Генерал-майор
Группа: Проверенные
Сообщений: 486
Статус: Оффлайн
Вот уже и диагональный взгляд готов, вот только с диагональностью полёта у снаряда не очень. Код полёта - здесь:
Код
If bullet_1=1 Then
  ShiftSprite bullet1, 0,-2
    ElseIf bullet_1=2 Then
  ShiftSprite bullet1, 0,2
  ElseIf bullet_1=3 Then
   ShiftSprite bullet1, -2,0
  ElseIf bullet_1=4 Then
   ShiftSprite bullet1, 2,0
  ElseIf bullet_1=5 Then
   ShiftSprite bullet1, -2,-2
  ElseIf bullet_1=6 Then
   ShiftSprite bullet1, 2,-2
  ElseIf bullet_1=7 Then
   ShiftSprite bullet1, -2,2
  ElseIf bullet_1=8 Then
   ShiftSprite bullet1, 2,2
    EndIf



Сообщение отредактировал Томахомэ - Суббота, 23.12.2017, 13:25
 
TNДата: Суббота, 23.12.2017, 20:11 | Сообщение # 17
Подполковник
Группа: Проверенные
Сообщений: 135
Статус: Оффлайн
Наконец-то проект , который хоть как-то развивается , и выглядит как вполне реализуемый.
По такому случаю можно и полностью оригинальные спрайты нарисовать...
Прикрепления: 8028993.png (0.2 Kb) · 5849690.png (0.2 Kb) · 8584510.png (0.3 Kb) · 0894639.png (0.2 Kb)


Сообщение отредактировал TN - Суббота, 23.12.2017, 21:00
 
TLTДата: Суббота, 23.12.2017, 21:18 | Сообщение # 18
Генералиссимус
Группа: Администраторы
Сообщений: 2336
Статус: Оффлайн
Когда я в детстве прошёл Гранаду раз 5, мне пофигу было на сюжет. Сюжет никому не нужен. Кстати, геймплей тоже не считался классным, топовым. Но сейчас понимаю, что игра выдержала проверку временем - стоит как-то переиграть. Но картридж дорогой, т.к. относится к коллекционируемому жанру на SMD...

Белый Тигр - это вторичная поделка. Звучит такое сравнение как "ты такой классный, как бич под теплотрассой", "сюжет Гранады как у никакого фильма".



Вот так.
 
TNДата: Суббота, 23.12.2017, 23:35 | Сообщение # 19
Подполковник
Группа: Проверенные
Сообщений: 135
Статус: Оффлайн
Цитата TLT ()
Когда я в детстве прошёл Гранаду раз 5, мне пофигу было на сюжет. Сюжет никому не нужен. Кстати, геймплей тоже не считался классным, топовым. Но сейчас понимаю, что игра выдержала проверку временем - стоит как-то переиграть. Но картридж дорогой, т.к. относится к коллекционируемому жанру на SMD...

Белый Тигр - это вторичная поделка. Звучит такое сравнение как "ты такой классный, как бич под теплотрассой", "сюжет Гранады как у никакого фильма".

Плюсуюсь под каждым словом. Тонны графоманской писанины не ведут ни к чему...
Ведь ещё сам Кармак когда-то сказал:
Цитата
Сюжет в игре — как сюжет в порнофильме. Он должен быть, но он не так уж важен.

По хорошему , весь сюжет для подобной игры можно уместить в несколько предложений:
Цитата
Диктатор небольшого африканского государства получает в своё распоряжение несколько ядерных боеголовок , выдвигает жёсткие условия и в случае их невыполнения/или военного вторжения на территорию его государства он
угрожает взорвать Москву , Вашингтон , Берлин и Париж.
На экстренно созванном секретном саммите , главы ведущих мировых держав решают провести секретную операцию и отправить хорошо подготовленного коммандоса на одноместном танке оснащённом по последнему слову техники(ГГ) , чтобы ликвидировать диктатора и
предотвратить угрозу Третьей Мирово
й.

И всё. Этого достаточно.
Очень надеюсь , что товарищ Томахомэ задумается над этими словами , а не сгенерит очередную стену бессмысленного текста


Сообщение отредактировал TN - Суббота, 23.12.2017, 23:36
 
TLTДата: Воскресенье, 24.12.2017, 02:48 | Сообщение # 20
Генералиссимус
Группа: Администраторы
Сообщений: 2336
Статус: Оффлайн
В данном случае пусть генерит, всё же ему решать... Главное, чтобы не забыл кнопку "пропустить сюжетную вставку". =)) Помню, начало PSIII - ужас, когда приходится каждый раз ждать по 10 минут. Хоть это и моя любимая jRPG.


Вот так.
 
ТомахомэДата: Воскресенье, 24.12.2017, 05:46 | Сообщение # 21
Генерал-майор
Группа: Проверенные
Сообщений: 486
Статус: Оффлайн
Цитата TLT ()
Главное, чтобы не забыл кнопку "пропустить сюжетную вставку". =))


Это уж разумеется. Всё-таки как-никак во всех аркадных играх, с которыми я сталкивался в своё время на реальных автоматах, такая возможность была.

Цитата TN ()
По такому случаю можно и полностью оригинальные спрайты нарисовать...


Зелёный танк отвёл для вражеского спрайта. Спрайты голубых выстрелов, думаю, в будущем отлично пригодятся для одного из планируемых к введению бонусных оружий - рельсотрона.

И, кстати, наконец, всё-таки какой же в коде полёта снаряда имеется косяк, что при диагональном движении снаряд летит совсем не в ту сторону, куда смотрит ствол? Да и сам диагональный взгляд, как я только сейчас заметил, держится чаще всего лишь пока нажаты одновременно кнопка горизонтального и вертикального движения. Стоит только их отпустить - танк тут же примет чисто горизонтальную либо вертикальную позу.

Также я добавил код код отрисовки спрайта взрыва при попадании по врагу - теперь осталось только заставить это взрыв через секунду или парочку исчезать, а заодно и создать вокруг этого взрыва зону с определённым радиусом, попав в которую, оказавшиеся рядом цели также уничтожаются.

Кстати, раз уж речь в теме уже таки зашла о ресурсах будущей игры - мне в качестве музыки приглянулись мелодии из автоматской Tokyo Wars. В связи с чем интересно мне - существуют ли работающие с VGM программы, способные преобразовывать "виртуальную нотную запись" из одного и того же VGM под разные типы звуковых чипов? А то найти композитора, а уж тем более готового адаптировать музыку из Tokyo Wars для 2612 "на слух", наверняка адски трудно.
Прикрепления: 1831874.rar (13.0 Kb)


Сообщение отредактировал Томахомэ - Воскресенье, 24.12.2017, 10:18
 
ТомахомэДата: Вторник, 26.12.2017, 08:41 | Сообщение # 22
Генерал-майор
Группа: Проверенные
Сообщений: 486
Статус: Оффлайн
Вынес код взрыва после столкновения снаряда с врагом в отдельную субпрограмму:

Код
Explode:
    Frame=0
    Sec=0
    explosion=addsprite(2,2)
    propsprite explosion,273,2
    MoveSprite explosion,SpritePosX(bullet1)-8,SpritePosY(bullet1)-8
'''''''TIMER'''''''''
    Frame++
    if Frame=60 then
    Sec++
    Frame=0
    endif
''''''TIMER END''''''
    If Sec=1 then
'  Frame=0
'  Sec=0
  Hidesprite explosion
  freesprite explosion
    endif
    
    return


Только вот спрайты взрывов по прошествии нескольких секунд исчезать всё равно не хотят.

Само же столкновение происходит так:
Код
' esli pulya kasaetsa protivnika Enemy1
    If Enemy_1>0 Then
    If SpritePosX(bullet1) > SpritePosX(Enemy1)-1 and SpritePosX(bullet1)+8 < SpritePosX(Enemy1)+14+8 Then 'Left and Right Enemy
    If SpritePosY(bullet1) > SpritePosY(Enemy1)-1 and SpritePosY(bullet1)+8 < SpritePosY(Enemy1)+14+8 Then 'Up and Down Enemy
  gosub Explode
  'pulya skrivaetsya i deactiviruetstya
  MoveSprite bullet1,0,480
   bullet_1=0
  'otnimaetsa jizn u protivnika i on peremeshaetsya
  Enemy_1--
  If Enemy_1>0 Then
   MoveSprite Enemy1,128+RND(304),128+RND(112)
  Else
   MoveSprite Enemy1,0,0
  EndIf
    EndIf
    EndIf
    EndIf


Сообщение отредактировал Томахомэ - Вторник, 26.12.2017, 08:43
 
TLTДата: Вторник, 26.12.2017, 16:24 | Сообщение # 23
Генералиссимус
Группа: Администраторы
Сообщений: 2336
Статус: Оффлайн
Ты такой мусор разводишь в коде что просто капец будет... Я же тебе показал как нужно создавать спрайты?

Создавай их заранее в начале сцены до цикличного кода, и прячь мувом за пределы экрана. А в нужный момент вызывай тем же перемещением и опять скрывай. Если ты создаешь спрайт взрыва, каждый раз, то он у тебя будет накапливаться, и через 80 взрывов будет спрайт лимит ошибка. В BEX неправильно работает код уничтожения спрайтов freesprite - им не пользуйся, он также рано или поздно вызовет ошибку лимита спрайтов. Там нужно разбираться, вроде первый спрайт не уничтожается или что-то типа, уже не помню.

Код ограничения границ тоже не правильно реализован. Нужно ограничивать срабатывание начисления X/Y, если больше границ экрана, а не возвращать танк. Из-за это у тебя он дёргается.

Код диаганального движения также неправилен. Вернее он изначально заложен тупо, что конфликтует.

Табами делай отступы, размечай блоки кода, комментируй. В будущем будет такая свалка...



Вот так.
 
ТомахомэДата: Среда, 27.12.2017, 06:17 | Сообщение # 24
Генерал-майор
Группа: Проверенные
Сообщений: 486
Статус: Оффлайн
Цитата TLT ()
Создавай их заранее в начале сцены до цикличного кода, и прячь мувом за пределы экрана. А в нужный момент вызывай тем же перемещением и опять скрывай.


Применил. Теперь взрыв действительно на экране только 1 одновременно. Со временем он, правда, и не думает исчезать. Зато после попадания по врагу тут же перемещается на его место. Код заготовки взрыва:
Код
explosion=addsprite(2,2)
    propsprite explosion,273,2
    MoveSprite explosion,0,480

Вызова подпрограммы взрыва при попадании:
Код
' esli pulya kasaetsa protivnika Enemy1
    If Enemy_1>0 Then
    If SpritePosX(bullet1) > SpritePosX(Enemy1)-1 and SpritePosX(bullet1)+8 < SpritePosX(Enemy1)+14+8 Then 'Left and Right Enemy
    If SpritePosY(bullet1) > SpritePosY(Enemy1)-1 and SpritePosY(bullet1)+8 < SpritePosY(Enemy1)+14+8 Then 'Up and Down Enemy
  gosub Explode
  'pulya skrivaetsya i deactiviruetstya
  MoveSprite bullet1,0,480
   bullet_1=0
  'otnimaetsa jizn u protivnika i on peremeshaetsya
  Enemy_1--
  If Enemy_1>0 Then
   MoveSprite Enemy1,128+RND(304),128+RND(112)
  Else
   MoveSprite Enemy1,0,0
  EndIf
    EndIf
    EndIf
    EndIf

И самой подпрограммы:
Код
Explode:
    Frame=0
    Sec=0
'    explosion=addsprite(2,2)
'    propsprite explosion,273,2
    MoveSprite explosion,SpritePosX(bullet1)-8,SpritePosY(bullet1)-8
'''''''TIMER'''''''''
    Frame++
    if Frame=60 then
    Sec++
    Frame=0
    endif
''''''TIMER END''''''
    If Sec>1 then
'  Frame=0
'  Sec=0
  MoveSprite explosion,0,480
'  HideSprite explosion
    endif
    
    return


Цитата TLT ()
Код ограничения границ тоже не правильно реализован. Нужно ограничивать срабатывание начисления X/Y, если больше границ экрана...


Здесь ввести ограничивающий код мешает хитрожопистая реализация управления:
Код
j=joypad(0)

    x=j.3-j.2
    y=j.1-j.0

    if x then
  tank_x+=x
  propsprite tank,260+hfliptile(j.2),0
    endif
    if y then
  tank_y+=y
  propsprite tank,256+vfliptile(j.1),0
    endif
    if x [and] y then
  propsprite tank,264+hfliptile(j.2)+vfliptile(j.1),0
    endif
    
    movesprite tank,tank_x,tank_y


Разные варианты я перепробовал по ограничению начисления - и такой:
Код
    If tank_x>128 [and] tank_x<432 then
    If tank_y>128 [and] tank_y<336 then
    movesprite tank,tank_x,tank_y
    endif
    endif

(тогда вставший на грань экрана танк вообще переставал двигаться в какую либо сторону), и такой:
Код
    If tank_x<=128 [and] x<0 Then x=0
    If tank_x>=432 [and] x>0 Then x=0
    If tank_y<=128 [and] y<0 Then y=0
    If tank_y>=336 [and] y>0 Then x=0

(вообще никак не действует, рамки стались такими же "прозрачными", как в изначальном примере), в итоге в отвечающем за рамки коде пришлось всё вернуть, как было.


Сообщение отредактировал Томахомэ - Среда, 27.12.2017, 06:29
 
TLTДата: Среда, 27.12.2017, 14:52 | Сообщение # 25
Генералиссимус
Группа: Администраторы
Сообщений: 2336
Статус: Оффлайн
Я бы мог в течение недельки полностью переработать управление и пр. Но тут нужно знать то, как ты будешь реализовать локацию. Если она у тебя будет в рамках 512x480, то проблем с картой не должно быть. Если ты будешь делать большие уровни (что даже для меня пока очень сложно), то придётся управление делать после внедрения карт столкновений и тайловых масок уровня.

Иначе всё, что я сделаю будет впустую.



Вот так.
 
ТомахомэДата: Среда, 27.12.2017, 15:12 | Сообщение # 26
Генерал-майор
Группа: Проверенные
Сообщений: 486
Статус: Оффлайн
Цитата TLT ()
Если она у тебя будет в рамках 512x480, то проблем с картой не должно быть. Если ты будешь делать большие уровни (что даже для меня пока очень сложно), то придётся управление делать после внедрения карт столкновений и тайловых масок уровня.


В идеале хотелось бы, конечно, большие уровни сделать, но на столь ранней фазе можно обойтись пока и маленькими картами, а там, глядишь, не стыдно будет и камрадов с devster и spritesmind о помощи попросить в создании большого уровня.
 
TNДата: Четверг, 28.12.2017, 13:46 | Сообщение # 27
Подполковник
Группа: Проверенные
Сообщений: 135
Статус: Оффлайн
Кстати , раз уж на то пошло , могу прорисовать графику для уровня блоками(16х16).
Только хотелось бы знать , какие нужны. Пока что сделаю как в Battle City: Кирпичи , металл , лес , вода , дорога.
 
ТомахомэДата: Четверг, 28.12.2017, 14:00 | Сообщение # 28
Генерал-майор
Группа: Проверенные
Сообщений: 486
Статус: Оффлайн
Цитата TN ()
Пока что сделаю как в Battle City: Кирпичи , металл , лес , вода , дорога.


Давай, отлично. Потом с охотой расскажу, какая графика для локаций на более поздних фазах разработки (когда и до возможности строить большие уровни дело дойдёт) будет нужна. А заодно и раскрою кое-какие сюжетные подробности.
 
TLTДата: Четверг, 28.12.2017, 14:36 | Сообщение # 29
Генералиссимус
Группа: Администраторы
Сообщений: 2336
Статус: Оффлайн
Томахомэ, скинь в ЛС последнюю версию шаблона.


Вот так.
 
TNДата: Четверг, 28.12.2017, 16:07 | Сообщение # 30
Подполковник
Группа: Проверенные
Сообщений: 135
Статус: Оффлайн
Цитата Томахомэ ()
Давай, отлично.

Готово
Прикрепления: 8724268.png (0.4 Kb)
 
Форум ромхакеров » Около темы » Геймдев » Танковый TDS в стиле T.N.K. III/Blazer/Shock Troopers на... (Mega Drive (раб. назв. - Операция "Свинцовый туман"))
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск: