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, СПС тебе большое. Теперь мне осталось с Искусственным интеллектом помучиться)))
|
|
| | |
|