Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 09.04.2016
Сообщений: 31

Реализовать движение мяча более плавным

09.04.2016, 14:34. Показов 2232. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот код:
Pascal
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
26
27
28
29
30
31
Program game;
uses crt,GraphABC;
const
speed=1;
var x,d,c,y: integer;  a:char;
begin
     LockDrawing;
     x:=51; d:=1; y:=576; c:=2;
     while((x>50) and (x<800)) do
          begin
          x:=x+d;
          y:=y-c;
          setwindowsize(900,500);
          ClearWindow;
          line(0,318,1600,318);
          FloodFill(0,400,clred);
          circle(x+10,y-288,30);
       while y<490 do
            begin
            x:=x+d;
            x:=x+10;
            y:=y+100;
            Sleep(100) ;
            end;
            if keypressed then
            begin a:=readkey;
            if a=chr(72) then x:=x*2;
            end;
            Redraw;
    end;
    end.
P.S Я тот еще чайник в программирововании

Добавлено через 1 минуту
а и еще на if keypressed не обращайте внимания это место не доделано
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.04.2016, 14:34
Ответы с готовыми решениями:

Изобразить движение мяча и отскакивание от стенок
Проверьте программу, выводящую мяч (окружность красного цвета), катящийся по горизонтальной линии и отражающийся от вертикальных стенок...

Реализовать движение футбольного мяча после удара
Написать программу, реализующую движение футбольного мяча после удара(задается начальное положение мяча и вектор скорости) в процессе...

В игре PackMan реализовать движение 3-4-х (и более) противников
В игре PackMan реализовать движение 3-4-х (и более) противников. Реализовать проверку на пересечение героя и противников во время игры, ...

31
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
16.04.2016, 19:09
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Amirsultan Посмотреть сообщение
Как я понял, в вашем коде
Да ни хрена ты не понял, нужно не понимать, а запустить и проверить.
0
6 / 6 / 9
Регистрация: 16.04.2015
Сообщений: 121
17.04.2016, 00:12
Amirsultan, проверил его код, все нормально работает, нажимаешь - круг делает один шаг, отжимаешь - второй в ту же сторону. Если не нужно, убери KeyUp.
0
0 / 0 / 0
Регистрация: 09.04.2016
Сообщений: 31
17.04.2016, 08:33  [ТС]
Выдает ошибку неизвестное имя vk_up
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
17.04.2016, 09:32
Не сочиняйте. Вот кусок Вашего кода
uses ABCObjects,GraphABC;
var Player:CircleABC;
Pascal
1
2
3
4
5
6
7
8
9
10
procedure Up(Key:integer);
begin
case Key of
vk_up:Player.MoveTo(Player.Position.X+0,Player.Position.Y-10);
end;
end;
begin
OnKeyDown:=UP;
Player:=CircleABC.Create(40,150,25);
end.
Никаких ошибок.
Вот вырезка из справки
Миниатюры
Реализовать движение мяча более плавным  
0
0 / 0 / 0
Регистрация: 09.04.2016
Сообщений: 31
17.04.2016, 11:25  [ТС]
ааа емае я забыл что все с большей буквы
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
17.04.2016, 11:26
Цитата Сообщение от Amirsultan Посмотреть сообщение
все с большей буквы
Да какая разница с какой буквы?
У меня в последнем коде с какой?
0
0 / 0 / 0
Регистрация: 09.04.2016
Сообщений: 31
17.04.2016, 11:34  [ТС]
Pascal не распознает(выдает ошибку"неизвестное имя vk") vk поэтому Vk_Up а не vk_up
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
17.04.2016, 11:38
Не сочиняй, Паскалю вообще пофиг в каком регистре написано, вот запусти же мой код
Pascal
1
2
3
4
5
6
7
8
9
10
procedure Up(Key:integer);
begin
case Key of
vk_up:Player.MoveTo(Player.Position.X+0,Player.Position.Y-10);
end;
end;
begin
OnKeyDown:=UP;
Player:=CircleABC.Create(40,150,25);
end.
0
0 / 0 / 0
Регистрация: 09.04.2016
Сообщений: 31
17.04.2016, 11:45  [ТС]
Скрин ошибки
Миниатюры
Реализовать движение мяча более плавным  
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
17.04.2016, 11:53
Это потому что у тебя не подключен модуль GraphABC;
0
0 / 0 / 0
Регистрация: 09.04.2016
Сообщений: 31
17.04.2016, 12:11  [ТС]
Подключил, все работает но никаких изменений нету. Что бы он нормально двигался по диагонали нужно быстро нажимать на обе клавиши, а мне надо что бы при зажимании обоих клавиш он двигался по диагонали.
Кстате, как сделать аналог земной гравитации?

Добавлено через 3 минуты
Пойдет?
Pascal
1
2
3
4
5
Line(1,425,900,425);
while Player.Position.Y<425 do
begin
Player.MoveTo(Player.Position.X,Player.Position.Y+10);
end;
0
0 / 0 / 0
Регистрация: 09.04.2016
Сообщений: 31
24.04.2016, 16:18  [ТС]
Ребята, кто знает как сделать обьекты, "твердыми" для мяча?
Кстате, вот сырая версия:
Pascal
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Program game;
uses
  graphabc;
 
var
  x, y: integer; //Координаты моего мяча - переменные
  f: boolean; //Логическая переменная
  
  Up:= false; // Логические переменные определяющие нажатие кнопки
  Right:= false;
  Left:= false;
procedure KeyDown(key: integer); //процедура KeyDown производит какое либо действие во время нажатия кнопки
begin
  case key of
    VK_Up: Up := true;
    VK_Right: Right := true; // Присваивает ИСТИНУ переменным во время нажатия стрелок
    VK_Left: Left :=true;
  end;
end;
 
procedure KeyUp(key: integer);//процедура KeyUp производит какое либо действие во время отжатия кнопки
begin
  case key of
    VK_Up: Up := false;
    VK_Right: Right := false;//Присвоение ЛЖИ переменым во время отжатия стрелок
    VK_Left: Left :=false;
  end;
end;
 
begin //Начало тела программы
  x := 50;//Начальные координаты мяча
  y := 400;
  f := true; //Присваивание истины для выполнения цикла
  onkeydown := KeyDown; //Присвоение оригин/ой процедуре более простое название
  OnKeyUp := KeyUp;
  lockdrawing; //Оператор анимации
  repeat  //Цикличная анимация
    Window.Clear;
    SetBrushColor(clyellow); //Цвет мяча
    circle(x,y,25); //Сам мяч
    Rectangle(400,325,500,350);
    Line(1,425,900,425); //Линия "земли"
    if y<=396 then    //Аналог гравитации
    y:=y+4; 
    sleep(40);
    if Up then y := y-8; //Если UP/Right/Left - ИСТИНА то изменяет координаты мячика
    if Right then x := x+4;
    if Left then x:=x-4;
    redraw; // Оператор анимации
  until not f; //Окончание цикла
end.//конец
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.04.2016, 16:18

Как сделать движение объекта плавным?
Как сделать движение объекта плавным. При передвижении объекта изображение немного дергается(двойная буферизация включена).

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

Движение мяча
Добрый день. Хочу сделать программу, где мяч можно таскать и отпускать, при этом он соблюдать законы физики. До этого дела с физикой не...

Движение мяча
Привет, знатоки windows forms!:) Мне нужно написать простую программу, в которой в форме существует один об'ект (picturebox либо...

Движение мяча
Здравствуйте, помогите создать приложение, в окне которого отображается анимация — движение мяча, брошенного под острым углом к горизонту.


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru