Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование на Visual Basic и Active Server Pages #1


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

VBS

La Vision

http://vbs.pp.ru

http://www.la-vision.net

>>> Здравствуйте, перед Вами пилотный выпуск нашей рассылки "Программирование на Visual Basic, VBScript, Active Server Pages, DirectX, OpenGL". Сегодня рассылку ведет Ваш покорный слуга, т.е. Сергей Никифоров. Надеюсь, что отсюда Вы почерпнете много нового и не разочаруетесь в нас...

>>> В этом выпуске:

1) Новости сайта
2) Результаты всенародного голосования
3) Использование <% Option Explicit %>

>>> Новости сайта

  • 06.12.2000
    Обновлен раздел "Ссылки". Два новобранца в "Жители - Наши проекты". В разделе "ASP" сразу две новые статьи: "Представление в Internet содержимого каталога средствами ASP" от Христофорова Юрия и "Использование <% Option Explicit %>" от Никифорова Сергея. В разделе "ActiveX - Прочее": новая версия компонента ListFiles от Христофорова Юрия. Ну и новый вопрос на всенародное голосование на главной странице.
  • 30.11.2000
    Только не падайте со стула: у нас опять новый форум! Теперь он находится прямо на нашем сервере и Вы всегда сможете быстро до него достучаться. Кроме того, форум имеет несколько тематических подфорумов и древовидную структуру сообщений. Заходите: "Жители - Web конференция".

>>> Результаты всенародного голосования

Новый вопрос!

Интернет - это средство ...

а) Обогащения 0 (0%)
б) Общения 1 (17%)
в) Издевательства 1 (17%)
г) Для жизни 2 (33%)
д) От скуки 2 (33%)

Всего приняло участие: 6 человек(а)

Оставьте и свой голос - http://vbs.pp.ru

>>> Использование <% Option Explicit %>

По умолчанию, Microsoft VBScript разрешает объявлять переменные в коде на Ваше усмотрение. Например, Вы написали функцию, которая возвращает квадратный корень числа:

Function MyFunction (num)
NewNumber = abs(num)
MyFunction = sqr(NewNumber)
End Function


VBScript автоматически объявляет переменную NewNumber без Вашего участия, объявляя её перед использованием. Этот способ может выдать необычные результаты, если Вы допустили орфографическую ошибку, как показано далее:

Function MyFunction (num)
NewNumber = abs(num)
MyFunction = sqr(NewNumer)
' NewNumer отличается от NewNumber
End Function



Написание с орфографическими ошибками заставляет VBScript создавать две переменных, одну он называет NewNumber, а другую NewNumer.Присутствие двух переменных возвратит неверную величину при вызове функции (вместо предполагаемого квадратного корня).

Для того, чтобы избежать этой проблемы, используйте функцию <% OPTION EXPLICIT %>. При таком раскладе, все переменные будут объявлены перед использованием,  это поможет VBScript'у отлавливать ошибки, как, например,  написанная с ошибкой переменная. Для этого просто вставьте тэг <% OPTION EXPLICIT %> в начало Вашего ASP файла:

<%@ LANGUAGE=VBScript %>
<% OPTION EXPLICIT %>

<HTML>
<HEAD>
<META name="generator" content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>

<%
Function MyFunction (num)
Dim NewNumber
NewNumber = abs(num)
MyFunction = sqr(NewNumber)
End Function
%>

<P> Квадратный корень 64 - <% =MyFunction(64) %></P>

</BODY>
</HTML>



Так как в примере используется <% OPTION EXPLICIT %>, Вы должны объявить переменную NewNumber. Таким образом, VBScript найдет любую орфографическую ошибку и выведет Вам сообщение о найденной ошибки.

Ну вот и всё - удачи!
Сергей Никифоров

Ведущий проекта "VBS"
Сергей Никифоров

 

>>> В этом выпуске:

1) Новости сайта
2) Поставил я DirectX8

>>> Новости сайта

  • 4.12.2000
    Новая часть учебника по DirectX Graphics. Вышли одновременно версии для C++ и для VB. В новой части мы изучаем матрицы
  • 24.11.2000
    Новая статья в разделе Direct3D:IM - Программирование DirectX Graphics. Это переделка d3d:im в восьмом DX. Пока статья только для С++ но в ближайшее время я переделаю ее на VB. Обновился форум, я разбил его на разделы и надеюсь, что сообщения больше не будут обрезаться. И еще новый проект в разделе "Ваши игры"

>>> Тотальная интеграция путем выбрасывания ненужных органов (или Поставил я DirectX8)

Здравствуйте, мальчики и девочки. Как вы уже наверное знаете, большой и умный Microsoft (aka ®) выпустил восьмую версию своей библиотеки для программирования игр, а также профессиональных мультимедиа-приложений DirectX под номером 8.

Вот так. Кормите его теперь чем хотите. Докачав последние метры Software Development Kit, я распаковал его в специально подготовленную заранее папочку. Затем проинсталлировал этого гада куда-попало, ну и наконец сел разбираться.

Посмотрев примерчики и сказав "Н-да.... Где-то я уже это видел...." я полез в документацию. Среди бесчисленных килобайтов расписывания какие мы крутые и как это все у нас хорошо, я нашел статейку под заголовком What's New in DirectX 8.0

Интеграция, батенька и еще раз интеграция. То бишь воссоединение народов в едином трудовом порыве. Под жизнеутверждающим утверждением, что наступает новая эра, Microsoft объединяет свои самые важные части DX: DirectDraw и Direct3D в одно целое, которое не долго думая назвало DirectX Graphics. Но простите, после беглого просмотра документации, кое что бросается прямо в глаза. Это кричит и орет одним своим отстутствием! Где DirectDraw????? Нету его. Все, отпрыгался курилка.

То есть он конечно есть, но в виде поддержки предыдущих частей DirectX. Например вы можете использовать объект DirectDraw7 (Тсс... Пока VB-шники не услышали!!! Они то этого не могут!.... =80[] Так что, получается под громкими криками об интеграции MS подразумевало просто выкидывание одной части? Вместо формулы 1+1=1 получилось нечто 2-1=1 Математически, конечно, правильно, но верните нам Blt!

На самом деле MS оставила нам, отсталым, возможность баловаться со спрайтами. Но теперь это у нас происходит через 3D. Мне понравилось фраза "...2D симулируется через 3D."
Радуйтесь! Мы дожили до такого времени, когда симулируется 2D, а не наоборот! В чем тут дело? Ну представьте себе спрайт. Плоский, никому не нужный кусок картинки. Давайте слепим вместе два треугольника, так чтобы получился прямоугльник, натянем на него текстуру - вот вам и спрайт. Пользуйтесь на здоровье.
Особенности такого способа:

  • Коллосольная скорость рендеринга на хороших машинах с акселераторами
  • Посредственная скорость 2D на быстрых машинах, но без акселераторов (ну как теперь секретаршам в Принца играться???)
  • Возможность крутить-вертеть модель-прямоугольник вместе со спрайтом. Это жрет меньше памяти под картинки разных позиций, сберегает время художников
  • Возможность накладывать на спрайты много разных эффектов типа альфа-блендинга и т.п. как на модели
  • Многократно возросшая сложность программирования этого псевдо-2D по сравнению с DirectDraw. Всякие там матрицы, кватернионы... Страшно?... А что у нас по математике в институте было?..
  • Собственно все это можно было делать и во всех предыдущих версиях Direct3D, но тогда это всякими умными вещами типа опостылевшей "интеграции" не называлось!!!!!!!!! А было просто Direct3D.

Вобщем все тут с ними ясно.

Помните такую вещь как Direct3D:Retained Mode? Помните как MS грозилась ее прикрыть, обещая светлое наступление Farengheit'а? Вы не поверите, но D3D:RM остался! Чего-то у них там с силиконами не срослось, ну и чтобы не позориться вытащили на свет божий D3D:RM, немножко отряхнули, тут подмазали, там загладили, назвали все это дело умным словом Direct3DX (ну букв-то мало, а слово придумывать надо) и запустили в производство. Так что у нашего рабочего класса осталась-таки возможность загружать полюбившиеся .x-файлы и натягивать текстуры без всякой там возни с треугольниками, стримингом вершин и тому подобное требухи.

Чего у нас там дальше по плану? DirectSound? А нет больше такого! Знакомьтесь с еще одним гибридом от Microsoft - DirectX Audio. Что они там наваяли с DirectSound - не скажу, сам еще не сильно разобрался. Вобщем решили они объединить его с DirectMusic. Кому и на что вообще сдался последний я не знаю. Вставлять MIDI в коммерческие блокбастеры по моему перестали еще со времен Warcraft (ну был там еще AoE от одного малоизвестного производителя. Наверное они ради него всю затею с DirectMusic провернули). Так же идея с Downloadable Sounds поперхнулась еще в начале тарелки. Обыкновенная трэкерная идея, которая работала еще на Спектруме, сейчас аппаратно не поддерживается даже на моей Ямахе XG. А оставлять MS-драйверы от Виндов ради совтверной поддержки непонятно чего????..... Ну вы меня поняли :)

А кто-то там кажется встроенный EAX обещал? Кстати в DirectX Audio оставили предыдущую градацию на DirectSound и DirectMusic, так что никто никуда таинственно не пропадал.

Больше, на счастье, Microsoft ничего интегрировать не стал, оставив DirectInput и DirectPlay существовать по отдельности. Наверное из-за поло... ой!... программной несовместимости.... :)

В DirectInput у нас аж четыре (!) нововведения:

  • Action Mapping - я не очень понял, но по моему теперь мы на уровне DX сможем создавать виртуальные устройства для каких-либо физических устройств скажем джойстика. То-есть теперь мы будем не отслеживать положение оси X джойстика и в соответсвие с ней рулить вправо или влево, а создадим виртуальное устройство DIAXIS_DRIVINGR_STEER и будем получать информацию с него.
    Нафига козе баян.......
  • Объект DirectInput теперь представлен классом DirectInput8
  • Целых два (!!) новых свойства клавиатуры DIPROP_KEYNAME и DIPROP_SCANCODE, которые получают соответственно локализованное имя клавиши и скан-код клавиши.
  • Какая-то реорганизация в разделе джойстика, при которой положение оси Z теперь можно получать не из пары отдельных типов, а из массива этих же самых типов.

Согласитесь, что уже ради этого стоило выпускать восьмую версию библиотеки!

В DirectPlay более-менее увеличенное количество нововведений. Полностью переписан объектный код и теперь у нас есть объекты DirectPlay8Peer, DirectPlay8Client и DirectPlay8Server. Так же добавлена возможность голосового общения (Которая применима лишь в условиях городских локальных сетей на 100 мегабит в нескольких закрытых Городах Науки нашей необъятной Родины за символическую плату в месячный доход американца средней упитанности)

Вобщем MS на месте как вы видите не сидит, а усердно на нем топчется. Теперь придется сидеть и переписывать во всех туториалах цифирки 7 на 8, да и вдобавок отправлять все учебники по DirectDraw на свалку или в лучшем случае в какой-нибудь заплесневелый архив НЕЧасто зАдаваемых ВОпросов.
А что поделаешь - интеграция.....

Ведущий проекта "La-Vision"
Дмитрий Литвиненко


http://subscribe.ru/
E-mail: ask@subscribe.ru
Поиск

В избранное