LINUX.ORG.RU
ФорумTalks

R-type like game


0

1

Будучи любителем исходной игры, переписываю ее под linux, внося то, чего мне хватало в исходной игре (rtype под linux)

Уже есть первый прототип

https://github.com/vladtcvs/rt4lin

Требуется SDL, SDL_ttf, SDL_image, SDL_draw, libpng

Ресурсы я выдергивать не стал, ибо некопирайтно это

★★★★★

Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от xsektorx

сунь в убунту стор

зачем так грубо то?

cvs-255 ★★★★★
() автор топика

Молодец! Когда планируешь закончить? Оказывается я играл в r-type на моём ZX-Spectrum'e :)

hope13 ★★★
()

И да, откуда вообще берется $CXX?

Впили хотя бы

export CXX=gcc
Xintrea ★★★★★
()
Ответ на: комментарий от cvs-255

Точнее, у тебя плюсы...

В общем, под дэбой компиляция пойдет так:

export CXX=g++
$CXX -L/usr/lib -L/usr/local/lib -lSDL -lSDL_ttf -lSDL_image -I/usr/include/SDL -o rtype2 main.cc -lSDL_draw-1.2 -lpng

Если конечно поставить SDL_draw с соурчфоржа, ибо в дэбе в репозитариях его нет.

Ну и либа эта недоконфигуренная, так что после установки надо:

ln -s /usr/local/lib/libSDL_draw-1.2.so.0 /usr/local/lib/libSDL_draw-1.2.so

А то находиться линковщиком не будет.

Ну и как итог - твой говнокод сегфолтится даже не успевая создать окно.

$ ./rtype2
Ошибка сегментирования
Xintrea ★★★★★
()
Ответ на: комментарий от cvs-255

Под отладчиком:

Program received signal SIGSEGV, Segmentation fault.[br]0xb7f0fd08 in TTF_SizeUNICODE () from /usr/lib/i386-linux-gnu/libSDL_ttf-2.0.so.0

Вылетает на строке
TTF_Init();

Потому что нормальные люди вначале инитят саму SDL, а только потом SDL_ttf.

Xintrea ★★★★★
()
Последнее исправление: Xintrea (всего исправлений: 1)

Горизонтальный скролл-шутер

Ненужно.

Manhunt ★★★★★
()
Ответ на: комментарий от Xintrea

Потому что нормальные люди вначале инитят саму SDL, а только потом SDL_ttf.

Нормальные люди вообще sdl_ttf не используют. Зачем нужен этот неудобный костыль вообще?

andreyu ★★★★★
()

Сразу после запуска:


Program received signal SIGSEGV, Segmentation fault.
0x00007ffff793f095 in TTF_SizeUNICODE () from /usr/lib/libSDL_ttf-2.0.so.0
(gdb) bt full
#0 0x00007ffff793f095 in TTF_SizeUNICODE () from /usr/lib/libSDL_ttf-2.0.so.0
No symbol table info available.
#1 0x00007ffff793f48a in TTF_RenderUNICODE_Solid () from /usr/lib/libSDL_ttf-2.0.so.0
No symbol table info available.
#2 0x00007ffff793f902 in TTF_RenderText_Solid () from /usr/lib/libSDL_ttf-2.0.so.0
No symbol table info available.
#3 0x0000000000403ad5 in main () at main.cc:581
it2 = <error reading variable it2 (Cannot access memory at address 0x10)>
ns = 1
StatusString = «Count: 0 Ammo: 0 Objects: 1 Angry: 0», '\000' <repeats 955 times>
it =
screen = 0x641fc0
enemy_timer_id = 0x6a6310
event = {type = 0 '\000', active = {type = 0 '\000', gain = 96 '`', state = 96 '`'}, key = {type = 0 '\000',
which = 96 '`', state = 96 '`', keysym = {scancode = 0 '\000', sym = 4210142, mod = KMOD_NONE,
unicode = 31600}}, motion = {type = 0 '\000', which = 96 '`', state = 96 '`', x = 0, y = 0, xrel = 15838,
yrel = 64}, button = {type = 0 '\000', which = 96 '`', button = 96 '`', state = 0 '\000', x = 0, y = 0},
jaxis = {type = 0 '\000', which = 96 '`', axis = 96 '`', value = 0}, jball = {type = 0 '\000', which = 96 '`',
ball = 96 '`', xrel = 0, yrel = 0}, jhat = {type = 0 '\000', which = 96 '`', hat = 96 '`',
value = 0 '\000'}, jbutton = {type = 0 '\000', which = 96 '`', button = 96 '`', state = 0 '\000'}, resize = {
type = 0 '\000', w = 0, h = 4210142}, expose = {type = 0 '\000'}, quit = {type = 0 '\000'}, user = {
type = 0 '\000', code = 0, data1 = 0x403dde <__static_initialization_and_destruction_0(int, int)+59>,
data2 = 0x7ffff72c7b70}, syswm = {type = 0 '\000',
msg = 0x403dde <__static_initialization_and_destruction_0(int, int)+59>}}
font = 0x0
imgTxt = 0x2
txtRect = {x = 10, y = 405, w = 0, h = 0}
fColor = {r = 245 '\365', g = 245 '\365', b = 245 '\365', unused = 0 '\000'}
my_timer_id = 0x6a6340
Ага. font.ttf в папке нету

Bad_ptr ★★★★★
()
Последнее исправление: Bad_ptr (всего исправлений: 1)
Ответ на: комментарий от Bad_ptr

Исправил это, и избавился от SDL_draw

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

поправил. Как теперь?

Ты действительно думаешь, что люди будут собирать через вотэто вот:

CXX=clang++


?

Оно собираться не собирается. Ошибка:

$ ./compile.sh
main.cc:1:10: fatal error: 'list' file not found[br]#include <list>
         ^
1 diagnostic generated.



Компиляция через g++ прошла, игруля запустилась.

Ошибки по геймдеву:

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

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

3. Взрывы глючат если подбивается ракета в правой части экрана.

4. Все в одном cc-файле - это какаято дошкольная поделка. Никакого проектирования не наблюдается. Игра эта обречена не беззвестность.

5. Общее впечатление уныло.

Xintrea ★★★★★
()
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от Xintrea

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

Это легко варьируемо, но так удобнее стрелять в выше/нижелетящие корабли

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

поправлю

3. Взрывы глючат если подбивается ракета в правой части экрана.

Как именно глючат?

4. Все в одном cc-файле - это какаято дошкольная поделка. Никакого проектирования не наблюдается. Игра эта обречена не беззвестность.

Как устаканится немного, разделю

5. Общее впечатление уныло.

я работаю над этим

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 2)

Вот, новый вариант. теперь можно выбирать, как стрелять - горизонтально, или как было

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

как то не выходит так

ага. перепутал, это в Makefile так можно написать :)

Bad_ptr ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.