| 
				
				PascalABC
				 |   |  
| Darkangel22388 | Дата: Четверг, 08 Сентября 2011, 19:16 | Сообщение # 1 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | Кто может помочь создать игру на данном языке. Именно игру и именно на этом языке(   Или кто может подсказать уроки, примеры по созданию игр на этом языке   Писать либо в теме, или ЛС, или Ася 222 666 674
 |  
| 
 | 
 |    |  
| Kamskii | Дата: Четверг, 08 Сентября 2011, 19:44 | Сообщение # 2 |  
 
Game ≠ Toy 
Сейчас нет на сайте 
 
 | Какой ABC - тот, который .NET или старый?
 |  
| 
 | 
 |    |  
| TimKruz | Дата: Четверг, 08 Сентября 2011, 20:30 | Сообщение # 3 |  
 
старожил 
Сейчас нет на сайте 
 
 | Ты сначала сам язык выучи, чтобы мог на нём какую-нибудь программу написать (не игру), при чём сам, а потом уже игры начинай делать.   Впервые слышу о таком, и, думаю, что уроков не будет. Есть уроки, и то мало, для Delphi, Lazarus, но они всем известны.   Да и вообще, какую игру тебе надо сделать? (только не говори про ММОРПГ) Потому что для разных игр нужны разные методы работы. Может, какую-то конкретную игру невозможно создать на таком языке...
 
  
 |  
| 
 | 
 |    |  
| Darkangel22388 | Дата: Четверг, 08 Сентября 2011, 23:27 | Сообщение # 4 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | .нет нужен   TimKruz, блин а мне нужно мморпг наподобие вов и ла2 создать:(   Шучу, я полная что этот язык вообще не предназначен для игр, а нужна игра наподобие бомбермэна. Я примерно знаю как сделать, но знаю не все:(
 |  
| 
 | 
 |    |  
| Blablabla | Дата: Пятница, 09 Сентября 2011, 01:02 | Сообщение # 5 |  
 
постоянный участник 
Сейчас нет на сайте 
 
 | Бери в инете любой пример на паскале и переделывай под АБС.
  Nothing is true, everything is permitted.
 |  
| 
 | 
 |    |  
| Кластер | Дата: Пятница, 09 Сентября 2011, 02:04 | Сообщение # 6 |  
 
постоянный участник 
Сейчас нет на сайте 
 
 | Я советую афтору темы изучать сразу Lazarus и паскаль выучит, и приложения сможет создавать. А там и игры. Вообще с паскаля хорошо изучать само программирование, понимаешь его смысл, а потом уже переходить на другие языки программирования. Лично мне в своё время Delphi помог в изучении.
 |  
| 
 | 
 |    |  
| TimKruz | Дата: Пятница, 09 Сентября 2011, 20:05 | Сообщение # 7 |  
 
старожил 
Сейчас нет на сайте 
 
 | Darkangel22388, ну, PascalABC может выводить графику (стандартную Windows-кую хотя бы) и работать с объектами (хотя простую игру можно и без них сделать, но будет хаос в коде, и потом сам же можешь запутаться). Тогда на нём можно сделать игру   Quote (Darkangel22388) наподобие бомбермэна     В принципе, бомбермена можно сделать и на структурно-ориентированном TurboPascal, используя его допотопную графику. Но даже без "нормальной" графики можно сделать - с использованием псевдографики, символов вместо картинок. 
   Quote (Darkangel22388) Я примерно знаю как сделать, но знаю не все:(      А ты скажи, что ты знаешь, а чего не знаешь, может, подскажем, как это сделать. 
   P.S. Кто не знает, что это такое PascalABC: http://pascalabc.net/.  
 
  
 |  
| 
 | 
 |    |  
| Darkangel22388 | Дата: Пятница, 09 Сентября 2011, 20:49 | Сообщение # 8 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | самое обидное что мне нужно именно абс, если бы было не принципиально то я бы дельфи использовал:(   Ну я знаю что почти все через алгаритм нужно, я просто думал что пример пакмана у меня есть, а оказалось нет:(   Кстати графика мне вообще не принципиально:-)
 |  
| 
 | 
 |    |  
| TimKruz | Дата: Суббота, 10 Сентября 2011, 15:48 | Сообщение # 9 |  
 
старожил 
Сейчас нет на сайте 
 
 | Quote (http://pascalabc.net/) PascalABC.NET — это: современный язык программирования, основанный на Delphi (Object Pascal) и сочетающий простоту языка Паскаль и огромные возможности платформы .NET     Quote (Darkangel22388) то я бы дельфи использовал:(      Ну вот. Поищи пример игры на Delphi (или любой другой Object Pascal), или сам напиши её на Delphi, а потом только синтаксис исправить придётся, ну и, думаю, какие-нибудь модули дополнительные, если их в PascalABC нету.   Quote (Darkangel22388) Ну я знаю что почти все через алгаритм нужно, я просто думал что пример пакмана у меня есть, а оказалось нет:(      Так если тебе нужен алгоритм работы игры, то тут уж не важно, какой язык нужен. Алгоритм относительно просто придумать...
 
  
 |  
| 
 | 
 |    |  
| Darkangel22388 | Дата: Суббота, 10 Сентября 2011, 16:16 | Сообщение # 10 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | А можете показать пример перехвата клавиш с клавиатуры, человек нажимает допустим W и происходит Exit?
 |  
| 
 | 
 |    |  
| TimKruz | Дата: Суббота, 10 Сентября 2011, 16:55 | Сообщение # 11 |  
 
старожил 
Сейчас нет на сайте 
 
 | Ну в Delphi это можно сделать с помощью событий, типа onkeypress и других.   Т.к. PascalABC основан на Delphi, то у него тоже должны быть события.   ***   Во, сам разобрался сделал:   Code //Подключаем модуль для простого вывода графики, чтобы не заморачиваться с формами   uses GraphABC; 
   //Обработчик нажатия клавиши   procedure KeyPress(ch:char);   begin     //Если код нажатой клавиши равен 27, что соответствует escape, выходим     if ch=#27 then halt;   end; 
   begin     //Привязка обработчика к событию     OnKeyPress:=KeyPress;   end.   
   P.S. Смотри всё тут: http://pascalabc.net/downloads/pabcnethelp/PABC_Help_Web.html. Там хорошая справка, всё подробно описано с примерами.
 
  
 |  
| 
 | 
 |    |  
| Darkangel22388 | Дата: Суббота, 10 Сентября 2011, 17:41 | Сообщение # 12 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | TimKruz, а у тебя ася есть?
 |  
| 
 | 
 |    |  
| TimKruz | Дата: Суббота, 10 Сентября 2011, 17:52 | Сообщение # 13 |  
 
старожил 
Сейчас нет на сайте 
 
 | Darkangel22388, вот код программы, что-то типа простой игры. Написал сам, минут за пять.   Чтобы сделать бомбермена - остаётся добавить бомбы.   Ну это можно сделать так же, как я добавил игрока.   Вот код (всё с комментариями):   Code //Подключаем GraphABC для графики и Timers для таймера   uses GraphABC, Timers; 
   //map - карта, на ней 0 - стенка, остальное - свободное пространство   //сделал так, чтобы проще было генерировать   //лучше было бы map:array[интервал, интервал] of 0..1   //но это смотря сколько типов объектов у тебя есть на карте   var map:array [0..9, 0..9] of 0..9;   //Позиция игрока - p.x и p.y   //Для бомб можно сделать также   p:point; 
   //Устанавливаем карту - здесь может быть любой код, например, чтение из файла   //ну или какая-то интеллектуальная генерация.   //У меня используется простой рандом   procedure setmap;   var i,j:byte;   begin     randomize;     for i:=0 to 9 do       for j:=0 to 9 do         map[i,j]:=random(10);     //Игрок в первой клетке, поэтому она не должна быть заблокирована     map[0,0]:=1;   end; 
   //Прорисуем карту на экране   //Чёрный квадрат - стена, белый - пол   //Голубой кружок - игрок   procedure drawmap;   var i,j:byte;   begin     for i:=0 to 9 do       for j:=0 to 9 do       begin         if map[i,j]=0 then           graphabc.SetBrushColor(system.Drawing.Color.black)         else            graphabc.SetBrushColor(system.Drawing.Color.White);         graphabc.Rectangle(i*25, j*25, i*25+25, j*25+25);       end;     //...Ну вот тут-то и рисуется игрок     graphabc.SetBrushColor(system.Drawing.Color.Aqua);     graphabc.Ellipse(p.X*25, p.Y*25, p.X*25+25, p.Y*25+25);     //...     //Дальше можно прорисовать бомбы и врагов, например   end; 
   //Обрабатываем сигнал таймера   procedure tic;   begin     //Очищаем экран     Window.Clear;     //Рисуем карту в буфере     drawmap;     //Перерисовываем экран     Redraw;   end; 
   //Обрабатываем нажатия клавиш   //Просмотри внимательно условия вложенных конструкций IF   //В них проверяется, чтобы игрок не вышел за границы поля   //и не зашёл на стену   //...   //...Можно было бы одним Case оформить, но мне нравится так   procedure KeyPress(ch:char);   begin     //Если Escape (код клавиши №27) - выходим     if ch=#27 then halt else     //"Влево" - кнопка A     if ch='a' then       begin         if (p.X>0) and (map[p.X-1, p.Y]<>0) then p.X-=1;       end else     //"Вправо" - кнопка D     if ch='d' then       begin         if (p.X<9) and (map[p.X+1, p.Y]<>0) then p.X+=1;       end else     //"Вверх" - кнопка W     if ch='w' then       begin         if (p.y>0) and (map[p.X, p.Y-1]<>0) then p.y-=1;       end else     //"Вниз" - кнока S     if ch='s' then       begin         if (p.y<9) and (map[p.X, p.Y+1]<>0) then p.y+=1;       end;   end; 
   begin     //Заблокируем экран, чтобы рисовать в буфере     //Это нужно, чтобы небыло мерцания экрана     lockdrawing;     //Установим карту (случайную)     setmap;     //Начальные позиции игрока - 0 и 0     p.X:=0; p.Y:=0;     //Задаём процедуру обработки события OnKeyPress     //Само событие задано в модуле GraphABC     OnKeyPress:=KeyPress;     //Задаём новый таймер, интервал - 100 милисекунд     //Процедура обработки "тика" таймера - tic     var t:=new Timer(100, tic);     //Запускаем таймер     t.Start;     //Программа с использованием модуля GraphABC не завершается сама,     //даже если кончились команды основного блока программы.     //Это полезно для событий, таймеров, и прочего, что нужно для     //игр и программ построения графики.   end.  
 
  
 |  
| 
 | 
 |    |  
| Darkangel22388 | Дата: Суббота, 10 Сентября 2011, 18:11 | Сообщение # 14 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | TimKruz, СПС тебе большое. Теперь мне осталось с Искусственным интеллектом помучиться)))
 |  
| 
 | 
 |    |   |     
		
		 
 |