![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
А не устраивать ли нам небольшие конкурсы по кодингу? (ч.4)
OSokin © (2005-05-06 19:09:00)
Страницы: < 1 2 ... 7 8 9 10 11 12 13 ... 31 32 >
Будут ли еще конкурсы?
Кефир87 (2005-08-15 13:06:00) [181]А нахрен все это надо? У меня только Windows, Messages, OpenGL а там в основном объявления функций и типов 8) Нафик ВЦЛ!
Antonn (2005-08-15 12:52:00) [182]Sphinx © (15.08.05 12:45) [455]
Придется даже без TList обходится :)
я вот вместо него TMemoryStream надумал использовать:)
> 3) DirectInput = + 85 кб
вообще нету
Sphinx (2005-08-15 12:45:00) [183]Самые "тяжелые" библиотеки на мой взгляд (размер примерный)
1) SysUtils (включает в себя Classes) = +75 кб
2) Classes = +45 кб
3) DirectInput = + 85 кб
Придется даже без TList обходится :)
Antonn (2005-08-15 12:24:00) [184]Sapersky (15.08.05 11:12) [453]
а оно мне надо? :)
канвас - средство моего самовыражения:))
Sapersky (2005-08-15 11:12:00) [185]в размер не впишусь, канвас много тянет
Уж сколько раз твердили миру:
http://prdownloads.sourceforge.net/skinner/FastLib.zip?download
Гораздо функциональнее (фактически "карманный фотошоп") и даёт минимальный размер exe. Там в комплекте VCL-пример, но есть ещё WinAPI-примеры на DelphiGFX:
http://delphigfx.mastak.ru/samples/samp30.rar, samp32, samp33, samp71
Хотя, предупреждаю сразу, документации никакой нет. Глюки - есть. Общая устойчивость к ним - слабая (например, вылетает при загрузке файла, если этого файла нет). Так что чертыхания будет гарантированно больше, чем с TBitmap.
Antonn (2005-08-15 08:29:00) [186]XProger © (14.08.05 20:33) [448]
Antonn, "в размер не впишусь, канвас много тянет" а ты шутник... ;)
Просто доставляет удовольствие чертыхаться с канвасом:)
И мне главное не победа, а участие(хотя второе/третье место очень даже не плохо:))))
Кефир87 (2005-08-15 00:04:00) [187]Каждый лишний килобайт - трагедия
Darthman (2005-08-14 21:37:00) [188]Lakmus: ничего общего с ПМ2. Делал похоже на сценарий WC3. Графику рисовал не сам, возможно, отсюда и впечатление такое.
Zak3D[@Tm] (2005-08-14 21:08:00) [189]Кефир87
Это только по началу такой скачёк веса, далее он будет расти не так стремительно =).
XProger (2005-08-14 20:33:00) [190]NewWonder, а без попыток "что-либо" сделать ты никогда не научишься это "что-либо" делать...
Antonn, "в размер не впишусь, канвас много тянет" а ты шутник... ;)
grouzd[E]v (2005-08-14 20:17:00) [191][446] Кефир87 © (14.08.05 19:49)
> Пол дела сделано... почти 16 кб...
Гм... имхо код еще "немного" вырастет =))
---
... we are walking on a thin line and you better avoid the risk ...
Кефир87 (2005-08-14 19:49:00) [192]
program race;
uses
Windows, OpenGL, Messages;
const
Class_name = 'race_wnd';
var
msg : TMsg;
wnd_main : HWND;
DC : HDC;
RC : HGLRC;
do_exit : Boolean = False;
procedure Render;
begin
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
SwapBuffers(DC);
end;
function WindowProc(hwnd, msg, wparam, lparam: longint): longint; stdcall; //îáðàáîò÷èê ñîîáùåíèé
begin
Result := DefWindowProc(hwnd, msg, wparam, lparam);
case Msg of
WM_DESTROY:begin
do_exit := True;
PostQuitMessage(0);
end;
end;
end;
function CreateWnd(w,h:Integer):HWND;
var
wc:TWndClass;
begin
with wc do
begin
style := 0;
lpfnWndProc := @WindowProc;
cbClsExtra := 0;
cbWndExtra := 0;
hInstance := 0;
hIcon := 0;
hCursor := 0;
hbrBackground := COLOR_BTNFACE + 1;
lpszMenuName := Class_name;
lpszClassName := Class_name;
end;
RegisterClass(wc);
Result := CreateWindow(Class_name,
'Race',
WS_OVERLAPPEDWINDOW or WS_CLIPSIBLINGS or WS_CLIPCHILDREN,
(GetSystemMetrics(SM_CXSCREEN)-w) div 2,
(GetSystemMetrics(SM_CYSCREEN)-h) div 2,
w,
h,
0,
0,
0,
nil);
ShowCursor(False);
if Result0 then
begin
ShowWindow(Result, SW_NORMAL);
UpdateWindow(Result);
end;
end;
procedure DoOpenGL;
var
pfd : TPixelFormatDescriptor;
n : Integer;
begin
FillChar(pfd, sizeof(pfd), 0);
with pfd do
begin
nSize := sizeof(pfd);
nVersion := 1;
dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;
iPixelType := PFD_TYPE_RGBA;
cColorBits := 24;
cDepthBits := 16;
iLayerType := PFD_MAIN_PLANE;
end;
n := ChoosePixelFormat(DC, @pfd);
SetPixelFormat(DC, n, @pfd);
DescribePixelFormat(DC, n, sizeof(pfd), pfd);
RC := wglCreateContext(DC);
wglMakeCurrent(DC, RC);
end;
procedure NoOpenGL;
begin
wglMakeCurrent(0, 0);
wglDeleteContext(RC);
end;
begin
wnd_main := CreateWnd(640, 480);
DC := GetDC(wnd_main);
DoOpenGL;
while msg.messageWM_QUIT do
begin
if(PeekMessage(msg, 0, 0, 0, PM_NOREMOVE)) then
begin
if(GetMessage(msg, 0, 0, 0))then
begin
TranslateMessage(msg);
DispatchMessage(msg);
end;
end
else
Render();
end;
NoOpenGL;
end.
Пол дела сделано... почти 16 кб...
NewWonder (2005-08-14 17:43:00) [193]Никаких внешних файлов и exe на 128 Кб? Это интересненько. У меня ничего путного (на фоне других) не получится, но попытка - не пытка. Буду пробовать. Так что записывайте меня в участники :)
Sphinx (2005-08-14 14:39:00) [194]2 Zak3D[@Tm] ©
Как раз в dll я его пихаю (упорно сопротивляется надо сказать :))
Но код библиотеки я скрывать не буду...если допишу хотябы половину чего задумал до ума...
>"То есть игра должна целиком размещаться в одном EXE файле."
У меня будет тогда
1) game.exe
2) engine3d.dll
Хотя, до срока сдачи еще ой как долго...может и перенесу из библиотеки в исполняемый всё...
Zak3D[@Tm] (2005-08-14 14:29:00) [195]Почему же?
Собственные движки использовать можно и нужно, но если они не закрыты в Длл.
Sphinx (2005-08-14 14:22:00) [196]То есть исспользование собственных движков, даже с открытым кодом запрещено...жаль...
И еще тут играет огромную роль компилятор...
У меня библиотека движка (который только меши грузить пока умеет и рендерить их) под FPC "весит" в два раза больше чем в D7 :(
Я тут посчитал...если буду учавствовать...баллов 6 штрафа точно огребу %)
Zak3D[@Tm] (2005-08-14 12:56:00) [197]Нет. Имеются ввиду библиотеки выполненые в *.pas'ах.
Стандартные это теже Opengl,DirectX... Длл-ки.
//
сжатия его UPX'ом.
совершенно не нравится мне этот пункт...
\\
Почему?
Можно более чем 128 килов использовать =).
Antonn (2005-08-14 12:25:00) [198]6)Игра должна быть выполнена без использования каких-либо внешних файлов кроме стандартных. То есть игра должна целиком размещаться в одном EXE файле.
Полная свобода использования посторонних библиотек (с учетом пункта #6).
Т.е. библиотеки зашивать в ЕХЕ? И что значит "стандартных"? Это физику на ODE делать будут?
сжатия его UPX'ом.
совершенно не нравится мне этот пункт...
Antonn (2005-08-14 12:20:00) [199]блин, проблеммы с сайтом есть, переодически получаю как в [436]
Девятый конкурс по "программированию игр в Паскале-язычных средах".
Жанр: Гонки.
Общий взгляд:
1)Игра представляет собой «гонки по не прямым трассам».
2)В игре должны фигурировать исключительно четырёхколёсные средства передвижения (Автомобили).
3)Физика должна максимально соответствовать физике реальных современных машин. То есть никаких фантастических возможностей.
4)На карте также должны присутствовать «посторонние» предметы.
5)Наличие компьютерных оппонентов.
6)Игра должна быть выполнена без использования каких-либо внешних файлов кроме стандартных. То есть игра должна целиком размещаться в одном EXE файле.
7)Допускается использование только заключённых в ЕХЕ файл и процедурных (генерируемых в процессе работы программы) ресурсов.
8)Максимальный размер ЕХЕ файла - 128Кб. Конечным размером считается вес ЕХЕ файла после удаления из него всех лишних ресурсов (Debug инфы и пр.) и сжатия его UPX'ом.
(Каждый из этих пунктов обязателен к выполнению! Не выполненые пункты наказываются штрафом в размере 3 баллов.
Немного о деталях:
Игра может быть выполнена как в 2D, так и в 3D.
Полная свобода использования посторонних библиотек (с учетом пункта #6).
В плане управления полная свобода =).
Похожесть: любая игра данного жанра.
Все работы будут приниматься на сайте code.rpro.ru
Закачка на сайт будет доступна с 10.09.2005
Конкурс продлиться до 1 октября 2005 года включительно. (С) Ctrl+C/Ctrl+V
Zak3D[@Tm] (2005-08-14 12:04:00) [200]Проблему регистрации решил =)..кажется...
у меня получилось..