Результаты поиска
| |
Александр5 | Дата: Пятница, 15 Февраля 2013, 14:01 | Сообщение # 21 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр |
частый гость
Сейчас нет на сайте
| А чтобы строку string привести в нечитабельный вид - нужно её шифровать. Правда, тогда тебе придётся перед записью строку шифровать, а после чтения - расшифровывать, а если будешь шифровать весь файл целиком - придётся писать свои методы чтения/записи (т.к. read(fil,g) считает зашифрованные данные) или мудрить с алгоритмами дешифровки (т.е. расшифровывать записи уже после чтения через read(fil,g))... Лучше строку шифровать и расшифровку слушай напиши мне шифровку и расшифровку или ссылку где про это пишут кстати непонемаю почему в делфи 5 не работает этот код Код type TObect_obj=class(TObject) type RObject_obj=record Kartinka:tbitmap; Names:string[20]; typesPO:BOOLEAN; tormoz_procent:integer; BOOLEAN_OBJECT:boolean; TYPE_OBJECT:BYTE; STOP_PERSONAZ:BOOLEAN; end; var Object_obj1:RObject_obj; end; const OBR_YES:STRING='(Да)'; OBR_NO:STRING='(Нет)'; var Form1: TForm1;
implementation а в раде все работает вот весь код модуля
Код unit UN_OBject;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, ComCtrls;
type TForm1 = class(TForm) BitBtn1: TBitBtn; Panel1: TPanel; Image1: TImage; Panel2: TPanel; RadioGroup2: TRadioGroup; RadioGroup1: TRadioGroup; Timer1: TTimer; CheckBox1: TCheckBox; Label1: TLabel; TrackBar1: TTrackBar; Label2: TLabel; OBR: TEdit; Label3: TLabel; procedure TrackBar1Change(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; type TObect_obj=class(TObject) type RObject_obj=record Kartinka:tbitmap; Names:string[20]; typesPO:BOOLEAN; tormoz_procent:integer; BOOLEAN_OBJECT:boolean; TYPE_OBJECT:BYTE; STOP_PERSONAZ:BOOLEAN; end; var Object_obj1:RObject_obj; end; const OBR_YES:STRING='(Да)'; OBR_NO:STRING='(Нет)'; var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.TrackBar1Change(Sender: TObject); begin Label1.Caption:=inttostr(TrackBar1.Position)+' %'; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin If RadioGroup1.ItemIndex=0then begin panel2.Enabled:=false; end; If RadioGroup1.ItemIndex=1then begin Panel2.Enabled:=true; end; If CheckBox1.Checked=true then begin Label2.Caption:=OBR_YES;end else begin Label2.Caption:=OBR_NO;end; end;
end. вот собственно ошибки Код [Error] UN_OBject.pas(32): 'END' expected but 'TYPE' found [Error] UN_OBject.pas(42): 'IMPLEMENTATION' expected but ';' found [Error] UN_OBject.pas(48): '.' expected but 'IMPLEMENTATION' found [Error] UN_OBject.pas(24): Unsatisfied forward or external declaration: 'TForm1.TrackBar1Change' [Error] UN_OBject.pas(25): Unsatisfied forward or external declaration: 'TForm1.Timer1Timer' [Fatal Error] Object_Edit.dpr(5): Could not compile used unit 'UN_OBject.pas'
|
|
| |
Александр5 | Дата: Пятница, 15 Февраля 2013, 08:30 | Сообщение # 22 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр |
частый гость
Сейчас нет на сайте
| constructor TSomeClass.Create; begin //Твой код, выполняется один раз при создании экземпляра класса end;
destructor TSomeClass.Destroy; begin //Твой код, выполняется один раз при удалении экземпляра класса end; А что именно должно тут происходить
Ну ты просто хочешь, чтобы за тебя написали этот класс вместе с записью... Но при этом непонятно, что конкретно он должен записывать, а основные принципы я тебе раньше написал. Короче, изучай учебники по программированию, читай самоучители и руководства - там всё это есть, и очень подробно, так что, если будешь стараться понять и разобраться - обязательно во всём разберёшься и всё сам сможешь сделать. Поверь, тебе будет полезнее разобраться самому, чем просить других написать тебе готовый код.
Спасибо ты мне очень помог и писать код я буду сам только что именно должно быть в конструкторах и в деструкторах
Такие символы в блокноте отображаются тогда, когда в файле записаны какая-либо информация бинарном виде (например, числа integer в файле file of integer), т.е. там могут быть какие угодно байты, а не только те, которые соответствуют определённым символам-буквам. Если же ты хочешь записывать текстовую информацию, которую нельзя прочитать обычным блокнотом (т.е. зашифровать текст) - ищи информацию о шифровании текста (можно взять для начала какой-нибудь простой тип шифра), ну или вообще статьи по криптографии...
странно я рекорд записываю таким способом assignfile(fil,extractfilepath(application.ExeName)+'papka\filename'); rewrite(fil); write(fil,g); closefile(fil); а рекорд сделан так type TPers=record name:string[10]; //Volodorn jizn:word; //Жизни 1000 oruj:boolean; //оружие доступно patron:integer; //патроны ... end; но он все равно не такой результат выходит
|
|
| |
Александр5 | Дата: Четверг, 14 Февраля 2013, 08:17 | Сообщение # 23 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр |
частый гость
Сейчас нет на сайте
| Помогите мне разобраться с классом как сделать класс также конструктор и деструктор класса а главное запись рекорда из класса чтобы при открытие рекорда в текстовом формате примерно это высвечивалось и еще просьба написть создание класса масивов изображения с определенными координатами х и у каждое Добавлено (14.02.2013, 08:17) --------------------------------------------- Помогите разобраться с класом чтобы использовать его для игры в нем должен быть рекорд а также файл с текстами игры запись должна записывать рекорд через класс в итоге в рекорде должны быть символы на подобие таких
TSK§ ќз /ц Gс cе {Щ ’ џ ЕЩ ’е {с cц Gз /П ѕ · к ?WЩ ’е {с c h(h №q`qzҐ‚ ЊҐ#З%д-лQуpШ \Ј^Йdдzт-ъ ` [‰ s© vЗ tй s)ЋH› Ќ А › л ¦ љ #Њ <Ѓ V 3#(э щ т Ю н ї к Ё Ъ ~mQ# Ю!Б! %';кQуoЧ аьС¶-qPu&_6C;)1%щE 626ъ5 6° (М Х сШ Шв Кы є Ў‡'h/ »’ Т® дВ сШ Х (М S) tN †d ’~ СN П= ±9 ”; v: 61 ,K E цU
|
|
| |
Александр5 | Дата: Вторник, 05 Февраля 2013, 03:57 | Сообщение # 24 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр |
частый гость
Сейчас нет на сайте
| TimKruz, Спасибо тебе но мне нужен файл бинарный его создания и загрузка я делаю редактор и поэтому все данные редактора карт в том числе и картинки персонажи которые в свою очерядь тоже будут бинарными файле должны будут храниться в бинарном файле карты сначала хочу с мозайкой в редакторе карт разобраться но все равно все будет храниться в одном файле 1 карта = 1 файл несколько карт= 1 файл db
|
|
| |
Александр5 | Дата: Воскресенье, 03 Февраля 2013, 23:25 | Сообщение # 25 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр |
частый гость
Сейчас нет на сайте
| а что может иметь больше 255 Добавлено (16.01.2013, 23:59) --------------------------------------------- Скажите о формате Rxx в Opengl и естли он в игровых движках и как игровой движок ZenGl установить на Delphi Добавлено (21.01.2013, 12:14) --------------------------------------------- Ну ктонибудь ответит Добавлено (03.02.2013, 23:25) --------------------------------------------- Скажите пожалуйста можно ли в рекорд записывать картинку или лучше как создать файл данных который бы смог содержать данные такие как integer, string, byte, tbitmap, tpngimage и т.д, и как сделать запись, и загрузку этих файлов.
2 вопрос дайте ссылку на 2d игровой движок ZenGl или какойнибудь другой для создания игры тип вид сверху, стратегия.
|
|
| |
Александр5 | Дата: Понедельник, 14 Января 2013, 20:41 | Сообщение # 26 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр |
частый гость
Сейчас нет на сайте
| fireday, 1 Picturebox в Delphi нет. 2 Я так понял ты хочешьчтобы я сначала нарисовал целую картинки тайл где будут эти картинки потом их програмно вырезал и програмно поворачивал но для меня легче сделать множество картинок их загрузку и рисовку но разбираться с графикой не могу может кто ссылку даст на ZenGl
Добавлено (14.01.2013, 12:36) --------------------------------------------- ZenGL скачал но установить не могу и учебники мне к ниму бы надо надо сделать редактор карт 1 часть редактора это сборка карты из мазайки желательно сохранять карту в своем формате чтобы нельзя было открыть 2 часть редактор объектов но это все будет называться редактор карт ну и наконец 3 часть редактор миссий он тоже будет находиться в игре но будет на другой панели вот собственно я обещал вам проект показать пароль на файл 3000 Скачать проектДобавлено (14.01.2013, 20:41) --------------------------------------------- daun, вот тут возникет ошибка
Tname1=record Name1:string; Vamili:string; Otzestwo:string; televone:string[11]; robote:string; info:string; end; Tnames1=record name2:array[0..10000] of Tname1; end; var Form2: TForm2; Activ_VodDannjih:boolean; records1:integer; IniFile: TIniFile; path:string; i:integer; names1:tnames1; fil:file of tnames1; в fil:file of tnames1; ошибка
Сообщение отредактировал Александр5 - Понедельник, 14 Января 2013, 12:38 |
|
| |
Александр5 | Дата: Воскресенье, 13 Января 2013, 01:14 | Сообщение # 27 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр |
частый гость
Сейчас нет на сайте
| Да не нужно мне 50 мне с редактором карт рисование мира нужно разобраться Добавлено (13.01.2013, 01:14) ---------------------------------------------
Цитата ( daun, ) Не все так просто. OpenGL это 3D, под 2D скорость маленькая, люди на нем годами 2D движки лепят, проще взять готовый. ZenGL скоростной, но в каком состоянии сейчас, не знаю. GLEngine2D средненький, кода не очень много, можешь полазить.
Ну можно только установятся ли они под рад студио v 8.0 xe3 и можно ли на нем написать такую игру где можно будет создавать свои кампании хотя че я говорю конечноможно веть за это отвечает не игровой движок но без движка игра не будет работать дай ссылку на ZenGL но врядли он на раде будет работать а GLEngine2D пробывал но я только на половину разобрался а GLScene так координаты не могу пнять и при том он скорее для 3d чем для 2D.
|
|
| |
Александр5 | Дата: Суббота, 12 Января 2013, 23:24 | Сообщение # 28 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр |
частый гость
Сейчас нет на сайте
| daun, Спасибо кокрас редактор можно будет сделать но вот одна проблемка мне сейчас нужна редактор карт сделать картинку видел вот из таких 17 нужно мир составлять если делать имаге передвигать или спрайт то нужно передвижение его на 50 пикселей делать слушай можешь мне рисовальныые и спрайтовские функции Opengl расказать
karta:array[1..100,1..100]of byte; // карта игры с номером тайла personaj:array[1..50]of string[25]; // имена персонажей
Непонял а что означает от 1 до 100 максимальный размер не 100 а 2700 кажется пикселей
и TPers=record тоже надо записывать но лучше это все в 1 файл данных запихнуть так как у меня персонаж не 1 а для бета тестации 7 потом буду делать еще
Сообщение отредактировал Александр5 - Суббота, 12 Января 2013, 23:24 |
|
| |
Александр5 | Дата: Суббота, 12 Января 2013, 17:50 | Сообщение # 29 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр |
частый гость
Сейчас нет на сайте
| Цитата Delphi?) Игры?) Охх, лучше забудь Делфи и Игры) Я в смысле - В Делфи писать игры, это просто садизм. Чего. Кром написал игру, которую можно полностью менять и добавлять свои кампании, множество редакторов и все это на Delphi 7 при том Delphi и c++ отличаются только кодом и что C++ сложнее, чем Delphi. Честно говоря, до этого работал на Visual basic net, но так как я услышал, что он не язык, а интерпретатор и сложные игры на нем не напишешь, то я решил перейти к Delphi, оказалась Delphi сложнее намного сложнее, чем Visual basic net, но я не отступаю не в этом случае. Я желаю обучиться программированию самостоятельно не для профессии, а просто для удовольствия.
Добавлено (12.01.2013, 16:57) --------------------------------------------- daun, Обычную карту для игры, вид сверху неполную карту это только пока что начало редактора рисования мира тайлами их размер 50 на 50 пикселей редактор объектов, такие как здания и двери потом сделаю игра стратегия войнушка но не строительство. Раньше всегда думал что строительство сделать легко сейчас понял что это сложно но дело не в этом строительство я не буду делать потому-что оно не нужно. Цитата (daun, ) штук, фиолетово, не критично
Нет 15 числа я скину проект байтов нет пока. вот собственно картинка 1 из 17 Добавлено (12.01.2013, 17:50) --------------------------------------------- karuy, А на нем можно будет стратегии разрабатывать
Сообщение отредактировал Александр5 - Суббота, 12 Января 2013, 17:30 |
|
| |
Александр5 | Дата: Суббота, 12 Января 2013, 15:41 | Сообщение # 30 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр |
частый гость
Сейчас нет на сайте
| daun,Может скажешь как сделать редактор карт чтобы составлялся мир картинки есть для этого есть вообще 15 смогу весь проект скинуть но будет работать только на рад студио на 5 и 7 проект не будет работать но сам ехе будет есть кое какие недоработки в этом коде потом исправлю
|
|
| |
Александр5 | Дата: Суббота, 12 Января 2013, 09:43 | Сообщение # 31 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр |
частый гость
Сейчас нет на сайте
| Цитата ( daun, ) Зачем в редакторе таймер? Он выводит на стусбар определенные значения ну ктонибудь мне поможет с редактором карт файлы данных у меня служат для персонажей мне нужно именно чтобы составлять из кусков мозайки мирДобавлено (12.01.2013, 09:43) ---------------------------------------------
Цитата ( daun ) Зачем читать где мышка, когда так видно? Ну мышка где находятся вино но координаты ее лучше читать програмно говорю хотелд сделать движение имаге по скролу чтобы потом отрисовывать то что в имаге на карту которая находжиться на скроле карта тоже обьект Image есть другой путь но немогу додуматься может и смогу если скажете о спрайтах OpenGl так как Canvas не поддерживает Png
|
|
| |
Александр5 | Дата: Пятница, 11 Января 2013, 05:13 | Сообщение # 32 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр |
частый гость
Сейчас нет на сайте
| Я начел изучать Delphi, хочу писать игры ради развлечения, а не ради наживы и чтобы не терять время начел создавать игру. Пока что меня интересует одно сделать редактор карт, а именно передвижение Image или присваивание курсору картинки png вот код, отвечающий за загрузку картинок, кстати, Record и type я не до конца изучил, не знаю где можно найти еще примеры. Просьба помочь мне с обучением Delphi и созданием игры. Рисую я плохо, но для тестов смогу нарисовать пока что меня интересует редактор карт 2D. Надеюсь, будут люди, кто сможет мне помочь, могу использовать игровой движок, но какой не знаю, интересуюсь только 2D графикой.Добавлено (11.01.2013, 05:13) --------------------------------------------- Забыл код вотон только 1 модуль из 10
Код unit Glaw_Unite;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ExtDlgs, StdCtrls, Buttons, ExtCtrls,Dir_Folder,pngimage,Mini_Games, PlatformDefaultStyleActnCtrls, ActnPopup, ToolWin, ComCtrls,Point_collision;
type TForm1 = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; Gthcjyfb1: TMenuItem; OpenPictureDialog1: TOpenPictureDialog; Panel1: TPanel; Panel2: TPanel; Label1: TLabel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; ScrollBox1: TScrollBox; ListBox1: TListBox; Img_Map: TImage; ComboBox1: TComboBox; ComboBox2: TComboBox; CheckBox1: TCheckBox; Image1: TImage; N5: TMenuItem; StatusBar1: TStatusBar; Timer1: TTimer; N6: TMenuItem; procedure N2Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end; list = ^spisok;
spisok = record fil: string; nextsp: list; end; const Cur_X:integer=0; Cur_Y:integer=0; var Form1: TForm1; fajlo: list; ProgDir:string; Cursor_X:integer; Cursor_Y:integer; text_cursor:string; Text_True_and_lie:string; activ_mouse_move:boolean; implementation {$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject); var i_png: Integer; fs: TSearchRec; i:integer; begin if openpicturedialog1.Execute then begin img_map.Picture.LoadFromFile(openpicturedialog1.FileName); img_map.Height:=strtoint(combobox1.Text); img_map.Width:=strtoint(combobox2.Text); img_map.Transparent:=CheckBox1.Checked; end; i := 0; if FindFirst(progdir + 'картинки для создания мира\' + '*.png*',faAnyFile - faDirectory - faVolumeID, fs) = 0 then repeat inc(i);
if (fajlo = nil) then begin new(fajlo); end else begin new(fajlo^.nextsp); fajlo := fajlo^.nextsp; end; fajlo^.fil := fs.Name; fajlo^.nextsp := nil; ListBox1.items.Add(fs.Name); until FindNext(fs) <> 0; findclose(fs); end;
procedure TForm1.CheckBox1Click(Sender: TObject); begin if checkbox1.Checked=true then begin checkbox1.Caption:='Карта прозрачная'end else begin checkbox1.Caption:='Карта не прозрачная';end;
end;
procedure TForm1.FormCreate(Sender: TObject); begin with img_map do begin Left:=Cur_X; Top:=Cur_Y; height:=cur_x; width:=cur_y; end; with image1 do begin Left:=Cur_X; Top:=Cur_Y; height:=cur_x; width:=cur_y; end; activ_mouse_move:=false; end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if (True_and_lie(X,Y,form1.Left,form1.Top,form1.Height,form1.Width) = true) then begin Text_True_and_lie:='Курсор находиться на форме'; end; if (True_and_lie(X,Y,form1.Left,form1.Top,form1.Height,form1.Width) = false) then begin Text_True_and_lie:='Курсор за пределами формы'; end; end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var x_y:tpoint; begin if (x >= Scrollbox1.Left + image1.Left)and(y >= scrollbox1.top + scrollbox1.Top) then begin image1.Left:=x + 25; image1.Top:=y + 25; end;
end;
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin With ListBox1 do begin If odSelected in State then Canvas.Brush.Color:=clred { твой цвет } else Canvas.Brush.Color:=clWindow; Canvas.FillRect(Rect); Canvas.TextOut(Rect.Left+2,Rect.Top,Items[Index]); end end;
procedure TForm1.N2Click(Sender: TObject); begin Application.Terminate; end;
procedure TForm1.N4Click(Sender: TObject); begin if panel1.Visible = true then panel1.Visible:=false else Panel1.Visible:=true;
end;
procedure TForm1.N5Click(Sender: TObject); begin New_image_games; form2.Timer1.Interval:=1; form2.Timer1.Enabled:=true; form2.Panel1.Align:=alclient; form2.Show; form1.Hide; end;
procedure TForm1.Timer1Timer(Sender: TObject); var Curs_X_Y:Tpoint; Rtext:string; begin getCursorPos(Curs_X_Y); text_cursor:=inttostr(Curs_X_Y.X) + ' , Y = ' + inttostr(Curs_X_Y.Y); if (True_and_lie(curs_x_y.X, curs_x_y.Y, scrollbox1.Left, scrollbox1.Top, scrollbox1.Width, scrollbox1.Height) = true) and (panel1.Visible = true) then begin activ_mouse_move:=true; Rtext:='находиться'; end else begin activ_mouse_move:=false; Rtext:='не находиться'; end; StatusBar1.Panels.Items[0].Text := 'Координаты курсора: X = ' + text_cursor + '! ' + Text_True_and_lie + '! Размер карты: Высота = ' + inttostr(img_map.Height) + ' , Ширина = ' + inttostr(img_map.Width) + '! Мышка ' + Rtext + ' на панели'; end;
end.
|
|
| |
|