Это моя вторая статья и в ней я хочу рассказать, как сделать бегущую строку на VB. Нет, ты не подумай, не такая, как в HTML. Visual Basic обладает мощными возможностями. Для начала попробуй сделать (что бы было легче) бегущую строку на HTML. Вставь код в блокнот:
Code
<Marquee direction>Строка<direction>
Сохрани в формат HTML и запусти. Увидел? Ну а теперь такое же, только так будет бегать изображение. Так же изображение можно направлять в любую строну. Хоть вперед, хоть назад и даже по диагонали. В этом и есть прелесть программирования, что гланды можно вырезать и через попу.
Итак, запускай VB как новый EXE и закинь на форму два PictureBox'a и таймер. И вот Вам код, который я сейчас объясню. Код:
Code
Dim wirina As Integer, visota As Integer Dim x As Integer, y As Integer
Private Sub Form_Load() Timer1.Interval = 50 Picture2.AutoSize = True Picture2.Picture = LoadPicture("C:\Documents and Settings\GCup\1.jpg") wirina = Picture2.Width visota = Picture2.Height Picture1.Height = Picture2.Height End Sub
Private Sub Timer1_Timer() x = x + 40 Picture1.PaintPicture Picture2.Picture, -x, -y If x + Picture1.ScaleWidth >= Picture2.ScaleWidth Then Picture1.PaintPicture Picture2.Picture, -x + Picture2.ScaleWidth, -y End If If x >= Picture2.Width Then x = 0 End Sub
Запускай! А теперь я объясню самое главное. Что бы не списывать готовое, я простое оставлю без комментариев. Почему? Ведь программист должен думать и понимать программирование, а не запоминать код. На счет кода:
Code
Timer1.Interval = 50
Запомни, это скорость и это обычная скорость ВСЕХ бегущий строк. Но ты можешь её увеличить.
Code
Picture1.Height = Picture2.Height
Для красоты нужно задать такую же высоту, как и другого PictureBox'а, с которого списывается картинка.
Code
Picture2.Picture = LoadPicture("C:\Documents and Settings\GCup\1.jpg")
Внимание! Обратите внимание, что тут нужно указать путь к картинке, которую хотите прокрутить, как бегущую строку.
Code
x = x + 40
Важная переменная. Она содержит скорость прокрутки изображения. То есть, если поменять число 40 на 1, то она будет крутится медленно. Кстати, лучше сделать PictureBox в котором крутится картинка чуть менее шире, чем оригинал. Картинка будет крутится в полный размер без внутренних сбоев.
Code
Picture1.PaintPicture Picture2.Picture, -x, -y
Одна из главных команд. Она списывает изображение с оригинала в PictureBox, который прокручивает изображение и координатами Х. А Х с каждым интервалом увеличивается на 40.
Code
If x + Picture1.ScaleWidth >= Picture2.ScaleWidth Then Picture1.PaintPicture Picture2.Picture, -x + Picture2.ScaleWidth, -y End If If x >= Picture2.Width Then x = 0
Эти строки не менее важны. Они отвечают, что бы изображение прокручивалось бесконечно. Для этого нужно, что бы переменная Х сбрасывалась на 0. Обратите внимание, что команду Nothing мы не используем.
Кстати, бегущая строка с изображением отлично подходит для создание платформеров. При ходьбе можно сделать что бы бегущая строка была, как задний план и при ходьбе вперед двигалась соответственно. Экспериментируйте.
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «Бегущая строка в Visual Basic от FSO», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.
Возможно ты имел ввиду не игродел, а программист? И говорил ты вовсе не о Gavolot'e, а о себе? К твоему разочарованию : Бегущую строку можно сделать не только с помощью Picture Box'а, но и например при помощи обычного текста.
Я когда учу, я это почестям разбираю, что бы мне это потом пригодилось. А числа одинаковые, ведь это стартовая скорость всех бегущих строк. Ты видимо нечему не научился. И не факт, что чем-то научился