Меню Рубрики

Pascal abc как написать игру

Pascal abc как написать игру

1. Что необходимо?
Различных сред, использующих в качестве языка программирования Pascal, превеликое множество. Но из всей этой кучи для урока я решил использовать именно PascalABC.net. Почему? Ответ прост: во-первых данная среда программирования использует не чистый Паскаль, а его современный и более удобный потомок – Object Pascal; во-вторых Паскаль.Нет абсолютно бесплатна, а значит вам не придется парится с кряками или тратить деньги на лицензию.

2. Алгоритм.
Итак, у нас есть площадь 640×480, которая по моей задумке будет делиться на клеточки размером 8×8, представляющие из себя звенья массива s. Таким образом, меняя значение клеточки, мы можем сделать ее «свободной», либо «занятой» (к примеру, использовать как стену).

В итоге мы сможем без лишних манипуляций определить, куда игрок может переместиться, а куда нет (см. рис).

3. Переменные и модули.
Для полноценной работы нашей будущей игры нам понадобится подключить всего-ничего один модуль GraphABC, позволяющий отображать графические примитивы на экране.

Далее инициируем необходимые нам переменные (см. листинг 1).

200?’200px’:»+(this.scrollHeight+5)+’px’);»> uses GraphABC;

var
s : array [,] of integer;
i,x,y,vspeed : integer;
game_end : boolean;

4. Нажатия клавиш.
Итак, чтобы далее вам не пришлось лазать по своей писанине, чтобы модифицировать код, создадим две отдельные процедуры, отвечающие за манипуляции с положением игрока.

200?’200px’:»+(this.scrollHeight+5)+’px’);»> //Обработка нажатий клавиш
procedure KeyPress(key: char); begin

if (key=’d’) and (s[(x div 8)+1,(y div 8)]=0) then //Если нажата клавиша D…
x:=x+8; //. А также есть свободное место, то передвигаемся на…
//… клеточку вперед (значение x увеличивается на 8)

if (key=’a’) and (s[(x div 8)-1,(y div 8)]=0) then //см. комментарий выше
x:=x-8;

if (key=’w’) and (vspeed=0) and (s[(x div 8),(y div 8)+1]=1) then //Если есть «занятая клеточка»…
vspeed:=-16; //… под ногами, то совершаем прыжок.

procedure KeyDown(key: integer); begin
if (key=vk_enter) then game_end:=true; //При нажатии ENTER…
//значение переменной game_end равно true
end;

5. Гравитация.
Неотъемлемой частью платформера является какая никакая, а сила тяжести. Поэтому сейчас мы должны написать отдельную процедуру, которая в дальнейшем поможет игроку встать на ноги в буквальном смысле.

200?’200px’:»+(this.scrollHeight+5)+’px’);»> //Гравитация
procedure Gravity(); begin

if vspeed=0 then begin //Если скорость прыжка равна нулю…
if s[(x div 8),(y div 8)+1]=0 then y+=8; //… перемещаемся на «клеточку» вниз (падаем)
end;

if s[(x div 8),(y div 8)+vspeed]=0 then y+=vspeed; //Если сверху есть свободная клеточка, то…
//… перемещаемся на vspeed вверх.

if vspeed<>0 then //Если скорость прыжка не равна нулю (в нашем случае: меньше нуля)…
vspeed+=2; //… то помаленьку ее сбавляем.

6. Рисование.
Думаю тут понятно без лишних слов, но для галочки отмечу, что игра делится на «визуальную» и «невизуальную» части. «Невизуальная» отвечает за все происходящее в самой игре, а «визуальная», собственно, за отображение происходящего на экране. Так вот, данная ниже процедура отвечает за «визуальную» часть и только.

200?’200px’:»+(this.scrollHeight+5)+’px’);»> procedure Draw(); begin

//Рисуем белый прямоугольник…
setbrushcolor(clwhite); //… размером 640 на 480
fillrectangle(0,0,640,480);

setbrushcolor(clblack);//Рисуем черные стены…
fillrectangle(0,192,640,224);//… по координатам…
//… 0 – 640 по X; 192 – 224 по Y
//(ВНИМАНИЕ! Данные манипуляции не делают стены осязаемыми, а всего лишь…
//… создают их графический образ.

setbrushcolor(clred); //Рисуем игрока по координатам…
fillrectangle(x,y,x+8,y+8);//… x и y

7. Тело программы.
Вот мы и добрались, собственно, до самой программы. Тут нам необходимо заполнить массив нужными нам значениями, а также задействовать ранее написанные процедуры.

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Begin //начало программы

//Указания значений для переменных
game_end:=false;
x:=0; //Стартовая позиция игрока по X
y:=0; //Стартовая позиция игрока по Y

//Создание массива
s := new integer[200,200];

//Создание платформы, нарисованной в процедуре Draw
for i:=0 to 79 do
s[i,24] := 1;

while game_end=false do begin //Создаем цикл…
//… который прервется, если game_end = false

//Гравитация для игрока
Gravity();

OnKeyPress:=KeyPress; //Обработка нажатий…
OnKeyDown:=KeyDown; //… клавиш

sleep(30); //Ждем примерно полсекунды, чтобы игра…
//… работала с нормальной скоростью

8. Заключение.
Итого у нас получился незамысловатый платформер с точкой в главной роли. Мы можем передвигаться по горизонтали и прыгать:

Источник статьи: http://gcup.ru/publ/gamedev/sozdanie_platformera_na_pascal/1-1-0-419

Как создавать игры в паскале

Как создавать игры с нуля
Всем привет! Я хочу создавать игры, но низнаю как. Хочу создать свои собственные игры, но незнаю.

Как правильно создавать бота, для браузерной игры?
в програмирование я бум бум) недавно токо начал изучать весь этот мир) хотелось бы узнать как.

Написание игры: как создавать объекты с разными текстурами?
Спасибо всем, кто ответит мне. Вообщем я новичок, только начал Java изучать. И мне нужна помощь.

Вы можете подсказать,как создать игры в паскале?
Вы можете подсказать,как создать игры в паскале? сапер,судоку любую логическую игру

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

Паровозик не мой, я только добавил пару переменных и в конце if keypressed then begin . end;
В этих строчках описано управление паровозиком. Если нажать любую символьную клавишу, то объект меняет направление движения; если нажать «пробел», то еще и скорость удвоит.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как научиться создавать на C++ простые приложения (очень простые игры)?
Помогите, я хочу научится создавать какието для начала очень простые игры, приложения. но я вооще.

Что нужно, чтобы создавать 2d игры
Подскажите нубу с чего начать что скачать,не понаслышке знаком с делфи, С++. Тока без матов, если.

Где лучше создавать 2d-3d игры QT или Builder?
Доброго времени суток, собственно вопрос в названии темы, вопрос немного не верный, все же я.

На каком движке лучше всего создавать квест-игры?
Я решил создать квест игру. Основа понимания программирования у меня есть(увлекаюсь.

Игры на паскале
есть у кого исходники игр на паскале скиньте хочу посмотреть как делать

Источник статьи: http://www.cyberforum.ru/pascalabc/thread1193921.html

С чего начать программирование игр на Pascal’e?

Я новичок в программировании на данном языке, и не знаю с чего начать(что следует вначале учить,знать). Наверно есть уже хорошо знакомые с Паскалем, так вот вам и вопрос.

паскаль слишком нов, программируй на фокспро!

Можно пойти дальше и раскопать компилятор Clipper .

Ну зачем же все эти новомодные необкатанные языки? Следует брать те, под которые уже написано достаточно литературы, есть хорошие рабочие примеры. Фортран, к примеру

«Использование Кобола калечит ум. Его преподавание, следовательно, должно рассматриваться как уголовное преступление» (с) Эдсгер Вибе Дейкстра

Ну, на Коболе вертится громадный объём кода для обработки всяких бизнес-приложений, а поддерживать и переписывать на нормальный язык его кому-то будет нужно.

для начала выкини паскаль и возьми нормальный язык.

Может стоит начать учить Pascal с Java, C++ или Python’а))) А вообще, изучи структуру программы, где начало, где конец, потом типы данных (. ), потом циклы и операторы, потом алгебру логики и веские булевы выражения.

Господа, вы забыли про ассемблер! Ну как же так!

Игры на Паскале? Мсье тонкий извращенец.

Можно c# и юнити взять, паскаль уже давно мёртвый

У тебя 2 варианта:
— 1. Учи другой язык. Подойдут Python, Java, C#.
— 2. В Linux есть свободная реализация Pascal, называется Lazarus и вот для него на Linux есть бесплатный игровой 3D движок.

На чем оно основывается? Какие ваши аргументы?

Ну и что, на паскале пишется огромное количество софта по работе с БД. Для игр да нет ide. Но это не повод считать его мертвым языком)) Для паскаля есть мега удобная IDE, которую MS со своей VS не может повторить до сих пор(Ну может последние версии уже повторили то что было в Delphi 7))))

И да питон на паскаль похож намного больше чем на си.

Я и не навязываю, я против того чтобы называть его мертвым языком. Делфи не только на поддержке но еще и развивается, если вы не в курсе то появилась поддержка IOS и Android, последние версии так вообще очень нарядные.

На всяческих сях тоже пишется громадное количество софта по работе с базами данных

На делфи это делать удобнее и быстрее.

С каких пор С стандартом стал, если уж и говорить про стандарт то почему не C# или ECMAScript?

Ну хз, по моему сейчас важнее знать принципы разработки ПО, методологии и технологии проектирования. Всякая фигня типа контроля версий, модульного тестирования, ооп, патернов и прочее прочее прочее. А язык учится за месяц, два. И уже не важно на чем ты там писал ранее, хоть на делфи хоть на коболе. Со знание синтаксиса языка ты нахер никому не нужен как специалист.

Нет пол года назад, синтаксис вообще не спрашивали, портфолио смотрели на гите, несколько задач логических дали решить, несколько запросов по БД. Потом тестовое задание. Причем языком не ограничивали, сказали любой выбирай.

Эммм, при чем тут это, во первых в нормальных конторах понимают что синтаксис осваивается быстро(например питон тот же за 3 дня уже можно освоить для того чтобы начать писать) в течении месяца. Во вторых какие лицензии?? Практически для любого языка есть бесплатные IDE. А для сборки нужна 1 лицензия на компилятор(если язык компилируемый). Я последние 2 года пишу половину кода вообще в npp. Ну и как бы любой язык был для ТЕСТОВОГО задания. Естественно вакансия была на определенный язык.

Источник статьи: http://pikabu.ru/story/s_chego_nachat_programmirovanie_igr_na_pascale_4833412

Как сделать игру в паскаль ?

поищи графические библиотеки и подцепи их к программе.

Нарисуй в относительных координатах персонажа.

с помощь. readkey и if упраление получи

Меняй опеременную для своего рисунка (относительно которой рисовался персонаж).

делапй Redrow — персонаж появится в новом месте.

Задай логику игры стандартными операторами условия и цикла

Как можно использовать треугольник Паскаля? Зачем он вообще нужен?

Треугольник Паскаля — это очень удобная таблица биномиальных коэффициентов, она строится по очень простому и легко запоминающемуся правилу (вы, наверное, его знаете), поэтому треугольник можно быстро восстановить до интересующей вас строчки. А теперь о том, где можно использовать.

1) Компоненты n-й строчки треугольника Паскаля — это коэффициенты при степенях чисел a и b в выражении (a+b)^n = a^n + na^(n-1)b + (цэ из n по 2)a^(n-2)b^2+.
2) Легко восстановить эти самые (цэ из n по m), так как m-е число в n-й строке (если считать с 0) — это искомое число. То есть не нужно считать все эти факториалы.

Почему программисты пишут программы на C++ и подобных сложных языках, если на Python синтаксис проще, и можно написать программу быстрее?

Вопрос содержит несколько неявных предположений, с ними нужно быть осторожней.

Во-первых, смотря что называть «продолжают писать». Если верить TIOBE index, самому известному индексу популярности языков программирования, за последние 20 лет популярность С++ снизилась почти втрое, а популярность Питона возросла раз в семь. Python обогнал С++ примерно полтора года назад.

Во-вторых, «подобных сложных языков», пожалуй, больше и нет. Из распространенных языков программирования С++ самый монструозный и «навороченный», с кучей парадигм, синтаксических конструкций и тонкостей, позволяющих сотней способов «выстрелить себе в ногу».

В-третьих, на Python можно написать быстрее далеко не любую программу. Если говорить упрощённо, на Python можно быстрее писать многие программы за счёт того, что некоторые писать почти невозможно. Прежде всего, работающие с железом на низком уровне и такие, которые должны выжимать из производительности всё возможное (операционные системы, драйверы, игровые движки).

Ещё одна очень распространенная проблема — это interop и связанная с ним инерция. Программа на Питоне может быть проще, но если ей нужно будет постоянно общаться с уже имеющимися в системе программами, написанными годы назад, например, на С++, то необходимая для этого общения прослойка, как правило, «сжирает» всю простоту, а программисту оказывается нужно хорошо знать не более простой язык, а сразу оба.

Источник статьи: http://yandex.ru/q/question/computers/kak_sdelat_igru_v_paskal_5aed744c/

Как написать псевдо 3д игру на Pascal?

GavriKos, джуниор имеет право назначить самого себя хоть миддлом, хоть сеньором.

Но тут у нас пациент даже до джуна не дотянул, а в программисты записаться хочет

Глупый вопрос, ты явно нарываешься на сарказм. Потому что не знать массивы и называть себя миддлом может либо полный бездарь либо тролль.

Опять же. Паскаль или дельфи? Или ты даже не знаешь что пытаешься изучить?
Для дельфи есть много движков, для этого нужно не на тостере спрашивать а искать в поиске что-то типа ZenGL , GLScene

Или просто нагуглить Delphi game engine

начинал как то изучать вопрос с какой то книжки , по-моему даже по DirectX
Но смысл в том что там были азы, математика
нужно начать с экранной плоскости, перспективной проекции
вручную посчитать по простым формулам
потом векторы и матрицы и т.д.

делал вращающийся куб на паскале, еще чего то, все на турбопаскале

вообще все очень просто
Пусть наблюдатель в точке (0,0,0)
Пусть Ось X направлена вправо, ось Y направлена вверх, ось Z от наблюдателя
пусть экранная плоскость на расстоянии H от наблюдателя перед ним (т.е. пересекает ось Z в точке (0,0,H) )
экран шириной w и высотой h пикселей, начало в верхнем левом углу

тогда точка (x,y,z) 3х мерного пространства переходит в точку (x’ , y’) на экранной плоскости
x’ = ( x / z ) * H + w/2
y’ = — ( y / z ) * H + h/2

для куба надо все 8 точек спроецировать и соединить
и т.д.
потом матрицы преобразования, там тоже легко
потом уже отсечение невидимых граней, освещение и текстурирование

Источник статьи: http://qna.habr.com/q/785899


0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии