Форум: "Игры";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
ВнизПомогите с алгоритмом Найти похожие ветки
← →
Jfc (2005-07-12 04:38) [0]Привет, Масте®а! Т.к. я в этом деле ещё бот, то решил написать (не смеяться) текстовую полуграфическую рпг. И у меня возникли некоторые трудности:
1.Допустим в игре 20 мечей, пишу
...
type TSwords = array [1..20] of record
Name: string;
Damage: integer;
Picture: TPicture;
end;
...
далее описываю каждый
...
var S:TSwords;
...
S[1].Name:="Long Sword";
S[1].Damage:=30;
и т.д. вопрос в том, как сделать так, чтобы во время игры при переходе по локациям и в магазине эти шмотки разбрасывались рандомно...
2.Как при переходе по локации сделать чтоб враги нападали рандомно и неожиданно, просто я тут пытался сделать, но у меня получается всё линейно.
Извините за тупые вопросы, проблемы описал как смог, надеюсь поймете.
Заранее спасибо.
← →
Kobik (2005-07-12 06:29) [1]Ну во-первых делать "текстовую полуграфическую рпг" значительно лучше чем "супер пупер 3Д-шку типа ... " :) По верному пути идешь :)
1) Массив мечей... Это типа перечисление всех типов мечей идет? Ну допустим. Тут все зависит от того, как ты себе представляешь магазин. В большинстве старых РПГ такого типа в каждом магазине продается заранее определенный набор оружия.
Если тебе надо обязательно случайный набор, то делаешь что-то типа полки:
...
type TPolka = array [1..10] of integer;
...
var Polka:TPolka;
Когда заходишь в магазин
for i:=1 to 10 do Polka[i]:=1+random(20);
ну и т.д. А вообще проблема то в чем? В использовании random?
Главное не забудь в начале программы (например в form1.OnCreate) сделать Randomize;
← →
Jfc (2005-07-12 06:47) [2]Kobik
Спасибо, с этим понял.
А как быть с локацией?
Допустим, если локацию представить как
type Location = array[1..11] of integer;
, то по идее точки на карте будут последовательны
1234567891011
,а как сделать,чтобы карта выглядела таким образом:
1234
5678
91011
???
И как осуществить способ перемещения?
← →
Kobik © (2005-07-12 10:15) [3]Ты про многомерные массивы чтоли незнаешь? Почитай любую книжку по паскалю и такие вопросы отпадут.
Или может я вопрос не так понял :)
← →
Xenon (2005-07-12 11:41) [4]1234
5678
91011
Бредовая идея создания карты. Почитай про 2-мерные массивы. Карта вообще должна состоять примерно так
111101110000011111
100010101011101011
110101001101010101
111100010010101001
101010010100000100
100001000000000000
100000000000000000
1-трава, 0-вода.
Но это только примерно.
← →
-virus- © (2005-07-12 21:52) [5]или:
type Tcarta=record
name: string; {название}
s: string; {трава, вода, гора}
t: string; {враг, друг, нейтрал}
................................
end;
.............................
var
carta: array [1..100,1..100] of Tcarta; {двумерный массив}
..................................
← →
Jfc (2005-07-13 01:15) [6]Спасибо!!!!
Последний вопрос (ногами не бить): как по такой карте перемещаться?
← →
-virus- © (2005-07-13 10:18) [7]смотря как ты хочешь это реализовать,
можно так-
добавить:
type Tcarta=record
.............
.............
playr: boolean; {есть ли игрок на этой локации}
end;
...................
var
x,y: integer; {координаты игрока}
...................
присвоить x,y координаты игрока.
например:
x:=1;
y:=1;
carta[x,y].playr:=true; {игрок находитса на локации [1,1]}
затем при нажатии, например клавиши "вниз":
carta[x,y].playr:=false; {игрок не находитса на [1,1]}
x:=x+1;
carta[x,y].playr:=true; {игрок находитса на локации [2,1]}
и еще, вот как выглядит двумерный массив (карта):
[1,1][1,2][1,3][1,4][1,5]
[2,1][2,2][2,3][2,4][2,5]
[3,1][3,2][3,3][3,4][3,5]
[4,1][4,2][4,3][4,4][4,5]
[5,1][5,2][5,3][5,4][5,5]
← →
Kobik © (2005-07-13 15:15) [8]Неее. :) все по другому.
Можно так:
type TPlayer=record
.............
.............
x,y: integer; //координаты хероса
end;
var player:TPlayer;
в таймере или где там
if getasynckeystate(VK_UP)<0 then dec(player.y);
if getasynckeystate(VK_down)<0 then inc(player.y);
if getasynckeystate(VK_left)<0 then dec(player.x);
if getasynckeystate(VK_right)<0 then inc(player.x);
:)
← →
Jfc (2005-07-14 01:14) [9]Спасибо большое, теперь со всем разобрался!
Мастера - лучшие!
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.013 c