moved demos to /source/ and into the one solution

This commit is contained in:
Lucas Girouard-Stranks
2016-03-09 23:19:14 -08:00
parent 7c53d072fb
commit a82afb9cbc
177 changed files with 168 additions and 107 deletions
@@ -0,0 +1,57 @@
#----------------------------- Global Properties ----------------------------#
/outputDir:bin/$(Platform)
/intermediateDir:obj/$(Platform)
/platform:Windows
/config:
/profile:Reach
/compress:False
#-------------------------------- References --------------------------------#
/reference:../../../MonoGame.Extended.Content.Pipeline/bin/MonoGame.Extended.Content.Pipeline.dll
#---------------------------------- Content ---------------------------------#
#begin logo-square-512.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:logo-square-512.png
#begin montserrat-32.fnt
/importer:BitmapFontImporter
/processor:BitmapFontProcessor
/build:montserrat-32.fnt
#begin montserrat-32_0.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:montserrat-32_0.png
#begin vignette.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:vignette.png
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

@@ -0,0 +1,341 @@
<?xml version="1.0"?>
<font>
<info face="Montserrat" size="32" bold="1" italic="0" charset="" unicode="1" stretchH="100" smooth="1" aa="1" padding="0,0,0,0" spacing="1,1" outline="0"/>
<common lineHeight="32" base="27" scaleW="256" scaleH="256" pages="1" packed="0" alphaChnl="1" redChnl="0" greenChnl="0" blueChnl="0"/>
<pages>
<page id="0" file="montserrat-32_0.png" />
</pages>
<chars count="95">
<char id="32" x="88" y="44" width="3" height="1" xoffset="-1" yoffset="31" xadvance="6" page="0" chnl="15" />
<char id="33" x="250" y="21" width="5" height="19" xoffset="2" yoffset="8" xadvance="7" page="0" chnl="15" />
<char id="34" x="72" y="103" width="8" height="8" xoffset="2" yoffset="8" xadvance="12" page="0" chnl="15" />
<char id="35" x="0" y="49" width="19" height="19" xoffset="0" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="36" x="0" y="0" width="16" height="27" xoffset="0" yoffset="4" xadvance="17" page="0" chnl="15" />
<char id="37" x="118" y="24" width="25" height="19" xoffset="1" yoffset="8" xadvance="28" page="0" chnl="15" />
<char id="38" x="172" y="0" width="17" height="20" xoffset="1" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="39" x="251" y="61" width="4" height="8" xoffset="2" yoffset="8" xadvance="7" page="0" chnl="15" />
<char id="40" x="72" y="0" width="8" height="24" xoffset="2" yoffset="7" xadvance="9" page="0" chnl="15" />
<char id="41" x="62" y="0" width="9" height="24" xoffset="1" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="42" x="61" y="104" width="10" height="9" xoffset="0" yoffset="8" xadvance="10" page="0" chnl="15" />
<char id="43" x="13" y="105" width="13" height="13" xoffset="0" yoffset="12" xadvance="14" page="0" chnl="15" />
<char id="44" x="81" y="103" width="6" height="7" xoffset="0" yoffset="23" xadvance="7" page="0" chnl="15" />
<char id="45" x="130" y="100" width="7" height="3" xoffset="1" yoffset="17" xadvance="10" page="0" chnl="15" />
<char id="46" x="107" y="100" width="5" height="5" xoffset="1" yoffset="22" xadvance="7" page="0" chnl="15" />
<char id="47" x="29" y="0" width="13" height="25" xoffset="-1" yoffset="5" xadvance="10" page="0" chnl="15" />
<char id="48" x="170" y="42" width="17" height="19" xoffset="1" yoffset="8" xadvance="19" page="0" chnl="15" />
<char id="49" x="203" y="61" width="9" height="19" xoffset="0" yoffset="8" xadvance="11" page="0" chnl="15" />
<char id="50" x="130" y="64" width="15" height="19" xoffset="1" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="51" x="236" y="61" width="14" height="18" xoffset="0" yoffset="9" xadvance="15" page="0" chnl="15" />
<char id="52" x="17" y="69" width="16" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="53" x="114" y="64" width="15" height="19" xoffset="0" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="54" x="146" y="64" width="15" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="55" x="98" y="64" width="15" height="19" xoffset="1" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="56" x="82" y="66" width="15" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="57" x="66" y="67" width="15" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="58" x="27" y="105" width="5" height="12" xoffset="1" yoffset="15" xadvance="6" page="0" chnl="15" />
<char id="59" x="233" y="80" width="6" height="15" xoffset="0" yoffset="15" xadvance="7" page="0" chnl="15" />
<char id="60" x="240" y="80" width="12" height="14" xoffset="1" yoffset="11" xadvance="14" page="0" chnl="15" />
<char id="61" x="48" y="104" width="12" height="9" xoffset="1" yoffset="14" xadvance="14" page="0" chnl="15" />
<char id="62" x="0" y="108" width="12" height="14" xoffset="1" yoffset="11" xadvance="14" page="0" chnl="15" />
<char id="63" x="190" y="61" width="12" height="19" xoffset="0" yoffset="8" xadvance="13" page="0" chnl="15" />
<char id="64" x="141" y="0" width="24" height="22" xoffset="0" yoffset="9" xadvance="25" page="0" chnl="15" />
<char id="65" x="144" y="23" width="21" height="19" xoffset="0" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="66" x="219" y="61" width="16" height="18" xoffset="2" yoffset="9" xadvance="19" page="0" chnl="15" />
<char id="67" x="78" y="46" width="18" height="19" xoffset="1" yoffset="8" xadvance="19" page="0" chnl="15" />
<char id="68" x="59" y="47" width="18" height="19" xoffset="2" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="69" x="34" y="68" width="15" height="19" xoffset="2" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="70" x="241" y="41" width="14" height="19" xoffset="2" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="71" x="116" y="44" width="17" height="19" xoffset="1" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="72" x="134" y="44" width="17" height="19" xoffset="2" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="73" x="213" y="61" width="5" height="19" xoffset="2" yoffset="8" xadvance="9" page="0" chnl="15" />
<char id="74" x="176" y="62" width="13" height="19" xoffset="0" yoffset="8" xadvance="14" page="0" chnl="15" />
<char id="75" x="40" y="47" width="18" height="19" xoffset="2" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="76" x="162" y="63" width="13" height="19" xoffset="2" yoffset="8" xadvance="15" page="0" chnl="15" />
<char id="77" x="229" y="21" width="20" height="19" xoffset="2" yoffset="8" xadvance="25" page="0" chnl="15" />
<char id="78" x="206" y="41" width="17" height="19" xoffset="2" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="79" x="208" y="21" width="20" height="19" xoffset="1" yoffset="8" xadvance="22" page="0" chnl="15" />
<char id="80" x="50" y="67" width="15" height="19" xoffset="2" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="81" x="81" y="0" width="21" height="23" xoffset="1" yoffset="8" xadvance="22" page="0" chnl="15" />
<char id="82" x="188" y="41" width="17" height="19" xoffset="2" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="83" x="224" y="41" width="16" height="19" xoffset="0" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="84" x="0" y="69" width="16" height="19" xoffset="1" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="85" x="97" y="44" width="18" height="19" xoffset="1" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="86" x="187" y="21" width="20" height="19" xoffset="0" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="87" x="88" y="24" width="29" height="19" xoffset="0" yoffset="8" xadvance="29" page="0" chnl="15" />
<char id="88" x="166" y="22" width="20" height="19" xoffset="0" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="89" x="20" y="48" width="19" height="19" xoffset="0" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="90" x="152" y="43" width="17" height="19" xoffset="1" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="91" x="123" y="0" width="8" height="23" xoffset="2" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="92" x="43" y="0" width="13" height="25" xoffset="1" yoffset="5" xadvance="12" page="0" chnl="15" />
<char id="93" x="132" y="0" width="8" height="23" xoffset="2" yoffset="7" xadvance="12" page="0" chnl="15" />
<char id="94" x="33" y="105" width="14" height="11" xoffset="1" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="95" x="113" y="100" width="16" height="3" xoffset="0" yoffset="29" xadvance="16" page="0" chnl="15" />
<char id="96" x="99" y="100" width="7" height="5" xoffset="1" yoffset="7" xadvance="9" page="0" chnl="15" />
<char id="97" x="164" y="83" width="14" height="15" xoffset="1" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="98" x="0" y="28" width="16" height="20" xoffset="2" yoffset="7" xadvance="18" page="0" chnl="15" />
<char id="99" x="179" y="82" width="14" height="15" xoffset="0" yoffset="12" xadvance="15" page="0" chnl="15" />
<char id="100" x="208" y="0" width="17" height="20" xoffset="0" yoffset="7" xadvance="19" page="0" chnl="15" />
<char id="101" x="116" y="84" width="15" height="15" xoffset="0" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="102" x="243" y="0" width="12" height="20" xoffset="0" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="103" x="34" y="26" width="15" height="20" xoffset="1" yoffset="12" xadvance="17" page="0" chnl="15" />
<char id="104" x="66" y="25" width="15" height="20" xoffset="2" yoffset="7" xadvance="18" page="0" chnl="15" />
<char id="105" x="166" y="0" width="5" height="21" xoffset="2" yoffset="6" xadvance="8" page="0" chnl="15" />
<char id="106" x="17" y="0" width="11" height="26" xoffset="-3" yoffset="6" xadvance="9" page="0" chnl="15" />
<char id="107" x="50" y="26" width="15" height="20" xoffset="2" yoffset="7" xadvance="17" page="0" chnl="15" />
<char id="108" x="82" y="24" width="5" height="20" xoffset="2" yoffset="7" xadvance="9" page="0" chnl="15" />
<char id="109" x="39" y="88" width="24" height="15" xoffset="2" yoffset="12" xadvance="28" page="0" chnl="15" />
<char id="110" x="132" y="84" width="15" height="15" xoffset="2" yoffset="12" xadvance="18" page="0" chnl="15" />
<char id="111" x="64" y="87" width="17" height="15" xoffset="0" yoffset="12" xadvance="17" page="0" chnl="15" />
<char id="112" x="226" y="0" width="16" height="20" xoffset="2" yoffset="12" xadvance="18" page="0" chnl="15" />
<char id="113" x="190" y="0" width="17" height="20" xoffset="0" yoffset="12" xadvance="19" page="0" chnl="15" />
<char id="114" x="222" y="80" width="10" height="15" xoffset="2" yoffset="12" xadvance="12" page="0" chnl="15" />
<char id="115" x="208" y="81" width="13" height="15" xoffset="0" yoffset="12" xadvance="14" page="0" chnl="15" />
<char id="116" x="0" y="89" width="11" height="18" xoffset="0" yoffset="9" xadvance="12" page="0" chnl="15" />
<char id="117" x="148" y="84" width="15" height="15" xoffset="1" yoffset="12" xadvance="18" page="0" chnl="15" />
<char id="118" x="82" y="86" width="16" height="15" xoffset="0" yoffset="12" xadvance="15" page="0" chnl="15" />
<char id="119" x="12" y="89" width="26" height="15" xoffset="0" yoffset="12" xadvance="25" page="0" chnl="15" />
<char id="120" x="99" y="84" width="16" height="15" xoffset="0" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="121" x="17" y="27" width="16" height="20" xoffset="0" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="122" x="194" y="81" width="13" height="15" xoffset="1" yoffset="12" xadvance="15" page="0" chnl="15" />
<char id="123" x="113" y="0" width="9" height="23" xoffset="1" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="124" x="57" y="0" width="4" height="25" xoffset="2" yoffset="5" xadvance="8" page="0" chnl="15" />
<char id="125" x="103" y="0" width="9" height="23" xoffset="1" yoffset="7" xadvance="11" page="0" chnl="15" />
<char id="126" x="88" y="102" width="10" height="5" xoffset="2" yoffset="16" xadvance="14" page="0" chnl="15" />
</chars>
<kernings count="234">
<kerning first="39" second="46" amount="-1" />
<kerning first="122" second="89" amount="-1" />
<kerning first="122" second="87" amount="-1" />
<kerning first="122" second="86" amount="-1" />
<kerning first="121" second="65" amount="-1" />
<kerning first="120" second="113" amount="-1" />
<kerning first="120" second="111" amount="-1" />
<kerning first="120" second="103" amount="-1" />
<kerning first="120" second="101" amount="-1" />
<kerning first="120" second="100" amount="-1" />
<kerning first="120" second="99" amount="-1" />
<kerning first="120" second="97" amount="-1" />
<kerning first="120" second="89" amount="-1" />
<kerning first="120" second="87" amount="-1" />
<kerning first="120" second="86" amount="-1" />
<kerning first="120" second="85" amount="-1" />
<kerning first="119" second="65" amount="-1" />
<kerning first="119" second="46" amount="-1" />
<kerning first="118" second="65" amount="-1" />
<kerning first="118" second="46" amount="-1" />
<kerning first="116" second="89" amount="-1" />
<kerning first="116" second="87" amount="-1" />
<kerning first="116" second="86" amount="-1" />
<kerning first="115" second="89" amount="-1" />
<kerning first="45" second="74" amount="-1" />
<kerning first="47" second="57" amount="-1" />
<kerning first="115" second="87" amount="-1" />
<kerning first="115" second="86" amount="-1" />
<kerning first="114" second="121" amount="1" />
<kerning first="114" second="119" amount="1" />
<kerning first="114" second="118" amount="1" />
<kerning first="114" second="89" amount="-1" />
<kerning first="114" second="87" amount="-1" />
<kerning first="114" second="86" amount="-1" />
<kerning first="112" second="120" amount="-1" />
<kerning first="112" second="89" amount="-2" />
<kerning first="112" second="87" amount="-2" />
<kerning first="112" second="86" amount="-2" />
<kerning first="112" second="84" amount="-2" />
<kerning first="112" second="74" amount="-1" />
<kerning first="112" second="65" amount="-1" />
<kerning first="111" second="120" amount="-1" />
<kerning first="111" second="89" amount="-2" />
<kerning first="111" second="87" amount="-2" />
<kerning first="111" second="86" amount="-2" />
<kerning first="111" second="84" amount="-2" />
<kerning first="111" second="74" amount="-1" />
<kerning first="55" second="46" amount="-1" />
<kerning first="65" second="67" amount="-1" />
<kerning first="65" second="71" amount="-1" />
<kerning first="65" second="79" amount="-1" />
<kerning first="65" second="81" amount="-1" />
<kerning first="111" second="65" amount="-1" />
<kerning first="65" second="84" amount="-2" />
<kerning first="65" second="85" amount="-1" />
<kerning first="65" second="86" amount="-1" />
<kerning first="65" second="87" amount="-1" />
<kerning first="65" second="89" amount="-1" />
<kerning first="65" second="92" amount="-1" />
<kerning first="65" second="99" amount="-1" />
<kerning first="65" second="100" amount="-1" />
<kerning first="65" second="101" amount="-1" />
<kerning first="65" second="103" amount="-1" />
<kerning first="65" second="111" amount="-1" />
<kerning first="65" second="113" amount="-1" />
<kerning first="65" second="116" amount="-1" />
<kerning first="65" second="117" amount="-1" />
<kerning first="65" second="118" amount="-1" />
<kerning first="65" second="119" amount="-1" />
<kerning first="65" second="121" amount="-1" />
<kerning first="110" second="89" amount="-1" />
<kerning first="110" second="87" amount="-1" />
<kerning first="110" second="86" amount="-1" />
<kerning first="109" second="89" amount="-1" />
<kerning first="109" second="87" amount="-1" />
<kerning first="109" second="86" amount="-1" />
<kerning first="107" second="113" amount="-1" />
<kerning first="107" second="111" amount="-1" />
<kerning first="107" second="103" amount="-1" />
<kerning first="107" second="101" amount="-1" />
<kerning first="107" second="100" amount="-1" />
<kerning first="107" second="99" amount="-1" />
<kerning first="107" second="97" amount="-1" />
<kerning first="107" second="89" amount="-1" />
<kerning first="107" second="87" amount="-1" />
<kerning first="107" second="86" amount="-1" />
<kerning first="107" second="85" amount="-1" />
<kerning first="104" second="89" amount="-1" />
<kerning first="104" second="87" amount="-1" />
<kerning first="104" second="86" amount="-1" />
<kerning first="102" second="121" amount="1" />
<kerning first="102" second="119" amount="1" />
<kerning first="102" second="118" amount="1" />
<kerning first="102" second="108" amount="1" />
<kerning first="102" second="107" amount="1" />
<kerning first="102" second="104" amount="1" />
<kerning first="102" second="98" amount="1" />
<kerning first="102" second="97" amount="-1" />
<kerning first="102" second="89" amount="2" />
<kerning first="102" second="87" amount="2" />
<kerning first="102" second="86" amount="2" />
<kerning first="102" second="84" amount="2" />
<kerning first="102" second="82" amount="1" />
<kerning first="102" second="81" amount="1" />
<kerning first="102" second="80" amount="1" />
<kerning first="102" second="79" amount="1" />
<kerning first="102" second="78" amount="1" />
<kerning first="102" second="77" amount="1" />
<kerning first="102" second="76" amount="1" />
<kerning first="102" second="75" amount="1" />
<kerning first="102" second="73" amount="1" />
<kerning first="102" second="72" amount="1" />
<kerning first="102" second="71" amount="1" />
<kerning first="102" second="70" amount="1" />
<kerning first="102" second="69" amount="1" />
<kerning first="102" second="68" amount="1" />
<kerning first="102" second="67" amount="1" />
<kerning first="102" second="66" amount="1" />
<kerning first="101" second="125" amount="-1" />
<kerning first="101" second="120" amount="-1" />
<kerning first="101" second="89" amount="-2" />
<kerning first="101" second="87" amount="-2" />
<kerning first="101" second="86" amount="-2" />
<kerning first="101" second="84" amount="-2" />
<kerning first="101" second="74" amount="-1" />
<kerning first="101" second="65" amount="-1" />
<kerning first="99" second="89" amount="-1" />
<kerning first="99" second="87" amount="-1" />
<kerning first="99" second="86" amount="-1" />
<kerning first="98" second="120" amount="-1" />
<kerning first="98" second="89" amount="-2" />
<kerning first="98" second="87" amount="-2" />
<kerning first="98" second="86" amount="-2" />
<kerning first="98" second="84" amount="-2" />
<kerning first="98" second="74" amount="-1" />
<kerning first="98" second="65" amount="-1" />
<kerning first="97" second="89" amount="-1" />
<kerning first="97" second="87" amount="-1" />
<kerning first="97" second="86" amount="-1" />
<kerning first="89" second="122" amount="-1" />
<kerning first="89" second="120" amount="-1" />
<kerning first="89" second="117" amount="-1" />
<kerning first="89" second="116" amount="-1" />
<kerning first="89" second="115" amount="-1" />
<kerning first="89" second="114" amount="-1" />
<kerning first="68" second="46" amount="-1" />
<kerning first="68" second="65" amount="-1" />
<kerning first="89" second="113" amount="-2" />
<kerning first="89" second="111" amount="-2" />
<kerning first="68" second="74" amount="-1" />
<kerning first="89" second="110" amount="-1" />
<kerning first="89" second="109" amount="-1" />
<kerning first="68" second="84" amount="-1" />
<kerning first="89" second="103" amount="-2" />
<kerning first="89" second="101" amount="-2" />
<kerning first="89" second="100" amount="-2" />
<kerning first="89" second="99" amount="-2" />
<kerning first="89" second="97" amount="-1" />
<kerning first="89" second="65" amount="-1" />
<kerning first="89" second="38" amount="-1" />
<kerning first="87" second="122" amount="-1" />
<kerning first="87" second="120" amount="-1" />
<kerning first="87" second="117" amount="-1" />
<kerning first="87" second="116" amount="-1" />
<kerning first="87" second="115" amount="-1" />
<kerning first="87" second="114" amount="-1" />
<kerning first="87" second="113" amount="-2" />
<kerning first="87" second="111" amount="-2" />
<kerning first="87" second="110" amount="-1" />
<kerning first="87" second="109" amount="-1" />
<kerning first="87" second="103" amount="-2" />
<kerning first="87" second="101" amount="-2" />
<kerning first="87" second="100" amount="-2" />
<kerning first="87" second="99" amount="-2" />
<kerning first="87" second="97" amount="-1" />
<kerning first="87" second="65" amount="-1" />
<kerning first="86" second="122" amount="-1" />
<kerning first="86" second="120" amount="-1" />
<kerning first="86" second="117" amount="-1" />
<kerning first="70" second="46" amount="-1" />
<kerning first="70" second="65" amount="-1" />
<kerning first="86" second="116" amount="-1" />
<kerning first="86" second="115" amount="-1" />
<kerning first="86" second="114" amount="-1" />
<kerning first="86" second="113" amount="-2" />
<kerning first="86" second="111" amount="-2" />
<kerning first="86" second="110" amount="-1" />
<kerning first="86" second="109" amount="-1" />
<kerning first="86" second="103" amount="-2" />
<kerning first="86" second="101" amount="-2" />
<kerning first="74" second="65" amount="-1" />
<kerning first="86" second="100" amount="-2" />
<kerning first="74" second="120" amount="-1" />
<kerning first="86" second="99" amount="-2" />
<kerning first="86" second="97" amount="-1" />
<kerning first="86" second="65" amount="-1" />
<kerning first="86" second="46" amount="-1" />
<kerning first="86" second="38" amount="-1" />
<kerning first="85" second="120" amount="-1" />
<kerning first="85" second="65" amount="-1" />
<kerning first="75" second="67" amount="-1" />
<kerning first="75" second="71" amount="-1" />
<kerning first="75" second="79" amount="-1" />
<kerning first="75" second="81" amount="-1" />
<kerning first="85" second="46" amount="-1" />
<kerning first="84" second="113" amount="-2" />
<kerning first="84" second="111" amount="-2" />
<kerning first="84" second="108" amount="-1" />
<kerning first="84" second="107" amount="-1" />
<kerning first="84" second="104" amount="-1" />
<kerning first="84" second="103" amount="-2" />
<kerning first="84" second="101" amount="-2" />
<kerning first="84" second="100" amount="-2" />
<kerning first="76" second="92" amount="-1" />
<kerning first="84" second="99" amount="-2" />
<kerning first="84" second="98" amount="-1" />
<kerning first="84" second="81" amount="-1" />
<kerning first="84" second="79" amount="-1" />
<kerning first="84" second="71" amount="-1" />
<kerning first="84" second="67" amount="-1" />
<kerning first="84" second="65" amount="-2" />
<kerning first="79" second="46" amount="-1" />
<kerning first="79" second="65" amount="-1" />
<kerning first="84" second="46" amount="-1" />
<kerning first="84" second="38" amount="-1" />
<kerning first="79" second="74" amount="-1" />
<kerning first="81" second="84" amount="-1" />
<kerning first="81" second="74" amount="-1" />
<kerning first="79" second="84" amount="-1" />
<kerning first="81" second="65" amount="-1" />
<kerning first="81" second="46" amount="-1" />
<kerning first="80" second="74" amount="-1" />
<kerning first="80" second="65" amount="-1" />
<kerning first="80" second="46" amount="-1" />
</kernings>
</font>
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 KiB

@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{18CCC0B0-4FF9-4C23-BD46-483132E1D986}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>Demo.BitmapFonts</RootNamespace>
<AssemblyName>Demo.BitmapFonts</AssemblyName>
<MonoGamePlatform>DesktopGL</MonoGamePlatform>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Compile Include="Game1.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="MonoGame.Framework">
<HintPath>$(MonoGameInstallDirectory)\MonoGame\v3.0\Assemblies\$(MonoGamePlatform)\MonoGame.Framework.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Content Include="Icon.ico" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="Content\logo-square-512.png" />
<None Include="Content\montserrat-32_0.png" />
<None Include="Content\vignette.png" />
<None Include="Content\montserrat-32.fnt" />
</ItemGroup>
<ItemGroup>
<MonoGameContentReference Include="Content\Content.mgcb" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Icon.ico" />
</ItemGroup>
<ItemGroup>
<Content Include="OpenTK.dll.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\MonoGame.Extended\MonoGame.Extended.csproj">
<Project>{41724c52-3d50-45bb-81eb-3c8a247eafd1}</Project>
<Name>MonoGame.Extended</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Content.Builder.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
+76
View File
@@ -0,0 +1,76 @@
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using MonoGame.Extended;
using MonoGame.Extended.BitmapFonts;
using MonoGame.Extended.ViewportAdapters;
namespace Demo.BitmapFonts
{
public class Game1 : Game
{
private Texture2D _backgroundTexture;
private BitmapFont _bitmapFont;
private Camera2D _camera;
// ReSharper disable once NotAccessedField.Local
private GraphicsDeviceManager _graphicsDeviceManager;
private Vector2 _labelPosition = Vector2.Zero;
private string _labelText = "";
private SpriteBatch _spriteBatch;
private ViewportAdapter _viewportAdapter;
public Game1()
{
_graphicsDeviceManager = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
IsMouseVisible = true;
Window.AllowUserResizing = true;
Window.Position = Point.Zero;
}
protected override void LoadContent()
{
_viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480);
_camera = new Camera2D(_viewportAdapter);
_backgroundTexture = Content.Load<Texture2D>("vignette");
_bitmapFont = Content.Load<BitmapFont>("montserrat-32");
_spriteBatch = new SpriteBatch(GraphicsDevice);
}
protected override void UnloadContent()
{
}
protected override void Update(GameTime gameTime)
{
var keyboardState = Keyboard.GetState();
var mouseState = Mouse.GetState();
if (keyboardState.IsKeyDown(Keys.Escape))
{
Exit();
}
_labelText = $"{mouseState.X}, {mouseState.Y}";
var stringRectangle = _bitmapFont.GetStringRectangle(_labelText, Vector2.Zero);
_labelPosition = new Vector2(400 - stringRectangle.Width / 2, 440);
base.Update(gameTime);
}
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.Black);
_spriteBatch.Begin(transformMatrix: _camera.GetViewMatrix());
_spriteBatch.Draw(_backgroundTexture, _viewportAdapter.BoundingRectangle, Color.White);
_spriteBatch.DrawString(_bitmapFont, "MonoGame.Extended BitmapFont Sample", new Vector2(50, 10), Color.White);
_spriteBatch.DrawString(_bitmapFont, "Contrary to popular belief, Lorem Ipsum is not simply random text.\n\n" + "It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard " + "McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin " + "words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, " + "discovered the undoubtable source.", new Vector2(50, 50), new Color(Color.Black, 0.5f), 750);
_spriteBatch.DrawString(_bitmapFont, _labelText, _labelPosition, Color.Black);
_spriteBatch.End();
base.Draw(gameTime);
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<dllmap os="linux" dll="opengl32.dll" target="libGL.so.1" />
<dllmap os="linux" dll="glu32.dll" target="libGLU.so.1" />
<dllmap os="linux" dll="openal32.dll" target="libopenal.so.1" />
<dllmap os="linux" dll="alut.dll" target="libalut.so.0" />
<dllmap os="linux" dll="opencl.dll" target="libOpenCL.so" />
<dllmap os="linux" dll="libX11" target="libX11.so.6" />
<dllmap os="linux" dll="libXi" target="libXi.so.6" />
<dllmap os="linux" dll="SDL2.dll" target="libSDL2-2.0.so.0" />
<dllmap os="osx" dll="opengl32.dll" target="/System/Library/Frameworks/OpenGL.framework/OpenGL" />
<dllmap os="osx" dll="openal32.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="alut.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="libGLES.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv1_CM.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv2.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="opencl.dll" target="/System/Library/Frameworks/OpenCL.framework/OpenCL" />
<dllmap os="osx" dll="SDL2.dll" target="libSDL2.dylib" />
<!-- XQuartz compatibility (X11 on Mac) -->
<dllmap os="osx" dll="libGL.so.1" target="/usr/X11/lib/libGL.dylib" />
<dllmap os="osx" dll="libX11" target="/usr/X11/lib/libX11.dylib" />
<dllmap os="osx" dll="libXcursor.so.1" target="/usr/X11/lib/libXcursor.dylib" />
<dllmap os="osx" dll="libXi" target="/usr/X11/lib/libXi.dylib" />
<dllmap os="osx" dll="libXinerama" target="/usr/X11/lib/libXinerama.dylib" />
<dllmap os="osx" dll="libXrandr.so.2" target="/usr/X11/lib/libXrandr.dylib" />
</configuration>
+16
View File
@@ -0,0 +1,16 @@
using System;
namespace Demo.BitmapFonts
{
internal static class Program
{
[STAThread]
private static void Main(string[] args)
{
using (var game = new Game1())
{
game.Run();
}
}
}
}
@@ -0,0 +1,39 @@
using System.Reflection;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Demo.BitmapFonts")]
[assembly: AssemblyProduct("Demo.BitmapFonts")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("9b7203c6-a9a6-40e9-a798-893df7f10bf1")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.4.0.456")]
[assembly: AssemblyFileVersion("3.4.0.456")]
+3
View File
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup></configuration>
@@ -0,0 +1,120 @@
#----------------------------- Global Properties ----------------------------#
/outputDir:bin/$(Platform)
/intermediateDir:obj/$(Platform)
/platform:Windows
/config:
/profile:Reach
/compress:False
#-------------------------------- References --------------------------------#
/reference:../../../MonoGame.Extended.Content.Pipeline/bin/MonoGame.Extended.Content.Pipeline.dll
#---------------------------------- Content ---------------------------------#
#begin logo-square-128.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:logo-square-128.png
#begin hills.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:hills.png
#begin hills-1.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:hills-1.png
#begin hills-2.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:hills-2.png
#begin hills-3.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:hills-3.png
#begin hills-4.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:hills-4.png
#begin hills-clouds.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:hills-clouds.png
#begin hills-sky.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:hills-sky.png
#begin montserrat-32.fnt
/importer:BitmapFontImporter
/processor:BitmapFontProcessor
/build:montserrat-32.fnt
#begin montserrat-32_0.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:montserrat-32_0.png
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

@@ -0,0 +1,341 @@
<?xml version="1.0"?>
<font>
<info face="Montserrat" size="32" bold="1" italic="0" charset="" unicode="1" stretchH="100" smooth="1" aa="1" padding="0,0,0,0" spacing="1,1" outline="0"/>
<common lineHeight="32" base="27" scaleW="256" scaleH="256" pages="1" packed="0" alphaChnl="1" redChnl="0" greenChnl="0" blueChnl="0"/>
<pages>
<page id="0" file="montserrat-32_0.png" />
</pages>
<chars count="95">
<char id="32" x="88" y="44" width="3" height="1" xoffset="-1" yoffset="31" xadvance="6" page="0" chnl="15" />
<char id="33" x="250" y="21" width="5" height="19" xoffset="2" yoffset="8" xadvance="7" page="0" chnl="15" />
<char id="34" x="72" y="103" width="8" height="8" xoffset="2" yoffset="8" xadvance="12" page="0" chnl="15" />
<char id="35" x="0" y="49" width="19" height="19" xoffset="0" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="36" x="0" y="0" width="16" height="27" xoffset="0" yoffset="4" xadvance="17" page="0" chnl="15" />
<char id="37" x="118" y="24" width="25" height="19" xoffset="1" yoffset="8" xadvance="28" page="0" chnl="15" />
<char id="38" x="172" y="0" width="17" height="20" xoffset="1" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="39" x="251" y="61" width="4" height="8" xoffset="2" yoffset="8" xadvance="7" page="0" chnl="15" />
<char id="40" x="72" y="0" width="8" height="24" xoffset="2" yoffset="7" xadvance="9" page="0" chnl="15" />
<char id="41" x="62" y="0" width="9" height="24" xoffset="1" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="42" x="61" y="104" width="10" height="9" xoffset="0" yoffset="8" xadvance="10" page="0" chnl="15" />
<char id="43" x="13" y="105" width="13" height="13" xoffset="0" yoffset="12" xadvance="14" page="0" chnl="15" />
<char id="44" x="81" y="103" width="6" height="7" xoffset="0" yoffset="23" xadvance="7" page="0" chnl="15" />
<char id="45" x="130" y="100" width="7" height="3" xoffset="1" yoffset="17" xadvance="10" page="0" chnl="15" />
<char id="46" x="107" y="100" width="5" height="5" xoffset="1" yoffset="22" xadvance="7" page="0" chnl="15" />
<char id="47" x="29" y="0" width="13" height="25" xoffset="-1" yoffset="5" xadvance="10" page="0" chnl="15" />
<char id="48" x="170" y="42" width="17" height="19" xoffset="1" yoffset="8" xadvance="19" page="0" chnl="15" />
<char id="49" x="203" y="61" width="9" height="19" xoffset="0" yoffset="8" xadvance="11" page="0" chnl="15" />
<char id="50" x="130" y="64" width="15" height="19" xoffset="1" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="51" x="236" y="61" width="14" height="18" xoffset="0" yoffset="9" xadvance="15" page="0" chnl="15" />
<char id="52" x="17" y="69" width="16" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="53" x="114" y="64" width="15" height="19" xoffset="0" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="54" x="146" y="64" width="15" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="55" x="98" y="64" width="15" height="19" xoffset="1" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="56" x="82" y="66" width="15" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="57" x="66" y="67" width="15" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="58" x="27" y="105" width="5" height="12" xoffset="1" yoffset="15" xadvance="6" page="0" chnl="15" />
<char id="59" x="233" y="80" width="6" height="15" xoffset="0" yoffset="15" xadvance="7" page="0" chnl="15" />
<char id="60" x="240" y="80" width="12" height="14" xoffset="1" yoffset="11" xadvance="14" page="0" chnl="15" />
<char id="61" x="48" y="104" width="12" height="9" xoffset="1" yoffset="14" xadvance="14" page="0" chnl="15" />
<char id="62" x="0" y="108" width="12" height="14" xoffset="1" yoffset="11" xadvance="14" page="0" chnl="15" />
<char id="63" x="190" y="61" width="12" height="19" xoffset="0" yoffset="8" xadvance="13" page="0" chnl="15" />
<char id="64" x="141" y="0" width="24" height="22" xoffset="0" yoffset="9" xadvance="25" page="0" chnl="15" />
<char id="65" x="144" y="23" width="21" height="19" xoffset="0" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="66" x="219" y="61" width="16" height="18" xoffset="2" yoffset="9" xadvance="19" page="0" chnl="15" />
<char id="67" x="78" y="46" width="18" height="19" xoffset="1" yoffset="8" xadvance="19" page="0" chnl="15" />
<char id="68" x="59" y="47" width="18" height="19" xoffset="2" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="69" x="34" y="68" width="15" height="19" xoffset="2" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="70" x="241" y="41" width="14" height="19" xoffset="2" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="71" x="116" y="44" width="17" height="19" xoffset="1" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="72" x="134" y="44" width="17" height="19" xoffset="2" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="73" x="213" y="61" width="5" height="19" xoffset="2" yoffset="8" xadvance="9" page="0" chnl="15" />
<char id="74" x="176" y="62" width="13" height="19" xoffset="0" yoffset="8" xadvance="14" page="0" chnl="15" />
<char id="75" x="40" y="47" width="18" height="19" xoffset="2" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="76" x="162" y="63" width="13" height="19" xoffset="2" yoffset="8" xadvance="15" page="0" chnl="15" />
<char id="77" x="229" y="21" width="20" height="19" xoffset="2" yoffset="8" xadvance="25" page="0" chnl="15" />
<char id="78" x="206" y="41" width="17" height="19" xoffset="2" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="79" x="208" y="21" width="20" height="19" xoffset="1" yoffset="8" xadvance="22" page="0" chnl="15" />
<char id="80" x="50" y="67" width="15" height="19" xoffset="2" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="81" x="81" y="0" width="21" height="23" xoffset="1" yoffset="8" xadvance="22" page="0" chnl="15" />
<char id="82" x="188" y="41" width="17" height="19" xoffset="2" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="83" x="224" y="41" width="16" height="19" xoffset="0" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="84" x="0" y="69" width="16" height="19" xoffset="1" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="85" x="97" y="44" width="18" height="19" xoffset="1" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="86" x="187" y="21" width="20" height="19" xoffset="0" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="87" x="88" y="24" width="29" height="19" xoffset="0" yoffset="8" xadvance="29" page="0" chnl="15" />
<char id="88" x="166" y="22" width="20" height="19" xoffset="0" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="89" x="20" y="48" width="19" height="19" xoffset="0" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="90" x="152" y="43" width="17" height="19" xoffset="1" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="91" x="123" y="0" width="8" height="23" xoffset="2" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="92" x="43" y="0" width="13" height="25" xoffset="1" yoffset="5" xadvance="12" page="0" chnl="15" />
<char id="93" x="132" y="0" width="8" height="23" xoffset="2" yoffset="7" xadvance="12" page="0" chnl="15" />
<char id="94" x="33" y="105" width="14" height="11" xoffset="1" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="95" x="113" y="100" width="16" height="3" xoffset="0" yoffset="29" xadvance="16" page="0" chnl="15" />
<char id="96" x="99" y="100" width="7" height="5" xoffset="1" yoffset="7" xadvance="9" page="0" chnl="15" />
<char id="97" x="164" y="83" width="14" height="15" xoffset="1" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="98" x="0" y="28" width="16" height="20" xoffset="2" yoffset="7" xadvance="18" page="0" chnl="15" />
<char id="99" x="179" y="82" width="14" height="15" xoffset="0" yoffset="12" xadvance="15" page="0" chnl="15" />
<char id="100" x="208" y="0" width="17" height="20" xoffset="0" yoffset="7" xadvance="19" page="0" chnl="15" />
<char id="101" x="116" y="84" width="15" height="15" xoffset="0" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="102" x="243" y="0" width="12" height="20" xoffset="0" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="103" x="34" y="26" width="15" height="20" xoffset="1" yoffset="12" xadvance="17" page="0" chnl="15" />
<char id="104" x="66" y="25" width="15" height="20" xoffset="2" yoffset="7" xadvance="18" page="0" chnl="15" />
<char id="105" x="166" y="0" width="5" height="21" xoffset="2" yoffset="6" xadvance="8" page="0" chnl="15" />
<char id="106" x="17" y="0" width="11" height="26" xoffset="-3" yoffset="6" xadvance="9" page="0" chnl="15" />
<char id="107" x="50" y="26" width="15" height="20" xoffset="2" yoffset="7" xadvance="17" page="0" chnl="15" />
<char id="108" x="82" y="24" width="5" height="20" xoffset="2" yoffset="7" xadvance="9" page="0" chnl="15" />
<char id="109" x="39" y="88" width="24" height="15" xoffset="2" yoffset="12" xadvance="28" page="0" chnl="15" />
<char id="110" x="132" y="84" width="15" height="15" xoffset="2" yoffset="12" xadvance="18" page="0" chnl="15" />
<char id="111" x="64" y="87" width="17" height="15" xoffset="0" yoffset="12" xadvance="17" page="0" chnl="15" />
<char id="112" x="226" y="0" width="16" height="20" xoffset="2" yoffset="12" xadvance="18" page="0" chnl="15" />
<char id="113" x="190" y="0" width="17" height="20" xoffset="0" yoffset="12" xadvance="19" page="0" chnl="15" />
<char id="114" x="222" y="80" width="10" height="15" xoffset="2" yoffset="12" xadvance="12" page="0" chnl="15" />
<char id="115" x="208" y="81" width="13" height="15" xoffset="0" yoffset="12" xadvance="14" page="0" chnl="15" />
<char id="116" x="0" y="89" width="11" height="18" xoffset="0" yoffset="9" xadvance="12" page="0" chnl="15" />
<char id="117" x="148" y="84" width="15" height="15" xoffset="1" yoffset="12" xadvance="18" page="0" chnl="15" />
<char id="118" x="82" y="86" width="16" height="15" xoffset="0" yoffset="12" xadvance="15" page="0" chnl="15" />
<char id="119" x="12" y="89" width="26" height="15" xoffset="0" yoffset="12" xadvance="25" page="0" chnl="15" />
<char id="120" x="99" y="84" width="16" height="15" xoffset="0" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="121" x="17" y="27" width="16" height="20" xoffset="0" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="122" x="194" y="81" width="13" height="15" xoffset="1" yoffset="12" xadvance="15" page="0" chnl="15" />
<char id="123" x="113" y="0" width="9" height="23" xoffset="1" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="124" x="57" y="0" width="4" height="25" xoffset="2" yoffset="5" xadvance="8" page="0" chnl="15" />
<char id="125" x="103" y="0" width="9" height="23" xoffset="1" yoffset="7" xadvance="11" page="0" chnl="15" />
<char id="126" x="88" y="102" width="10" height="5" xoffset="2" yoffset="16" xadvance="14" page="0" chnl="15" />
</chars>
<kernings count="234">
<kerning first="39" second="46" amount="-1" />
<kerning first="122" second="89" amount="-1" />
<kerning first="122" second="87" amount="-1" />
<kerning first="122" second="86" amount="-1" />
<kerning first="121" second="65" amount="-1" />
<kerning first="120" second="113" amount="-1" />
<kerning first="120" second="111" amount="-1" />
<kerning first="120" second="103" amount="-1" />
<kerning first="120" second="101" amount="-1" />
<kerning first="120" second="100" amount="-1" />
<kerning first="120" second="99" amount="-1" />
<kerning first="120" second="97" amount="-1" />
<kerning first="120" second="89" amount="-1" />
<kerning first="120" second="87" amount="-1" />
<kerning first="120" second="86" amount="-1" />
<kerning first="120" second="85" amount="-1" />
<kerning first="119" second="65" amount="-1" />
<kerning first="119" second="46" amount="-1" />
<kerning first="118" second="65" amount="-1" />
<kerning first="118" second="46" amount="-1" />
<kerning first="116" second="89" amount="-1" />
<kerning first="116" second="87" amount="-1" />
<kerning first="116" second="86" amount="-1" />
<kerning first="115" second="89" amount="-1" />
<kerning first="45" second="74" amount="-1" />
<kerning first="47" second="57" amount="-1" />
<kerning first="115" second="87" amount="-1" />
<kerning first="115" second="86" amount="-1" />
<kerning first="114" second="121" amount="1" />
<kerning first="114" second="119" amount="1" />
<kerning first="114" second="118" amount="1" />
<kerning first="114" second="89" amount="-1" />
<kerning first="114" second="87" amount="-1" />
<kerning first="114" second="86" amount="-1" />
<kerning first="112" second="120" amount="-1" />
<kerning first="112" second="89" amount="-2" />
<kerning first="112" second="87" amount="-2" />
<kerning first="112" second="86" amount="-2" />
<kerning first="112" second="84" amount="-2" />
<kerning first="112" second="74" amount="-1" />
<kerning first="112" second="65" amount="-1" />
<kerning first="111" second="120" amount="-1" />
<kerning first="111" second="89" amount="-2" />
<kerning first="111" second="87" amount="-2" />
<kerning first="111" second="86" amount="-2" />
<kerning first="111" second="84" amount="-2" />
<kerning first="111" second="74" amount="-1" />
<kerning first="55" second="46" amount="-1" />
<kerning first="65" second="67" amount="-1" />
<kerning first="65" second="71" amount="-1" />
<kerning first="65" second="79" amount="-1" />
<kerning first="65" second="81" amount="-1" />
<kerning first="111" second="65" amount="-1" />
<kerning first="65" second="84" amount="-2" />
<kerning first="65" second="85" amount="-1" />
<kerning first="65" second="86" amount="-1" />
<kerning first="65" second="87" amount="-1" />
<kerning first="65" second="89" amount="-1" />
<kerning first="65" second="92" amount="-1" />
<kerning first="65" second="99" amount="-1" />
<kerning first="65" second="100" amount="-1" />
<kerning first="65" second="101" amount="-1" />
<kerning first="65" second="103" amount="-1" />
<kerning first="65" second="111" amount="-1" />
<kerning first="65" second="113" amount="-1" />
<kerning first="65" second="116" amount="-1" />
<kerning first="65" second="117" amount="-1" />
<kerning first="65" second="118" amount="-1" />
<kerning first="65" second="119" amount="-1" />
<kerning first="65" second="121" amount="-1" />
<kerning first="110" second="89" amount="-1" />
<kerning first="110" second="87" amount="-1" />
<kerning first="110" second="86" amount="-1" />
<kerning first="109" second="89" amount="-1" />
<kerning first="109" second="87" amount="-1" />
<kerning first="109" second="86" amount="-1" />
<kerning first="107" second="113" amount="-1" />
<kerning first="107" second="111" amount="-1" />
<kerning first="107" second="103" amount="-1" />
<kerning first="107" second="101" amount="-1" />
<kerning first="107" second="100" amount="-1" />
<kerning first="107" second="99" amount="-1" />
<kerning first="107" second="97" amount="-1" />
<kerning first="107" second="89" amount="-1" />
<kerning first="107" second="87" amount="-1" />
<kerning first="107" second="86" amount="-1" />
<kerning first="107" second="85" amount="-1" />
<kerning first="104" second="89" amount="-1" />
<kerning first="104" second="87" amount="-1" />
<kerning first="104" second="86" amount="-1" />
<kerning first="102" second="121" amount="1" />
<kerning first="102" second="119" amount="1" />
<kerning first="102" second="118" amount="1" />
<kerning first="102" second="108" amount="1" />
<kerning first="102" second="107" amount="1" />
<kerning first="102" second="104" amount="1" />
<kerning first="102" second="98" amount="1" />
<kerning first="102" second="97" amount="-1" />
<kerning first="102" second="89" amount="2" />
<kerning first="102" second="87" amount="2" />
<kerning first="102" second="86" amount="2" />
<kerning first="102" second="84" amount="2" />
<kerning first="102" second="82" amount="1" />
<kerning first="102" second="81" amount="1" />
<kerning first="102" second="80" amount="1" />
<kerning first="102" second="79" amount="1" />
<kerning first="102" second="78" amount="1" />
<kerning first="102" second="77" amount="1" />
<kerning first="102" second="76" amount="1" />
<kerning first="102" second="75" amount="1" />
<kerning first="102" second="73" amount="1" />
<kerning first="102" second="72" amount="1" />
<kerning first="102" second="71" amount="1" />
<kerning first="102" second="70" amount="1" />
<kerning first="102" second="69" amount="1" />
<kerning first="102" second="68" amount="1" />
<kerning first="102" second="67" amount="1" />
<kerning first="102" second="66" amount="1" />
<kerning first="101" second="125" amount="-1" />
<kerning first="101" second="120" amount="-1" />
<kerning first="101" second="89" amount="-2" />
<kerning first="101" second="87" amount="-2" />
<kerning first="101" second="86" amount="-2" />
<kerning first="101" second="84" amount="-2" />
<kerning first="101" second="74" amount="-1" />
<kerning first="101" second="65" amount="-1" />
<kerning first="99" second="89" amount="-1" />
<kerning first="99" second="87" amount="-1" />
<kerning first="99" second="86" amount="-1" />
<kerning first="98" second="120" amount="-1" />
<kerning first="98" second="89" amount="-2" />
<kerning first="98" second="87" amount="-2" />
<kerning first="98" second="86" amount="-2" />
<kerning first="98" second="84" amount="-2" />
<kerning first="98" second="74" amount="-1" />
<kerning first="98" second="65" amount="-1" />
<kerning first="97" second="89" amount="-1" />
<kerning first="97" second="87" amount="-1" />
<kerning first="97" second="86" amount="-1" />
<kerning first="89" second="122" amount="-1" />
<kerning first="89" second="120" amount="-1" />
<kerning first="89" second="117" amount="-1" />
<kerning first="89" second="116" amount="-1" />
<kerning first="89" second="115" amount="-1" />
<kerning first="89" second="114" amount="-1" />
<kerning first="68" second="46" amount="-1" />
<kerning first="68" second="65" amount="-1" />
<kerning first="89" second="113" amount="-2" />
<kerning first="89" second="111" amount="-2" />
<kerning first="68" second="74" amount="-1" />
<kerning first="89" second="110" amount="-1" />
<kerning first="89" second="109" amount="-1" />
<kerning first="68" second="84" amount="-1" />
<kerning first="89" second="103" amount="-2" />
<kerning first="89" second="101" amount="-2" />
<kerning first="89" second="100" amount="-2" />
<kerning first="89" second="99" amount="-2" />
<kerning first="89" second="97" amount="-1" />
<kerning first="89" second="65" amount="-1" />
<kerning first="89" second="38" amount="-1" />
<kerning first="87" second="122" amount="-1" />
<kerning first="87" second="120" amount="-1" />
<kerning first="87" second="117" amount="-1" />
<kerning first="87" second="116" amount="-1" />
<kerning first="87" second="115" amount="-1" />
<kerning first="87" second="114" amount="-1" />
<kerning first="87" second="113" amount="-2" />
<kerning first="87" second="111" amount="-2" />
<kerning first="87" second="110" amount="-1" />
<kerning first="87" second="109" amount="-1" />
<kerning first="87" second="103" amount="-2" />
<kerning first="87" second="101" amount="-2" />
<kerning first="87" second="100" amount="-2" />
<kerning first="87" second="99" amount="-2" />
<kerning first="87" second="97" amount="-1" />
<kerning first="87" second="65" amount="-1" />
<kerning first="86" second="122" amount="-1" />
<kerning first="86" second="120" amount="-1" />
<kerning first="86" second="117" amount="-1" />
<kerning first="70" second="46" amount="-1" />
<kerning first="70" second="65" amount="-1" />
<kerning first="86" second="116" amount="-1" />
<kerning first="86" second="115" amount="-1" />
<kerning first="86" second="114" amount="-1" />
<kerning first="86" second="113" amount="-2" />
<kerning first="86" second="111" amount="-2" />
<kerning first="86" second="110" amount="-1" />
<kerning first="86" second="109" amount="-1" />
<kerning first="86" second="103" amount="-2" />
<kerning first="86" second="101" amount="-2" />
<kerning first="74" second="65" amount="-1" />
<kerning first="86" second="100" amount="-2" />
<kerning first="74" second="120" amount="-1" />
<kerning first="86" second="99" amount="-2" />
<kerning first="86" second="97" amount="-1" />
<kerning first="86" second="65" amount="-1" />
<kerning first="86" second="46" amount="-1" />
<kerning first="86" second="38" amount="-1" />
<kerning first="85" second="120" amount="-1" />
<kerning first="85" second="65" amount="-1" />
<kerning first="75" second="67" amount="-1" />
<kerning first="75" second="71" amount="-1" />
<kerning first="75" second="79" amount="-1" />
<kerning first="75" second="81" amount="-1" />
<kerning first="85" second="46" amount="-1" />
<kerning first="84" second="113" amount="-2" />
<kerning first="84" second="111" amount="-2" />
<kerning first="84" second="108" amount="-1" />
<kerning first="84" second="107" amount="-1" />
<kerning first="84" second="104" amount="-1" />
<kerning first="84" second="103" amount="-2" />
<kerning first="84" second="101" amount="-2" />
<kerning first="84" second="100" amount="-2" />
<kerning first="76" second="92" amount="-1" />
<kerning first="84" second="99" amount="-2" />
<kerning first="84" second="98" amount="-1" />
<kerning first="84" second="81" amount="-1" />
<kerning first="84" second="79" amount="-1" />
<kerning first="84" second="71" amount="-1" />
<kerning first="84" second="67" amount="-1" />
<kerning first="84" second="65" amount="-2" />
<kerning first="79" second="46" amount="-1" />
<kerning first="79" second="65" amount="-1" />
<kerning first="84" second="46" amount="-1" />
<kerning first="84" second="38" amount="-1" />
<kerning first="79" second="74" amount="-1" />
<kerning first="81" second="84" amount="-1" />
<kerning first="81" second="74" amount="-1" />
<kerning first="79" second="84" amount="-1" />
<kerning first="81" second="65" amount="-1" />
<kerning first="81" second="46" amount="-1" />
<kerning first="80" second="74" amount="-1" />
<kerning first="80" second="65" amount="-1" />
<kerning first="80" second="46" amount="-1" />
</kernings>
</font>
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{01020F15-6905-4D0E-8874-3259DFE7CEB7}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Demo.Camera</RootNamespace>
<AssemblyName>Demo.Camera</AssemblyName>
<MonoGamePlatform>DesktopGL</MonoGamePlatform>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Compile Include="Game1.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="MonoGame.Framework">
<HintPath>$(MonoGameInstallDirectory)\MonoGame\v3.0\Assemblies\$(MonoGamePlatform)\MonoGame.Framework.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Content Include="Icon.ico" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="Content\hills-1.png" />
<None Include="Content\hills-2.png" />
<None Include="Content\hills-3.png" />
<None Include="Content\hills-4.png" />
<None Include="Content\hills-clouds.png" />
<None Include="Content\hills-sky.png" />
<None Include="Content\hills.png" />
<None Include="Content\logo-square-128.png" />
<None Include="Content\montserrat-32_0.png" />
<None Include="Content\montserrat-32.fnt" />
</ItemGroup>
<ItemGroup>
<MonoGameContentReference Include="Content\Content.mgcb" />
</ItemGroup>
<ItemGroup>
<Content Include="OpenTK.dll.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\MonoGame.Extended\MonoGame.Extended.csproj">
<Project>{41724c52-3d50-45bb-81eb-3c8a247eafd1}</Project>
<Name>MonoGame.Extended</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Content.Builder.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
+176
View File
@@ -0,0 +1,176 @@
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using MonoGame.Extended;
using MonoGame.Extended.BitmapFonts;
using MonoGame.Extended.ViewportAdapters;
namespace Demo.Camera
{
public class Game1 : Game
{
private const float _cloudsRepeatWidth = 800;
private Texture2D _backgroundClouds;
private Texture2D[] _backgroundHills;
private Texture2D _backgroundSky;
private BitmapFont _bitmapFont;
private Camera2D _camera;
private float _cloudsOffset;
// ReSharper disable once NotAccessedField.Local
private GraphicsDeviceManager _graphicsDeviceManager;
private SpriteBatch _spriteBatch;
private Vector2 _worldPosition;
public Game1()
{
_graphicsDeviceManager = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
IsMouseVisible = true;
Window.AllowUserResizing = true;
Window.Position = Point.Zero;
}
protected override void Initialize()
{
base.Initialize();
var viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480);
_camera = new Camera2D(viewportAdapter);
}
protected override void LoadContent()
{
_bitmapFont = Content.Load<BitmapFont>("montserrat-32");
_backgroundSky = Content.Load<Texture2D>("hills-sky");
_backgroundClouds = Content.Load<Texture2D>("hills-clouds");
_backgroundHills = new Texture2D[4];
_backgroundHills[0] = Content.Load<Texture2D>("hills-1");
_backgroundHills[1] = Content.Load<Texture2D>("hills-2");
_backgroundHills[2] = Content.Load<Texture2D>("hills-3");
_backgroundHills[3] = Content.Load<Texture2D>("hills-4");
_spriteBatch = new SpriteBatch(GraphicsDevice);
}
protected override void UnloadContent()
{
}
protected override void Update(GameTime gameTime)
{
var deltaTime = (float)gameTime.ElapsedGameTime.TotalSeconds;
_cloudsOffset -= deltaTime * 5;
if (_cloudsOffset < -_cloudsRepeatWidth)
{
_cloudsOffset = _cloudsRepeatWidth;
}
var keyboardState = Keyboard.GetState();
var mouseState = Mouse.GetState();
if (keyboardState.IsKeyDown(Keys.Escape))
{
Exit();
}
// the camera properties of the camera can be conrolled to move, zoom and rotate
const float movementSpeed = 200;
const float rotationSpeed = 0.5f;
const float zoomSpeed = 0.5f;
if (keyboardState.IsKeyDown(Keys.W) || keyboardState.IsKeyDown(Keys.Up))
{
_camera.Move(new Vector2(0, -movementSpeed) * deltaTime);
}
if (keyboardState.IsKeyDown(Keys.A) || keyboardState.IsKeyDown(Keys.Left))
{
_camera.Move(new Vector2(-movementSpeed, 0) * deltaTime);
}
if (keyboardState.IsKeyDown(Keys.S) || keyboardState.IsKeyDown(Keys.Down))
{
_camera.Move(new Vector2(0, movementSpeed) * deltaTime);
}
if (keyboardState.IsKeyDown(Keys.D) || keyboardState.IsKeyDown(Keys.Right))
{
_camera.Move(new Vector2(movementSpeed, 0) * deltaTime);
}
if (keyboardState.IsKeyDown(Keys.E))
{
_camera.Rotation += rotationSpeed * deltaTime;
}
if (keyboardState.IsKeyDown(Keys.Q))
{
_camera.Rotation -= rotationSpeed * deltaTime;
}
if (keyboardState.IsKeyDown(Keys.R))
{
_camera.ZoomIn(zoomSpeed * deltaTime);
}
if (keyboardState.IsKeyDown(Keys.F))
{
_camera.ZoomOut(zoomSpeed * deltaTime);
}
_worldPosition = _camera.ScreenToWorld(new Vector2(mouseState.X, mouseState.Y));
base.Update(gameTime);
}
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
// the camera produces a view matrix that can be applied to any sprite batch
var transformMatrix = _camera.GetViewMatrix(Vector2.Zero);
_spriteBatch.Begin(transformMatrix: transformMatrix);
_spriteBatch.Draw(_backgroundSky, Vector2.Zero, Color.White);
_spriteBatch.Draw(_backgroundClouds, new Vector2(-_cloudsOffset, 0), Color.White);
_spriteBatch.Draw(_backgroundClouds, new Vector2(_cloudsOffset, 10), Color.White);
_spriteBatch.End();
for (var layerIndex = 0; layerIndex < 4; layerIndex++)
{
// different layers can have a parallax factor applied for a nice depth effect
var parallaxFactor = Vector2.One * (0.25f * layerIndex);
var viewMatrix = _camera.GetViewMatrix(parallaxFactor);
_spriteBatch.Begin(transformMatrix: viewMatrix);
for (var repeatIndex = -3; repeatIndex <= 3; repeatIndex++)
{
var texture = _backgroundHills[layerIndex];
var position = new Vector2(repeatIndex * texture.Width, 0);
_spriteBatch.Draw(texture, position, Color.White);
}
_spriteBatch.End();
}
// not all sprite batches need to be affected by the camera
var rectangle = _camera.GetBoundingRectangle();
var stringBuilder = new StringBuilder();
stringBuilder.AppendLine($"WASD: Move [{_camera.Position.X:0}, {_camera.Position.Y:0}]");
stringBuilder.AppendLine($"EQ: Rotate [{MathHelper.ToDegrees(_camera.Rotation):0.00}]");
stringBuilder.AppendLine($"RF: Zoom [{_camera.Zoom:0.00}]");
stringBuilder.AppendLine($"World Pos: [{_worldPosition.X:0}, {_worldPosition.Y:0}]");
stringBuilder.AppendLine($"Bounds: [{rectangle.X:0}, {rectangle.Y:0}, {rectangle.Width:0}, {rectangle.Height:0}]");
_spriteBatch.Begin(blendState: BlendState.AlphaBlend);
_spriteBatch.DrawString(_bitmapFont, stringBuilder.ToString(), new Vector2(5, 5), Color.DarkBlue);
_spriteBatch.End();
base.Draw(gameTime);
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<dllmap os="linux" dll="opengl32.dll" target="libGL.so.1" />
<dllmap os="linux" dll="glu32.dll" target="libGLU.so.1" />
<dllmap os="linux" dll="openal32.dll" target="libopenal.so.1" />
<dllmap os="linux" dll="alut.dll" target="libalut.so.0" />
<dllmap os="linux" dll="opencl.dll" target="libOpenCL.so" />
<dllmap os="linux" dll="libX11" target="libX11.so.6" />
<dllmap os="linux" dll="libXi" target="libXi.so.6" />
<dllmap os="linux" dll="SDL2.dll" target="libSDL2-2.0.so.0" />
<dllmap os="osx" dll="opengl32.dll" target="/System/Library/Frameworks/OpenGL.framework/OpenGL" />
<dllmap os="osx" dll="openal32.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="alut.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="libGLES.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv1_CM.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv2.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="opencl.dll" target="/System/Library/Frameworks/OpenCL.framework/OpenCL" />
<dllmap os="osx" dll="SDL2.dll" target="libSDL2.dylib" />
<!-- XQuartz compatibility (X11 on Mac) -->
<dllmap os="osx" dll="libGL.so.1" target="/usr/X11/lib/libGL.dylib" />
<dllmap os="osx" dll="libX11" target="/usr/X11/lib/libX11.dylib" />
<dllmap os="osx" dll="libXcursor.so.1" target="/usr/X11/lib/libXcursor.dylib" />
<dllmap os="osx" dll="libXi" target="/usr/X11/lib/libXi.dylib" />
<dllmap os="osx" dll="libXinerama" target="/usr/X11/lib/libXinerama.dylib" />
<dllmap os="osx" dll="libXrandr.so.2" target="/usr/X11/lib/libXrandr.dylib" />
</configuration>
+16
View File
@@ -0,0 +1,16 @@
using System;
namespace Demo.Camera
{
internal static class Program
{
[STAThread]
private static void Main(string[] args)
{
using (var game = new Game1())
{
game.Run();
}
}
}
}
@@ -0,0 +1,39 @@
using System.Reflection;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Demo.Camera")]
[assembly: AssemblyProduct("Demo.Camera")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("9b7203c6-a9a6-40e9-a798-893df7f10bf1")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.4.0.456")]
[assembly: AssemblyFileVersion("3.4.0.456")]
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
@@ -0,0 +1,54 @@
#----------------------------- Global Properties ----------------------------#
/outputDir:bin/$(Platform)
/intermediateDir:obj/$(Platform)
/platform:Windows
/config:
/profile:Reach
/compress:False
#-------------------------------- References --------------------------------#
/reference:../../../MonoGame.Extended.Content.Pipeline/bin/MonoGame.Extended.Content.Pipeline.dll
#---------------------------------- Content ---------------------------------#
#begin logo-square-128.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:logo-square-128.png
#begin montserrat-32.fnt
/importer:BitmapFontImporter
/processor:BitmapFontProcessor
/build:montserrat-32.fnt
#begin montserrat-32_0.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:montserrat-32_0.png
#begin vignette.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:vignette.png
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

@@ -0,0 +1,341 @@
<?xml version="1.0"?>
<font>
<info face="Montserrat" size="32" bold="1" italic="0" charset="" unicode="1" stretchH="100" smooth="1" aa="1" padding="0,0,0,0" spacing="1,1" outline="0"/>
<common lineHeight="32" base="27" scaleW="256" scaleH="256" pages="1" packed="0" alphaChnl="1" redChnl="0" greenChnl="0" blueChnl="0"/>
<pages>
<page id="0" file="montserrat-32_0.png" />
</pages>
<chars count="95">
<char id="32" x="88" y="44" width="3" height="1" xoffset="-1" yoffset="31" xadvance="6" page="0" chnl="15" />
<char id="33" x="250" y="21" width="5" height="19" xoffset="2" yoffset="8" xadvance="7" page="0" chnl="15" />
<char id="34" x="72" y="103" width="8" height="8" xoffset="2" yoffset="8" xadvance="12" page="0" chnl="15" />
<char id="35" x="0" y="49" width="19" height="19" xoffset="0" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="36" x="0" y="0" width="16" height="27" xoffset="0" yoffset="4" xadvance="17" page="0" chnl="15" />
<char id="37" x="118" y="24" width="25" height="19" xoffset="1" yoffset="8" xadvance="28" page="0" chnl="15" />
<char id="38" x="172" y="0" width="17" height="20" xoffset="1" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="39" x="251" y="61" width="4" height="8" xoffset="2" yoffset="8" xadvance="7" page="0" chnl="15" />
<char id="40" x="72" y="0" width="8" height="24" xoffset="2" yoffset="7" xadvance="9" page="0" chnl="15" />
<char id="41" x="62" y="0" width="9" height="24" xoffset="1" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="42" x="61" y="104" width="10" height="9" xoffset="0" yoffset="8" xadvance="10" page="0" chnl="15" />
<char id="43" x="13" y="105" width="13" height="13" xoffset="0" yoffset="12" xadvance="14" page="0" chnl="15" />
<char id="44" x="81" y="103" width="6" height="7" xoffset="0" yoffset="23" xadvance="7" page="0" chnl="15" />
<char id="45" x="130" y="100" width="7" height="3" xoffset="1" yoffset="17" xadvance="10" page="0" chnl="15" />
<char id="46" x="107" y="100" width="5" height="5" xoffset="1" yoffset="22" xadvance="7" page="0" chnl="15" />
<char id="47" x="29" y="0" width="13" height="25" xoffset="-1" yoffset="5" xadvance="10" page="0" chnl="15" />
<char id="48" x="170" y="42" width="17" height="19" xoffset="1" yoffset="8" xadvance="19" page="0" chnl="15" />
<char id="49" x="203" y="61" width="9" height="19" xoffset="0" yoffset="8" xadvance="11" page="0" chnl="15" />
<char id="50" x="130" y="64" width="15" height="19" xoffset="1" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="51" x="236" y="61" width="14" height="18" xoffset="0" yoffset="9" xadvance="15" page="0" chnl="15" />
<char id="52" x="17" y="69" width="16" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="53" x="114" y="64" width="15" height="19" xoffset="0" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="54" x="146" y="64" width="15" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="55" x="98" y="64" width="15" height="19" xoffset="1" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="56" x="82" y="66" width="15" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="57" x="66" y="67" width="15" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="58" x="27" y="105" width="5" height="12" xoffset="1" yoffset="15" xadvance="6" page="0" chnl="15" />
<char id="59" x="233" y="80" width="6" height="15" xoffset="0" yoffset="15" xadvance="7" page="0" chnl="15" />
<char id="60" x="240" y="80" width="12" height="14" xoffset="1" yoffset="11" xadvance="14" page="0" chnl="15" />
<char id="61" x="48" y="104" width="12" height="9" xoffset="1" yoffset="14" xadvance="14" page="0" chnl="15" />
<char id="62" x="0" y="108" width="12" height="14" xoffset="1" yoffset="11" xadvance="14" page="0" chnl="15" />
<char id="63" x="190" y="61" width="12" height="19" xoffset="0" yoffset="8" xadvance="13" page="0" chnl="15" />
<char id="64" x="141" y="0" width="24" height="22" xoffset="0" yoffset="9" xadvance="25" page="0" chnl="15" />
<char id="65" x="144" y="23" width="21" height="19" xoffset="0" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="66" x="219" y="61" width="16" height="18" xoffset="2" yoffset="9" xadvance="19" page="0" chnl="15" />
<char id="67" x="78" y="46" width="18" height="19" xoffset="1" yoffset="8" xadvance="19" page="0" chnl="15" />
<char id="68" x="59" y="47" width="18" height="19" xoffset="2" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="69" x="34" y="68" width="15" height="19" xoffset="2" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="70" x="241" y="41" width="14" height="19" xoffset="2" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="71" x="116" y="44" width="17" height="19" xoffset="1" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="72" x="134" y="44" width="17" height="19" xoffset="2" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="73" x="213" y="61" width="5" height="19" xoffset="2" yoffset="8" xadvance="9" page="0" chnl="15" />
<char id="74" x="176" y="62" width="13" height="19" xoffset="0" yoffset="8" xadvance="14" page="0" chnl="15" />
<char id="75" x="40" y="47" width="18" height="19" xoffset="2" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="76" x="162" y="63" width="13" height="19" xoffset="2" yoffset="8" xadvance="15" page="0" chnl="15" />
<char id="77" x="229" y="21" width="20" height="19" xoffset="2" yoffset="8" xadvance="25" page="0" chnl="15" />
<char id="78" x="206" y="41" width="17" height="19" xoffset="2" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="79" x="208" y="21" width="20" height="19" xoffset="1" yoffset="8" xadvance="22" page="0" chnl="15" />
<char id="80" x="50" y="67" width="15" height="19" xoffset="2" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="81" x="81" y="0" width="21" height="23" xoffset="1" yoffset="8" xadvance="22" page="0" chnl="15" />
<char id="82" x="188" y="41" width="17" height="19" xoffset="2" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="83" x="224" y="41" width="16" height="19" xoffset="0" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="84" x="0" y="69" width="16" height="19" xoffset="1" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="85" x="97" y="44" width="18" height="19" xoffset="1" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="86" x="187" y="21" width="20" height="19" xoffset="0" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="87" x="88" y="24" width="29" height="19" xoffset="0" yoffset="8" xadvance="29" page="0" chnl="15" />
<char id="88" x="166" y="22" width="20" height="19" xoffset="0" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="89" x="20" y="48" width="19" height="19" xoffset="0" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="90" x="152" y="43" width="17" height="19" xoffset="1" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="91" x="123" y="0" width="8" height="23" xoffset="2" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="92" x="43" y="0" width="13" height="25" xoffset="1" yoffset="5" xadvance="12" page="0" chnl="15" />
<char id="93" x="132" y="0" width="8" height="23" xoffset="2" yoffset="7" xadvance="12" page="0" chnl="15" />
<char id="94" x="33" y="105" width="14" height="11" xoffset="1" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="95" x="113" y="100" width="16" height="3" xoffset="0" yoffset="29" xadvance="16" page="0" chnl="15" />
<char id="96" x="99" y="100" width="7" height="5" xoffset="1" yoffset="7" xadvance="9" page="0" chnl="15" />
<char id="97" x="164" y="83" width="14" height="15" xoffset="1" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="98" x="0" y="28" width="16" height="20" xoffset="2" yoffset="7" xadvance="18" page="0" chnl="15" />
<char id="99" x="179" y="82" width="14" height="15" xoffset="0" yoffset="12" xadvance="15" page="0" chnl="15" />
<char id="100" x="208" y="0" width="17" height="20" xoffset="0" yoffset="7" xadvance="19" page="0" chnl="15" />
<char id="101" x="116" y="84" width="15" height="15" xoffset="0" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="102" x="243" y="0" width="12" height="20" xoffset="0" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="103" x="34" y="26" width="15" height="20" xoffset="1" yoffset="12" xadvance="17" page="0" chnl="15" />
<char id="104" x="66" y="25" width="15" height="20" xoffset="2" yoffset="7" xadvance="18" page="0" chnl="15" />
<char id="105" x="166" y="0" width="5" height="21" xoffset="2" yoffset="6" xadvance="8" page="0" chnl="15" />
<char id="106" x="17" y="0" width="11" height="26" xoffset="-3" yoffset="6" xadvance="9" page="0" chnl="15" />
<char id="107" x="50" y="26" width="15" height="20" xoffset="2" yoffset="7" xadvance="17" page="0" chnl="15" />
<char id="108" x="82" y="24" width="5" height="20" xoffset="2" yoffset="7" xadvance="9" page="0" chnl="15" />
<char id="109" x="39" y="88" width="24" height="15" xoffset="2" yoffset="12" xadvance="28" page="0" chnl="15" />
<char id="110" x="132" y="84" width="15" height="15" xoffset="2" yoffset="12" xadvance="18" page="0" chnl="15" />
<char id="111" x="64" y="87" width="17" height="15" xoffset="0" yoffset="12" xadvance="17" page="0" chnl="15" />
<char id="112" x="226" y="0" width="16" height="20" xoffset="2" yoffset="12" xadvance="18" page="0" chnl="15" />
<char id="113" x="190" y="0" width="17" height="20" xoffset="0" yoffset="12" xadvance="19" page="0" chnl="15" />
<char id="114" x="222" y="80" width="10" height="15" xoffset="2" yoffset="12" xadvance="12" page="0" chnl="15" />
<char id="115" x="208" y="81" width="13" height="15" xoffset="0" yoffset="12" xadvance="14" page="0" chnl="15" />
<char id="116" x="0" y="89" width="11" height="18" xoffset="0" yoffset="9" xadvance="12" page="0" chnl="15" />
<char id="117" x="148" y="84" width="15" height="15" xoffset="1" yoffset="12" xadvance="18" page="0" chnl="15" />
<char id="118" x="82" y="86" width="16" height="15" xoffset="0" yoffset="12" xadvance="15" page="0" chnl="15" />
<char id="119" x="12" y="89" width="26" height="15" xoffset="0" yoffset="12" xadvance="25" page="0" chnl="15" />
<char id="120" x="99" y="84" width="16" height="15" xoffset="0" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="121" x="17" y="27" width="16" height="20" xoffset="0" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="122" x="194" y="81" width="13" height="15" xoffset="1" yoffset="12" xadvance="15" page="0" chnl="15" />
<char id="123" x="113" y="0" width="9" height="23" xoffset="1" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="124" x="57" y="0" width="4" height="25" xoffset="2" yoffset="5" xadvance="8" page="0" chnl="15" />
<char id="125" x="103" y="0" width="9" height="23" xoffset="1" yoffset="7" xadvance="11" page="0" chnl="15" />
<char id="126" x="88" y="102" width="10" height="5" xoffset="2" yoffset="16" xadvance="14" page="0" chnl="15" />
</chars>
<kernings count="234">
<kerning first="39" second="46" amount="-1" />
<kerning first="122" second="89" amount="-1" />
<kerning first="122" second="87" amount="-1" />
<kerning first="122" second="86" amount="-1" />
<kerning first="121" second="65" amount="-1" />
<kerning first="120" second="113" amount="-1" />
<kerning first="120" second="111" amount="-1" />
<kerning first="120" second="103" amount="-1" />
<kerning first="120" second="101" amount="-1" />
<kerning first="120" second="100" amount="-1" />
<kerning first="120" second="99" amount="-1" />
<kerning first="120" second="97" amount="-1" />
<kerning first="120" second="89" amount="-1" />
<kerning first="120" second="87" amount="-1" />
<kerning first="120" second="86" amount="-1" />
<kerning first="120" second="85" amount="-1" />
<kerning first="119" second="65" amount="-1" />
<kerning first="119" second="46" amount="-1" />
<kerning first="118" second="65" amount="-1" />
<kerning first="118" second="46" amount="-1" />
<kerning first="116" second="89" amount="-1" />
<kerning first="116" second="87" amount="-1" />
<kerning first="116" second="86" amount="-1" />
<kerning first="115" second="89" amount="-1" />
<kerning first="45" second="74" amount="-1" />
<kerning first="47" second="57" amount="-1" />
<kerning first="115" second="87" amount="-1" />
<kerning first="115" second="86" amount="-1" />
<kerning first="114" second="121" amount="1" />
<kerning first="114" second="119" amount="1" />
<kerning first="114" second="118" amount="1" />
<kerning first="114" second="89" amount="-1" />
<kerning first="114" second="87" amount="-1" />
<kerning first="114" second="86" amount="-1" />
<kerning first="112" second="120" amount="-1" />
<kerning first="112" second="89" amount="-2" />
<kerning first="112" second="87" amount="-2" />
<kerning first="112" second="86" amount="-2" />
<kerning first="112" second="84" amount="-2" />
<kerning first="112" second="74" amount="-1" />
<kerning first="112" second="65" amount="-1" />
<kerning first="111" second="120" amount="-1" />
<kerning first="111" second="89" amount="-2" />
<kerning first="111" second="87" amount="-2" />
<kerning first="111" second="86" amount="-2" />
<kerning first="111" second="84" amount="-2" />
<kerning first="111" second="74" amount="-1" />
<kerning first="55" second="46" amount="-1" />
<kerning first="65" second="67" amount="-1" />
<kerning first="65" second="71" amount="-1" />
<kerning first="65" second="79" amount="-1" />
<kerning first="65" second="81" amount="-1" />
<kerning first="111" second="65" amount="-1" />
<kerning first="65" second="84" amount="-2" />
<kerning first="65" second="85" amount="-1" />
<kerning first="65" second="86" amount="-1" />
<kerning first="65" second="87" amount="-1" />
<kerning first="65" second="89" amount="-1" />
<kerning first="65" second="92" amount="-1" />
<kerning first="65" second="99" amount="-1" />
<kerning first="65" second="100" amount="-1" />
<kerning first="65" second="101" amount="-1" />
<kerning first="65" second="103" amount="-1" />
<kerning first="65" second="111" amount="-1" />
<kerning first="65" second="113" amount="-1" />
<kerning first="65" second="116" amount="-1" />
<kerning first="65" second="117" amount="-1" />
<kerning first="65" second="118" amount="-1" />
<kerning first="65" second="119" amount="-1" />
<kerning first="65" second="121" amount="-1" />
<kerning first="110" second="89" amount="-1" />
<kerning first="110" second="87" amount="-1" />
<kerning first="110" second="86" amount="-1" />
<kerning first="109" second="89" amount="-1" />
<kerning first="109" second="87" amount="-1" />
<kerning first="109" second="86" amount="-1" />
<kerning first="107" second="113" amount="-1" />
<kerning first="107" second="111" amount="-1" />
<kerning first="107" second="103" amount="-1" />
<kerning first="107" second="101" amount="-1" />
<kerning first="107" second="100" amount="-1" />
<kerning first="107" second="99" amount="-1" />
<kerning first="107" second="97" amount="-1" />
<kerning first="107" second="89" amount="-1" />
<kerning first="107" second="87" amount="-1" />
<kerning first="107" second="86" amount="-1" />
<kerning first="107" second="85" amount="-1" />
<kerning first="104" second="89" amount="-1" />
<kerning first="104" second="87" amount="-1" />
<kerning first="104" second="86" amount="-1" />
<kerning first="102" second="121" amount="1" />
<kerning first="102" second="119" amount="1" />
<kerning first="102" second="118" amount="1" />
<kerning first="102" second="108" amount="1" />
<kerning first="102" second="107" amount="1" />
<kerning first="102" second="104" amount="1" />
<kerning first="102" second="98" amount="1" />
<kerning first="102" second="97" amount="-1" />
<kerning first="102" second="89" amount="2" />
<kerning first="102" second="87" amount="2" />
<kerning first="102" second="86" amount="2" />
<kerning first="102" second="84" amount="2" />
<kerning first="102" second="82" amount="1" />
<kerning first="102" second="81" amount="1" />
<kerning first="102" second="80" amount="1" />
<kerning first="102" second="79" amount="1" />
<kerning first="102" second="78" amount="1" />
<kerning first="102" second="77" amount="1" />
<kerning first="102" second="76" amount="1" />
<kerning first="102" second="75" amount="1" />
<kerning first="102" second="73" amount="1" />
<kerning first="102" second="72" amount="1" />
<kerning first="102" second="71" amount="1" />
<kerning first="102" second="70" amount="1" />
<kerning first="102" second="69" amount="1" />
<kerning first="102" second="68" amount="1" />
<kerning first="102" second="67" amount="1" />
<kerning first="102" second="66" amount="1" />
<kerning first="101" second="125" amount="-1" />
<kerning first="101" second="120" amount="-1" />
<kerning first="101" second="89" amount="-2" />
<kerning first="101" second="87" amount="-2" />
<kerning first="101" second="86" amount="-2" />
<kerning first="101" second="84" amount="-2" />
<kerning first="101" second="74" amount="-1" />
<kerning first="101" second="65" amount="-1" />
<kerning first="99" second="89" amount="-1" />
<kerning first="99" second="87" amount="-1" />
<kerning first="99" second="86" amount="-1" />
<kerning first="98" second="120" amount="-1" />
<kerning first="98" second="89" amount="-2" />
<kerning first="98" second="87" amount="-2" />
<kerning first="98" second="86" amount="-2" />
<kerning first="98" second="84" amount="-2" />
<kerning first="98" second="74" amount="-1" />
<kerning first="98" second="65" amount="-1" />
<kerning first="97" second="89" amount="-1" />
<kerning first="97" second="87" amount="-1" />
<kerning first="97" second="86" amount="-1" />
<kerning first="89" second="122" amount="-1" />
<kerning first="89" second="120" amount="-1" />
<kerning first="89" second="117" amount="-1" />
<kerning first="89" second="116" amount="-1" />
<kerning first="89" second="115" amount="-1" />
<kerning first="89" second="114" amount="-1" />
<kerning first="68" second="46" amount="-1" />
<kerning first="68" second="65" amount="-1" />
<kerning first="89" second="113" amount="-2" />
<kerning first="89" second="111" amount="-2" />
<kerning first="68" second="74" amount="-1" />
<kerning first="89" second="110" amount="-1" />
<kerning first="89" second="109" amount="-1" />
<kerning first="68" second="84" amount="-1" />
<kerning first="89" second="103" amount="-2" />
<kerning first="89" second="101" amount="-2" />
<kerning first="89" second="100" amount="-2" />
<kerning first="89" second="99" amount="-2" />
<kerning first="89" second="97" amount="-1" />
<kerning first="89" second="65" amount="-1" />
<kerning first="89" second="38" amount="-1" />
<kerning first="87" second="122" amount="-1" />
<kerning first="87" second="120" amount="-1" />
<kerning first="87" second="117" amount="-1" />
<kerning first="87" second="116" amount="-1" />
<kerning first="87" second="115" amount="-1" />
<kerning first="87" second="114" amount="-1" />
<kerning first="87" second="113" amount="-2" />
<kerning first="87" second="111" amount="-2" />
<kerning first="87" second="110" amount="-1" />
<kerning first="87" second="109" amount="-1" />
<kerning first="87" second="103" amount="-2" />
<kerning first="87" second="101" amount="-2" />
<kerning first="87" second="100" amount="-2" />
<kerning first="87" second="99" amount="-2" />
<kerning first="87" second="97" amount="-1" />
<kerning first="87" second="65" amount="-1" />
<kerning first="86" second="122" amount="-1" />
<kerning first="86" second="120" amount="-1" />
<kerning first="86" second="117" amount="-1" />
<kerning first="70" second="46" amount="-1" />
<kerning first="70" second="65" amount="-1" />
<kerning first="86" second="116" amount="-1" />
<kerning first="86" second="115" amount="-1" />
<kerning first="86" second="114" amount="-1" />
<kerning first="86" second="113" amount="-2" />
<kerning first="86" second="111" amount="-2" />
<kerning first="86" second="110" amount="-1" />
<kerning first="86" second="109" amount="-1" />
<kerning first="86" second="103" amount="-2" />
<kerning first="86" second="101" amount="-2" />
<kerning first="74" second="65" amount="-1" />
<kerning first="86" second="100" amount="-2" />
<kerning first="74" second="120" amount="-1" />
<kerning first="86" second="99" amount="-2" />
<kerning first="86" second="97" amount="-1" />
<kerning first="86" second="65" amount="-1" />
<kerning first="86" second="46" amount="-1" />
<kerning first="86" second="38" amount="-1" />
<kerning first="85" second="120" amount="-1" />
<kerning first="85" second="65" amount="-1" />
<kerning first="75" second="67" amount="-1" />
<kerning first="75" second="71" amount="-1" />
<kerning first="75" second="79" amount="-1" />
<kerning first="75" second="81" amount="-1" />
<kerning first="85" second="46" amount="-1" />
<kerning first="84" second="113" amount="-2" />
<kerning first="84" second="111" amount="-2" />
<kerning first="84" second="108" amount="-1" />
<kerning first="84" second="107" amount="-1" />
<kerning first="84" second="104" amount="-1" />
<kerning first="84" second="103" amount="-2" />
<kerning first="84" second="101" amount="-2" />
<kerning first="84" second="100" amount="-2" />
<kerning first="76" second="92" amount="-1" />
<kerning first="84" second="99" amount="-2" />
<kerning first="84" second="98" amount="-1" />
<kerning first="84" second="81" amount="-1" />
<kerning first="84" second="79" amount="-1" />
<kerning first="84" second="71" amount="-1" />
<kerning first="84" second="67" amount="-1" />
<kerning first="84" second="65" amount="-2" />
<kerning first="79" second="46" amount="-1" />
<kerning first="79" second="65" amount="-1" />
<kerning first="84" second="46" amount="-1" />
<kerning first="84" second="38" amount="-1" />
<kerning first="79" second="74" amount="-1" />
<kerning first="81" second="84" amount="-1" />
<kerning first="81" second="74" amount="-1" />
<kerning first="79" second="84" amount="-1" />
<kerning first="81" second="65" amount="-1" />
<kerning first="81" second="46" amount="-1" />
<kerning first="80" second="74" amount="-1" />
<kerning first="80" second="65" amount="-1" />
<kerning first="80" second="46" amount="-1" />
</kernings>
</font>
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 KiB

@@ -0,0 +1,83 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{AE49D5C1-94DB-4A78-9A59-C58AEB03D62D}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Demo.InputListeners</RootNamespace>
<AssemblyName>Demo.InputListeners</AssemblyName>
<MonoGamePlatform>DesktopGL</MonoGamePlatform>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Compile Include="Game1.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="MonoGame.Framework">
<HintPath>$(MonoGameInstallDirectory)\MonoGame\v3.0\Assemblies\$(MonoGamePlatform)\MonoGame.Framework.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Content Include="Icon.ico" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="Content\logo-square-128.png" />
<None Include="Content\montserrat-32_0.png" />
<None Include="Content\vignette.png" />
<None Include="Content\montserrat-32.fnt" />
</ItemGroup>
<ItemGroup>
<MonoGameContentReference Include="Content\Content.mgcb" />
</ItemGroup>
<ItemGroup>
<Content Include="OpenTK.dll.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\MonoGame.Extended\MonoGame.Extended.csproj">
<Project>{41724c52-3d50-45bb-81eb-3c8a247eafd1}</Project>
<Name>MonoGame.Extended</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Content.Builder.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
+145
View File
@@ -0,0 +1,145 @@
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using MonoGame.Extended;
using MonoGame.Extended.BitmapFonts;
using MonoGame.Extended.InputListeners;
using MonoGame.Extended.ViewportAdapters;
namespace Demo.InputListeners
{
public class Game1 : Game
{
// ReSharper disable once NotAccessedField.Local
private readonly GraphicsDeviceManager _graphicsDeviceManager;
private readonly List<string> _logLines = new List<string>();
private SpriteBatch _spriteBatch;
private Texture2D _backgroundTexture;
private BitmapFont _bitmapFont;
private InputListenerManager _inputManager;
private string _typedString = string.Empty;
private bool _isCursorVisible = true;
private const float _cursorBlinkDelay = 0.5f;
private float _cursorBlinkDelta = _cursorBlinkDelay;
private Camera2D _camera;
public Game1()
{
_graphicsDeviceManager = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
IsMouseVisible = true;
Window.AllowUserResizing = true;
Window.Position = Point.Zero;
}
protected override void Initialize()
{
_inputManager = new InputListenerManager();
var mouseListener = _inputManager.AddListener(new MouseListenerSettings());
var keyboardListener = _inputManager.AddListener(new KeyboardListenerSettings());
keyboardListener.KeyPressed += (sender, args) =>
{
if (args.Key == Keys.Escape)
Exit();
};
mouseListener.MouseClicked += (sender, args) => LogMessage("{0} mouse button clicked", args.Button);
mouseListener.MouseDoubleClicked += (sender, args) => LogMessage("{0} mouse button double-clicked", args.Button);
mouseListener.MouseDown += (sender, args) => LogMessage("{0} mouse button down", args.Button);
mouseListener.MouseUp += (sender, args) => LogMessage("{0} mouse button up", args.Button);
mouseListener.MouseDrag += (sender, args) => LogMessage("Mouse dragged");
mouseListener.MouseWheelMoved += (sender, args) => LogMessage("Mouse scroll wheel value {0}", args.ScrollWheelValue);
keyboardListener.KeyPressed += (sender, args) => LogMessage("{0} key pressed", args.Key);
keyboardListener.KeyReleased += (sender, args) => LogMessage("{0} key released", args.Key);
keyboardListener.KeyTyped += (sender, args) =>
{
if (args.Key == Keys.Back && _typedString.Length > 0)
{
_typedString = _typedString.Substring(0, _typedString.Length - 1);
}
else if (args.Key == Keys.Enter)
{
LogMessage(_typedString);
_typedString = string.Empty;
}
else
{
_typedString += args.Character?.ToString() ?? "";
}
};
LogMessage("Do something with the mouse or keyboard...");
base.Initialize();
}
private const int _maxLogLines = 13;
private void LogMessage(string messageFormat, params object[] args)
{
var message = string.Format(messageFormat, args);
if (_logLines.Count == _maxLogLines)
_logLines.RemoveAt(0);
_logLines.Add(message);
}
protected override void LoadContent()
{
var viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480);
_camera = new Camera2D(viewportAdapter);
_spriteBatch = new SpriteBatch(GraphicsDevice);
_backgroundTexture = Content.Load<Texture2D>("vignette");
_bitmapFont = Content.Load<BitmapFont>("montserrat-32");
}
protected override void UnloadContent()
{
}
protected override void Update(GameTime gameTime)
{
_cursorBlinkDelta -= (float)gameTime.ElapsedGameTime.TotalSeconds;
if (_cursorBlinkDelta <= 0)
{
_isCursorVisible = !_isCursorVisible;
_cursorBlinkDelta = _cursorBlinkDelay;
}
_inputManager.Update(gameTime);
base.Update(gameTime);
}
protected override void Draw(GameTime gameTime)
{
_spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, transformMatrix: _camera.GetViewMatrix());
_spriteBatch.Draw(_backgroundTexture, new Rectangle(0, 0, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height), Color.DarkSlateGray);
for (var i = 0; i < _logLines.Count; i++)
{
var logLine = _logLines[i];
_spriteBatch.DrawString(_bitmapFont, logLine, new Vector2(4, i * _bitmapFont.LineHeight), Color.LightGray * 0.2f);
}
var textInputY = 14 * _bitmapFont.LineHeight - 2;
var position = new Vector2(4, textInputY);
var stringRectangle = _bitmapFont.GetStringRectangle(_typedString, position);
_spriteBatch.DrawString(_bitmapFont, _typedString, position, Color.White);
if (_isCursorVisible)
_spriteBatch.DrawString(_bitmapFont, "_", new Vector2(stringRectangle.Width, textInputY), Color.White);
_spriteBatch.End();
base.Draw(gameTime);
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<dllmap os="linux" dll="opengl32.dll" target="libGL.so.1" />
<dllmap os="linux" dll="glu32.dll" target="libGLU.so.1" />
<dllmap os="linux" dll="openal32.dll" target="libopenal.so.1" />
<dllmap os="linux" dll="alut.dll" target="libalut.so.0" />
<dllmap os="linux" dll="opencl.dll" target="libOpenCL.so" />
<dllmap os="linux" dll="libX11" target="libX11.so.6" />
<dllmap os="linux" dll="libXi" target="libXi.so.6" />
<dllmap os="linux" dll="SDL2.dll" target="libSDL2-2.0.so.0" />
<dllmap os="osx" dll="opengl32.dll" target="/System/Library/Frameworks/OpenGL.framework/OpenGL" />
<dllmap os="osx" dll="openal32.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="alut.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="libGLES.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv1_CM.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv2.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="opencl.dll" target="/System/Library/Frameworks/OpenCL.framework/OpenCL" />
<dllmap os="osx" dll="SDL2.dll" target="libSDL2.dylib" />
<!-- XQuartz compatibility (X11 on Mac) -->
<dllmap os="osx" dll="libGL.so.1" target="/usr/X11/lib/libGL.dylib" />
<dllmap os="osx" dll="libX11" target="/usr/X11/lib/libX11.dylib" />
<dllmap os="osx" dll="libXcursor.so.1" target="/usr/X11/lib/libXcursor.dylib" />
<dllmap os="osx" dll="libXi" target="/usr/X11/lib/libXi.dylib" />
<dllmap os="osx" dll="libXinerama" target="/usr/X11/lib/libXinerama.dylib" />
<dllmap os="osx" dll="libXrandr.so.2" target="/usr/X11/lib/libXrandr.dylib" />
</configuration>
@@ -0,0 +1,16 @@
using System;
namespace Demo.InputListeners
{
internal static class Program
{
[STAThread]
private static void Main(string[] args)
{
using (var game = new Game1())
{
game.Run();
}
}
}
}
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Demo.InputListeners")]
[assembly: AssemblyProduct("Demo.InputListeners")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("9b7203c6-a9a6-40e9-a798-893df7f10bf1")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.4.0.456")]
[assembly: AssemblyFileVersion("3.4.0.456")]
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup></configuration>
@@ -0,0 +1,65 @@
#----------------------------- Global Properties ----------------------------#
/outputDir:bin/$(Platform)
/intermediateDir:obj/$(Platform)
/platform:Windows
/config:
/profile:Reach
/compress:False
#-------------------------------- References --------------------------------#
/reference:../../../MonoGame.Extended.Content.Pipeline/bin/MonoGame.Extended.Content.Pipeline.dll
#---------------------------------- Content ---------------------------------#
#begin logo-square-512.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:logo-square-512.png
#begin car-hull.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:car-hull.png
#begin car-wheel.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:car-wheel.png
#begin montserrat-32.fnt
/importer:BitmapFontImporter
/processor:BitmapFontProcessor
/build:montserrat-32.fnt
#begin montserrat-32_0.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:montserrat-32_0.png
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

@@ -0,0 +1,341 @@
<?xml version="1.0"?>
<font>
<info face="Montserrat" size="32" bold="1" italic="0" charset="" unicode="1" stretchH="100" smooth="1" aa="1" padding="0,0,0,0" spacing="1,1" outline="0"/>
<common lineHeight="32" base="27" scaleW="256" scaleH="256" pages="1" packed="0" alphaChnl="1" redChnl="0" greenChnl="0" blueChnl="0"/>
<pages>
<page id="0" file="montserrat-32_0.png" />
</pages>
<chars count="95">
<char id="32" x="88" y="44" width="3" height="1" xoffset="-1" yoffset="31" xadvance="6" page="0" chnl="15" />
<char id="33" x="250" y="21" width="5" height="19" xoffset="2" yoffset="8" xadvance="7" page="0" chnl="15" />
<char id="34" x="72" y="103" width="8" height="8" xoffset="2" yoffset="8" xadvance="12" page="0" chnl="15" />
<char id="35" x="0" y="49" width="19" height="19" xoffset="0" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="36" x="0" y="0" width="16" height="27" xoffset="0" yoffset="4" xadvance="17" page="0" chnl="15" />
<char id="37" x="118" y="24" width="25" height="19" xoffset="1" yoffset="8" xadvance="28" page="0" chnl="15" />
<char id="38" x="172" y="0" width="17" height="20" xoffset="1" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="39" x="251" y="61" width="4" height="8" xoffset="2" yoffset="8" xadvance="7" page="0" chnl="15" />
<char id="40" x="72" y="0" width="8" height="24" xoffset="2" yoffset="7" xadvance="9" page="0" chnl="15" />
<char id="41" x="62" y="0" width="9" height="24" xoffset="1" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="42" x="61" y="104" width="10" height="9" xoffset="0" yoffset="8" xadvance="10" page="0" chnl="15" />
<char id="43" x="13" y="105" width="13" height="13" xoffset="0" yoffset="12" xadvance="14" page="0" chnl="15" />
<char id="44" x="81" y="103" width="6" height="7" xoffset="0" yoffset="23" xadvance="7" page="0" chnl="15" />
<char id="45" x="130" y="100" width="7" height="3" xoffset="1" yoffset="17" xadvance="10" page="0" chnl="15" />
<char id="46" x="107" y="100" width="5" height="5" xoffset="1" yoffset="22" xadvance="7" page="0" chnl="15" />
<char id="47" x="29" y="0" width="13" height="25" xoffset="-1" yoffset="5" xadvance="10" page="0" chnl="15" />
<char id="48" x="170" y="42" width="17" height="19" xoffset="1" yoffset="8" xadvance="19" page="0" chnl="15" />
<char id="49" x="203" y="61" width="9" height="19" xoffset="0" yoffset="8" xadvance="11" page="0" chnl="15" />
<char id="50" x="130" y="64" width="15" height="19" xoffset="1" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="51" x="236" y="61" width="14" height="18" xoffset="0" yoffset="9" xadvance="15" page="0" chnl="15" />
<char id="52" x="17" y="69" width="16" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="53" x="114" y="64" width="15" height="19" xoffset="0" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="54" x="146" y="64" width="15" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="55" x="98" y="64" width="15" height="19" xoffset="1" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="56" x="82" y="66" width="15" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="57" x="66" y="67" width="15" height="19" xoffset="1" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="58" x="27" y="105" width="5" height="12" xoffset="1" yoffset="15" xadvance="6" page="0" chnl="15" />
<char id="59" x="233" y="80" width="6" height="15" xoffset="0" yoffset="15" xadvance="7" page="0" chnl="15" />
<char id="60" x="240" y="80" width="12" height="14" xoffset="1" yoffset="11" xadvance="14" page="0" chnl="15" />
<char id="61" x="48" y="104" width="12" height="9" xoffset="1" yoffset="14" xadvance="14" page="0" chnl="15" />
<char id="62" x="0" y="108" width="12" height="14" xoffset="1" yoffset="11" xadvance="14" page="0" chnl="15" />
<char id="63" x="190" y="61" width="12" height="19" xoffset="0" yoffset="8" xadvance="13" page="0" chnl="15" />
<char id="64" x="141" y="0" width="24" height="22" xoffset="0" yoffset="9" xadvance="25" page="0" chnl="15" />
<char id="65" x="144" y="23" width="21" height="19" xoffset="0" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="66" x="219" y="61" width="16" height="18" xoffset="2" yoffset="9" xadvance="19" page="0" chnl="15" />
<char id="67" x="78" y="46" width="18" height="19" xoffset="1" yoffset="8" xadvance="19" page="0" chnl="15" />
<char id="68" x="59" y="47" width="18" height="19" xoffset="2" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="69" x="34" y="68" width="15" height="19" xoffset="2" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="70" x="241" y="41" width="14" height="19" xoffset="2" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="71" x="116" y="44" width="17" height="19" xoffset="1" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="72" x="134" y="44" width="17" height="19" xoffset="2" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="73" x="213" y="61" width="5" height="19" xoffset="2" yoffset="8" xadvance="9" page="0" chnl="15" />
<char id="74" x="176" y="62" width="13" height="19" xoffset="0" yoffset="8" xadvance="14" page="0" chnl="15" />
<char id="75" x="40" y="47" width="18" height="19" xoffset="2" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="76" x="162" y="63" width="13" height="19" xoffset="2" yoffset="8" xadvance="15" page="0" chnl="15" />
<char id="77" x="229" y="21" width="20" height="19" xoffset="2" yoffset="8" xadvance="25" page="0" chnl="15" />
<char id="78" x="206" y="41" width="17" height="19" xoffset="2" yoffset="8" xadvance="21" page="0" chnl="15" />
<char id="79" x="208" y="21" width="20" height="19" xoffset="1" yoffset="8" xadvance="22" page="0" chnl="15" />
<char id="80" x="50" y="67" width="15" height="19" xoffset="2" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="81" x="81" y="0" width="21" height="23" xoffset="1" yoffset="8" xadvance="22" page="0" chnl="15" />
<char id="82" x="188" y="41" width="17" height="19" xoffset="2" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="83" x="224" y="41" width="16" height="19" xoffset="0" yoffset="8" xadvance="17" page="0" chnl="15" />
<char id="84" x="0" y="69" width="16" height="19" xoffset="1" yoffset="8" xadvance="16" page="0" chnl="15" />
<char id="85" x="97" y="44" width="18" height="19" xoffset="1" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="86" x="187" y="21" width="20" height="19" xoffset="0" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="87" x="88" y="24" width="29" height="19" xoffset="0" yoffset="8" xadvance="29" page="0" chnl="15" />
<char id="88" x="166" y="22" width="20" height="19" xoffset="0" yoffset="8" xadvance="20" page="0" chnl="15" />
<char id="89" x="20" y="48" width="19" height="19" xoffset="0" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="90" x="152" y="43" width="17" height="19" xoffset="1" yoffset="8" xadvance="18" page="0" chnl="15" />
<char id="91" x="123" y="0" width="8" height="23" xoffset="2" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="92" x="43" y="0" width="13" height="25" xoffset="1" yoffset="5" xadvance="12" page="0" chnl="15" />
<char id="93" x="132" y="0" width="8" height="23" xoffset="2" yoffset="7" xadvance="12" page="0" chnl="15" />
<char id="94" x="33" y="105" width="14" height="11" xoffset="1" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="95" x="113" y="100" width="16" height="3" xoffset="0" yoffset="29" xadvance="16" page="0" chnl="15" />
<char id="96" x="99" y="100" width="7" height="5" xoffset="1" yoffset="7" xadvance="9" page="0" chnl="15" />
<char id="97" x="164" y="83" width="14" height="15" xoffset="1" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="98" x="0" y="28" width="16" height="20" xoffset="2" yoffset="7" xadvance="18" page="0" chnl="15" />
<char id="99" x="179" y="82" width="14" height="15" xoffset="0" yoffset="12" xadvance="15" page="0" chnl="15" />
<char id="100" x="208" y="0" width="17" height="20" xoffset="0" yoffset="7" xadvance="19" page="0" chnl="15" />
<char id="101" x="116" y="84" width="15" height="15" xoffset="0" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="102" x="243" y="0" width="12" height="20" xoffset="0" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="103" x="34" y="26" width="15" height="20" xoffset="1" yoffset="12" xadvance="17" page="0" chnl="15" />
<char id="104" x="66" y="25" width="15" height="20" xoffset="2" yoffset="7" xadvance="18" page="0" chnl="15" />
<char id="105" x="166" y="0" width="5" height="21" xoffset="2" yoffset="6" xadvance="8" page="0" chnl="15" />
<char id="106" x="17" y="0" width="11" height="26" xoffset="-3" yoffset="6" xadvance="9" page="0" chnl="15" />
<char id="107" x="50" y="26" width="15" height="20" xoffset="2" yoffset="7" xadvance="17" page="0" chnl="15" />
<char id="108" x="82" y="24" width="5" height="20" xoffset="2" yoffset="7" xadvance="9" page="0" chnl="15" />
<char id="109" x="39" y="88" width="24" height="15" xoffset="2" yoffset="12" xadvance="28" page="0" chnl="15" />
<char id="110" x="132" y="84" width="15" height="15" xoffset="2" yoffset="12" xadvance="18" page="0" chnl="15" />
<char id="111" x="64" y="87" width="17" height="15" xoffset="0" yoffset="12" xadvance="17" page="0" chnl="15" />
<char id="112" x="226" y="0" width="16" height="20" xoffset="2" yoffset="12" xadvance="18" page="0" chnl="15" />
<char id="113" x="190" y="0" width="17" height="20" xoffset="0" yoffset="12" xadvance="19" page="0" chnl="15" />
<char id="114" x="222" y="80" width="10" height="15" xoffset="2" yoffset="12" xadvance="12" page="0" chnl="15" />
<char id="115" x="208" y="81" width="13" height="15" xoffset="0" yoffset="12" xadvance="14" page="0" chnl="15" />
<char id="116" x="0" y="89" width="11" height="18" xoffset="0" yoffset="9" xadvance="12" page="0" chnl="15" />
<char id="117" x="148" y="84" width="15" height="15" xoffset="1" yoffset="12" xadvance="18" page="0" chnl="15" />
<char id="118" x="82" y="86" width="16" height="15" xoffset="0" yoffset="12" xadvance="15" page="0" chnl="15" />
<char id="119" x="12" y="89" width="26" height="15" xoffset="0" yoffset="12" xadvance="25" page="0" chnl="15" />
<char id="120" x="99" y="84" width="16" height="15" xoffset="0" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="121" x="17" y="27" width="16" height="20" xoffset="0" yoffset="12" xadvance="16" page="0" chnl="15" />
<char id="122" x="194" y="81" width="13" height="15" xoffset="1" yoffset="12" xadvance="15" page="0" chnl="15" />
<char id="123" x="113" y="0" width="9" height="23" xoffset="1" yoffset="7" xadvance="10" page="0" chnl="15" />
<char id="124" x="57" y="0" width="4" height="25" xoffset="2" yoffset="5" xadvance="8" page="0" chnl="15" />
<char id="125" x="103" y="0" width="9" height="23" xoffset="1" yoffset="7" xadvance="11" page="0" chnl="15" />
<char id="126" x="88" y="102" width="10" height="5" xoffset="2" yoffset="16" xadvance="14" page="0" chnl="15" />
</chars>
<kernings count="234">
<kerning first="39" second="46" amount="-1" />
<kerning first="122" second="89" amount="-1" />
<kerning first="122" second="87" amount="-1" />
<kerning first="122" second="86" amount="-1" />
<kerning first="121" second="65" amount="-1" />
<kerning first="120" second="113" amount="-1" />
<kerning first="120" second="111" amount="-1" />
<kerning first="120" second="103" amount="-1" />
<kerning first="120" second="101" amount="-1" />
<kerning first="120" second="100" amount="-1" />
<kerning first="120" second="99" amount="-1" />
<kerning first="120" second="97" amount="-1" />
<kerning first="120" second="89" amount="-1" />
<kerning first="120" second="87" amount="-1" />
<kerning first="120" second="86" amount="-1" />
<kerning first="120" second="85" amount="-1" />
<kerning first="119" second="65" amount="-1" />
<kerning first="119" second="46" amount="-1" />
<kerning first="118" second="65" amount="-1" />
<kerning first="118" second="46" amount="-1" />
<kerning first="116" second="89" amount="-1" />
<kerning first="116" second="87" amount="-1" />
<kerning first="116" second="86" amount="-1" />
<kerning first="115" second="89" amount="-1" />
<kerning first="45" second="74" amount="-1" />
<kerning first="47" second="57" amount="-1" />
<kerning first="115" second="87" amount="-1" />
<kerning first="115" second="86" amount="-1" />
<kerning first="114" second="121" amount="1" />
<kerning first="114" second="119" amount="1" />
<kerning first="114" second="118" amount="1" />
<kerning first="114" second="89" amount="-1" />
<kerning first="114" second="87" amount="-1" />
<kerning first="114" second="86" amount="-1" />
<kerning first="112" second="120" amount="-1" />
<kerning first="112" second="89" amount="-2" />
<kerning first="112" second="87" amount="-2" />
<kerning first="112" second="86" amount="-2" />
<kerning first="112" second="84" amount="-2" />
<kerning first="112" second="74" amount="-1" />
<kerning first="112" second="65" amount="-1" />
<kerning first="111" second="120" amount="-1" />
<kerning first="111" second="89" amount="-2" />
<kerning first="111" second="87" amount="-2" />
<kerning first="111" second="86" amount="-2" />
<kerning first="111" second="84" amount="-2" />
<kerning first="111" second="74" amount="-1" />
<kerning first="55" second="46" amount="-1" />
<kerning first="65" second="67" amount="-1" />
<kerning first="65" second="71" amount="-1" />
<kerning first="65" second="79" amount="-1" />
<kerning first="65" second="81" amount="-1" />
<kerning first="111" second="65" amount="-1" />
<kerning first="65" second="84" amount="-2" />
<kerning first="65" second="85" amount="-1" />
<kerning first="65" second="86" amount="-1" />
<kerning first="65" second="87" amount="-1" />
<kerning first="65" second="89" amount="-1" />
<kerning first="65" second="92" amount="-1" />
<kerning first="65" second="99" amount="-1" />
<kerning first="65" second="100" amount="-1" />
<kerning first="65" second="101" amount="-1" />
<kerning first="65" second="103" amount="-1" />
<kerning first="65" second="111" amount="-1" />
<kerning first="65" second="113" amount="-1" />
<kerning first="65" second="116" amount="-1" />
<kerning first="65" second="117" amount="-1" />
<kerning first="65" second="118" amount="-1" />
<kerning first="65" second="119" amount="-1" />
<kerning first="65" second="121" amount="-1" />
<kerning first="110" second="89" amount="-1" />
<kerning first="110" second="87" amount="-1" />
<kerning first="110" second="86" amount="-1" />
<kerning first="109" second="89" amount="-1" />
<kerning first="109" second="87" amount="-1" />
<kerning first="109" second="86" amount="-1" />
<kerning first="107" second="113" amount="-1" />
<kerning first="107" second="111" amount="-1" />
<kerning first="107" second="103" amount="-1" />
<kerning first="107" second="101" amount="-1" />
<kerning first="107" second="100" amount="-1" />
<kerning first="107" second="99" amount="-1" />
<kerning first="107" second="97" amount="-1" />
<kerning first="107" second="89" amount="-1" />
<kerning first="107" second="87" amount="-1" />
<kerning first="107" second="86" amount="-1" />
<kerning first="107" second="85" amount="-1" />
<kerning first="104" second="89" amount="-1" />
<kerning first="104" second="87" amount="-1" />
<kerning first="104" second="86" amount="-1" />
<kerning first="102" second="121" amount="1" />
<kerning first="102" second="119" amount="1" />
<kerning first="102" second="118" amount="1" />
<kerning first="102" second="108" amount="1" />
<kerning first="102" second="107" amount="1" />
<kerning first="102" second="104" amount="1" />
<kerning first="102" second="98" amount="1" />
<kerning first="102" second="97" amount="-1" />
<kerning first="102" second="89" amount="2" />
<kerning first="102" second="87" amount="2" />
<kerning first="102" second="86" amount="2" />
<kerning first="102" second="84" amount="2" />
<kerning first="102" second="82" amount="1" />
<kerning first="102" second="81" amount="1" />
<kerning first="102" second="80" amount="1" />
<kerning first="102" second="79" amount="1" />
<kerning first="102" second="78" amount="1" />
<kerning first="102" second="77" amount="1" />
<kerning first="102" second="76" amount="1" />
<kerning first="102" second="75" amount="1" />
<kerning first="102" second="73" amount="1" />
<kerning first="102" second="72" amount="1" />
<kerning first="102" second="71" amount="1" />
<kerning first="102" second="70" amount="1" />
<kerning first="102" second="69" amount="1" />
<kerning first="102" second="68" amount="1" />
<kerning first="102" second="67" amount="1" />
<kerning first="102" second="66" amount="1" />
<kerning first="101" second="125" amount="-1" />
<kerning first="101" second="120" amount="-1" />
<kerning first="101" second="89" amount="-2" />
<kerning first="101" second="87" amount="-2" />
<kerning first="101" second="86" amount="-2" />
<kerning first="101" second="84" amount="-2" />
<kerning first="101" second="74" amount="-1" />
<kerning first="101" second="65" amount="-1" />
<kerning first="99" second="89" amount="-1" />
<kerning first="99" second="87" amount="-1" />
<kerning first="99" second="86" amount="-1" />
<kerning first="98" second="120" amount="-1" />
<kerning first="98" second="89" amount="-2" />
<kerning first="98" second="87" amount="-2" />
<kerning first="98" second="86" amount="-2" />
<kerning first="98" second="84" amount="-2" />
<kerning first="98" second="74" amount="-1" />
<kerning first="98" second="65" amount="-1" />
<kerning first="97" second="89" amount="-1" />
<kerning first="97" second="87" amount="-1" />
<kerning first="97" second="86" amount="-1" />
<kerning first="89" second="122" amount="-1" />
<kerning first="89" second="120" amount="-1" />
<kerning first="89" second="117" amount="-1" />
<kerning first="89" second="116" amount="-1" />
<kerning first="89" second="115" amount="-1" />
<kerning first="89" second="114" amount="-1" />
<kerning first="68" second="46" amount="-1" />
<kerning first="68" second="65" amount="-1" />
<kerning first="89" second="113" amount="-2" />
<kerning first="89" second="111" amount="-2" />
<kerning first="68" second="74" amount="-1" />
<kerning first="89" second="110" amount="-1" />
<kerning first="89" second="109" amount="-1" />
<kerning first="68" second="84" amount="-1" />
<kerning first="89" second="103" amount="-2" />
<kerning first="89" second="101" amount="-2" />
<kerning first="89" second="100" amount="-2" />
<kerning first="89" second="99" amount="-2" />
<kerning first="89" second="97" amount="-1" />
<kerning first="89" second="65" amount="-1" />
<kerning first="89" second="38" amount="-1" />
<kerning first="87" second="122" amount="-1" />
<kerning first="87" second="120" amount="-1" />
<kerning first="87" second="117" amount="-1" />
<kerning first="87" second="116" amount="-1" />
<kerning first="87" second="115" amount="-1" />
<kerning first="87" second="114" amount="-1" />
<kerning first="87" second="113" amount="-2" />
<kerning first="87" second="111" amount="-2" />
<kerning first="87" second="110" amount="-1" />
<kerning first="87" second="109" amount="-1" />
<kerning first="87" second="103" amount="-2" />
<kerning first="87" second="101" amount="-2" />
<kerning first="87" second="100" amount="-2" />
<kerning first="87" second="99" amount="-2" />
<kerning first="87" second="97" amount="-1" />
<kerning first="87" second="65" amount="-1" />
<kerning first="86" second="122" amount="-1" />
<kerning first="86" second="120" amount="-1" />
<kerning first="86" second="117" amount="-1" />
<kerning first="70" second="46" amount="-1" />
<kerning first="70" second="65" amount="-1" />
<kerning first="86" second="116" amount="-1" />
<kerning first="86" second="115" amount="-1" />
<kerning first="86" second="114" amount="-1" />
<kerning first="86" second="113" amount="-2" />
<kerning first="86" second="111" amount="-2" />
<kerning first="86" second="110" amount="-1" />
<kerning first="86" second="109" amount="-1" />
<kerning first="86" second="103" amount="-2" />
<kerning first="86" second="101" amount="-2" />
<kerning first="74" second="65" amount="-1" />
<kerning first="86" second="100" amount="-2" />
<kerning first="74" second="120" amount="-1" />
<kerning first="86" second="99" amount="-2" />
<kerning first="86" second="97" amount="-1" />
<kerning first="86" second="65" amount="-1" />
<kerning first="86" second="46" amount="-1" />
<kerning first="86" second="38" amount="-1" />
<kerning first="85" second="120" amount="-1" />
<kerning first="85" second="65" amount="-1" />
<kerning first="75" second="67" amount="-1" />
<kerning first="75" second="71" amount="-1" />
<kerning first="75" second="79" amount="-1" />
<kerning first="75" second="81" amount="-1" />
<kerning first="85" second="46" amount="-1" />
<kerning first="84" second="113" amount="-2" />
<kerning first="84" second="111" amount="-2" />
<kerning first="84" second="108" amount="-1" />
<kerning first="84" second="107" amount="-1" />
<kerning first="84" second="104" amount="-1" />
<kerning first="84" second="103" amount="-2" />
<kerning first="84" second="101" amount="-2" />
<kerning first="84" second="100" amount="-2" />
<kerning first="76" second="92" amount="-1" />
<kerning first="84" second="99" amount="-2" />
<kerning first="84" second="98" amount="-1" />
<kerning first="84" second="81" amount="-1" />
<kerning first="84" second="79" amount="-1" />
<kerning first="84" second="71" amount="-1" />
<kerning first="84" second="67" amount="-1" />
<kerning first="84" second="65" amount="-2" />
<kerning first="79" second="46" amount="-1" />
<kerning first="79" second="65" amount="-1" />
<kerning first="84" second="46" amount="-1" />
<kerning first="84" second="38" amount="-1" />
<kerning first="79" second="74" amount="-1" />
<kerning first="81" second="84" amount="-1" />
<kerning first="81" second="74" amount="-1" />
<kerning first="79" second="84" amount="-1" />
<kerning first="81" second="65" amount="-1" />
<kerning first="81" second="46" amount="-1" />
<kerning first="80" second="74" amount="-1" />
<kerning first="80" second="65" amount="-1" />
<kerning first="80" second="46" amount="-1" />
</kernings>
</font>
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{274091CB-D74C-4DCB-849D-75D29622ADD2}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Demo.SceneGraphs</RootNamespace>
<AssemblyName>Demo.SceneGraphs</AssemblyName>
<MonoGamePlatform>DesktopGL</MonoGamePlatform>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Compile Include="Game1.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="MonoGame.Framework">
<HintPath>$(MonoGameInstallDirectory)\MonoGame\v3.0\Assemblies\$(MonoGamePlatform)\MonoGame.Framework.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Content Include="Icon.ico" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="Content\car-hull.png" />
<None Include="Content\car-wheel.png" />
<None Include="Content\logo-square-512.png" />
<None Include="Content\montserrat-32_0.png" />
<None Include="Content\montserrat-32.fnt" />
</ItemGroup>
<ItemGroup>
<MonoGameContentReference Include="Content\Content.mgcb" />
</ItemGroup>
<ItemGroup>
<Content Include="OpenTK.dll.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\MonoGame.Extended\MonoGame.Extended.csproj">
<Project>{41724c52-3d50-45bb-81eb-3c8a247eafd1}</Project>
<Name>MonoGame.Extended</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Content.Builder.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
+165
View File
@@ -0,0 +1,165 @@
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using MonoGame.Extended;
using MonoGame.Extended.BitmapFonts;
using MonoGame.Extended.SceneGraphs;
using MonoGame.Extended.Shapes;
using MonoGame.Extended.Sprites;
using MonoGame.Extended.ViewportAdapters;
namespace Demo.SceneGraphs
{
public class Game1 : Game
{
private readonly GraphicsDeviceManager _graphicsDeviceManager;
private readonly bool _isFullScreen;
private BitmapFont _bitmapFont;
private Camera2D _camera;
private SceneNode _carNode;
private SceneNode _hoveredNode;
private SceneNode _leftWheelNode;
private SceneNode _rightWheelNode;
private SceneGraph _sceneGraph;
private float _speed = 0.15f;
private SpriteBatch _spriteBatch;
public Game1()
{
_graphicsDeviceManager = new GraphicsDeviceManager(this);
_isFullScreen = false;
Content.RootDirectory = "Content";
Window.Title = "MonoGame.Extended Game";
Window.AllowUserResizing = true;
Window.Position = Point.Zero;
IsMouseVisible = true;
}
protected override void Initialize()
{
base.Initialize();
if (_isFullScreen)
{
_graphicsDeviceManager.IsFullScreen = true;
_graphicsDeviceManager.PreferredBackBufferWidth = GraphicsDevice.DisplayMode.Width;
_graphicsDeviceManager.PreferredBackBufferHeight = GraphicsDevice.DisplayMode.Height;
_graphicsDeviceManager.ApplyChanges();
}
}
protected override void LoadContent()
{
_spriteBatch = new SpriteBatch(GraphicsDevice);
_bitmapFont = Content.Load<BitmapFont>("montserrat-32");
var viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480);
_camera = new Camera2D(viewportAdapter)
{
Zoom = 2.0f
};
_sceneGraph = new SceneGraph();
var carHullTexture = Content.Load<Texture2D>("car-hull");
var carHullSprite = new Sprite(carHullTexture);
var carWheelTexture = Content.Load<Texture2D>("car-wheel");
var carWheelSprite = new Sprite(carWheelTexture);
_carNode = new SceneNode("car-hull", viewportAdapter.Center.ToVector2());
_carNode.Entities.Add(carHullSprite);
_leftWheelNode = new SceneNode("left-wheel", new Vector2(-29, 17));
_leftWheelNode.Entities.Add(carWheelSprite);
_rightWheelNode = new SceneNode("right-wheel", new Vector2(40, 17));
_rightWheelNode.Entities.Add(carWheelSprite);
_carNode.Children.Add(_rightWheelNode);
_carNode.Children.Add(_leftWheelNode);
_sceneGraph.RootNode.Children.Add(_carNode);
}
protected override void UnloadContent()
{
}
protected override void Update(GameTime gameTime)
{
var deltaTime = (float)gameTime.ElapsedGameTime.TotalSeconds;
var keyboardState = Keyboard.GetState();
var mouseState = Mouse.GetState();
if (keyboardState.IsKeyDown(Keys.Escape))
{
Exit();
}
if (keyboardState.IsKeyDown(Keys.W))
{
_speed += deltaTime * 0.5f;
}
if (keyboardState.IsKeyDown(Keys.S))
{
_speed -= deltaTime * 0.5f;
}
_leftWheelNode.Rotation += _speed;
_rightWheelNode.Rotation = _leftWheelNode.Rotation;
_carNode.Position += new Vector2(_speed * 5, 0);
// quick and dirty collision detection
const int maxX = 535;
if (_carNode.Position.X >= maxX)
{
_speed = -_speed * 0.2f;
_carNode.Position = new Vector2(maxX, _carNode.Position.Y);
}
const int minX = 265;
if (_carNode.Position.X <= minX)
{
_speed = -_speed * 0.2f;
_carNode.Position = new Vector2(minX, _carNode.Position.Y);
}
var worldPosition = _camera.ScreenToWorld(mouseState.X, mouseState.Y);
_hoveredNode = _sceneGraph.GetSceneNodeAt(worldPosition);
base.Update(gameTime);
}
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
_spriteBatch.Begin(samplerState: SamplerState.PointClamp, transformMatrix: _camera.GetViewMatrix());
_spriteBatch.Draw(_sceneGraph);
_spriteBatch.FillRectangle(0, 266, 800, 240, Color.DarkOliveGreen);
_spriteBatch.FillRectangle(200, 0, 5, 480, Color.DarkOliveGreen);
_spriteBatch.FillRectangle(595, 0, 5, 480, Color.DarkOliveGreen);
if (_hoveredNode != null)
{
var boundingRectangle = _hoveredNode.GetBoundingRectangle();
_spriteBatch.DrawRectangle(boundingRectangle, Color.Black);
}
_spriteBatch.End();
_spriteBatch.Begin();
if (_hoveredNode != null)
{
_spriteBatch.DrawString(_bitmapFont, _hoveredNode.Name, new Vector2(14, 2), Color.White);
}
_spriteBatch.End();
base.Draw(gameTime);
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<dllmap os="linux" dll="opengl32.dll" target="libGL.so.1" />
<dllmap os="linux" dll="glu32.dll" target="libGLU.so.1" />
<dllmap os="linux" dll="openal32.dll" target="libopenal.so.1" />
<dllmap os="linux" dll="alut.dll" target="libalut.so.0" />
<dllmap os="linux" dll="opencl.dll" target="libOpenCL.so" />
<dllmap os="linux" dll="libX11" target="libX11.so.6" />
<dllmap os="linux" dll="libXi" target="libXi.so.6" />
<dllmap os="linux" dll="SDL2.dll" target="libSDL2-2.0.so.0" />
<dllmap os="osx" dll="opengl32.dll" target="/System/Library/Frameworks/OpenGL.framework/OpenGL" />
<dllmap os="osx" dll="openal32.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="alut.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="libGLES.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv1_CM.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv2.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="opencl.dll" target="/System/Library/Frameworks/OpenCL.framework/OpenCL" />
<dllmap os="osx" dll="SDL2.dll" target="libSDL2.dylib" />
<!-- XQuartz compatibility (X11 on Mac) -->
<dllmap os="osx" dll="libGL.so.1" target="/usr/X11/lib/libGL.dylib" />
<dllmap os="osx" dll="libX11" target="/usr/X11/lib/libX11.dylib" />
<dllmap os="osx" dll="libXcursor.so.1" target="/usr/X11/lib/libXcursor.dylib" />
<dllmap os="osx" dll="libXi" target="/usr/X11/lib/libXi.dylib" />
<dllmap os="osx" dll="libXinerama" target="/usr/X11/lib/libXinerama.dylib" />
<dllmap os="osx" dll="libXrandr.so.2" target="/usr/X11/lib/libXrandr.dylib" />
</configuration>
+16
View File
@@ -0,0 +1,16 @@
using System;
namespace Demo.SceneGraphs
{
internal static class Program
{
[STAThread]
private static void Main(string[] args)
{
using (var game = new Game1())
{
game.Run();
}
}
}
}
@@ -0,0 +1,39 @@
using System.Reflection;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Demo.SceneGraphs")]
[assembly: AssemblyProduct("Demo.SceneGraphs")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("9b7203c6-a9a6-40e9-a798-893df7f10bf1")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.4.0.456")]
[assembly: AssemblyFileVersion("3.4.0.456")]
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
@@ -0,0 +1,262 @@
#----------------------------- Global Properties ----------------------------#
/outputDir:bin/$(Platform)
/intermediateDir:obj/$(Platform)
/platform:Windows
/config:
/profile:Reach
/compress:False
#-------------------------------- References --------------------------------#
/reference:../../../MonoGame.Extended.Content.Pipeline/bin/MonoGame.Extended.Content.Pipeline.dll
#---------------------------------- Content ---------------------------------#
#begin playerShip1_blue.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:playerShip1_blue.png
#begin meteorBrown_big1.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:meteorBrown_big1.png
#begin laserBlue03.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:laserBlue03.png
#begin meteorBrown_big2.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:meteorBrown_big2.png
#begin meteorBrown_big3.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:meteorBrown_big3.png
#begin meteorBrown_big4.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:meteorBrown_big4.png
#begin meteorBrown_med1.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:meteorBrown_med1.png
#begin meteorBrown_med3.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:meteorBrown_med3.png
#begin meteorBrown_small1.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:meteorBrown_small1.png
#begin meteorBrown_small2.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:meteorBrown_small2.png
#begin meteorBrown_tiny1.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:meteorBrown_tiny1.png
#begin meteorBrown_tiny2.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:meteorBrown_tiny2.png
#begin black.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:black.png
#begin explosion-animations.aa
/importer:AstridAnimatorImporter
/processor:AstridAnimatorProcessor
/build:explosion-animations.aa
#begin regular-explosion.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:regular-explosion.png
#begin regular-explosion-sheet.json
/importer:TexturePackerJsonImporter
/processor:TexturePackerProcessor
/build:regular-explosion-sheet.json
#begin Fonts/courier-new-32.fnt
/importer:BitmapFontImporter
/processor:BitmapFontProcessor
/build:Fonts/courier-new-32.fnt
#begin Fonts/courier-new-32_0.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:Fonts/courier-new-32_0.png
#begin Gui/button-clicked.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:Gui/button-clicked.png
#begin Gui/button-hover.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:Gui/button-hover.png
#begin Gui/button-locked.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:Gui/button-locked.png
#begin Gui/button-normal.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:Gui/button-normal.png
#begin Gui/9patch-1.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:Gui/9patch-1.png
#begin Gui/9patch-2.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:Gui/9patch-2.png
@@ -0,0 +1,105 @@
<?xml version="1.0"?>
<font>
<info face="Courier New" size="32" bold="1" italic="0" charset="" unicode="1" stretchH="100" smooth="1" aa="1" padding="0,0,0,0" spacing="1,1" outline="1"/>
<common lineHeight="31" base="23" scaleW="256" scaleH="256" pages="1" packed="0" alphaChnl="0" redChnl="4" greenChnl="4" blueChnl="4"/>
<pages>
<page id="0" file="courier-new-32_0.png" />
</pages>
<chars count="95">
<char id="32" x="248" y="37" width="5" height="3" xoffset="-2" yoffset="29" xadvance="17" page="0" chnl="15" />
<char id="33" x="117" y="44" width="8" height="19" xoffset="4" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="34" x="36" y="121" width="13" height="10" xoffset="2" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="35" x="64" y="0" width="18" height="23" xoffset="-1" yoffset="3" xadvance="17" page="0" chnl="15" />
<char id="36" x="48" y="0" width="15" height="24" xoffset="1" yoffset="3" xadvance="17" page="0" chnl="15" />
<char id="37" x="158" y="24" width="17" height="19" xoffset="0" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="38" x="116" y="83" width="16" height="18" xoffset="1" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="39" x="247" y="60" width="7" height="10" xoffset="5" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="40" x="107" y="0" width="10" height="23" xoffset="6" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="41" x="129" y="0" width="10" height="23" xoffset="1" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="42" x="236" y="95" width="16" height="14" xoffset="1" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="43" x="217" y="79" width="18" height="17" xoffset="0" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="44" x="50" y="121" width="9" height="10" xoffset="4" yoffset="18" xadvance="17" page="0" chnl="15" />
<char id="45" x="112" y="118" width="15" height="5" xoffset="1" yoffset="12" xadvance="17" page="0" chnl="15" />
<char id="46" x="247" y="71" width="7" height="6" xoffset="5" yoffset="18" xadvance="17" page="0" chnl="15" />
<char id="47" x="17" y="0" width="15" height="25" xoffset="1" yoffset="2" xadvance="17" page="0" chnl="15" />
<char id="48" x="101" y="44" width="15" height="19" xoffset="1" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="49" x="0" y="47" width="16" height="19" xoffset="1" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="50" x="17" y="47" width="16" height="19" xoffset="0" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="51" x="194" y="21" width="17" height="19" xoffset="0" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="52" x="212" y="21" width="17" height="19" xoffset="0" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="53" x="230" y="21" width="17" height="19" xoffset="0" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="54" x="68" y="45" width="16" height="19" xoffset="1" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="55" x="34" y="47" width="16" height="19" xoffset="0" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="56" x="85" y="44" width="15" height="19" xoffset="1" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="57" x="51" y="46" width="16" height="19" xoffset="1" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="58" x="248" y="21" width="7" height="15" xoffset="5" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="59" x="166" y="82" width="10" height="18" xoffset="4" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="60" x="177" y="82" width="19" height="17" xoffset="-2" yoffset="7" xadvance="17" page="0" chnl="15" />
<char id="61" x="16" y="121" width="19" height="10" xoffset="-1" yoffset="10" xadvance="17" page="0" chnl="15" />
<char id="62" x="197" y="82" width="19" height="17" xoffset="0" yoffset="7" xadvance="17" page="0" chnl="15" />
<char id="63" x="150" y="82" width="15" height="18" xoffset="1" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="64" x="179" y="0" width="14" height="21" xoffset="1" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="65" x="194" y="41" width="21" height="18" xoffset="-2" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="66" x="187" y="63" width="19" height="18" xoffset="-1" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="67" x="167" y="63" width="19" height="18" xoffset="-1" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="68" x="0" y="86" width="19" height="18" xoffset="-2" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="69" x="20" y="86" width="19" height="18" xoffset="-1" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="70" x="79" y="85" width="18" height="18" xoffset="0" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="71" x="44" y="67" width="20" height="18" xoffset="-1" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="72" x="40" y="86" width="19" height="18" xoffset="-1" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="73" x="133" y="82" width="16" height="18" xoffset="0" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="74" x="107" y="64" width="19" height="18" xoffset="0" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="75" x="86" y="64" width="20" height="18" xoffset="-1" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="76" x="127" y="63" width="19" height="18" xoffset="-1" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="77" x="126" y="44" width="23" height="18" xoffset="-3" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="78" x="150" y="44" width="21" height="18" xoffset="-2" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="79" x="227" y="60" width="19" height="18" xoffset="-1" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="80" x="60" y="86" width="18" height="18" xoffset="0" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="81" x="159" y="0" width="19" height="22" xoffset="-1" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="82" x="65" y="66" width="20" height="18" xoffset="-1" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="83" x="238" y="41" width="17" height="18" xoffset="0" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="84" x="207" y="60" width="19" height="18" xoffset="-1" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="85" x="172" y="44" width="21" height="18" xoffset="-2" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="86" x="216" y="41" width="21" height="18" xoffset="-2" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="87" x="0" y="67" width="21" height="18" xoffset="-2" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="88" x="22" y="67" width="21" height="18" xoffset="-2" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="89" x="147" y="63" width="19" height="18" xoffset="-1" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="90" x="98" y="83" width="17" height="18" xoffset="0" yoffset="6" xadvance="17" page="0" chnl="15" />
<char id="91" x="140" y="0" width="10" height="23" xoffset="5" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="92" x="0" y="0" width="16" height="25" xoffset="0" yoffset="2" xadvance="17" page="0" chnl="15" />
<char id="93" x="118" y="0" width="10" height="23" xoffset="2" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="94" x="0" y="121" width="15" height="12" xoffset="1" yoffset="3" xadvance="17" page="0" chnl="15" />
<char id="95" x="88" y="120" width="23" height="5" xoffset="-3" yoffset="27" xadvance="17" page="0" chnl="15" />
<char id="96" x="78" y="121" width="9" height="6" xoffset="4" yoffset="4" xadvance="17" page="0" chnl="15" />
<char id="97" x="107" y="102" width="19" height="15" xoffset="-1" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="98" x="60" y="25" width="20" height="19" xoffset="-2" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="99" x="165" y="101" width="18" height="15" xoffset="0" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="100" x="39" y="26" width="20" height="19" xoffset="-1" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="101" x="127" y="102" width="18" height="15" xoffset="-1" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="102" x="139" y="24" width="18" height="19" xoffset="0" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="103" x="0" y="26" width="20" height="20" xoffset="-1" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="104" x="81" y="24" width="19" height="19" xoffset="-1" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="105" x="21" y="26" width="17" height="20" xoffset="0" yoffset="4" xadvance="17" page="0" chnl="15" />
<char id="106" x="33" y="0" width="14" height="25" xoffset="1" yoffset="4" xadvance="17" page="0" chnl="15" />
<char id="107" x="101" y="24" width="18" height="19" xoffset="-1" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="108" x="176" y="23" width="17" height="19" xoffset="0" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="109" x="0" y="105" width="22" height="15" xoffset="-2" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="110" x="236" y="79" width="19" height="15" xoffset="-1" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="111" x="184" y="100" width="17" height="15" xoffset="0" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="112" x="215" y="0" width="20" height="20" xoffset="-2" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="113" x="194" y="0" width="20" height="20" xoffset="-1" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="114" x="146" y="101" width="18" height="15" xoffset="0" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="115" x="202" y="100" width="17" height="15" xoffset="0" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="116" x="120" y="24" width="18" height="19" xoffset="0" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="117" x="67" y="105" width="19" height="15" xoffset="-1" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="118" x="23" y="105" width="21" height="15" xoffset="-2" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="119" x="45" y="105" width="21" height="15" xoffset="-2" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="120" x="87" y="104" width="19" height="15" xoffset="-1" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="121" x="236" y="0" width="19" height="20" xoffset="-1" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="122" x="220" y="97" width="15" height="15" xoffset="1" yoffset="9" xadvance="17" page="0" chnl="15" />
<char id="123" x="83" y="0" width="11" height="23" xoffset="3" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="124" x="151" y="0" width="7" height="23" xoffset="5" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="125" x="95" y="0" width="11" height="23" xoffset="3" yoffset="5" xadvance="17" page="0" chnl="15" />
<char id="126" x="60" y="121" width="17" height="8" xoffset="0" yoffset="11" xadvance="17" page="0" chnl="15" />
</chars>
</font>
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<Screen Width="800" Height="480">
<Screen.Resources>
<ButtonStyle Name="PlayButtonStyle" TextureRegion="play-button" />
</Screen.Resources>
<Button Name="PlayButton" Style="PlayButtonStyle" />
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Bottom">
<Button Name="FacebookButton" />
<Button Name="TwitterButton" />
<Button Name="GooglePlusButton" />
</StackPanel>
</Screen>
Binary file not shown.

After

Width:  |  Height:  |  Size: 610 B

@@ -0,0 +1,20 @@
{
"TextureAtlas": "regular-explosion-sheet.json",
"Animations": [
{
"Name": "explode",
"FramesPerSecond": 16,
"Frames": [
"regularExplosion00",
"regularExplosion01",
"regularExplosion02",
"regularExplosion03",
"regularExplosion04",
"regularExplosion05",
"regularExplosion06",
"regularExplosion07",
"regularExplosion08"
]
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 881 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 692 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 667 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

@@ -0,0 +1,93 @@
{"frames": [
{
"filename": "regularExplosion00.png",
"frame": {"x":2,"y":2,"w":192,"h":192},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":192,"h":192},
"sourceSize": {"w":192,"h":192},
"pivot": {"x":0.5,"y":0.5}
},
{
"filename": "regularExplosion01.png",
"frame": {"x":196,"y":2,"w":152,"h":150},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":152,"h":150},
"sourceSize": {"w":152,"h":150},
"pivot": {"x":0.5,"y":0.5}
},
{
"filename": "regularExplosion02.png",
"frame": {"x":350,"y":2,"w":82,"h":91},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":82,"h":91},
"sourceSize": {"w":82,"h":91},
"pivot": {"x":0.5,"y":0.5}
},
{
"filename": "regularExplosion03.png",
"frame": {"x":2,"y":196,"w":92,"h":102},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":92,"h":102},
"sourceSize": {"w":92,"h":102},
"pivot": {"x":0.5,"y":0.5}
},
{
"filename": "regularExplosion04.png",
"frame": {"x":96,"y":196,"w":120,"h":124},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":120,"h":124},
"sourceSize": {"w":120,"h":124},
"pivot": {"x":0.5,"y":0.5}
},
{
"filename": "regularExplosion05.png",
"frame": {"x":218,"y":196,"w":133,"h":134},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":133,"h":134},
"sourceSize": {"w":133,"h":134},
"pivot": {"x":0.5,"y":0.5}
},
{
"filename": "regularExplosion06.png",
"frame": {"x":2,"y":332,"w":138,"h":140},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":138,"h":140},
"sourceSize": {"w":138,"h":140},
"pivot": {"x":0.5,"y":0.5}
},
{
"filename": "regularExplosion07.png",
"frame": {"x":142,"y":332,"w":143,"h":144},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":143,"h":144},
"sourceSize": {"w":143,"h":144},
"pivot": {"x":0.5,"y":0.5}
},
{
"filename": "regularExplosion08.png",
"frame": {"x":287,"y":332,"w":149,"h":151},
"rotated": false,
"trimmed": false,
"spriteSourceSize": {"x":0,"y":0,"w":149,"h":151},
"sourceSize": {"w":149,"h":151},
"pivot": {"x":0.5,"y":0.5}
}],
"meta": {
"app": "http://www.codeandweb.com/texturepacker",
"version": "1.0",
"image": "regular-explosion.png",
"format": "RGBA8888",
"size": {"w":438,"h":485},
"scale": "1",
"smartupdate": "$TexturePacker:SmartUpdate:98ae692ca0a173e85675618865346a23:050419c81994b49a0c48dc01e2d1b84c:0d3d2cb5875b2c23d78b2722385f0925$"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{D5314E38-8F5A-48A5-A092-BD8BBEACB5DD}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Demo.SpaceGame</RootNamespace>
<AssemblyName>Demo.SpaceGame</AssemblyName>
<MonoGamePlatform>DesktopGL</MonoGamePlatform>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Compile Include="Entities\BulletFactory.cs" />
<Compile Include="Entities\Entity.cs" />
<Compile Include="Entities\Explosion.cs" />
<Compile Include="Entities\Laser.cs" />
<Compile Include="Entities\Meteor.cs" />
<Compile Include="Entities\Spaceship.cs" />
<Compile Include="Entities\EntityManager.cs" />
<Compile Include="Game1.cs" />
<Compile Include="Entities\MeteorFactory.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="MonoGame.Framework">
<HintPath>$(MonoGameInstallDirectory)\MonoGame\v3.0\Assemblies\$(MonoGamePlatform)\MonoGame.Framework.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Content Include="Icon.ico" />
</ItemGroup>
<ItemGroup>
<None Include="Content\black.png" />
<None Include="Content\Fonts\courier-new-32_0.png" />
<None Include="Content\Gui\9patch-1.png" />
<None Include="Content\Gui\9patch-2.png" />
<None Include="Content\Gui\button-clicked.png" />
<None Include="Content\Gui\button-hover.png" />
<None Include="Content\Gui\button-locked.png" />
<None Include="Content\Gui\button-normal.png" />
<None Include="Content\laserBlue03.png" />
<None Include="Content\meteorBrown_big1.png" />
<None Include="Content\meteorBrown_big2.png" />
<None Include="Content\meteorBrown_big3.png" />
<None Include="Content\meteorBrown_big4.png" />
<None Include="Content\meteorBrown_med1.png" />
<None Include="Content\meteorBrown_med3.png" />
<None Include="Content\meteorBrown_small1.png" />
<None Include="Content\meteorBrown_small2.png" />
<None Include="Content\meteorBrown_tiny1.png" />
<None Include="Content\meteorBrown_tiny2.png" />
<None Include="Content\playerShip1_blue.png" />
<None Include="Content\regular-explosion.png" />
<None Include="Content\Screens\TitleScreen.xml" />
</ItemGroup>
<ItemGroup>
<MonoGameContentReference Include="Content\Content.mgcb" />
</ItemGroup>
<ItemGroup>
<Content Include="Content\explosion-animations.aa" />
<Content Include="Content\regular-explosion-sheet.json" />
<None Include="app.config" />
<None Include="Content\Fonts\courier-new-32.fnt" />
</ItemGroup>
<ItemGroup>
<Content Include="OpenTK.dll.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\MonoGame.Extended\MonoGame.Extended.csproj">
<Project>{41724c52-3d50-45bb-81eb-3c8a247eafd1}</Project>
<Name>MonoGame.Extended</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Content.Builder.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -0,0 +1,33 @@
using Microsoft.Xna.Framework;
using MonoGame.Extended.TextureAtlases;
namespace Demo.SpaceGame.Entities
{
public interface IBulletFactory
{
void Create(Vector2 position, Vector2 direction, float rotation, float speed);
}
public class BulletFactory : IBulletFactory
{
private readonly TextureRegion2D _bulletRegion;
private readonly IEntityManager _entityManager;
public BulletFactory(IEntityManager entityManager, TextureRegion2D bulletRegion)
{
_entityManager = entityManager;
_bulletRegion = bulletRegion;
}
public void Create(Vector2 position, Vector2 direction, float rotation, float speed)
{
var velocity = direction * speed;
var laser = new Laser(_bulletRegion, velocity)
{
Position = position,
Rotation = rotation
};
_entityManager.AddEntity(laser);
}
}
}
@@ -0,0 +1,23 @@
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
namespace Demo.SpaceGame.Entities
{
public abstract class Entity
{
public bool IsDestroyed { get; private set; }
protected Entity()
{
IsDestroyed = false;
}
public abstract void Update(GameTime gameTime);
public abstract void Draw(SpriteBatch spriteBatch);
public virtual void Destroy()
{
IsDestroyed = true;
}
}
}
@@ -0,0 +1,47 @@
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
namespace Demo.SpaceGame.Entities
{
public interface IEntityManager
{
T AddEntity<T>(T entity) where T : Entity;
}
public class EntityManager : IEntityManager
{
private readonly List<Entity> _entities;
public IEnumerable<Entity> Entities => _entities;
public EntityManager()
{
_entities = new List<Entity>();
}
public T AddEntity<T>(T entity) where T : Entity
{
_entities.Add(entity);
return entity;
}
public void Update(GameTime gameTime)
{
foreach (var entity in _entities.Where(e => !e.IsDestroyed))
{
entity.Update(gameTime);
}
_entities.RemoveAll(e => e.IsDestroyed);
}
public void Draw(SpriteBatch spriteBatch)
{
foreach (var entity in _entities.Where(e => !e.IsDestroyed))
{
entity.Draw(spriteBatch);
}
}
}
}
@@ -0,0 +1,35 @@
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using MonoGame.Extended.Animations;
using MonoGame.Extended.Sprites;
namespace Demo.SpaceGame.Entities
{
public class Explosion : Entity
{
private readonly SpriteSheetAnimator _animator;
public Explosion(SpriteSheetAnimationGroup animations, Vector2 position, float radius)
{
_animator = new SpriteSheetAnimator(animations)
{
Sprite = {
Position = position,
Scale = Vector2.One * radius * 0.2f
},
IsLooping = false
};
_animator.PlayAnimation("explode", Destroy);
}
public override void Update(GameTime gameTime)
{
_animator.Update(gameTime);
}
public override void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(_animator);
}
}
}
@@ -0,0 +1,56 @@
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using MonoGame.Extended.Sprites;
using MonoGame.Extended.TextureAtlases;
namespace Demo.SpaceGame.Entities
{
public class Laser : Entity
{
private readonly Sprite _sprite;
private float _timeToLive;
public Vector2 Position
{
get { return _sprite.Position; }
set { _sprite.Position = value; }
}
public float Rotation
{
get { return _sprite.Rotation; }
set { _sprite.Rotation = value; }
}
public Vector2 Velocity { get; set; }
public Laser(TextureRegion2D textureRegion, Vector2 velocity)
{
_timeToLive = 1.0f;
_sprite = new Sprite(textureRegion)
{
Scale = Vector2.One * 0.5f
};
Velocity = velocity;
}
public override void Update(GameTime gameTime)
{
var deltaTime = (float)gameTime.ElapsedGameTime.TotalSeconds;
Position += Velocity * deltaTime;
_timeToLive -= deltaTime;
if (_timeToLive <= 0)
{
Destroy();
}
}
public override void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(_sprite);
}
}
}
@@ -0,0 +1,77 @@
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using MonoGame.Extended.Shapes;
using MonoGame.Extended.Sprites;
using MonoGame.Extended.TextureAtlases;
namespace Demo.SpaceGame.Entities
{
public class Meteor : Entity
{
private const float _radius = 55f / 4f;
private readonly Sprite _sprite;
public CircleF BoundingCircle;
public int HealthPoints { get; private set; }
public Vector2 Position
{
get { return _sprite.Position; }
set
{
_sprite.Position = value;
BoundingCircle.Center = _sprite.Position;
}
}
public float Rotation
{
get { return _sprite.Rotation; }
set { _sprite.Rotation = value; }
}
public float RotationSpeed { get; }
public int Size { get; private set; }
public Vector2 Velocity { get; set; }
public Meteor(TextureRegion2D textureRegion, Vector2 position, Vector2 velocity, float rotationSpeed, int size)
{
_sprite = new Sprite(textureRegion);
BoundingCircle = new CircleF(_sprite.Position, _radius * size);
Position = position;
Velocity = velocity;
RotationSpeed = rotationSpeed;
HealthPoints = 1;
Size = size;
}
public void Damage(int damage)
{
HealthPoints -= damage;
if (HealthPoints <= 0)
{
Destroy();
}
}
public override void Update(GameTime gameTime)
{
var deltaTime = (float)gameTime.ElapsedGameTime.TotalSeconds;
Position += Velocity * deltaTime;
Rotation += RotationSpeed * deltaTime;
}
public override void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(_sprite);
}
public bool Contains(Vector2 position)
{
return BoundingCircle.Contains(position);
}
}
}
@@ -0,0 +1,89 @@
using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using MonoGame.Extended;
using MonoGame.Extended.Shapes;
using MonoGame.Extended.TextureAtlases;
namespace Demo.SpaceGame.Entities
{
public class MeteorFactory
{
private readonly EntityManager _entityManager;
private readonly Dictionary<int, TextureRegion2D[]> _meteorRegions;
private readonly Random _random = new Random();
public MeteorFactory(EntityManager entityManager, ContentManager contentManager)
{
_entityManager = entityManager;
_meteorRegions = new Dictionary<int, TextureRegion2D[]>
{
{4, new[]
{
new TextureRegion2D(contentManager.Load<Texture2D>("meteorBrown_big1")),
new TextureRegion2D(contentManager.Load<Texture2D>("meteorBrown_big2")),
new TextureRegion2D(contentManager.Load<Texture2D>("meteorBrown_big3")),
new TextureRegion2D(contentManager.Load<Texture2D>("meteorBrown_big4"))
}},
{3, new[]
{
new TextureRegion2D(contentManager.Load<Texture2D>("meteorBrown_med1")),
new TextureRegion2D(contentManager.Load<Texture2D>("meteorBrown_med3"))
}},
{2, new[]
{
new TextureRegion2D(contentManager.Load<Texture2D>("meteorBrown_small1")),
new TextureRegion2D(contentManager.Load<Texture2D>("meteorBrown_small2"))
}},
{1, new[]
{
new TextureRegion2D(contentManager.Load<Texture2D>("meteorBrown_tiny1")),
new TextureRegion2D(contentManager.Load<Texture2D>("meteorBrown_tiny2"))
}}
};
}
private TextureRegion2D GetMeteorRegion(int size)
{
var regions = _meteorRegions[size];
var index = _random.Next(0, regions.Length);
return regions[index];
}
public void SplitMeteor(Meteor meteor)
{
if (meteor.Size <= 1)
{
throw new InvalidOperationException("Meteor size less than 2 can't be split");
}
for (var i = 0; i < 2; i++)
{
var size = meteor.Size - 1;
var rotationSpeed = _random.Next(-10, 10) * 0.1f;
var spawnPosition = meteor.Position;
var velocity = i == 0 ? meteor.Velocity.PerpendicularClockwise() + meteor.Velocity : meteor.Velocity.PerpendicularCounterClockwise() + meteor.Velocity;
var textureRegion = GetMeteorRegion(size);
var newMeteor = new Meteor(textureRegion, spawnPosition, velocity, rotationSpeed, size);
_entityManager.AddEntity(newMeteor);
}
}
public void SpawnNewMeteor(Vector2 playerPosition)
{
var rotationSpeed = _random.Next(-10, 10) * 0.1f;
var spawnCircle = new CircleF(playerPosition, 630);
var spawnAngle = MathHelper.ToRadians(_random.Next(0, 360));
var spawnPosition = spawnCircle.GetPointAlongEdge(spawnAngle);
var velocity = (playerPosition - spawnPosition).Rotate(MathHelper.ToRadians(_random.Next(-15, 15))) * _random.Next(3, 10) * 0.01f;
var textureRegion = GetMeteorRegion(4);
var meteor = new Meteor(textureRegion, spawnPosition, velocity, rotationSpeed, 3);
_entityManager.AddEntity(meteor);
}
}
}
@@ -0,0 +1,94 @@
using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using MonoGame.Extended;
using MonoGame.Extended.Shapes;
using MonoGame.Extended.Sprites;
using MonoGame.Extended.TextureAtlases;
namespace Demo.SpaceGame.Entities
{
public class Spaceship : Entity
{
private readonly IBulletFactory _bulletFactory;
private readonly Sprite _sprite;
private float _fireCooldown;
public CircleF BoundingCircle;
public Vector2 Direction => Vector2.UnitX.Rotate(Rotation);
public Vector2 Position
{
get { return _sprite.Position; }
set
{
_sprite.Position = value;
BoundingCircle.Center = value;
}
}
public float Rotation
{
get { return _sprite.Rotation - MathHelper.ToRadians(90); }
set { _sprite.Rotation = value + MathHelper.ToRadians(90); }
}
public Vector2 Velocity { get; set; }
public Spaceship(TextureRegion2D textureRegion, IBulletFactory bulletFactory)
{
_bulletFactory = bulletFactory;
_sprite = new Sprite(textureRegion)
{
Scale = Vector2.One * 0.5f,
Position = new Vector2(400, 240)
};
BoundingCircle = new CircleF(_sprite.Position, 20);
}
public override void Update(GameTime gameTime)
{
var deltaTime = (float)gameTime.ElapsedGameTime.TotalSeconds;
Position += Velocity * deltaTime;
Velocity *= 0.98f;
if (_fireCooldown > 0)
{
_fireCooldown -= deltaTime;
}
}
public override void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(_sprite);
}
public void Accelerate(float acceleration)
{
Velocity += Direction * acceleration;
}
public void LookAt(Vector2 point)
{
Rotation = (float)Math.Atan2(point.Y - Position.Y, point.X - Position.X);
}
public void Fire()
{
if (_fireCooldown > 0)
{
return;
}
var angle = Rotation + MathHelper.ToRadians(90);
var muzzle1Position = Position + new Vector2(14, 0).Rotate(angle);
var muzzle2Position = Position + new Vector2(-14, 0).Rotate(angle);
_bulletFactory.Create(muzzle1Position, Direction, angle, 550f);
_bulletFactory.Create(muzzle2Position, Direction, angle, 550f);
_fireCooldown = 0.2f;
}
}
}
+229
View File
@@ -0,0 +1,229 @@
using System.Linq;
using Demo.SpaceGame.Entities;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using MonoGame.Extended;
using MonoGame.Extended.Animations;
using MonoGame.Extended.BitmapFonts;
using MonoGame.Extended.Shapes;
using MonoGame.Extended.TextureAtlases;
using MonoGame.Extended.ViewportAdapters;
namespace Demo.SpaceGame
{
public class Game1 : Game
{
private readonly EntityManager _entityManager;
// ReSharper disable once NotAccessedField.Local
private readonly GraphicsDeviceManager _graphicsDeviceManager;
private Texture2D _backgroundTexture;
private BulletFactory _bulletFactory;
private Camera2D _camera;
private SpriteSheetAnimationGroup _explosionAnimations;
private BitmapFont _font;
private MeteorFactory _meteorFactory;
private Spaceship _player;
private MouseState _previousMouseState;
private int _score;
private int _shieldHealth = 10;
private float _shieldRadius = 50;
private SpriteBatch _spriteBatch;
private ViewportAdapter _viewportAdapter;
public Game1()
{
_graphicsDeviceManager = new GraphicsDeviceManager(this);
_entityManager = new EntityManager();
Content.RootDirectory = "Content";
Window.AllowUserResizing = true;
Window.Position = Point.Zero;
IsMouseVisible = true;
}
//protected override void Initialize()
//{
// base.Initialize();
// _graphicsDeviceManager.IsFullScreen = true;
// _graphicsDeviceManager.PreferredBackBufferWidth = GraphicsDevice.DisplayMode.Width;
// _graphicsDeviceManager.PreferredBackBufferHeight = GraphicsDevice.DisplayMode.Height;
// _graphicsDeviceManager.ApplyChanges();
//}
protected override void LoadContent()
{
_viewportAdapter = new BoxingViewportAdapter(Window, GraphicsDevice, 800, 480);
_font = Content.Load<BitmapFont>("Fonts/courier-new-32");
_camera = new Camera2D(_viewportAdapter);
_explosionAnimations = Content.Load<SpriteSheetAnimationGroup>("explosion-animations");
_spriteBatch = new SpriteBatch(GraphicsDevice);
_backgroundTexture = Content.Load<Texture2D>("black");
var bulletTexture = Content.Load<Texture2D>("laserBlue03");
var bulletRegion = new TextureRegion2D(bulletTexture);
_bulletFactory = new BulletFactory(_entityManager, bulletRegion);
SpawnPlayer(_bulletFactory);
_meteorFactory = new MeteorFactory(_entityManager, Content);
for (var i = 0; i < 13; i++)
{
_meteorFactory.SpawnNewMeteor(_player.Position);
}
}
private void SpawnPlayer(BulletFactory bulletFactory)
{
var spaceshipTexture = Content.Load<Texture2D>("playerShip1_blue");
var spaceshipRegion = new TextureRegion2D(spaceshipTexture);
_player = _entityManager.AddEntity(new Spaceship(spaceshipRegion, bulletFactory));
}
protected override void UnloadContent()
{
}
protected override void Update(GameTime gameTime)
{
var deltaTime = gameTime.GetElapsedSeconds();
var keyboardState = Keyboard.GetState();
var mouseState = Mouse.GetState();
if (keyboardState.IsKeyDown(Keys.Escape))
{
Exit();
}
if (_player != null && !_player.IsDestroyed)
{
const float acceleration = 5f;
if (keyboardState.IsKeyDown(Keys.W) || keyboardState.IsKeyDown(Keys.Up))
{
_player.Accelerate(acceleration);
}
if (keyboardState.IsKeyDown(Keys.S) || keyboardState.IsKeyDown(Keys.Down))
{
_player.Accelerate(-acceleration);
}
if (keyboardState.IsKeyDown(Keys.A) || keyboardState.IsKeyDown(Keys.Left))
{
_player.Rotation -= deltaTime * 3f;
}
if (keyboardState.IsKeyDown(Keys.D) || keyboardState.IsKeyDown(Keys.Right))
{
_player.Rotation += deltaTime * 3f;
}
if (keyboardState.IsKeyDown(Keys.Space) || mouseState.LeftButton == ButtonState.Pressed)
{
_player.Fire();
}
if (_previousMouseState.X != mouseState.X || _previousMouseState.Y != mouseState.Y)
{
_player.LookAt(_camera.ScreenToWorld(new Vector2(mouseState.X, mouseState.Y)));
}
_camera.LookAt(_player.Position + _player.Velocity * 0.2f);
_camera.Zoom = 1.0f - _player.Velocity.Length() / 500f;
}
_entityManager.Update(gameTime);
CheckCollisions();
_previousMouseState = mouseState;
base.Update(gameTime);
}
private void CheckCollisions()
{
var meteors = _entityManager.Entities.Where(e => e is Meteor).Cast<Meteor>().ToArray();
var lasers = _entityManager.Entities.Where(e => e is Laser).Cast<Laser>().ToArray();
foreach (var meteor in meteors)
{
if (_player != null && !_player.IsDestroyed && _player.BoundingCircle.Intersects(meteor.BoundingCircle))
{
Explode(meteor.Position, meteor.Size);
Explode(_player.Position, 3);
_player.Destroy();
_player = null;
meteor.Destroy();
}
foreach (var laser in lasers.Where(laser => meteor.Contains(laser.Position)))
{
meteor.Damage(1);
laser.Destroy();
_score++;
Explode(laser.Position, meteor.Size);
if (meteor.Size >= 2)
{
_meteorFactory.SplitMeteor(meteor);
}
}
if (_player != null && _shieldHealth > 0 && meteor.BoundingCircle.Intersects(new CircleF(_player.Position, _shieldRadius)))
{
_shieldHealth--;
_shieldRadius--;
Explode(meteor.Position, meteor.Size);
meteor.Destroy();
}
}
}
private void Explode(Vector2 position, float radius)
{
var explosion = new Explosion(_explosionAnimations, position, radius);
_entityManager.AddEntity(explosion);
}
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.Black);
// background
var sourceRectangle = new Rectangle(0, 0, _viewportAdapter.VirtualWidth, _viewportAdapter.VirtualHeight);
sourceRectangle.Offset(_camera.Position * new Vector2(0.1f));
_spriteBatch.Begin(samplerState: SamplerState.LinearWrap, transformMatrix: _viewportAdapter.GetScaleMatrix());
_spriteBatch.Draw(_backgroundTexture, Vector2.Zero, sourceRectangle, Color.White);
_spriteBatch.DrawString(_font, $"{_score}", Vector2.One, Color.White);
_spriteBatch.End();
// entities
_spriteBatch.Begin(samplerState: SamplerState.LinearClamp, blendState: BlendState.AlphaBlend, transformMatrix: _camera.GetViewMatrix());
_entityManager.Draw(_spriteBatch);
_spriteBatch.End();
_spriteBatch.Begin(transformMatrix: _camera.GetViewMatrix());
if (_player != null && _shieldHealth > 0)
{
_spriteBatch.DrawCircle(_player.Position, _shieldRadius, 32, Color.Green, _shieldHealth);
}
_spriteBatch.End();
base.Draw(gameTime);
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<dllmap os="linux" dll="opengl32.dll" target="libGL.so.1" />
<dllmap os="linux" dll="glu32.dll" target="libGLU.so.1" />
<dllmap os="linux" dll="openal32.dll" target="libopenal.so.1" />
<dllmap os="linux" dll="alut.dll" target="libalut.so.0" />
<dllmap os="linux" dll="opencl.dll" target="libOpenCL.so" />
<dllmap os="linux" dll="libX11" target="libX11.so.6" />
<dllmap os="linux" dll="libXi" target="libXi.so.6" />
<dllmap os="linux" dll="SDL2.dll" target="libSDL2-2.0.so.0" />
<dllmap os="osx" dll="opengl32.dll" target="/System/Library/Frameworks/OpenGL.framework/OpenGL" />
<dllmap os="osx" dll="openal32.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="alut.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="libGLES.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv1_CM.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv2.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="opencl.dll" target="/System/Library/Frameworks/OpenCL.framework/OpenCL" />
<dllmap os="osx" dll="SDL2.dll" target="libSDL2.dylib" />
<!-- XQuartz compatibility (X11 on Mac) -->
<dllmap os="osx" dll="libGL.so.1" target="/usr/X11/lib/libGL.dylib" />
<dllmap os="osx" dll="libX11" target="/usr/X11/lib/libX11.dylib" />
<dllmap os="osx" dll="libXcursor.so.1" target="/usr/X11/lib/libXcursor.dylib" />
<dllmap os="osx" dll="libXi" target="/usr/X11/lib/libXi.dylib" />
<dllmap os="osx" dll="libXinerama" target="/usr/X11/lib/libXinerama.dylib" />
<dllmap os="osx" dll="libXrandr.so.2" target="/usr/X11/lib/libXrandr.dylib" />
</configuration>
+16
View File
@@ -0,0 +1,16 @@
using System;
namespace Demo.SpaceGame
{
internal static class Program
{
[STAThread]
private static void Main(string[] args)
{
using (var game = new Game1())
{
game.Run();
}
}
}
}
@@ -0,0 +1,39 @@
using System.Reflection;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("SpaceGame")]
[assembly: AssemblyProduct("SpaceGame")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("8d113802-8e43-4c89-a06e-a7d0625f70e6")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.5.0.629")]
[assembly: AssemblyFileVersion("3.5.0.629")]
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Some files were not shown because too many files have changed in this diff Show More