Конференция "Игры" » взаимодействием с игровым миром [Delphi, Windows]
 
  • rsy (13.01.08 11:26) [0]
    Пожалуйста объясните на своём опыте. Как в ваших
    играх, Происходит взаимодействием с игровым миром.
    Например дана карта, на карте зверек. Игрок клацает на него
    и затем клацает на необходимое место перемещения зверька.
    Так как вообще сделать взаимодействие с игровым миром и мышью.

    Я сделал так. Экран имеет разрешение 800х600 и я клацаю по зверьку и проверяю
    клик на столкновение с помощью функции:

    function PointCollision(x1, y1, w1, h1, x2, y2, w2, h2 : integer) : boolean;
    var
     r1, r2 : TRect;
    begin

     r1.Left := x1;
     r1.Top := y1;
     r1.Right := x1 + w1;
     r1.Bottom := y1 + h1;
     r2.Left := x2;
     r2.Top := y2;
     r2.Right := x2 + w2;
     r2.Bottom := y2 + h2;

     Result := RectCollision(r1, r2);
    end;

    Чего то я думаю что это бредовая идея, что она зависит от конкретного места на екране.
    А если скролер или другое разрешение екрана. То будет сложно применить такой способ.
    Подскажите как быть в такой ситуации. Как вы делали в своих проектах?
  • Ketmar_ (13.01.08 15:07) [1]
    screen coordinates --> map(world) coordinates --> collision checking. после чего на разрешение, положение и прочее просто наплевать.
  • rsy (17.01.08 15:14) [2]
    Чегото не понял. так я правильно делаю или нет.
  • ketmar © (17.01.08 16:26) [3]
    >[2] rsy (17.01.08 15:14)
    окуда нам знать? по приведённому тобой коду видно, что проверяются какие-то координаты. что это за координаты, откуда они взялись, зачем и ты пы — это только Аллах и телепаты знают. в Аллаза я не верю, а телепатов уволил.
  • Darkmoon (17.01.08 16:40) [4]
    Всё зависит от того 3D или 2D твоя игра
  • ketmar © (17.01.08 17:34) [5]
    >[4] Darkmoon (17.01.08 16:40)
    совершенно не зависит.
  • Darkmoon (17.01.08 18:14) [6]
    я имел в виду то что для 2D игр подойдет простое попадание мышки в прямоугольник начинающийся в точке нахождения объекта со сторонами равными длинне и ширине объекта, а в 3D такое уже не катит.
  • ketmar © (17.01.08 18:34) [7]
    >[6] Darkmoon (17.01.08 18:14)
    в той же изометрии вполне себе катит частенько. ну, не в прямоугольник, а в параллелограм/ромб. фиг ли разницы?
  • Darkmoon (17.01.08 19:25) [8]
    Ну для этого в дирексте есть специальные функции(непомню какие) при помощи их делать легче.
 
Конференция "Игры" » взаимодействием с игровым миром [Delphi, Windows]
Есть новые Нет новых   [134431   +10][b:0][p:0]