Пятница, 29 Марта 2024, 12:44

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [354]
Статьи об общих понятиях связанных с созданием игр.
Программирование [82]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [144]
Статьи о программах для создания игр, уроки и описания.
Софт [39]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [16]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [160]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [128]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Как вы относитесь к созданию игр без программирования?
Всего ответов: 10471
Главная » Статьи » Программирование

Бегущая строка в Visual Basic от FSO
Это моя вторая статья и в ней я хочу рассказать, как сделать бегущую строку на 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 мы не используем.

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

Спасибо за внимание. С уважением, FSO.
Категория: Программирование | Добавил: FSO (24 Июня 2012)
Просмотров: 7183 | Комментарии: 13 | Рейтинг: 2.3/12 |
Теги: html, Basic, vb, кодинг, Урок, программирование, PictureBox, Бегущая строка, ЯП, Visual Basic
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Бегущая строка в Visual Basic от FSO», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 13
+1-
13 HRAANR   (14 Июля 2012 14:32) [Материал]
Quote
Бегущая строка выполняется только таким образом.

API в помощь yes

+1-
10 HRAANR   (13 Июля 2012 20:54) [Материал]
Спасибо, статья очень помогла, правда я увиделл ее первой на другом сайте...

+3-
8 Gavolot   (29 Июня 2012 11:49) [Материал]
GavolotАх да, с уважением от FSO.

+3-
7 Gavolot   (29 Июня 2012 11:49) [Материал]
Gavolotждем урок на подходе, "открывает текстовый документ в ListBox" =))))

+-9-
5 FSO   (25 Июня 2012 17:14) [Материал]
FSOБегущая строка выполняется только таким образом. Изменить её практически нельзя. Код должен быть одинаковым. Не важный из тебя игродел!

+4-
6 Gavolot   (29 Июня 2012 11:43) [Материал]
GavolotАга и имена переменных должны быть как там, я так и думал biggrin biggrin biggrin Иначе нечего не получится biggrin biggrin biggrin biggrin biggrin biggrin biggrin biggrin biggrin biggrin biggrin biggrin

+1-
11 HRAANR   (13 Июля 2012 21:10) [Материал]
Возможно ты имел ввиду не игродел, а программист? И говорил ты вовсе не о Gavolot'e, а о себе?
К твоему разочарованию : Бегущую строку можно сделать не только с помощью Picture Box'а, но и например при помощи обычного текста.

+-9-
4 FSO   (25 Июня 2012 16:44) [Материал]
FSOЯ когда учу, я это почестям разбираю, что бы мне это потом пригодилось. А числа одинаковые, ведь это стартовая скорость всех бегущих строк. Ты видимо нечему не научился. И не факт, что чем-то научился sleep

+-8-
2 FSO   (25 Июня 2012 14:30) [Материал]
FSOЯ учился VB по этому сайту (и не только) и я кода хорошо знаю. Это не копипаст!!! facepalm

+4-
3 LunarPixel   (25 Июня 2012 14:34) [Материал]
LunarPixelМм.. круто ты учишься, заучивая код слово в слово. Даже числа такие же. Мне лично все с тобой понятно "программист" happy

+0-
1 LunarPixel   (25 Июня 2012 11:58) [Материал]
LunarPixelМне кажется, или копипаст: пруф smile

+4-
9 Gavolot   (29 Июня 2012 11:51) [Материал]
GavolotТа копипаст конкретный. Даже не морщится блин. Не поменял даже имена переменных, капец какой-то.

+1-
12 HRAANR   (13 Июля 2012 21:13) [Материал]
Да ты что имена переменных обязательно такие же должны быть, и числа, и вообще все! XD

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • WindMill
  • Dahlia
  • Cave Engine
  • Torque 3D
  • GLEngine2D
  • Arrow
  • GameMaker
  • SimpleJ
  • JMonkeyEngine
  • AndEngine
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг