forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   движение по карте(линиям, обьектам) (http://forum.boolean.name/showthread.php?t=693)

ZeFiR 18.02.2006 18:19

нужен сабж, киньте алго плз

jimon 18.02.2006 21:27

тебе собно линейная интерполяция надо чтоли или как ?
можеж по детальнее описать что надо

Guest 18.02.2006 21:41

Нужно просто чтоб мячик(или марио какой-то) прыгал по карте(вид сбоку)... карту из любого ресурса брать и тд

Piligrim 19.02.2006 21:30

Сабж - это готовая игра уже будет. Тебе только свои ресурсы добавить останется.

Guest 19.02.2006 22:13

Цитата:

Originally posted by pilgrim@19.2.2006, 18:30
Сабж - это готовая игра уже будет. Тебе только свои ресурсы добавить останется.

:'(( спсибо. даже не код, просто идею дайте

SubZer0 19.02.2006 23:59

Вложений: 2
ТАК! что тут за флуд в мое отсутствие!?

Если нЕчего сказать, то нафига тогда флудить? вообще пипецц >:(


Дак вот... по теме...

движение по карте реализовать на паскале оооочень гЕморно, я пробовал но это ооочень медленно работает...

см аттач.

ZeFiR 20.02.2006 17:58

Цитата:

Originally posted by SubZer0@19.2.2006, 20:59
ТАК! что тут за флуд в мое отсутствие!?

Если нЕчего сказать, то нафига тогда флудить? вообще пипецц >:(


Дак вот... по теме...

движение по карте реализовать на паскале оооочень гЕморно, я пробовал но это ооочень медленно работает...

см аттач.

Нифига в твоем примере не понятно. Я имел ввиду движение самого обьекта по карте

SubZer0 20.02.2006 19:15

Цитата:

Originally posted by ZeFiR@20.2.2006, 15:58
Нифига в твоем примере не понятно. Я имел ввиду движение самого обьекта по карте
гы, ну я-же его както писал ;)

там есть переменные UXPos и UYPos (типа User X Position) дак вот, пишешь туды код, чтоб от нажатия кнопок эти координаты изменялись и будет тебе объект по карте перемещаться ;) ;)

код на подобие этого:


Код:

t:=1;
keyAction := keyToAction(getKeyClicked);

 
if keyAction = GA_RIGHT then UXPos:=UXPos+t;

if keyAction = GA_LEFT В*then UXPos:=UXPos-t;

if keyAction = GA_DOWN В*then UYPos:=UYPos+t;

if keyAction = GA_UP В* В*then UYPos:=UYPos-t;

:)

Tiffany 20.02.2006 19:41

Примерно так:

if SXPos+ScreenW*7<UXPos then SXPos:=SXPos+t;
if SXPos+ScreenW*7>UXPos then SXPos:=SXPos-t;

if SYPos+ScreenH*7<UYPos then SYPos:=SYPos+t; // UXPos исправить на UYPos
if SYPos+ScreenH*7>UYPos then SYPos:=SYPos-t; // тоже исправить

// <-- СЮДА ВСТАВИТЬ (См. далее)

redrawscreen

////////////////////////////////////////////
// Что вставлять:

keyCode := GetKeyPressed;
if KeyToAction(keyCode) = GA_UP then
begin
UD := 1;
if ScreenW < UYPos then UYPos := UYPos - 1;
end;
if KeyToAction(keyCode) = GA_DOWN then
begin
UD := 3;
UYPos := UYPos + 1;
end;
if KeyToAction(keyCode) = GA_LEFT then
begin
UD := 4;
if ScreenH < UXPos then UXPos := UXPos - 1;
end;
if KeyToAction(keyCode) = GA_RIGHT then
begin
UD := 2;
UXPos := UXPos + 1;
end;
// конец

Tiffany 20.02.2006 19:44

Забыл еще в VAR добавить

x, y: integer;
keyCode: integer;

ZeFiR 20.02.2006 20:06

Гы ! Он за карту выехал, по стенам ездил... Смысл моего вопроса: движение по полу на карте вместе со столкновением со стенами

SubZer0 21.02.2006 01:24

Цитата:

Originally posted by ZeFiR@20.2.2006, 18:06
Гы ! Он за карту выехал, по стенам ездил... Смысл моего вопроса: движение по полу на карте вместе со столкновением со стенами
ну дык! коллизию-то самому можно дописать... координаты проверяй да и все... :)

дели координаты юзера на 16 и проверяй в массиве GameFF что там есть стена али нет... :)

Piligrim 17.04.2006 15:54

Тут англичанин нарыл на сайте Sun одну интересную статью.
Я ее переложил под МР. Красивый код получается.
muTank
Правда проблемы с компиляцией java-библиотек дают ложку дегтя.

SubZer0 17.04.2006 20:41

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

если допустим будет 10 танков + каждый может выпустить 10 пуль + 200 взрывающихся тайлов (стен там всяких, бомб)... допустим, мы проверяем по позиции и коллизию тестим только у близлижащих объектов, в критической ситуации ИМХО должно прорабатываться примерно 100 коллизий и это в минимум 25 фпс...

тормозов там не будет?

8)

Piligrim 17.04.2006 21:34

Коллизия попиксельная из GameCanvas. Насчет быстродействия посмотрим, там пауза 80 мс между опросами. Просто была такая классная игрушка Five. Там два танка друг против друга воевали в свободном полете.


Часовой пояс GMT +4, время: 13:17.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot