Програмирање игара у Ц # помоћу СДЛ.НЕТ

click fraud protection

Један од проблема са отвореним кодом је што понекад изгледа да пројекти пропадају поред пута или имају збуњујуће потезе. Узми СДЛ.НЕТ. Занемарујући веб локацију ради продаје, открива се претрага на вебу цс-сдл.соурцефорге.нет пројекат за који се чини да је стао у новембру 2010. Не мислимо да се зауставио, већ само изгледа као да има.

Ако не знате Ц #, прво ћете морати да научите како да то урадите програм у Ц #. Тражећи негде другде, наишли смо на Тао оквир повезан на Моно веб локацији који изгледа да покрива исто подручје и додаје подршку за звук итд. Али гледајући изворну (опет!), То је замењено ОпенТК али фокус је ОпенГЛ. Међутим, он такође укључује ОпенАЛ, па је изгледа да је инсталирање ова два (цс-сдл и ОпенТК) пут напред.

Део инсталације ОпенТк није успео; НС (схадер) јер немамо инсталиран ВС 2008! Међутим, све остало је било ок. Направили смо Ц # Цонсоле пројекат и почели да се играмо са СДЛ.НЕТ. Онлине документацију можете пронаћи овде.

Гледајући уназад, можемо видети да ОпенТК оквир није потребан као такав, да је СДЛ.НЕТ инсталирао све, али то тада није било јасно. И даље користи Тао оквир иако је развој тог примена надјачао ОпенТК. Мало је збуњујуће и надамо се да ће тим СДЛ.НЕТ-а у будућности представити компатибилну ОпенТк верзију.

instagram viewer

Није, као што смо мислили, само танки омотачи округли СДЛ, али даје значајну додатну функционалност. Постоји неколико класа које пружају сљедеће:

Пронађите два СДЛ.НЕТ уређаја (СдлДотНет.длл и Тао). Сдл.длл) као и ДЛТ ОпенТК и додајте их у референце пројекта. Након инсталације, датотеке се налазе у програмским датотекама \ СдлДотНет \ бин (на 32-битном Виндовс-у и програмским датотекама (к86) \ СдлДотНет \ бин на 64-битном Виндовс-у. Кликните десним тастером миша на одељак Референце у програму Екплорер Солутион Екплорер, а затим кликните Адд Референце и изаберите картицу Бровсе. Отвара се дијалог Екплорера и након лоцирања дллс одаберите и кликните ОК.

Још једна ствар, кликните на Виев \ Пропертиес (Својства) \ тако да се отвори странице Пропертиес (Својства) и на првој картици (Апплицатион) Промените врсту излаза из Цонсоле Апплицатион у Виндовс Апплицатион. Ако то не учините када се програм прво покрене и отвори главни прозор СДЛ-а, отвориће се и прозор конзоле.

Сад смо спремни за почетак и у наставку сам створио кратку апликацију. Ово блефира насумичне правоугаонице и кругове на површини Прозора брзином од 1.700 цртаних у секунди при брзини од 50 сличица у секунди.

То 1.700 долази из подешавања броја извученог по кадру на 17 и приказивања оквира у секунди у прозору Виндов користећи Видео. ВиндовЦаптион. Сваки оквир црта 17 испуњених кругова и правоугаоника, 17 к 2 к 50 = 1.700. Ова цифра зависи од видео картице, ЦПУ-а итд. Импресивна је брзина.

// Давид Болтон, http://cplus.about.com
коришћење система;
користећи Систем. Цртање;
користећи СдлДотНет. Графика;
користећи СдлДотНет. Језгро;
користећи СдлДотНет. Графика Примитиви;
јавна класа ек1
{
приватни цонст инт ввидтх = 1024;
приватни цонст инт вхеигхт = 768;
приватни статички површински екран;
приватни статички Рандом р = нови Рандом ();
јавна статичка воид главна (стринг [] аргс)
{
Екран = Видео. СетВидеоМоде (ширина, висина, 32, лажно, лажно, лажно, истинито);
Догађаји. ТаргетФпс = 50;
Догађаји. Куит + = (КуитЕвентХандлер);
Догађаји. Означите + = (ТицкЕвентХандлер);
Догађаји. Трцати() ;
}
приватна статичка воид КуитЕвентХандлер (пошиљалац објекта, КуитЕвентАргс аргс)
{
Догађаји. КуитАпплицатион ();
}
приватна статичка воид ТицкЕвентХандлер (пошиљалац објекта, ТицкЕвентАргс аргс)
{
за (вар и = 0; и <17; и ++)
{
вар рецт = нови правокутник (нова тачка (р. Следећи (ширина - 100), р. Следеће (тачка-100),
нова величина (10 + р. Следећи (ширина - 90), 10 + р. Следећи (висина - 90)));
вар Цол = Боја. ФромАргб (р. Следеће (255), р. Следеће (255), р. Следеће (255);
вар ЦирцЦол = Боја. ФромАргб (р. Следеће (255), р. Следеће (255), р. Следеће (255);
кратки радијус = (кратак) (10 + р. Следећи (висина - 90));
вар Цирц = нови круг (нова тачка (р. Следећи (ширина - 100), р. Следећи (висина-100)), полупречник);
Екран. Попуните (рецт, Цол);
Цирц. Цртање (Сцреен, ЦирцЦол, фалсе, труе);
Екран. Ажурирање() ;
Видео. ВиндовЦаптион = Догађаји. Фпс. ТоСтринг ();
}
}
}

Видео пружа методе за подешавање видео режима, креирање видео површина, скривање и приказивање курсора миша и интеракцију са ОпенГЛ-ом. Није да ћемо неко време радити ОпенГЛ.

Овде се Видео објект користи за подешавање величине и резолуције прозора игре (пуни екран је опција). Параметри за СетВидеоМоде омогућавају вам да промените ове а 13 преоптерећења пружају много разноликости. У датотеци доц налази се .цхм датотека (помоћни формат за Виндовс хтмл) која документује све класе и чланове.

Објект Евентс има алат за обраду Куит евентс-а који вам омогућава додавање логике затварања и требало би да позовете Евентс. КуитАпплицатион () да назове корисника да затвори апликацију. Догађаји. Тицк је вероватно најважнији носилац догађаја. Сваки оквир позива одређени руковатељ догађаја. Ово је модел за сав развој СДЛ.НЕТ-а.

Можете поставити жељену брзину кадрова, а моје смањење петље на 5 и промену Таргетфпс-а на 150, добили смо то брзином од 164 сличице у секунди. ТаргетФпс је фигура у облику балкона; касни како би се приближио тој цифри, али догађајима. Фпс је оно што се испоручује.

Попут оригиналне верзије СДЛ-а без прозора, СДЛ.НЕТ користи површине за приказивање на екрану. Површина се може конструирати из графичке датотеке. Постоји велики број својстава и метода који омогућавају читање или писање пиксела нацртајте графичке примитиве, искрчите друге површине, чак и бацајте површину у датотеку диска ради снимања сцреенсхотс.

instagram story viewer