Меню сайта
Форма входа

Среда, 01.05.2024, 22:38
Приветствую Вас Гость

Вопроссы по программированию - Форум

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Общий » Вопроссы по программированию » Вопроссы по программированию (зАДАЕМ ВОПРОССЫ ПРОГРАММИСТАМ)
Вопроссы по программированию
ArmageddetsДата: Суббота, 06.07.2013, 16:26 | Сообщение # 1
Лейтенант
Группа: Администраторы
Сообщений: 68
Репутация: 4
Статус: Offline
Доброго времени суток. Я программирую на Делфи уже 6 лет и хотел бы помочь начинающим и неопытным программистам в программировании именно на этом языке программирования. Так как делфи незаслуженно отстает пока от Си-подобных языков. Прошу, задавайте побольше вопросов и тогда я почаще буду бывать на этом форуме. Особенно по написанию игр)
 
VladikДата: Суббота, 11.01.2014, 00:12 | Сообщение # 2
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Я скачал текстуратор, и сразу заметный минус который легко исправляется - это что нет кнопки сбросить текстуру, поставил текстуру большую а потом когда делаешь маленькую то идёт наслаивание что не очень визуально красиво, лучше было сделать что-бы текстура появлялась в новом окне которое привязано к основному и выставлялся размер выбраной текстуры а главное окошко было просто для выбора параметров, сообщение не по теме но нужного раздела для этого нет
 
ArmageddetsДата: Суббота, 11.01.2014, 04:05 | Сообщение # 3
Лейтенант
Группа: Администраторы
Сообщений: 68
Репутация: 4
Статус: Offline
Согласен. Спасибо за совет. Учту. Просто я его под себя делал и изначально не собирался его выкладывать, но если есть спрос на него, то почему бы и не переделать.
 
DemigodДата: Среда, 12.02.2014, 20:26 | Сообщение # 4
Рядовой
Группа: Пользователи
Сообщений: 2
Репутация: 0
Статус: Offline
Приветствую ! Пишу 2D rpg на делфи . Столкнулся с проблемой . Написал магию типа стрела ( от персонажа в сторону его поворота летит темная стрела ) . Вопрос вот в чем не могу поймать пересечение магии и монстра . Использую вот такое условие :
if (enemy.PosX<=player.magic.PosX+radius) and (enemy.PosX>=player.magic.PosX-radius) and(enemy.Posy>=player.magic.PosY-radius)and (enemy.Posy<=player.magic.PosY+radius) then
Enemy - массив записей монстров , приходиться гонять циклом всех монстров что не очень удобно . Player.magic.posx(y) положение магии в данный момент .  radius - параметр функции ( условие в функции ) отвечающий за радиус урона .  Но это не работает .. Можете что нибудь посоветовать ?
 
ArmageddetsДата: Среда, 12.02.2014, 23:49 | Сообщение # 5
Лейтенант
Группа: Администраторы
Сообщений: 68
Репутация: 4
Статус: Offline
На русском языке твоя проверка выглядит следующим образом:
Если координата икс монстра меньше или равна координаты икс магии+радиус (тоесть правая граница действия) и
если координата икс монстра больше или равна координаты икс магии-радиус (левая граница действия)... и тоже самое для игреков.

Логически вроде правильно и ошибка может быть не здесь. Но у тебя идет
проверка лишь по левой границе картинки монстра (координата х) и верхней
границе (координата игрек). В итоге проверяется лишь верхний левый угол
монстра. Остальная часть его оказывается не нужна в проверке.

Совет 1: Если ты хочешь проверять лишь по одной точке местонахождения
монстра, то лучше выбрать его середину. Тоесть если ширина картинки
монстра 32 и высота тоже, то нужно проверять не попадает ли координата
х+16 и координата игрек+16.

А можно пойти другим путем и проверять 4 угла его картинки (икс, игрек):
верхний левый (х,у)
верхний правый(х+32,у)
Нижний левый(х,у+32)
Нижний правый(х+32,у+32)

Совет 2: Чтобы не гонять весь массив монстров можно просто постоянно проверять наличие какого либо монстра в радиусе магии примерно так

for x:=Player.magic.posx-Radius to Player.magic.posx+Radius do
for y:=Player.magic.posy-Radius to Player.magic.posy+Radius do
Then Нанести урон если там есть монстр

Но в таком случае нужно монстров привязывать к клеточкам. То есть у каждой клеточки должен храниться номер монстра если он есть или 0-если
монстров нет в клетке. Недостаток такого метода когда монстры будут
находится на частично на нескольких клеточках, а хранится будут лишь в
одной из них.

Совет 3: А вообще конечно лучше искать ошибки при наличии самого проекта. Самый простой способ ловить ошибки - это ставить точки прерывания на том месте где ты хочешь проверить данные. Например слева перед номером строки кода, где ты наносишь урон кликни мышкой и посавиться  красная точка. Запусти проект и используй магию тогда игра остановится и появится исходный код с остановкой в этом месте. ты подведи курсор к записи координат магии и координат монстра. Возможно ты увидишь что координаты считаются неправильно.

Совет 4: Еще простой способ ловить ошибки это выводить нужные данные на саму форму или в ее заголовок. Например так по таймеру

Form1.Caption:='MagicX='+inttostr(Player.magic.posx)+'  MagicY='+inttostr(Player.magic.posy)
+ '  MonstrX='+inttostr(enemy.PosX)+'  MonstrY='+inttostr(enemy.PosY);

Так ты всегда вверху сможешь смотреть и координаты магии в игре и координаты монстра.

Совет 5:  Если советы не дадут никаго результат предлагаю прислать проект мне на почту okzona1@rambler.ru и я даже в рабочее время смогу поискать ошибку.
 
DemigodДата: Четверг, 13.02.2014, 06:43 | Сообщение # 6
Рядовой
Группа: Пользователи
Сообщений: 2
Репутация: 0
Статус: Offline
Armageddets, Спасибо за ответ , попробую проверку по центру картинки .  Идея с проверкой наличия монстра в радиусе не подходит т.к в радиусе может быть больше 1 монстра . Если что обращусь .
 
ArmageddetsДата: Понедельник, 10.03.2014, 00:20 | Сообщение # 7
Лейтенант
Группа: Администраторы
Сообщений: 68
Репутация: 4
Статус: Offline
Хорошо
 
igorДата: Воскресенье, 28.06.2015, 23:25 | Сообщение # 8
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
можеш пожалусто рассказать что надо делать дальше в видео урок10 создаем игру кристалики три в ряд просто мне 12 лет и я не могу купить продолжение этого видео
 
ArmageddetsДата: Понедельник, 06.07.2015, 22:52 | Сообщение # 9
Лейтенант
Группа: Администраторы
Сообщений: 68
Репутация: 4
Статус: Offline
Вариантов создания данной игры очень много. Если рассказывать подробно, то это замет очень много времени. Задай конкретный вопрос, что не получается и я отвечу.
 
cашаДата: Понедельник, 11.12.2017, 19:07 | Сообщение # 10
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Здравствуйте. Мой вопрос не про делфи а про паскаль абс нэт (в консоли). Я недавно сделал программу которая выдает одно слово несколько раз и хочу ее немного модицицировать. Скажите пожалуйста как сделать так чтобы программа спрашивала два вопроса.
сначала спрашивала какое слово писать а после того как пользователь ответит спрашивала сколько раз его надо писать?
вот мой код 
var i, a: integer;
begin
write('сколько раз выдавать слово привет');
read (a);
for i:=1 to a do
writeln('Привет');
end.
 
Форум » Общий » Вопроссы по программированию » Вопроссы по программированию (зАДАЕМ ВОПРОССЫ ПРОГРАММИСТАМ)
  • Страница 1 из 1
  • 1
Поиск:

Наш опрос
Где Вам удобнее оставлять коментарии и задавать вопроссы?
Всего ответов: 24
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика