Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2013, 23:38   #1
romka1608
Пользователь
 
Регистрация: 12.08.2013
Сообщений: 41
По умолчанию Как вычислить дистанцию?

1)Как вычислить дистанцию от середины экрана к vec.x и vec.y.
И как заставить Setcursorpos срабатывать ТОЛЬКО когда дистанция между ними 10





2)
и еще
Глючит всё когда включаю таймер1
код
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  i, j, dx: integer;
  bit: TBitmap;
  flag: boolean;
  t: tdatetime;
  Pixels: PByteArray;
const
  red1 = 94;
  green1 = 168;
  blue1 = 38;
begin
  flag := false;
  bit := TBitmap.Create;
  bit.PixelFormat := pf24bit;
  bit.Width := Screen.Width;
  bit.Height := Screen.Height;
  BitBlt(bit.Canvas.Handle, 0, 0, bit.Width, bit.Height, GetDC(0), 0, 0, SRCCOPY);

  t := now;
  dx := DWord(bit.ScanLine[1]) - DWord(bit.ScanLine[0]);
  Pixels := bit.ScanLine[0];
  for i := 0 to bit.Height - 1 do
  begin
    for j := 0 to bit.Width - 1 do
    begin
      flag := (Pixels[j * 3 + 2] = red1) and (Pixels[j * 3 + 1] = green1) and (Pixels[j * 3] = blue1);
      if flag then
        break;
    end;
    if flag then
      break;
    inc(DWord(Pixels), dx);
  end;
  caption := FormatDateTime('s.zzz', now - t);

  if flag then
    setcursorpos(j, i);

  bit.Free;
end;

может всё дело из за таймера

Последний раз редактировалось romka1608; 29.08.2013 в 23:41.
romka1608 вне форума Ответить с цитированием
Старый 29.08.2013, 23:52   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

1) Вспоминаем теорему Пифагора.
2) Можно вынести создание битмапа в formcreate, а удаление - в formdestroy.
Можно перейти на более свежую версию Дельфи.
А так - мало ли от чего глюки.

PS Не приветствую создание бота, тем более чужими руками.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 29.08.2013 в 23:54.
BDA вне форума Ответить с цитированием
Старый 30.08.2013, 00:37   #3
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

2 romka1608
Цитата:
Глючит всё когда включаю таймер1
Не надоело ещё совать "надыбанный" во всемирной помойке код куда-бы ни что, лишь бы наудачу заработало?

Или ещё не умерла надежда, что кто-то, где-то, когда-то будет столь любезен, что даст готовый код?

Последний раз редактировалось northener; 30.08.2013 в 00:58.
northener вне форума Ответить с цитированием
Старый 30.08.2013, 06:26   #4
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

1) Получаем координаты курсора, получаем середину экрана(координаты), проверяем условиями. И отнимаем от середины экрана, если курсор левее, и если правее, то от координат курсора середину экрана. Тоже с высотой.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 30.08.2013, 15:15   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
если курсор левее, и если правее, то от координат курсора середину экрана. Тоже с высотой.
Зачем так сложно? Теорема пифагора все это решит.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как вычислить отпуск? IceSwoop Помощь студентам 3 15.08.2012 11:57
Как вычислить возраст? Юсуп Общие вопросы Delphi 10 19.06.2012 01:09
как сравнить 4 числа,наименьшее записать в R15.как вычислить степень? dezder Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 18.12.2011 13:02
Как вычислить пятницу 13? ==Terman== Microsoft Office Excel 4 06.06.2009 11:56
цель игры - управляя корабликом стрелками, пройти дистанцию за наименьшее время. Lazzy Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 18.12.2007 23:51