0.25
Модератор: Jolly Roger
- Харука-тян
- Мастер
- Сообщения: 544
- Зарегистрирован: 29 ноя 2006, 00:23
- Контактная информация:
Re: ランセラン : リロード (Lanceran : Reload)
Покажешь, как это делается?
- Максим Кич
- Администратор
- Сообщения: 1642
- Зарегистрирован: 03 дек 2006, 20:17
- Откуда: Витебск, Беларусь
- Контактная информация:
Re: ランセラン : リロード (Lanceran : Reload)
Меня в конкретном примере смущает, Item^.variable. То есть мы где-то описали Item: ^TItem, где-то выделили под него память, сейчас разыменовываем указатель и с ним работаем.Харука-тян писал(а):Покажешь, как это делается?
Но.
Код: Выделить всё
type TItem = class(TSomeClass)
Код: Выделить всё
type TMapElement = class(TGameClass)
public
chr:char;
color: TColor;
constructor Create;
destructor Done;
end;
var Map: Array [0..255,0..255] of TMapElement
// blah-blah-blah...
for i:=0 to 255 do
for j:=0 to 255 do
begin
Map[i,j]:=TMapElement.Create;
Map[i,j].color:=RGB(R,G,B); //от балды присваиваем цвет
Map[i,j].chr:=GetMeSomeChar(i,j); // и символ
end;
// blah-blah-blah...
DrawChar(x,y, Map[x,y].color, Map[x,y].chr);
// blah-blah-blah...
for i:=0 to 255 do
for j:=0 to 255 do
Map[i,j].Done;
Dump the screen? [y/n]
Re: ランセラン : リロード (Lanceran : Reload)
Я давненько уже не работал с ООП и мог кой-чего подзабыть... но мне кажется, что объявление
в ЛОКАЛЬНЫХ переменных метода в данном случае не есть хорошо.
(Это про код Харуки)
Код: Выделить всё
itm: TItem;
(Это про код Харуки)
- Харука-тян
- Мастер
- Сообщения: 544
- Зарегистрирован: 29 ноя 2006, 00:23
- Контактная информация:
Re: ランセラン : リロード (Lanceran : Reload)
Благодарю, теперь всё работает. Твоя взяла, птичек пришлось отправить зимовать на югМаксим Кич писал(а):С моей досужей точки зрения, корень твоих бед в том, что ты пытаешься принудительно работать с указателями там, где они и так уже есть. Не глядя на код могу сразу сказать, что он может быть переписан без единой «птички^».
- Максим Кич
- Администратор
- Сообщения: 1642
- Зарегистрирован: 03 дек 2006, 20:17
- Откуда: Витебск, Беларусь
- Контактная информация:
Re: ランセラン : リロード (Lanceran : Reload)
Я бы сказал, не очень рационально. Если не пытаться работать с указателем на указатель на экземпляр объекта, достаточно просто передать:Лука писал(а):Я давненько уже не работал с ООП и мог кой-чего подзабыть... но мне кажется, что объявлениев ЛОКАЛЬНЫХ переменных метода в данном случае не есть хорошо.Код: Выделить всё
itm: TItem;
(Это про код Харуки)
Код: Выделить всё
PutItem(TItem.Create, x, y);
Dump the screen? [y/n]
- Харука-тян
- Мастер
- Сообщения: 544
- Зарегистрирован: 29 ноя 2006, 00:23
- Контактная информация:
Re: ランセラン : リロード (Lanceran : Reload)
Выложила версию 0.25
Сделано: предметы, "бегалка", "склонятор", рост атрибутов с уровнем PC.
Переделано: LOS, интерфейс
Не получается: пофиксить вылет при обмене местами с NPC, зависание при спуске по лестнице, сделать "зажимание" клавиш.
Максим Кич, прошу о помощи с функцией SDL_EnableKeyRepeat. Пробую так:
не работает. ЧЯНТД?
Сделано: предметы, "бегалка", "склонятор", рост атрибутов с уровнем PC.
Переделано: LOS, интерфейс
Не получается: пофиксить вылет при обмене местами с NPC, зависание при спуске по лестнице, сделать "зажимание" клавиш.
Максим Кич, прошу о помощи с функцией SDL_EnableKeyRepeat. Пробую так:
Код: Выделить всё
SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
Re: ランセラン : リロード (Lanceran : Reload)
1) Если тебе не трудно, заведи файлик со списком известных глюков.
2) У тебя какая-то удивительная кодировка в файле хелпа. Фар говорит мне, что это называется OEM, но переводит хреново. Да и лень мне каждый раз в текстовый файл лезть, да и не только мне, наверное. Закинь список клавиш на "?", если не трудно.
3) Я спецом этот момент искал, потому что сам сталкивался с этой проблемой, лол. Тем не менее:
В этой ситуации у тебя самый правый монстр стоит на месте. Делай нормальный поиск пути.
(кстати, каким тегом здесь (на форуме) пропорциональный шрифт врубать?)
2) У тебя какая-то удивительная кодировка в файле хелпа. Фар говорит мне, что это называется OEM, но переводит хреново. Да и лень мне каждый раз в текстовый файл лезть, да и не только мне, наверное. Закинь список клавиш на "?", если не трудно.
3) Я спецом этот момент искал, потому что сам сталкивался с этой проблемой, лол. Тем не менее:
Код: Выделить всё
.M.
@MM
.M.
(кстати, каким тегом здесь (на форуме) пропорциональный шрифт врубать?)
Последний раз редактировалось Эльф 27 дек 2009, 12:00, всего редактировалось 2 раза.
Re: ランセラン : リロード (Lanceran : Reload)
Не вижу пропорционального шрифта хоть убей, а так оно не отражается корректно.
В общем ситуация, когда стоишь ты, потом три монстра в ряд, потом еще один по центру, то есть подойти прямо к тебе одним ходом ему мешают другие монстры.
В общем ситуация, когда стоишь ты, потом три монстра в ряд, потом еще один по центру, то есть подойти прямо к тебе одним ходом ему мешают другие монстры.
- Харука-тян
- Мастер
- Сообщения: 544
- Зарегистрирован: 29 ноя 2006, 00:23
- Контактная информация:
Re: ランセラン : リロード (Lanceran : Reload)
Искуственных идиотов я писать потом буду. А список клавиш добавила, на клавишу "?".Эльф писал(а):В общем ситуация, когда стоишь ты, потом три монстра в ряд, потом еще один по центру, то есть подойти прямо к тебе одним ходом ему мешают другие монстры.
- Jolly Roger
- Сообщения: 2973
- Зарегистрирован: 27 ноя 2009, 09:10
- Откуда: Minsk, Belarus
Re: ランセラン : リロード (Lanceran : Reload)
Так если они бегают, значит работает, нужна всего лишь проверка на наличие в клетке дружественного существа.
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.
- Maelstrom
- Мастер
- Сообщения: 2062
- Зарегистрирован: 26 ноя 2006, 14:19
- Откуда: г. Усть-Кирдык
- Контактная информация:
Re: ランセラン : リロード (Lanceran : Reload)
У меня через 10 секунд после начала игра вылетела и попытке поменяться местами с хрестьянином. Потом, сколько раз не менялся с ними местами, всё нормально было.
Айв кнгенгах Йог-Сотот
- Максим Кич
- Администратор
- Сообщения: 1642
- Зарегистрирован: 03 дек 2006, 20:17
- Откуда: Витебск, Беларусь
- Контактная информация:
Re: ランセラン : リロード (Lanceran : Reload)
Если имелся в виду моноширинный, то:Эльф писал(а):(кстати, каким тегом здесь (на форуме) пропорциональный шрифт врубать?)
Код: Выделить всё
##########
#...O.. .#
#OOOOOO O#
#.O.O.O .#
##########
Dump the screen? [y/n]
Re: ランセラン : リロード (Lanceran : Reload)
Все, я понял. У вас глюк какой-то странный, в теге "код" одиночный пробел в начале строки убирается. А двойной уже нет. Заменил на точки - стало нормас.Максим Кич писал(а): Ты где-то какой-то символ пропустил.
Re: ランセラン : リロード (Lanceran : Reload)
Не всегда генерятся лестницы. Потайных дверей ведь пока что нет, я правильно понял?
В процессе осмотра стен игра вылетела с ошибкой 210.
В процессе осмотра стен игра вылетела с ошибкой 210.
- Харука-тян
- Мастер
- Сообщения: 544
- Зарегистрирован: 29 ноя 2006, 00:23
- Контактная информация:
Re: ランセラン : リロード (Lanceran : Reload)
Это ты просто до дна подземелья дошёлЭльф писал(а):Не всегда генерятся лестницы. Потайных дверей ведь пока что нет, я правильно понял?
В процессе осмотра стен игра вылетела с ошибкой 210.
А ошибка с вылетом при осмотре была вылечена, как и при обмене местами с NPC была вылечена. Свежая версия скоро будет.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 51 гость