Как сделать игру Теннис на Паскале

preview_player
Показать описание
В этом видео я покажу как создать игру "Теннис", или "Пинг-Понг", на языке программирования Паскаль.
Видео ускорено. Так как во время записи у меня Паскаль очень тормозил, мне приходилось ускорять игру, поэтому она могла тормозить. На деле же игра не тормозит и быстро работает.

В эту игру можно ещё много чего добавить, например ИИ, звук, ускорение мяча, таблицу рекордов и многое другое.
Пишите в комментарии стоит ли делать продолжение или более подробный туториал. А так же пишите создание ещё каких игры вы бы хотели видеть на канале в подобном формате. Буду сильно благодарен.
Рекомендации по теме
Комментарии
Автор

Это скоростной показ написания игры, а не туториал. Твои видео скорее всего будут смотреть новички, а не продвинутые программисты. Раскладывай всё по полочкам, лучше длинное видео и понятное, чем просмотр "на перемотке" где стараешься что-нибудь уловить и освоить. За скорость -диз. Пере сними видео и сделай как для людей. В данном случае название канала "Смотрю и учусь" не соответствует контенту. Больше подходит "Смотрю и ... всё".

jlcizvn
Автор

Видео супер всё понятно (надо было добавить ссылку на код)

muslimbeksaparbayew
Автор

У меня одного получилось что две минуты видео равны 2 часам реальным..?

filden
Автор

помогите пожалуйста у меня шарик не появляется.
вот код:

program tennis;
uses GraphABC;

var
game, pd, pu, ad, au, dx, dy: boolean;
width, height, ypl, yan, wid, hei, spp, xb, yb, rb, speed:integer;

procedure KeyDown(k : integer);
begin
if k = VK_S then pd:=True;
if k = VK_W then pu:=True;
if k = VK_Down then ad:=True;
if k = VK_Up then au:=True;
end;
procedure KeyUp(k : integer);
begin
if k = VK_S then pd:=False;
if k = VK_W then pu:=False;
if k = VK_Down then ad:=False;
if k = VK_Up then au:=False;
end;
begin
//set
game:=True;
width:=1024;
height:=768;
lockDrawing();
SetWindowSize(width, height);
wid:=15;
hei:=100;
ypl:=(height-hei) div 2;
yan:=(height-hei) div 2;
spp := 20;
xb:=width div 2;
yb:=height div 2;
rb := 20;
speed:=10;
yan:=yb-6;
while game do
begin
// logic

if (dx and dy) then
begin
xb+=speed;
yb+=speed;
end
else if (dx and not dy) then
begin
xb+=speed;
yb-=speed;
end
else if (not dx and not dy) then
begin
xb-=speed;
yb-=speed;
end
else if (not dx and dy) then
begin
xb-=speed;
yb+=speed;
end;

if (pd and (ypl+hei<=height)) then ypl+=spp;
if (pu and (ypl>=0)) then ypl-=spp;
if (ad and (yan+hei<=height)) then yan+=spp;
if (au and (yan>=0)) then yan-=spp;

if ((yb >= height-rb) or (yb<=rb)) then
dy := not dy;
if (xb+rb>=width-wid) or (xb-rb<=wid) then
dx:= not dx;


OnKeyDown := KeyDown;
OnKeyUp := KeyUp;

//draw
window.clear();
SetBrushColor(clBlack);
FillRect(width div 2-5, 0, width div 2+5, height);

// player and anemy
FillRect(0, ypl, wid, ypl+hei);
FillRect(width - wid, yan, width, yan+hei);

redraw();
end;
end.

khristov_quake
Автор

Я сделала всё как вы, но у меня почему-то не двигаются палочки..

dina_
Автор

А меня выдаёт ошибку, в 5 строчке по поводу spp то, что это повторно объявленный идентификатор

jjjuuk
Автор

Здравствуйте, надеюсь увидите, во время 8 части, сделал все как нужно, пауза не работает, понатыкал на все кнопки, всё равно паузы нету

SKYFOX
Автор

Можете подсказать почему у меня мяч стоит на месте после того как я написал вроде 7 часть там где счёт, хотя до этого все работало
Как исправить

usernameneizvestno
Автор

Я надеюсь, что ты это увидишь. Так вот: у меня не вырисовывается мяч, хотя все делал по твоему ролику. Просьба объяснить (И еще впредь не пиши так быстро, а то даже на паузу не поставить, все слишком быстро пролетает)

nteshhq
Автор

Здравствуйте, очень надеюсь вы увидите. Вроде бы я всё написал как у вас в видео, но при запуске программы у меня просто белый фон и нижняя чёрная полоса. Надеюсь, вы увидите!

notsayinggoodbye_
Автор

💀—это я с уровнем Паскаля
Drawman смотрю это видео

Vbach
Автор

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

seejobu
Автор

if (ad and (yan+hei)) then yan+=spp;
Пишет что and не применяется к типам boolen и integer
Что делать? Делал как на видео

ljpbwtr
Автор

А можно ссылку на какой-нибудь текстовый файл с кодом программы, пожалуйста?)

Rfgbnfy_Nemo
Автор

А что делать если паскаль выдаёт ашибку по неизвестной программе

irbisovod_ttr_
Автор

Почему у меня выдает ошибку Program1.pas(10) : Встречено 'if', а ожидалось выражение

Opitakfhdjbxnenxbnsmdbdn
Автор

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

cglcprj
Автор

Привет! Поможешь пожалуйста? Я сделал всё в точности как у тебя, но почему то правый игрок ходит сам по себе, и притом в любом случае попадает по мячу. Проверял 5 раз. Все также как у тебя. Но не знаю. Возможно всё таки что то пропустил...

pebyoth
Автор

После показа взаимодействия, второй игрок не может отбивать мяч, он проходит сквозь игрока, что делать?

uni
Автор

А не проще было использовать abcobjects с graphabc и просто двигать а не перерисовывать?

klisp