Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 16
1

Рогатка: зажать клавишу мыши, оттянуть "резину", произвести выстрел

24.05.2014, 22:34. Просмотров 1401. Ответов 7
Метки нет (Все метки)


Здравствуйте, необходимо сделать переход от mousedown -> mousemove -> mouseup.
Часть кода:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//Растяжение
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  form1.Repaint;
  form1.Canvas.Pen.Color:=ClBlue;
  form1.Canvas.Pen.Width:=4;
  Linex:=x;
  Liney:=y;
  form1.Canvas.MoveTo(88,167);
  form1.Canvas.LineTo(Linex,Liney);
  Image1.Left:=x;
  Image1.Top:=y;
end;
 
//выстрел
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 Timer1.Enabled:=true;
 Timer1.Interval:=15;
 a:=StrToFloat(Edit2.Text)*pi/180;
 vx:=StrToFloat(edit1.Text);
 form1.Repaint;
end;
Необходимо зажать клавишу мыши, оттянуть "резину" , произвести выстрел . Заранее спасибо.

Добавлено через 11 часов 44 минуты
Сама программа:
http://yadi.sk/d/Wkdl559uRBi57.
Кто может помочь плз не проходите мимо !
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2014, 22:34
Ответы с готовыми решениями:

В рабочей области отображена надпись "Нажмите правую клавишу мыши над рабочей областью"
Здравствуйте, нужна помощь с заданием. В рабочей области отображена надпись "Нажмите правую...

Как принять код клавиши, а вписать саму клавишу? (Принимает "57", что означает "9")
Нужно избавиться от такой глупости: char ch = 0; if(ch=='1')mas=1; if(ch=='2')mas=2; ...

Сделать так, чтобы после ввода текста в Edit вместо нажатия кнопки "Да" можно было нажимать клавишу "Enter"
Раньше при помощи нехитрого кода (if (key = #13) then ...) у меня получалось сделать так, чтобы...

Произвести поиск значения характеристики в соответствии со "спискок 2" в зависимости от "список 1"
Как при помощи пользовательской функции vba в excel решить такую проблему: дано: два массива...

7
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 16
11.06.2014, 15:17  [ТС] 2
Здравствуйте, необходимо подправить код программы, а именно :
Прорисовку линии да и самого следования шара за мышью(вроде работает , но происходит "раздвоение" в сантиметрах 10 друг от друга) , и правильный расчёт угла прямоугольного треугольника зная 2 катета.
Сама программа во вложении.

Добавлено через 16 часов 5 минут
... перерисовка
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
form1.Repaint;
 
    form1.Canvas.Pen.Width:=5;
    form1.Canvas.Pen.Color:=ClBlue;
 
    form1.Canvas.MoveTo(rogatkaLeft,RogatkaTop);
    form1.Canvas.LineTo(x2,y2);
    Shape1.Left:=x2;
    Shape1.Top:=y2;
 
    x0:=x2;
    y0:=y2;
Добавлено через 40 секунд
...вычислениу угла
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  isdrugging:=false;
  if isdrugging=false then
  Timer1.Enabled:=true;
  Timer1.Interval:=15;
 
  {a:=60*pi/180;}
  vx:=70;
 
  w:=shape1.Top-rogatkaTop;
  h:=rogatkaLeft-shape1.left;
 
  a:=ArcTan2(h,w);
  
 
form1.Repaint;
 
end;
0
Вложения
Тип файла: rar Cls_312.rar (170.0 Кб, 10 просмотров)
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 16
15.06.2014, 15:30  [ТС] 3
Здравствуйте , необходимо подкорректировать оттягивание резинки, Срочно ! Спасибо!
https://yadi.sk/d/fgSQYYi5TRwpu
0
156 / 299 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
15.06.2014, 16:41 4
А ты учел физику(Сопротивление воздуха, Силу ветра, Давление воздуха, Температуру, Вес снаряда, Скорость полета снаряда, Силу натяжения резинки, Угол под который стреляют из рогатки)?
0
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 16
15.06.2014, 20:46  [ТС] 5
Саша40, зачем ? игра полностью работает , кода на строк 300 , 1на проблема прорисовка, либо баг делфи либо переменных.
0
156 / 299 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
16.06.2014, 11:26 6
Цитата Сообщение от cerber941 Посмотреть сообщение
1на проблема прорисовка, либо баг делфи либо переменных.
Не ресуется? Или просто FPS маленький?
0
4076 / 1791 / 210
Регистрация: 06.10.2010
Сообщений: 4,001
16.06.2014, 13:50 7
cerber941
Не используй тригонометрию там, где можно обойтись векторной алгеброй.
1
Вложения
Тип файла: 7z оттягивание рогатки.7z (1.1 Кб, 20 просмотров)
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 16
17.06.2014, 09:18  [ТС] 8
murderer, спасибо большое !

Добавлено через 15 часов 19 минут
саша40, вот не спрашивал бы а открыл и посмотрел ..
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2014, 09:18

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как написать регулярное выражение для выдергивания английских букв и символов: "+", ",", ":", "-", " ", "!", "?" и "."
Не могу ни как собразить как написать регулярное выражение для выдергивания английских букв и...

Реализация стрельбы: происходит только первый "выстрел"
Начал реализовывать стрельбу! появилась 2 проблемы 1) Персонаж выпускает только 1 объект который...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло",...

Получить значение из {"text1":"val1","text2":"val2","text3":{"text":"val"}}
Есть такая строка var my = '{"text1":"val1","text2":"val2","text3":{"text":"val"}}'; Как из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.