Важная информация
Показано с 1 по 7 из 7

Тема: Создание 2D игр на VBS для чайников.

  1. #1 Создание 2D игр на VBS для чайников. 
    Новичок
    Регистрация
    17.04.2014
    Сообщений
    10
    Сказал(а) спасибо
    1
    Поблагодарили 8 раз(а) в 6 сообщениях
    Всем привет!
    В целях подогреть интерес к теме VBS хочу поделиться с вами идеей написания игр, обучающих программ, графических опытов именно на VBS, или если назвать полным именем: Microsoft Visual Basic Script Edition.
    Язык, созданный компанией Microsoft на основе языка Visual Basic( или если вам ближе QB, QBasic ), достаточно прост в изучении, не требует специальных инструментов и всегда находится под рукой.
    В принципе, для написания простейшей программы понадобится только Блокнот (notepad.exe). Уверен, каждый сможет запустить его на своём компьютере!
    Если всё же не приходилось этого делать, то нажмите сочетание клавиш Win + R , наберите в строке notepad.exe , нажмите кнопку "OK" вы увидите окно Блокнота.
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    рис.1
    Напечатайте в окне редактора следующий текст:

    VB Code:
    1. MsgBox "Привет! Я программа на VBS"


    Сохраните в любое место этот файл с именем msg.vbs. Запустите на выполнение и вы увидите на экране окошко - стандартное сообщение Widows

    [Ссылки могут видеть только зарегистрированные пользователи. ]
    рис.2

    Поздравляю! Вы написали программу на VBS. Если это ваша первая программа, и вы намерены написать свою первую настоящую игру, то вам придётся изучить кое-какие основы программирования на VBS, благо, информации о языке предостаточно. [Ссылки могут видеть только зарегистрированные пользователи. ]
    Достаточно будет изучить основные конструкции : переменные, циклы, условные операторы. Или вникать по ходу дела.
    И так, начнём. Что обычно делает любая игра? Как она выглядит? На заре компьютеризации, когда компьютеры были большие, игры были текстовые. Игра выглядела как набор повествований и вопросов , от ответов на которые зависел дальнейший ход событий и собственно исход игры. В то же время возникли псевдографические игры, это когда вы управляете какой либо буквой, и она стреляет в другую вражескую букву знаками препинания. По легенде буквы могли быть космическими кораблями, или воинами. Воображение рисовало красочные картины боя.
    Теперь плохие новости. У VBS совершенно нет даже такой возможности. Он не умеет рисовать даже буквы в произвольном месте экрана. Всё, на что он способен, это вывести сообщение в окошке типа MsgBox принять строку в окошке InputBox. Если текстовую игру написать мы ещё сможем, например "Угадай число":
    VB Code:
    1.  
    2. Randomize
    3. a= Rnd(1) 'переменной a присваивается случайное число от 0 до 1
    4. a=Fix(a*10) 'переменной присваивается случайное число от 0 до 10
    5. x=CInt(inputbox("Введите число ","Угадайте число от 0 до 10 за 3 попытки!!!"))
    6. If x>a  Then
    7.         Msgbox "Загаданное число меньше! ",vbSystemModal,"результат: "
    8.         x=CInt(inputbox("Попытайтесь угадать ещё раз: ","Осталось всего 2 попытки!!!"))
    9.   ElseIf x<a Then
    10.         Msgbox "Загаданное число больше! ",vbSystemModal,"результат: "
    11.         x=CInt(inputbox("Попытайтесь угадать ещё раз: ","Осталось всего 2 попытки!!!"))
    12. End If
    13. If  x<a  Then
    14.           Msgbox "Загаданное число больше!",vbSystemModal,"результат: "
    15.           x=CInt(inputbox("Попытайтесь угадать ещё раз: ","Осталась всего 1 попытка!!!"))
    16.   ElseIf x>a Then
    17.         Msgbox "Загаданное число меньше! ",vbSystemModal,"результат: "
    18.         x=CInt(inputbox("Попытайтесь угадать ещё раз: ","Осталась всего 1 попытка!!!"))
    19. End If
    20. If x=a  Then
    21.          Msgbox "Вы угадали загаданное число!!!  ",vbSystemModal,"результат: "
    22.   Else
    23.          Msgbox "Вам не удалось угадать загаданное число за 3 попытки!!! ", _
    24. vbSystemModal,"результат: "
    25. End If


    То стрелять буквами в буквы точно нет.
    А тем более, мы собрались писать достаточно современные игры, с изображениями, музыкой и анимацией! Как быть? Обычно, даже те языки программирования, на которых серьёзные дядьки пишут настоящие программы и то не умеют ни чего такого. Для того, что бы они обрели такую возможность к ним подключают специальные библиотеки. Под Microsoft Windows для облегчения программирования игр существует DirectX. Это огромный набор API который содержит готовые классы, процедуры, функции, структуры и константы, существенно упрощающие процесс создания различного ПО, как 2D, так и 3D.
    Нам с вами весь этот набор не нужен. Нам нужны основные операции. Тем более только 2D - загрузка изображений, вывод их на экран, вывод на экран текста, рисование примитивов- линий, кругов, прямоугольников, воспроизведение звуков и музыки, управление всем этим хозяйством при помощи мышки и клавиатуры. В общем, подобрать небольшую библиотеку, которая всё это умеет.
    Вторая плохая новость. VBS не умеет работать с библиотеками. Штатными средствами ну ни как не подключить внешнюю DLL. И тут опять нашлись добрые люди, которые создали библиотеку dynwrap.dll - небольшой ActiveX, который может быть использован в любых средах, которые в состоянии выступить в роли OLE-клиента в административных скриптах Windows (.vbs и .js).
    Библиотека обеспечивает подобие инструкции "Declare" в VBScript. Это позволяет вызывать произвольные функции из DLL-библиотек (например, win32 функции API).
    Бинго! Мы подобрались к сути того, как это возможно на VBS свободно писать 2D игры, как на любом другом языке программирования!
    Мы [Ссылки могут видеть только зарегистрированные пользователи. ], регистрируем в системе библиотеку с помощью regsvr32.exe.
    Командная строка регистрации библиотеки может выглядеть, например, так:

    Код :
     regsvr32.exe "C:\WINDOWS\system32\dynwrap.dll"

    Далее скачиваем библиотеку для 2D игр:
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    её регистрировать не надо, надо просто положить в папку с будущей игрой, подбираем нужные изображения, звуки, музыку, и пишем управляющий код на VBA.
    Я уже написал несколько примеров игр, знакомых большинству людей, игравших в игры на компьютере, может игровом автомате, приставке или даже на старом телефоне.
    И мы сними обязательно познакомимся, это змейка, пинг-понг, космическая стелялка, воздушный бой, крестики-нолики и т.п. .
    А пока для того, что бы было чем заняться в ожидании прекрасного первая игра Пинг-Понг
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    В архиве есть всё необходимое, библиотеки, изображения, звуки. Для работы не забудьте зарегистрировать файл dynwrap.dll. Делать это надо 1 раз, для удобства можно запустить файл regdynwrap.bat из архива. Для запуска игры запустите файл Pong.vbs
    Ответить с цитированием  
     

  2. Пользователь сказал cпасибо:

    >Quiet Snow< (16.10.2019)

  3. #2  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    4,744
    Сказал(а) спасибо
    2,002
    Поблагодарили 1,084 раз(а) в 939 сообщениях
    Записей в блоге
    1
    Цитата Сообщение от Pro_grammer Посмотреть сообщение
    VB_pong.zip
    Чё то не контачит, регистрацию библиотеки из под админа запускал. Windows 7 x64.



    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  4. #3  
    Новичок
    Регистрация
    17.04.2014
    Сообщений
    10
    Сказал(а) спасибо
    1
    Поблагодарили 8 раз(а) в 6 сообщениях
    У меня тоже Win7x64, регистрируется без проблем. А так же проверялось на win 10 и winXP.
    Вообще врапперу в этом году исполнилось уже 20 лет! Так сказать, работа проверена временем.
    Вот тут источник:
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Есть более свежая и продвинутая версия враппера, автор Юрий Попов.
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Там подробнее написано про регистрацию в системе.
    Ответить с цитированием  
     

  5. #4  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    4,744
    Сказал(а) спасибо
    2,002
    Поблагодарили 1,084 раз(а) в 939 сообщениях
    Записей в блоге
    1
    Цитата Сообщение от Pro_grammer Посмотреть сообщение
    Так сказать, работа проверена временем.
    Ну значит плохо проверена. Тут нечего добавить. Да автор и так знает где у него дыра и проблема:

    Регистрация для текущего пользователя не требует прав администратора, но имеет ограничения:
    в Windows 98 не работает;
    в Windows Vista, 7 и 8 при включенном UAC объект будет недоступен приложениям, запущенным с правами администратора.
    В 64-битной ОС нужно регистрировать оба варианта DLL: x86 и x64, чтобы объект был доступен как 64-, так и 32-битным приложениям.
    После чтения мануала у меня немного помутился рассудок, написано оно увы - никак. Но да я всё попробовал с твоей
    библой - результат не изменился.
    Тут мои нотации бесполезны. То что оно может не работать - уже показал. Каждый решает сам, сколько геморроя создавать пользователю.

    И да, так для проформы:
    https://www.virustotal.com/gui/file/...eb48/detection
    Не уверен что до этого процесса дойдёт, это я такой хлопотный, взял и проверил. И даже если это фейковое срабатывание,
    психологический эффект уже достигнут, это этот комп мне "ограниченно жалко", потому что скоро сносить винду.
    На других же тестить такие штучки из запаролленных архивов - точно не буду, я пиво с этим чуваком не пил, кто он такой
    не знаю - извиняйте.

    Обеспечить совместимость и применимость своих решений - это задача хорошего программиста. А если там 20 лет
    такое происходит - извини меня.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  6. #5  
    Новичок
    Регистрация
    17.04.2014
    Сообщений
    10
    Сказал(а) спасибо
    1
    Поблагодарили 8 раз(а) в 6 сообщениях
    Цитата Сообщение от >Quiet Snow< Посмотреть сообщение
    И да, так для проформы:
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Не уверен что до этого процесса дойдёт, это я такой хлопотный, взял и проверил. И даже если это фейковое срабатывание,
    Это откуда такое? Вот файл, которым я пользуюсь:

    [Ссылки могут видеть только зарегистрированные пользователи. ]

    Цитата Сообщение от >Quiet Snow< Посмотреть сообщение
    После чтения мануала у меня немного помутился рассудок, написано оно увы - никак. Но да я всё попробовал с твоей
    библой - результат не изменился.
    Тут мои нотации бесполезны. То что оно может не работать - уже показал. Каждый решает сам, сколько геморроя создавать пользователю.
    Ни чего не могу сказать про новый враппер, я его не использую, ни вторую версию, не первую.

    Мне хватает старого, от 13.10.1999 года, размер 36864 байта.
    Когда его написали, о win10 даже и разговоров не было, а он всё равно работает.
    Я не зря написал, что для чайников - какие чайники его запускали и на каких системах, уму не постижимо!
    Ещё и умудрялись из VBS делать EXE шники, и всё равно работало!
    Ошибка подобного рода возникала только по невнимательности, когда враппера не было в папке с игрой или если выдало отрицательное сообщение при регистрации.
    Но отрицательный результат трудно не заметить.
    Ответить с цитированием  
     

  7. #6  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    4,744
    Сказал(а) спасибо
    2,002
    Поблагодарили 1,084 раз(а) в 939 сообщениях
    Записей в блоге
    1
    Цитата Сообщение от Pro_grammer Посмотреть сообщение
    Это откуда такое?
    По твоей ссылке на сайт этого чувака, там врапер X, запароленный ZIP, а внутри 7z ))).
    Твой архив то в порядке.

    Цитата Сообщение от Pro_grammer Посмотреть сообщение
    когда враппера не было в папке с игрой или если выдало отрицательное сообщение при регистрации
    Врапер был в папке с игрой. Отрицательного сообщения не выдавало. Более того у меня выключен UAC (ползунок внизу).
    И да на этой же машине мы тестировали работу с COM, другого чувака, давно ещё, когда Анатолий( the trick )помогал
    завести COM библу, там тоже требовалась регистрация, всё работало. Так что как-то так...

    Я бы не рекомендовал тебе пользоваться этой чушью(враппером) тебя дядька сильно подставили, если конечно дорожишь
    своими прогами и репутацией, тут уж тебе решать. Это мина замедленного действия по аналогии с ошибкой Audacity,
    что означает, что ошибка может случиться в самый неподходящий для тебя момент. Такий сценариев, рушащих труд
    программистов повидал дикое множество, это увы халатность, стопроцентная. Я конечно понимаю что можно сбегать
    на MSDN:
    https://support.microsoft.com/ru-ru/...-error-message
    Потом сюда:
    https://xaegr.wordpress.com/2009/01/...e-process-vbs/
    Может ещё куда, раздеть свой комп до гола, словить мигрень от геморройств, нахватать вирей. Но нет пасиба, мне жалко своё
    время и нервы и более того я уверен, что ошибка может проявиться ещё где-нибудь и ты не застрахован от этого гавна,
    потому что оно от тебя не зависит(это классический сценарий).
    Если бы автор предоставлял установщик. Который стопроцентно решает вопрос, тогда было бы совсем другое дело,
    но ему это как понимаю, не интересно, дело его. Поэтому ты можешь либо героически своими силами изучить этот вопрос,
    либо списать всё на ответственность автора, но мы уже поняли что c ответственностью там "не очень":

    Последний раз редактировалось >Quiet Snow<; 16.10.2019 в 15:00. Причина: Объединение сообщений для компактности темы...
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  8. #7  
    Новичок
    Регистрация
    05.07.2023
    Сообщений
    1
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    А что насчет кликера?
    VB Code:
    1. i = 0
    2. Do While True
    3. MsgBox "You clicked 'OK'"  &   i   &  "times. (CTRL+SHIFT+ESC to close game)", 0+64 ,"Clicker Game"
    4. i = i + 1
    5. loop
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Создание форм c#
    от Никита Белянин в разделе .NET
    Ответов: 2
    Последнее сообщение: 29.05.2019, 10:40
  2. Создание платформера
    от safron в разделе Общие вопросы программирования
    Ответов: 2
    Последнее сообщение: 27.07.2017, 18:58
  3. Создание сайтов от 800 руб.
    от ra-don в разделе Изготовление сайтов и дизайн
    Ответов: 0
    Последнее сообщение: 28.12.2016, 14:45
  4. Создание мультфильмов
    от Kakos_nonos в разделе Кино, литература
    Ответов: 9
    Последнее сообщение: 31.05.2016, 13:15
  5. Видео про чайников
    от Kakos_nonos в разделе Юмор
    Ответов: 8
    Последнее сообщение: 06.11.2012, 19:46
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •