Страница: 1 |
Вопрос: Помогите нубу!! | Добавлено: 05.10.10 17:36 |
Автор вопроса: ![]() |
Я вчера немного напортачил...Вы уж простите...Выкинул мессагу с совершенно неадекватным текстом...Но дело в другом. Я игру хочу написать. И вот такой метод вывода графики мне удалось придумать:
Public Class Form1 'карта, 10 на 10 клеток Dim Map(10, 10) As Integer 'положение игрока по вертикале Dim ver As Integer 'положение игрока по горизонтале Dim gor As Integer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'создание стен по границам карты For verg = 1 To 10 Map(verg, 1) = 1 Next (verg) For gorg = 1 To 10 Map(1, gorg) = 1 Next (gorg) For verg = 1 To 10 Map(verg, 10) = 1 Next (verg) For gorg = 1 To 10 Map(10, gorg) = 1 Next (gorg) 'положение игрока ver = 5 gor = 5 'вызов обновления карты RefMap() End Sub Private Sub RefMap() 'на экран выводятся координаты игрока на карте Label2.Text = ver Label4.Text = gor 'здесь если по координатам вокруг игрока есть стена, то её нужно нарисовать If Map(ver - 1, gor - 1) = 1 Then MapBox1.ImageLocation = "c:\brick.jpg" End If If Map(ver + 1, gor + 1) = 1 Then MapBox9.ImageLocation = "c:\brick.jpg" End If If Map(ver + 1, gor - 1) = 1 Then MapBox7.ImageLocation = "c:\brick.jpg" End If If Map(ver - 1, gor + 1) = 1 Then MapBox3.ImageLocation = "c:\brick.jpg" End If If Map(ver - 1, gor) = 1 Then MapBox2.ImageLocation = "c:\brick.jpg" End If If Map(ver + 1, gor) = 1 Then MapBox8.ImageLocation = "c:\brick.jpg" End If If Map(ver, gor - 1) = 1 Then MapBox4.ImageLocation = "c:\brick.jpg" End If If Map(ver, gor + 1) = 1 Then MapBox6.ImageLocation = "c:\brick.jpg" End If 'здесь если по координатам вокруг игрока нет стены, то отобразится дорога If Map(ver - 1, gor - 1) = 0 Then MapBox1.ImageLocation = "c:\road.jpg" End If If Map(ver + 1, gor + 1) = 0 Then MapBox9.ImageLocation = "c:\road.jpg" End If If Map(ver + 1, gor - 1) = 0 Then MapBox7.ImageLocation = "c:\road.jpg" End If If Map(ver - 1, gor + 1) = 0 Then MapBox3.ImageLocation = "c:\road.jpg" End If If Map(ver - 1, gor) = 0 Then MapBox2.ImageLocation = "c:\road.jpg" End If If Map(ver + 1, gor) = 0 Then MapBox8.ImageLocation = "c:\road.jpg" End If If Map(ver, gor - 1) = 0 Then MapBox4.ImageLocation = "c:\road.jpg" End If If Map(ver, gor + 1) = 0 Then MapBox6.ImageLocation = "c:\road.jpg" End If MapBox5.ImageLocation = "c:\avatar.jpg" End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'игрок идёт вверх, затем вызов обновления карты If ver + 1 <> 10 Then ver = ver + 1 RefMap() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 'игрок идёт вниз, затем вызов обновления карты If ver - 1 <> 1 Then ver = ver - 1 RefMap() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 'игрок идёт влево, затем вызов обновления карты If gor - 1 <> 1 Then gor = gor - 1 RefMap() End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click 'игрок идёт вправо, затем вызов обновления карты If gor + 1 <> 10 Then gor = gor + 1 RefMap() End Sub End Class я понимаю, что это сплошная лажа, но альтернативы незнаю, а с моими нубскими в директХ, а тем более в опенГЛ мне лезть нельзя, да и ради написания простой игрушки даже не хочется. Из приведенного выше листинга программы вы можете представить какой код получится, если я увеличу видимую область карты до 10 на 10 клеток. Это ужасно...Подскажите как быть и что делать. Вся надежда на ваше понимание, а то придётся делать аски графику... |
Ответы | Всего ответов: 4 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() Вопросов: 2 Ответов: 2 |
Профиль | Цитата | #1 | Добавлено: 05.10.10 17:57 |
Да, если вдруг. Вопрос в том как иначе лучше вывести нормальную картинку на экран. Я так понимаю, что надо каким то образом
разделить PictureBox на зоны и в них уже помещать нужные картинки. Или есть другой метод? В любом случае я не знаю как это сделать. Подскажите пожалуйста. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #2 | Добавлено: 05.10.10 19:04 |
DirectX может? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 2 Ответов: 2 |
Профиль | Цитата | #3 | Добавлено: 05.10.10 19:10 |
Не представляю как им пользоваться...Но если иного выхода нет...А где можно посмотреть примеры 2д движков? |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 2 Ответов: 3 |
Профиль | Цитата | #4 | Добавлено: 05.10.10 23:44 |
А где можно посмотреть примеры 2д движков?
В молодости тоже этим увлекался, но работа взяла своё. Вот то, что осталось. Там и то, что натягал с сети и мои попытки. Кстати, имеет смысл пользоваться готовыми движками, например, DXGameE или тому подобными... http://inxs-s.narod.ru/VB6Game.zip http://inxs-s.narod.ru/VB6Game.z01 http://inxs-s.narod.ru/VB6Game.z02 |
Страница: 1 |
|