Получение объекта из экрана
- Привет! Я задал этот вопрос час назад, потому что у меня возникли проблемы с перемещением растрового изображения в C#. Теперь он движется, но продолжает уходить с экрана. Его положение меняется, но предел должен быть границей окна, но это не так.
Вот мой код
private void timerGameLoop_Tick(object sender, EventArgs e) { UpdateVar(); this.Refresh(); } private void UpdateVar() { cVarandas.Update( rnd.Next(this.Width - Resources.vhappy.Width, Resources.vhappy.Width ), rnd.Next(this.Height - Resources.vhappy.Height , this.Height) );
Что я уже пробовал:
Я попытался измениться на (это.ширина - ресурсы.vhappy.Width /2) например, но не сработало.
Извините, если я что-то неправильно написал, английский-не мой родной язык.
Был бы признателен за некоторую помощь, спасибо!
gggustafson
Я не "геймер", однако у меня есть опыт перемещения предметов по монитору. В моих ситуациях, не обязательно ваших, я действую по основному тику таймера. Когда происходит тик, я перемещаю все объекты, которые нужно переместить. Затем я определяю, попал ли какой-либо из объектов в границу экрана. Если это так, я изменяю положение (изменяя координаты x и y). После того как все пограничные коллизии были исправлены, я обновляю дисплей монитора (через обработчик событий Paint).
Lousada SCP
- Привет! Спасибо Вам за ваш ответ! И как мне изменить координаты de x и y?
gggustafson
Я предполагаю, что вы перекрашиваете свой движущийся предмет непосредственно. Таким образом, при перемещении объекта непосредственно перед его перемещением проверьте, перекрывает ли правая часть объекта правую сторону монитора. Если это так, измените знак скорости X. То же самое касается и остальных трех сторон.