Войти
ПроектыФорумКонкурсы

Tube Space ver 10.04.2011 (для конкурса) Вроде победил (2 стр)

Страницы: 1 2 3 4 5 Следующая »
#15
12:35, 2 фев. 2011

nano
> да и как ты так на дельфа, сделал такой маленький объем? давно хотел узнать))
Я конечно понимаю что ты прикалываешся но всетаки.
Уменя из этого кода 10 килобайт получается, если Windwos и Messages добавить то 11 килобайт. Учитывая что System.pas и SysInit.pas урезаны. + upx.exe то 6 килобайт получится. если System.pas и SysInit.pas вообще очистить то еще меньше, но тогда за функциональность Dеlphi я не ручаюсь.

//*********************************************
// Panteleymonov Aleksandr Konstantinovich 2001
//    Delphi 3.0
//*********************************************

program nill;

{$A-,B-,C-,D-,E-,F-,G-,H+,I-,J+,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y-,Z1}
{$IMPORTEDDATA OFF}

{$R *.res}

Type
  TWndClass = packed record
    style: LongWord;
    lpfnWndProc: Pointer;
    cbClsExtra: Integer;
    cbWndExtra: Integer;
    hInstance: LongWord;
    hIcon: LongWord;
    hCursor: LongWord;
    hbrBackground: LongWord;
    lpszMenuName: PAnsiChar;
    lpszClassName: PAnsiChar;
  end;

  TPoint = packed record
    X: Longint;
    Y: Longint;
  end;

  TMSG = packed record
    hwnd: LongWord;
    message: LongWord;
    wParam: Longint;
    lParam: Longint;
    time: LongWord;
    pt: TPoint;
  end;

{$EXTERNALSYM RegisterClass}
function RegisterClass(const lpWndClass: TWndClass): Word; stdcall;
 external 'user32.dll' name 'RegisterClassA';
function DefWindowProc(hWnd: LongWord; Msg: LongWord; wParam: Longint;
 lParam: Longint): Longint; stdcall; external 'user32.dll' name 'DefWindowProcA';
function CreateWindowEx(dwExStyle: LongWord; lpClassName: PChar;
  lpWindowName: PChar; dwStyle: LongWord; X, Y, nWidth, nHeight: Integer;
  hWndParent: LongWord; hMenu: LongWord; hInstance: LongWord;
  lpParam: Pointer): LongWord; stdcall; external 'user32.dll' name 'CreateWindowExA';
function DestroyWindow(hWnd: LongWord): LongBool; stdcall;
 external 'user32.dll' name 'DestroyWindow';
function MessageBox(hWnd: LongWord; lpText, lpCaption: PChar;
 uType: LongWord): Integer; stdcall; external 'user32.dll' name 'MessageBoxA';
function ShowWindow(hWnd: LongWord; nCmdShow: Integer): LongBool; stdcall;
 external 'user32.dll' name 'ShowWindow';
procedure PostQuitMessage(nExitCode: Integer); stdcall;
 external 'user32.dll' name 'PostQuitMessage';
function GetModuleHandle(lpModuleName: PChar): LongWord; stdcall;
 external 'kernel32.dll' name 'GetModuleHandleA';
function LoadCursor(hInstance: LongWord; lpCursorName: PAnsiChar): LongWord; stdcall;
 external 'user32.dll' name 'LoadCursorA';
function SetFocus(hWnd: LongWord): LongWord; stdcall; external 'user32.dll' name 'SetFocus';
function PeekMessage(var lpMsg: TMsg; hWnd: LongWord;
  wMsgFilterMin, wMsgFilterMax, wRemoveMsg: LongWord): LongBool; stdcall;
 external 'user32.dll' name 'PeekMessageA';
function TranslateMessage(const lpMsg: TMsg): LongBool; stdcall;
 external 'user32.dll' name 'TranslateMessage';
function DispatchMessage(const lpMsg: TMsg): Longint; stdcall;
 external 'user32.dll' name 'DispatchMessageA';
function WaitMessage: LongBool; stdcall; external 'user32.dll' name 'WaitMessage';
function UnregisterClass(lpClassName: PChar; hInstance: HINST): LongBool; stdcall;
 external 'user32.dll' name 'UnregisterClassA';

const
  {$EXTERNALSYM CS_HREDRAW}
  CS_HREDRAW = LongWord(2);
  {$EXTERNALSYM CS_VREDRAW}
  CS_VREDRAW = LongWord(1);
  {$EXTERNALSYM CS_OWNDC}
  CS_OWNDC = LongWord(1);
  {$EXTERNALSYM COLOR_WINDOW}
  COLOR_WINDOW = 5;  
  {$EXTERNALSYM IDC_ARROW}
  IDC_ARROW = PAnsiChar(32512);
  
  {$EXTERNALSYM SW_MINIMIZE}
  SW_MINIMIZE = 6;

  {$EXTERNALSYM WM_ACTIVATE}
  WM_ACTIVATE         = $0006;
  {$EXTERNALSYM WA_INACTIVE}
  WA_INACTIVE = 0;
  {$EXTERNALSYM WM_CLOSE}
  WM_CLOSE            = $0010;
  {$EXTERNALSYM WM_QUIT}
  WM_QUIT             = $0012;  

  {$EXTERNALSYM WS_EX_TOPMOST}
  WS_EX_TOPMOST = 8;
  {$EXTERNALSYM WS_POPUP}
  WS_POPUP = LONGWORD($80000000);
  {$EXTERNALSYM WS_VISIBLE}
  WS_VISIBLE = $10000000;
  {$EXTERNALSYM SW_SHOW}
  SW_SHOW = 5;

  {$EXTERNALSYM PM_REMOVE}
  PM_REMOVE = 1;

var
 WndName:Pchar;
 Handle:longint;
 hInstance:HINST;
 WNDClass:TWndClass=(style:CS_HREDRAW or CS_VREDRAW or CS_OWNDC;
  lpfnWndProc:nil;
  cbClsExtra:0;cbWndExtra:0;
  hInstance:0;hIcon:0;
  hbrBackground:COLOR_WINDOW;
  lpszMenuName:nil;
  lpszClassName:'WindowClass');
 finished:boolean;
 msg:TMsg;

procedure ErrorMes(Mes:pchar);
begin
MessageBox(0,mes,'Error!',16);
halt;
end;

function WndProc(hWnd:LongWord;Msg:LongWord;wParam:Longint;lParam:Longint):Longint;Stdcall;
begin
case (Msg) of
WM_ACTIVATE:begin
 if wParam and $FFFF and WA_INACTIVE<>0 then ShowWindow(handle,SW_Minimize);
 Result:=DefWindowProc(hWnd,Msg,wParam,lParam);
end;
WM_CLOSE:begin
 PostQuitMessage(0);
 Result:=0;
end;
 else
  Result:=DefWindowProc(hWnd,Msg,wParam,lParam);
 end;
end;

procedure MyCreate;
begin
end;

procedure MyDestroy;
begin
end;

begin

  WndName:='Nill';
  HInstance:=GetModuleHandle(nil);
  wndClass.lpfnWndProc:=@WndProc;
  wndClass.hInstance:=hInstance;
  wndClass.hCursor:=LoadCursor(0, IDC_ARROW);
  wndClass.lpszClassName:='Nill';
  if RegisterClass(wndClass)=0 then ErrorMes('Failed to register the window class!');
  Handle:=CreateWindowEx(WS_EX_TOPMOST,wndClass.lpszClassName,
   WndName,WS_POPUP or WS_VISIBLE,10,10,200,200,0,0,HInstance,nil);
  if Handle=0 then ErrorMes('Unable to create window!');
  MyCreate;

  ShowWindow(Handle,SW_SHOW);
  SetFocus(Handle);
  finished:=false;
  while not finished do begin
  if PeekMessage(msg, 0, 0, 0, PM_REMOVE) then begin
  if (msg.message=WM_QUIT) then finished:=True
   else begin
    TranslateMessage(msg);
    DispatchMessage(msg);
   end;
  end else begin
   WaitMessage;
  end;
  end;

  MyDestroy;
  if ((Handle<>0) and (not DestroyWindow(Handle))) then
   ErrorMes('Unable to destroy window!');
  if (not UnRegisterClass(wndClass.lpszClassName,hInstance)) then
   ErrorMes('Unable to unregister window class!');

end.

#16
14:30, 4 фев. 2011

cherepets
> А чего так темно? Это хоррор-гонки, хех?
люди помогите, почему обьекты в дали темные!
с этими параметрами вроде освещение не должно затухать:
glLightF(GL_LIGHT0,GL_CONSTANT_ATTENUATION,1);
glLightF(GL_LIGHT0,GL_LINEAR_ATTENUATION,0);
glLightF(GL_LIGHT0,GL_QUADRATIC_ATTENUATION,0);

Второй планеты совсем не видно
Проблема Света | Tube Space ver 10.04.2011 (для конкурса) Вроде победил

#17
18:05, 5 фев. 2011

Доработана атмосфера и трасса, добавлен бонус ускорения.
me - Последняя версия
narod - Последняя версия

#18
18:12, 5 фев. 2011

Потрясно.
В двойне потрясно учитывая размер игры. :)

#19
18:15, 5 фев. 2011

@!!ex
> Потрясно.
> В двойне потрясно учитывая размер игры. :)
ты еще звук не слышал!

#20
18:39, 5 фев. 2011

ого мне даже понравилось))) добавь какиэто бонусы чтоб когда ты их подбираешь можно было стрелять по врагам стрелять и уничтожать их

#21
18:42, 5 фев. 2011

Стрелять там и так кожно по врагам, а кроме денег и боеприпасов пока бонусов не предвидится.

#22
18:43, 5 фев. 2011

foxes
как стрелять?

#23
18:46, 5 фев. 2011

CTRL или пробел, только они пока не дохнут, смотри первое сообщение

#24
20:26, 5 фев. 2011

Ого-го!!!

#25
20:33, 5 фев. 2011

Судя по скринам, отлично!)

Особенно хороша надпись в сис. требованиях:
"OS: Windows 95 - Windows Vista"

Шутки шутками, но у меня на Win7 x64 выдает ошибку:
Runtime error 205 at 0041D849

так что это правда.

#26
22:27, 5 фев. 2011

у меня Тоже Win7 и пока боз ошибок работал, хотя неспорю код еще не проверял, все быстрым ходом может из за особенностей системы или видео карты какое нибудь условие зглючило, мне бы знать какое у тебя железо потому что к операционке мой софт ни какого отнашения не имеет!

#27
22:29, 5 фев. 2011

C2D E4400 2 GHZ
Asus P5B
6 GB DDR
Zotac( Geforce ) GT240

#28
22:36, 5 фев. 2011

В какой момент вылетает сразу после запуска или после загрузки скрола?
Скорее всего это деление на 0, стремно что у вех работает.

Глянь еще раз
me - Последняя версия
narod - Последняя версия

#29
22:54, 5 фев. 2011

По скриншотам напомнило SG  их wormhole))
Красиво !

Страницы: 1 2 3 4 5 Следующая »
ПроектыФорумКонкурсы

Тема в архиве.