Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/29: Рейтинг темы: голосов - 29, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 20.05.2012
Сообщений: 204

Как увеличить скорость движения объекта по таймеру, если его интервал уже и так равен единице

03.12.2012, 22:55. Показов 6125. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть объект он передвигается по форм, передвижение осуществлено по таймеру, в таймере интервал стоит 1, но объект движется слишком медленно, как можно ускорить движение объекта ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.12.2012, 22:55
Ответы с готовыми решениями:

Символьные функции: Преобразовать массив так: стаж работы увеличить на год, если он станет равен 10, то зарплату увеличить в 2 раза, если 15 – в 3 раз
Задан массив. «Фамилия_стаж работы_зарплата». Преобразовать массив так: стаж работы увеличить на год, если он станет равен 10, то зарплату...

Заполнить массив по правилу: первый элемент массива равен единице, второй равен N, третий – двум, четвертый равен N – 1 и так далее.
Задали написать программу, которая заполнит массив A из N элементов последовательными целыми числами от 1 до N по следующему принципу: ...

Каков будет период движения шайбы, если её скорость в нижней точке поверхности увеличить вдвое
Добрый день. Есть вот такая задача Шайба может без трения двигаться по гладкой поверхности, имеющей форму вогнутой окружности....

15
310 / 206 / 44
Регистрация: 15.02.2012
Сообщений: 605
03.12.2012, 22:59
Увеличить приращение координаты - то число, на которое смещается объект с каждым шагом расчета
0
1 / 1 / 0
Регистрация: 20.05.2012
Сообщений: 204
03.12.2012, 23:02  [ТС]
Цитата Сообщение от jivot Посмотреть сообщение
Увеличить приращение координаты - то число, на которое смещается объект с каждым шагом расчета
Можете показать? пожалуйста!
0
310 / 206 / 44
Регистрация: 15.02.2012
Сообщений: 605
03.12.2012, 23:16
показать на чем? ... у меня кнопки по форме не бегают
0
1 / 1 / 0
Регистрация: 20.05.2012
Сообщений: 204
03.12.2012, 23:21  [ТС]
ну сам код как это записать
0
310 / 206 / 44
Регистрация: 15.02.2012
Сообщений: 605
03.12.2012, 23:25
Понимаете, чтобы продемонстрировать то, о чем я говорю, мне надо создать проект, повесить на него кнопку, таймер, заставить кнопку бегать по таймеру, а потом вам как-то наглядно изобразить код

Короче, свой код выкладывайте, а там поглядим
0
1 / 1 / 0
Регистрация: 20.05.2012
Сообщений: 204
03.12.2012, 23:44  [ТС]
C#
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace Moving
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
     //       label5.Location = new Point(23, 404);
     
        }
        Form2 Form2 = new Form2();
 
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Up) up.Start();
            if (e.KeyCode == Keys.Down) down.Start();
            if (e.KeyCode == Keys.Left) left.Start();
            if (e.KeyCode == Keys.Right) right.Start();
        }
 
        private void right_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Up) up.Stop();
            if (e.KeyCode == Keys.Down) down.Stop();
            if (e.KeyCode == Keys.Left) left.Stop();
            if (e.KeyCode == Keys.Right) right.Stop();
        }
 
        private void up_Tick(object sender, EventArgs e)
        {
            if (up.Interval > 8) up.Interval = 8;
            Point cor = label5.Location;
            if (label5.Location.Y + 8 == label6.Location.Y + 31)
            {
                up.Stop();
            }
            else
            {
                if (label5.Location.Y + 8 == label1.Location.Y + 31) up.Stop();
                else
                {
                    cor.Y--;
                    label5.Location = cor;
                }
            }
        
        }
 
        private void down_Tick(object sender, EventArgs e)
        {
            Point cor = label5.Location;
            if (label5.Location.Y + 62 == label2.Location.Y + 31) down.Stop();
            else
            {
                cor.Y++;
                label5.Location = cor;
            }
        }
 
        private void left_Tick(object sender, EventArgs e)
        {
            Point cor = label5.Location;
            if (label5.Location.X+31 == label3.Location.X+54) left.Stop();
            else
            {
                cor.X--;
                label5.Location = cor;
            }
        }
 
        private void right_Tick(object sender, EventArgs e)
        {
 
            Point cor = label5.Location;
            if (label5.Location.X + 31 == Finish.Location.X)
            {
                up.Stop();
                left.Stop();
                down.Stop();
                right.Stop();
 
                this.Hide();
                Form2.ShowDialog();
                this.Close();
 
            }
            if (label5.Location.X + 31 == label7.Location.X)
            {
                right.Stop();
            }
            else
            {
                if (label5.Location.X + 31 == label4.Location.X) right.Stop();
 
                {
                    cor.X++;
                    label5.Location = cor;
                }
            }
        }
 
        private void Teleport_Click(object sender, EventArgs e)
        {
            if (label5.Location == Teleport.Location)
               label5.Location = new Point(444, 345); 
            
            
        }
 
 
    }
}
Вот так вот и сразу еще 1 вопрос!
Я даже не знаю как объяснить я сейчас скину дебаг вы попробуйте пройдите вверх, ПОЧЕМУ НЕ ПРОХОДИТ?
Вложения
Тип файла: rar Debug.rar (17.7 Кб, 14 просмотров)
0
310 / 206 / 44
Регистрация: 15.02.2012
Сообщений: 605
03.12.2012, 23:54
C#
1
cor.Y--;
ну вот здесь например замените на вот это:
C#
1
cor.Y -= 2;
будет в два раза быстрее ползать ... аналогично по другим направлениям.

очевидно, что упирается в это условие

C#
1
label5.Location.Y + 8 == label6.Location.Y + 31
без проекта целиком точнее сказать не могу
1
1 / 1 / 0
Регистрация: 20.05.2012
Сообщений: 204
03.12.2012, 23:57  [ТС]
Хоршо если бы в это условие уперался но видители label6 стоит совсем не там такое ущещение, что протягивается огромная нивидимая линия вот весь проект скажите почему дальше не идет?
Вложения
Тип файла: rar Moving.rar (49.5 Кб, 14 просмотров)
0
310 / 206 / 44
Регистрация: 15.02.2012
Сообщений: 605
04.12.2012, 00:02
ну у вас же ограничение - как только верхняя граница label5 упрется в нижнюю границу label6 - то объект останавливается. При чем границы объектов берутся исключительно по Y координатам, которым до фонаря, тыкается объект в стенку или нет, главное чтобы выше этой линии не перебралось ...

Добавляйте проверку по X
0
1 / 1 / 0
Регистрация: 20.05.2012
Сообщений: 204
04.12.2012, 00:07  [ТС]
Насчет ускорения, когда так сделал объект стал двигаться быстрее, но стал проходить сквозь стены
0
310 / 206 / 44
Регистрация: 15.02.2012
Сообщений: 605
04.12.2012, 00:11
так он и так сквозь стену у вас проходит) ...
0
1 / 1 / 0
Регистрация: 20.05.2012
Сообщений: 204
04.12.2012, 00:17  [ТС]
нет только через, неоторые просто я так думаю, надо вообще по другому делать! ПОтому если сли делаешь хоть 1 стену нужно все условия опять к ней прописывать т.е если будет стен 40 то для каждой нужно будет прописать это много кода!
Как можно сделать по другому? Типо создать класс стены там описать все или как можно сделать?
0
310 / 206 / 44
Регистрация: 15.02.2012
Сообщений: 605
04.12.2012, 00:25
Нуууу ... Можно класс реализовать для стен. Можно реализовать интерфейс с координатами и реализовать его во всем, с чем объект может сталкиваться в принципе. Можно построить матрицу, где хранить координаты изгибов стен ... но эт, что пришло в голову ... понятия не имею, что из этого будет эффективнее и эффективно ли вообще ... советую погуглить на эту тему, наверняка для таких задач есть проверенные и рабочие шаблоны ... или ещё кто может чего подскажет
1
1 / 1 / 0
Регистрация: 20.05.2012
Сообщений: 204
04.12.2012, 00:27  [ТС]
спасибо :-). Уже гуглил ничего нормального не нашел!
0
310 / 206 / 44
Регистрация: 15.02.2012
Сообщений: 605
04.12.2012, 00:34
Windows Pacman Game

Добавлено через 26 секунд
Посмотрите как там стенки реализованы, может подчерпнете что полезное
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.12.2012, 00:34
Помогаю со студенческими работами здесь

Какова скорость движения автомобиля, если в его вертикальной антене, длиной 1,5 м индуцируется ЭДС
4.7. Какова скорость движения автомобиля, если в его вертикальной антене, длиной 1,5 м индуцируется ЭДС 610-4 В. Горизонтальная...

Вывести на экран путь, пройденный пешеходом, если известны его скорость и время движения
:( "Составление программ с использованием функций, не возвращающих значения" Написать программу, выводящую на экран путь, пройденный...

Как узнать скорость перемещения объекта в 3-мерном пространстве, если задана вертикальная и горизонтальная ср. скорость
Здравствуйте. Есть задача: имеется квадрокоптер, он летает в трёхмерном пространстве с координатами (x, y, z), координаты в метрах. Даны...

Увеличить скорость через каждый интервал времени
Нужно чтобы скорость падающего предмета увеличивалась на 5 через каждые, например, 5 секунд; или на 1 каждую секунду. Не знаю какую лучше...

Сформировать массив, в котором элемент равен единице, если количество отрицательных элементов строки матрицы А больше, чем в строке
Дорогие, очень прошу помощи... начали учить Java,с середины февраля. Задали задачу.с одной частью вроде как справилась, не могу сообразить...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru