![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли написать полноценную игру в Delphi???
General © (2003-04-13 20:38:00)
Или обязательно придётся учить ещё и Си? А можно будет как-нибудь не используя WinAPI?..
neuro (2003-04-14 18:57:00) [81]
гм..и я не говорил -- кто круче..я лишь сказал, что дельфи не совсем ООП.Это не значит, что Дельфи сакс, просто другая идеология.
Кстати, не все языки (одинаково полезны =)) делают одно и тоже..Вот тот же ЛИСП многострадальный =).
cyborg (2003-04-14 18:48:00) [82]
neuro я не веду к тому что круче, что нет, а ты это делаешь, насчёт похожести я сказал, что все языки делают одно и тоже, присваивание, запись/чтение, вызовы функций и сравнение только синтаксисом и отличаются.
BP и шестой и седьмой ковырял, ООП я так и непонял ихний, небыло ни литературы, ни учителей, поэтому у меня такой стиль остался процедурный в каком я пишу, ООП я понял только сев за Дельфи, удобная штука, только не по мне :), мне проще закатать всё в записи и обрабатывать простыми процедурами.
А насчёт полноценной игры, дык у меня есть вполне полноценные и писались в Дельфи :). Первая использовала OOP, вторую делаю всётаки в процедурном стиле.
neuro (2003-04-14 18:31:00) [83]
2cyborg: вот это ты зря..Бэйсик никак не похож на C/C++, даже VB.
И потом, ЛИСП тоже =)
Это правильное выражение =) Вот ты юзал когда-нть BP7.x?Типа ООП..Я долго плевался..Все-таки Дельфи до C++ долго еще расти =)
2Darthman: спора нет =)
Чтобы не оффтопить: имхо civevo полноценная игра..вроде как на delphi написана..
Darthman (2003-04-14 18:18:00) [84]
Кстати, с седьмой версии язык уже не обжект паскаль, а ДЕЛФИ :) гы.
О чем спор собственно. Форум-то для делфистов, не так ли?
cyborg (2003-04-14 18:09:00) [85]
Ну естественно в синтаксисе, а так все языки похожи.
Интересное выражение про претендование на ООПность :)
neuro (2003-04-14 17:56:00) [86]
2cyborg:
Различия только в синтаксисе.Вобщем C++ идеальная релизация ООП, поэтому чем ООПешней язык, тем больше он похож на C++.А Object Pascal претендует на ООПшность..Отсюда и подобность.
neuro (2003-04-14 17:01:00) [87]
Насчет рандома на нижней полоске -- ее не показывай и все.
Насчет снопов огня и более реалистичного пламени -- усреднять можно по разному, можно даже по треугольнику.
Для снопов я всавлял на рандоме пару точек повышенной яркости в произвольную строку нижней части экрана.
cyborg (2003-04-14 17:00:00) [88]
>>k-man © (14.04.03 14:01)> Delphi - без VCL!
>>Делфи без VCl это С подобный код. Очень подобный.
Бред три раза, и что тут подобного?
X:=Sprite^.X;
Y:=Sprite^.Y;
if ScreenCoord then
begin
Dec(X,ScreenX);
Dec(Y,ScreenY);
end;
{$B+}
if (not ((X+Sprite^.SrcRect.Right>0)
and (X<WindowWidth)
and (Y+Sprite^.SrcRect.Bottom>0)
and (Y<WindowHeight))) then Exit;
{$B-}
if Sprite^.Surface^.DD7Surface=nil then
begin
if not Create16BitSurfaceFromDataFile(FDD,Sprite^.Surface^.DD7Surface,
Sprite^.Surface^.W,Sprite^.Surface^.H,
Sprite^.Surface^.FileName,Sprite^.Surface^.SpriteNum,
Sprite^.Surface^.Videomemory)
then exit else
if Sprite^.Surface^.BltFlags and DDBLTFAST_SRCCOLORKEY<>0 then
DDSetColorKey(Sprite^.Surface^.DD7Surface,
(Sprite^.Surface^.ColorKeyR or
(Sprite^.Surface^.ColorKeyG shl 8) or
(Sprite^.Surface^.ColorKeyB shl 16))
);
end;
SrcRect:=Sprite^.SrcRect;
if X<0 then begin Dec(SrcRect.Left,X); X:=0; end;
if Y<0 then begin Dec(SrcRect.Top,Y); Y:=0; end;
if X+SrcRect.Right-SrcRect.Left>=WindowWidth then SrcRect.Right:=SrcRect.Left+(WindowWidth-X);
if Y+SrcRect.Bottom-SrcRect.Top>=WindowHeight then SrcRect.Bottom:=SrcRect.Top+(WindowHeight-Y);
Result:=FDDSBuffer.BltFast(X,Y,Sprite^.Surface^.DD7Surface,@SrcRect,Sprite^.Surface^.BltFlags);
if Result=DDERR_SURFACELOST then
begin
Sprite^.Surface^.DD7Surface._Restore;
end;
General (2003-04-14 16:16:00) [89]Вся документация (ну, если не вся, то большая часть) на тему DirectX API в сети с примерами на Си. Перевести, в принципе, несложно. Но даже DirectX SDK на мелкософт.ком написана для С-программистов. Мне стоило немалых трудов найти заголовочные файлы для Object-Pascal"я. Пробовал ставить DelphiX - лажа... Там нормально реализована только работа с DirectDraw. А на нём сейчас далеко не уедешь. И ещё. Может кто-нибудь помочь с реализацией алгоритма огонька? Я сделал примерно так: дан 2-мерный массив 256x256 типа TRGB:
type
trgb = record
r, g, b: byte;
( 60)
Вся документация (ну, если не вся, то большая часть) на тему DirectX API в сети с примерами на Си. Перевести, в принципе, несложно. Но даже DirectX SDK на мелкософт.ком написана для С-программистов. Мне стоило немалых трудов найти заголовочные файлы для Object-Pascal"я. Пробовал ставить DelphiX - лажа... Там нормально реализована только работа с DirectDraw. А на нём сейчас далеко не уедешь. И ещё. Может кто-нибудь помочь с реализацией алгоритма огонька? Я сделал примерно так: дан 2-мерный массив 256x256 типа TRGB:
type
trgb = record
r, g, b: byte;
end;
В цикле нижняя строка заполняется случайным оттенком красного:
flame[i,j].r:=255;
flame[i,j].g:=random(60);
flame[i,j].b:=random(60);
А потом снизу вверх идёт усреднение по каждой компоненте цвета. Пламя получается невыразительным :( Стоит стеной. Снизу ещё виден эффект random"а, а выше плавный градиент от красного к чёрному. Хотелось бы видеть настоящие языки пламени! Частицы, вылетающие из огня! Помогите, а? Хотя, это скорее тема для новой ветки.
Хранитель_7К (2003-04-14 15:45:00) [90]
Хотя частенько в последнее время приходится сишные процедуры в делфи перелопачивать вручную без всяких там конвертеров.
Поэтому по большому я считаю все равно на чем писать
Делфи или Си - ДиректХ или ОпенГЛ
Я сейчас делаю свой проект на Делфях и под ОпенГЛ, вот закончу и попробую сделать на сях или под Директ - это даже интересно будет!
General (2003-04-14 15:40:00) [91]
Я недавно купил книжку DirectX. Графика в проектах Delphi. Занимательно :) Но самому разбираться всё равно сложно. Без WinAPI - в смысле используя приемущества визуального проектирования, когда за создание окон, компонентов будет думать сама дельфя. Может, в трёхмерной игре это не так важно, но всё же. Чистота кода, конечно, страдает, но зато насколько проще!
k-man (2003-04-14 15:35:00) [92]
> Но не люблю я си :)
Да после дельфийских удобств сложно приучить
себя к таким вещам как низкоуровневое программирование.
Хранитель_7К (2003-04-14 14:40:00) [93]
> Делфи без VCl это С подобный код. Очень подобный.
> Поэтому если делать что-то серьезное лучше использовать
> С++
Полностью согласен!
Но не люблю я си :)
Хотя может со временем...
k-man (2003-04-14 14:01:00) [94]
> Delphi - без VCL!
Делфи без VCl это С подобный код. Очень подобный.
Поэтому если делать что-то серьезное лучше использовать С++
Хранитель_7К (2003-04-14 11:57:00) [95]
Я бы задал вопрос по другому - а написал ли кто из присутствующих (отстутствующих) на этом форуме сабж???
Вот в чем вопрос!
Хранитель_7К (2003-04-14 08:02:00) [96]
Delphi - без VCL!
TButton (2003-04-14 07:29:00) [97]
2 Мор
Кроме 3х мерных игр существуют еще и 2Д и 2.5Д! возможно для тебя ето новость но для многих - факт.
Если очень хорошо разобраться с ДелфиХ, можно обойтись и без АПИ. Но всеравно знание АПИ никогда не помешает.
Mop (2003-04-14 04:13:00) [98]
Делфи годится на написание плоских или низко-полигонных трехмерных игр. Без использования VCL скорость намного возрастает. А на С++ можно написать все, что угодно.
Darthman (2003-04-13 23:49:00) [99]
Точно можно. Можно и на OpenGL, Можно и на WinAPI, можно и на DirectX, можно и самому че-нить придумать. Воля ваша!
DrPass (2003-04-13 22:37:00) [100]
Написать можно. WinAPI учить не нужно. А вот DirectX API подучить не помешает