Где то видел что это шейдерами делается, но я писать их не умею. Может у кого то есть уже готовый шейдер для попиксельного освещения?
http://steps3d.narod.ru/tutorials/lighting-tutorial.html Вот тебе готовые шейдеры, осталось скопипастить и применить к материалу.
Добавлено (04.03.2012, 21:31) --------------------------------------------- Кстати очень хороший сайт, в свое время здоров помог когда з шейдерами разбирался.
Кстати сокет у тебя асинхронный, поэтому ошибка лезет там где ее не ожидается увидеть, и поэтому трай ексепт не срабатывает. Ошибку нужно обрабатывать в OnError(), к примеру если присвоить ErrorCode := 0, то исключения вобше не будет лезть.
if ((Length(Edt1.text))<>0) and ((Length(Edt2.text))<>0) then begin btn1.Enabled:=False; edt2.Enabled:=False; edt1.Enabled:=False; ClientSocket.Port:=StrToInt(edt1.Text); ClientSocket.Host:=edt2.Text; ClientSocket.Address:=edt2.Text; try ClientSocket.Active:=True; except ShowMessage('error'); end; btn2.Tag:=1; btn2.Caption:='Отключится'; end else ShowMessage('Введите IP и порт!');
из википедии о языке C++ там пишут что язык помимо полезностей еще и опасен вот я и решил вначале опробовать язык более легче а то сразу начну писать на C++ напартачу вирус какой нибудь сделаю и капец
Quote (_-AndruxA-_)
паскаль затупанский :((
Здорово поднял настроение. Сто первый раз повторю учить нужно то на чем хочешь работать, учить язык, лишь для того чтоб перейти на какой то другой дурость в квадрате, один баран ляпнул все повторяют.
Было же сказано, что скорее всего конкурсов такого типа больше проводиться не будет. Будут отдельные конкурсы среди программистов, художников и тп.
Можешь кинуть ссылку, где говорится об этом?
Quote (Deniiel)
Весной вроде говорили.
Можешь кинуть ссылку, где говорится об этом? Главное чтоб на лето не попадало, а то конец весны и начало лето жаркий период в универе и времени нет ни на что.
Quote (allxumuk)
Надо заметить, что игры на движках, чаще всего, оказывались лютым ужасом, а не играми.
Вижу моя игра произвела на тебя неповторимое впечатление =) ПС По конечному результату оценивается безспорно.
Сообщение отредактировал karuy - Пятница, 27 Января 2012, 18:48
С момента проведения последнего конкурса прошло немало времени, думаю многие соскучились по конкурсам от этого ресурса и не будут против, а только за следующий конкурс. Вопрос: Планируется ли проводить конкурс в ближайшее время? Если так, возможно администрация создаст голосования за возможную тему конкурса?
Нет, писал же поправил. Запусти посмотри, еррора нет - шифрует коректно. Если не заметил что, вот:
Code
j:=Length(pass);<<-- j1:=1;<<-- for b:=1 to i do Begin if j1>j then j1:=1;<<-- if (ord(s[b])+ord(pass[j1]))>255 then mmo2.text:=mmo2.text+chr(ord(s[b])+ord(pass[j1])-255) else mmo2.text:=mmo2.text+chr(ord(s[b])+ord(pass[j1])) ; Inc(j1);<<-- end;
Рабочий исходник з пофиксиной траблой кинул еще в посте №19, но топик стартер проигнорил.
Если хочешь, чтоб просто данные не были в голом виде, можно просто шифровать нехитрым КСОРОМ, без ключа не разшифруют. В файл пишешь например Едит1@значения# конечно в зашифрованом виде, пример:
function Encrypt(const InString: string; StartKey, MultKey, AddKey: Integer): string; var I: Byte; begin Result := ''; for I := 1 to Length(InString) do begin Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8)); StartKey := (Byte(Result[I]) + StartKey) * MultKey + AddKey; end; end;
function Decrypt(const InString: string; StartKey, MultKey, AddKey: Integer): string; var I: Byte; begin Result := ''; for I := 1 to Length(InString) do begin Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8)); StartKey := (Byte(InString[I]) + StartKey) * MultKey + AddKey; end; end;
procedure TForm1.Button1Click(Sender: TObject); begin S:=Encrypt(Edit1.Text,StartKey, MultKey, AddKey); Caption:=S; end;
procedure TForm1.Button2Click(Sender: TObject); begin Caption:=Decrypt(S,StartKey, MultKey, AddKey); end;
var res: TResourceStream; begin res:=TResourceStream.Create(hInstance, 'somesound', RT_RCDATA); // создаем поток в памяти предназначен для доступа к компилированным ресурсам приложения, hInstance - значит что извлекаться будет из ресурсов нашей програмы res.SaveToFile('C:\ss.ogg'); // это я к примеру показал, можеш паковать туда все что хочеш end;
Настолько я понимаю ты хочешь хранить ресурсы не в самой программе, а в отдельных файлах? Для доступа к ресурсам иного приложения:
Code
var hLib: Handle; begin hLib:= LoadLibrary('текстуры.dll'); MODHandle:=FindResource(hLib, 'картинка1', RT_RCDATA); MODPointer:=LockResource(LoadResource(hLib, MODHandle)); MODSize:=SizeOfResource(hLib, MODHandle); end;