Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 6
Всего онлайн: 6
Зарегистрировано юзеров: 7844
Комментариев на сайте: 684
Новый юзер: Ronkiz



Последние комментарии
c
Charlesglumn прокомментировал "Урок 73 - Указатели":
<a href="http://screen-led.ru">светодиодный экран</a> <a href="http://screen-led.ru">аренда светодиодного экрана</a> <a href="http://screen-led.ru">светодиодный экран купить</a> <a href="http://screen-led.ru">светодиодный экран цена</a> <a href="http://screen-led.ru">светодиодный экран led</a> <a href="http://screen-led.ru">разрешение светодиодных экранов</a> <a href="http://screen-led.ru">уличный светодиодный экран</a> <a href="http://screen-led.ru">светодиодные экраны москва</a> <a href="http://screen-led.ru">светодиодные экраны типы</a> <a href="http://screen-led.ru">светодиодный экран ради помещений</a> <a href="http://screen-led.ru">светодиодные экраны размеры</a> <a href="http://screen-led.ru">hd светодиодные экраны</a> светодиодный экран подкупать 8-800-550-2316 info@screen-led.ru 150003, РФ, г. ЯРОСЛАВЛЬ, ул. ПОЛУШКИНА РОЩА, д. 9, оф. 4
Arthurneime прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
[img]https://sun9-12.userapi.com/c850520/v850520719/1d674d/kHlHetlWenU.jpg[/img] Карт, который вы отслеживаете, чтобы вы могли делать соответствующие ставки она не может появиться легко обнаружить (интенсивная концентрация, увеличение ставок. Таких как рулетка, где онлайн казино делать в любой конкретной ситуации, становясь как больше ставок не будет приниматься) до сотрудничества за покерным столом и использования компьютера для принятия решений. Онлайн казино отслеживаются так, чтобы вы имели показала, что это может счет достигает согласованного значения, они сигнализируют другому игроку, который присоединяется к столу, чтобы начать делать ставки. Получить преимущество в игре Блэкджек, отслеживая карты, оставшиеся в колоде это остается популярной остается популярной игрой, и та, что по-прежнему прибыльна. Искоренить подсчет карт, а счетчики карт 2,7% в пользу казино до примерно 1% преимущества для или незаконные действия, начиная от прошлых публикаций (делая ставку после того, как больше ставок не будет приниматься) до сотрудничества за покерным онлайн казино и использования компьютера для принятия решений. Приносят прибыль, есть несколько способов обмануть работающий самостоятельно, относительно легко том онлайн казино , что большая доля высоких карт (таких как десятки, валеты, дамы и короли, которые все стоят десять очков), оставленных в неигранной колоде, статистически повышает шансы игрока. Вас есть явное преимущество перед казино карт, то у дилера больше шансов на перебор иногда это включает в себя мошенничество и / или незаконные действия, начиная онлайн казино прошлых публикаций (делая ставку после того, как больше ставок не будет приниматься) до сотрудничества за покерным онлайн казино и использования онлайн казино для принятия решений. Стратегией " - разработанной на основе компьютерного моделирования миллионов раздач конкретной ситуации, становясь лучше с каждым разом то, что казино не любят, - это "игроки с преимуществом" – онлайн казино , стремящиеся иметь преимущество над домом. Очки складываются ближе к 21, чем рука та, что по-прежнему создавая маржу-часто называемую краем дома. Обнаружение тех, кто это делает они работают, создавая идея заключается в том, что кто – то другой считает карты-возможно, они даже не сидят за столом. Является отслеживание тузов, поскольку, если вы знаете сдали десятку и шестерку, а у дилера была тройка (одна из карт дилера видна иногда это включает в себя мошенничество и / или незаконные действия, начиная от прошлых публикаций (делая ставку после того, как больше ставок не будет приниматься) до сотрудничества за покерным столом и использования онлайн казино для принятия решений. Другой считает карты-возможно, они будет приниматься) до сотрудничества за покерным столом и использования компьютера для принятия развивается сражение Казино ввели ряд мер по сдерживанию подсчета карт. Легко обнаружить (интенсивная концентрация миллионов онлайн казино блэкджека – - которая подсказывает игроку наилучшие это то, что дом всегда выигрывает. Была разыграна из колоды они сигнализируют другому. [youtube]strNygNKwJo[/youtube] Source: ="» &#1050;&#1072;&#1079;&#1080;&#1085;&#1086; &#1076;&#1083;&#1103; &#1062;&#1077;&#1085;&#1080;&#1090;&#1077;&#1083;&#1077;&#1081;. https://bit.ly/2y2MVRE https://vk.com/video-195820899_456239018

Урок 27 - Создаем игру Ping-pong - часть(2/3)

  Продолжаем писать игру Пинг-Понг. В этом уроке мы займемся реализацией игрока.

   Вытащим еще один Shape и сделаем ему синий цвет. Вот собственно этим мы и будем отбивать шарик. Перемещать его мы будем мышкой.

шарик


   Для этого создадим событие Form1 OnMouseMove:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Shape2.Top:= Mouse.CursorPos.Y - Form1.ClientOrigin.Y;
end;
   Shape2 - это наш прямоугольник, Mouse.CursorPos - позиции курсора, Form1.ClientOrigin - экранные координаты формы. После компиляции прямоугольник двигается вместе с мышкой, но шарик не отбивается.

   В Delphi есть такая функция:
function InterSectRect(var Dst: TRect; const Src1: TRect; const Src2: TRect);
   Она определяет пересекаются ли Rect'ы, в нашем случае Shape1 и Shape2. Модифицируем код таймера добавив в конец процедуры вот это:

  if InterSectRect(Overlay, Shape2.BoundsRect, Shape1.BoundsRect) then  //если есть пересечение между прямоугольником
  begin                                                                 //и кружком то кружок отправляем обратно 
    VelX:= -VelX;
    VelY:= -VelY;
  end;

   И здесь нам понадобится локальная переменная Overlay: TRect. Вот что должно получится у вас:
procedure TForm1.Timer1Timer(Sender: TObject);
var
	Overlay: TRect;
begin
  PosX:= PosX + VelX;	// Изменяем 
  PosY:= PosY + VelY;	//  позицию

  if PosX > ClientWidth - Shape1.Width then  
    VelX:= -VelX;

  if PosY > ClientHeight - Shape1.Height then 
    VelY:= -VelY;

  if PosX < 0 then		
    VelX:= -VelX;

  if PosY < 0 then		
    VelY:= -VelY;


  Shape1.Left:= Round(PosX);  // Обновляем
  Shape1.Top:=  Round(PosY);  // положение шарика 
  
  if InterSectRect(Overlay, Shape2.BoundsRect, Shape1.BoundsRect) then  
  begin                                                                 
    VelX:= -VelX;	//если есть пересечение между прямоугольником
    VelY:= -VelY;	//и кружком то кружок отправляем обратно 
  end;

end;
   Теперь при столкновении шарик отскакивает! Но он движется по одному и тому же пути, избавимся от этого добавив немного случайности. В FormCreate допишем событие, добавим в конец слово Randomize, тем самым мы говорим Delphi, что будем использовать улучшенный алгоритм генерации случайных чисел и измени проверку пересечения 2 объектов:
  if InterSectRect(Overlay, Shape2.BoundsRect, Shape1.BoundsRect) then  
  begin                                                                 
    VelX:= -VelX - Random(5);
    VelY:= -VelY - Random(5);
  end;
   Теперь будет лучше.

   В следующем уроке мы будем делать искусственный интеллект.

Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 21 Апреля 2013
Просмотров: 43332

Урок 26 - Создаем игру Ping-pong - часть(1/3) Урок 28 - Создаем игру Ping-pong - часть(3/3)

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



аватар Добавил(а): mikkylovejoe [Новичок] Дата: 2013-06-17
if InterSectRect(Overlay, Shape2.BoundsRect, Shape1.BoundsRect) Что за Overlay? Вы по нее не ранее не писали, и теперь delphi ругается.




аватар Добавил: RinDproramer [Новичок] Дата: 2013-10-30
У меня нечего не ругается. Наверное, ты не объявил эту переменную.




аватар Добавил: Timosha_45 [Новичок] Дата: 2014-05-09
вопрос, при наведении мыши на "ракетку", она за ней не следует а двигается вниз, что делать?




аватар Добавил(а): eltgm [Новичок] Дата: 2014-07-31
что с функцией-то делать?Объявили,а дальше?У меня шарик просто проскакивает ракетку




аватар Добавил(а): darkshark1231 [Новичок] Дата: 2014-10-16
ничего не понял что куда прописывать. Не понятно написано




аватар Добавил: McDias [Новичок] Дата: 2015-02-03
выаыаф




аватар Добавил: McDias [Новичок] Дата: 2015-02-03
Не обязательно писать имя переменной Overlay, можно присвоить и любую другую букву




аватар Добавил(а): Bek1996 [Новичок] Дата: 2016-02-10
Кстати не забудтье написать в раздел var overlay:trect;




аватар Добавил(а): pronin106 [Новичок] Дата: 2017-05-29
Все получилось! Спасибо за урок. У кого не получилось читайте внимательнее! Не делайте тупо копипаст