Проблемы с движением шарика в пределах PictureBox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
inkda1
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 29.06.2009 (Пн) 13:52

Проблемы с движением шарика в пределах PictureBox

Сообщение inkda1 » 29.06.2009 (Пн) 14:00

Задача такова: в PictureBox должен появляться circle в рэндомном месте и все время двигаться в пределах пикчер бокса, то есть он должен отталкиваться от рамок.
Как сделать что бы он появлялся в рэндомном месте? Рэндомными значениями заполнять координаты Picture.Scale?
Как сделать так что бы шарик отталкивался от границ?
Последний раз редактировалось inkda1 29.06.2009 (Пн) 14:15, всего редактировалось 1 раз.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Проблемы с движением шарика в пределах PictureBox

Сообщение Денис » 29.06.2009 (Пн) 14:13

Что значит "задание"? Уточните-ка, а то может быть Вам в раздел "работа"?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

inkda1
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 29.06.2009 (Пн) 13:52

Re: Проблемы с движением шарика в пределах PictureBox

Сообщение inkda1 » 29.06.2009 (Пн) 14:15

Нет. Я не прошу делать за меня задачу. У меня есть вполне конкретные вопросы.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Проблемы с движением шарика в пределах PictureBox

Сообщение Хакер » 29.06.2009 (Пн) 14:16

Задавай.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Проблемы с движением шарика в пределах PictureBox

Сообщение Денис » 29.06.2009 (Пн) 14:24

inkda1
Вообще есть два варианта:
1. рисовать круг на PictureBox'е используя метод PictureBox.Circle но тогда тебе придется каждый раз при перемещении стирать предыдущий нарисованный круг методом PictureBox.Cls
2. положить на PictureBox объект Shape и задать ему форму круга через свойства. тогда тебе останется только задавать ему координаты.

Случайное число в диапазоне от 0 до 1 генерируется функцией Rnd
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

inkda1
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 29.06.2009 (Пн) 13:52

Re: Проблемы с движением шарика в пределах PictureBox

Сообщение inkda1 » 29.06.2009 (Пн) 15:06

Ну в этом я разобрался =)
Первым методом делаю. Я не знаю каким образом сделать что бы он отталкивался от границ

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Проблемы с движением шарика в пределах PictureBox

Сообщение alibek » 29.06.2009 (Пн) 15:19

Угол падения равен углу отражения.
Lasciate ogni speranza, voi ch'entrate.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Проблемы с движением шарика в пределах PictureBox

Сообщение Денис » 29.06.2009 (Пн) 15:22

Ну он же движется у тебя? Или он рандомно скачет? если скачет, то при чем тут отталкивание от границ? если же есть движение, то при столкновении с границей просто инвертируем счетчики координат (там где +1 становится -1 и наоборот)

и да: Угол падения равен углу отражения.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

inkda1
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 29.06.2009 (Пн) 13:52

Re: Проблемы с движением шарика в пределах PictureBox

Сообщение inkda1 » 29.06.2009 (Пн) 15:57

Денис писал(а):Ну он же движется у тебя? Или он рандомно скачет? если скачет, то при чем тут отталкивание от границ? если же есть движение, то при столкновении с границей просто инвертируем счетчики координат (там где +1 становится -1 и наоборот)

и да: Угол падения равен углу отражения.

Да, движется конечно. Даже останавливается когда до границы доходит.
Мммм… Спасибо, подумаю еще.

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Re: Проблемы с движением шарика в пределах PictureBox

Сообщение JohnK » 30.06.2009 (Вт) 1:25

Делать было нечего, дело было к вечеру :D

На форму кинь Pic1, Timer1.Interval=1 . Классическая анимация.

Код: Выделить всё
Option Explicit
Dim X As Long, Y As Long
Dim Xlim As Long, Ylim As Long
Dim XDir As Long, YDir As Long
Dim D As Long

Private Sub Form_Load()
Pic1.ScaleMode = 3 'Pixels
Randomize
Xlim = Pic1.ScaleWidth: Ylim = Pic1.ScaleHeight
X = Xlim * Rnd(Xlim): Y = Ylim * Rnd(Ylim)
XDir = 1: YDir = 1: D = 20
Pic1.Circle (X, Y), D, &HFF00
End Sub

Sub doMove()
Pic1.Circle (X, Y), D, &H8000000F

X = X + XDir: Y = Y + YDir

If X >= Xlim - D Then
     XDir = -1
   ElseIf X <= D Then
     XDir = 1
End If

If Y >= Ylim - D Then
     YDir = -1
  ElseIf Y <= D Then
     YDir = 1
End If

Pic1.Circle (X, Y), D, &HFF00
End Sub

Private Sub Timer1_Timer()
doMove
End Sub

SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty

inkda1
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 29.06.2009 (Пн) 13:52

Re: Проблемы с движением шарика в пределах PictureBox

Сообщение inkda1 » 30.06.2009 (Вт) 9:05

Оххх, спасибо огромное! =)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 90

    TopList