﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-killshen-文章分类-SDL</title><link>http://www.cppblog.com/killshen/category/2780.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 15 Jun 2008 02:19:01 GMT</lastBuildDate><pubDate>Sun, 15 Jun 2008 02:19:01 GMT</pubDate><ttl>60</ttl><item><title>SDL学习(2)</title><link>http://www.cppblog.com/killshen/articles/13469.html</link><dc:creator>魔剑</dc:creator><author>魔剑</author><pubDate>Sun, 08 Oct 2006 14:29:00 GMT</pubDate><guid>http://www.cppblog.com/killshen/articles/13469.html</guid><wfw:comment>http://www.cppblog.com/killshen/comments/13469.html</wfw:comment><comments>http://www.cppblog.com/killshen/articles/13469.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/killshen/comments/commentRss/13469.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/killshen/services/trackbacks/13469.html</trackback:ping><description><![CDATA[
		<p>现在就来开始我的第一个windows涂鸦程序<br /><br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #008080"> 1</span> <span style="COLOR: #000000">#include </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdlib.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 2</span> <span style="COLOR: #000000">#include </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">sdl.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 3</span> <span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 4</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> DrawPixel(SDL_Surface</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">,Uint8,Uint8,Uint8);  <br /></span><span style="COLOR: #008080"> 5</span> <span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 6</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> argc,</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">argv[])<br /></span><span style="COLOR: #008080"> 7</span> <span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 8</span> <span style="COLOR: #000000">    SDL_Surface </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">screen </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL;<br /></span><span style="COLOR: #008080"> 9</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(SDL_Init(SDL_INIT_VIDEO))<br /></span><span style="COLOR: #008080">10</span> <span style="COLOR: #000000">    {<br /></span><span style="COLOR: #008080">11</span> <span style="COLOR: #000000">        fprintf(stderr,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">无法初始化! %s</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,SDL_GetError());<br /></span><span style="COLOR: #008080">12</span> <span style="COLOR: #000000">        exit(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">13</span> <span style="COLOR: #000000">    }<br /></span><span style="COLOR: #008080">14</span> <span style="COLOR: #000000">    atexit(SDL_Quit);<br /></span><span style="COLOR: #008080">15</span> <span style="COLOR: #000000">    <br /></span><span style="COLOR: #008080">16</span> <span style="COLOR: #000000">    screen </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> SDL_SetVideoMode(</span><span style="COLOR: #000000">800</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">600</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">32</span><span style="COLOR: #000000">,SDL_HWSURFACE</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">SDL_DOUBLEBUF);<br /></span><span style="COLOR: #008080">17</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(screen </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> NULL)<br /></span><span style="COLOR: #008080">18</span> <span style="COLOR: #000000">    {<br /></span><span style="COLOR: #008080">19</span> <span style="COLOR: #000000">        fprintf(stderr,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">无法设置800*600分辨率 %s</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,SDL_GetError());<br /></span><span style="COLOR: #008080">20</span> <span style="COLOR: #000000">        exit(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">21</span> <span style="COLOR: #000000">    }<br /></span><span style="COLOR: #008080">22</span> <span style="COLOR: #000000">    <br /></span><span style="COLOR: #008080">23</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> x</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; x</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">800</span><span style="COLOR: #000000">; x</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br /></span><span style="COLOR: #008080">24</span> <span style="COLOR: #000000">    {<br /></span><span style="COLOR: #008080">25</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> y</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; y</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">600</span><span style="COLOR: #000000">; y</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br /></span><span style="COLOR: #008080">26</span> <span style="COLOR: #000000">        {<br /></span><span style="COLOR: #008080">27</span> <span style="COLOR: #000000">            DrawPixel(screen,x,y,x,y,(x</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">y)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">28</span> <span style="COLOR: #000000">        }<br /></span><span style="COLOR: #008080">29</span> <span style="COLOR: #000000">    }<br /></span><span style="COLOR: #008080">30</span> <span style="COLOR: #000000">    SDL_Flip(screen);<br /></span><span style="COLOR: #008080">31</span> <span style="COLOR: #000000">    SDL_Event </span><span style="COLOR: #0000ff">event</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">32</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> sing </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">33</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(sing</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br /></span><span style="COLOR: #008080">34</span> <span style="COLOR: #000000">    {<br /></span><span style="COLOR: #008080">35</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(SDL_PollEvent(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #0000ff">event</span><span style="COLOR: #000000">))<br /></span><span style="COLOR: #008080">36</span> <span style="COLOR: #000000">        {<br /></span><span style="COLOR: #008080">37</span> <span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">event</span><span style="COLOR: #000000">.type</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">SDL_QUIT)<br /></span><span style="COLOR: #008080">38</span> <span style="COLOR: #000000">                 sing </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">39</span> <span style="COLOR: #000000">        }    <br /></span><span style="COLOR: #008080">40</span> <span style="COLOR: #000000">    }    <br /></span><span style="COLOR: #008080">41</span> <span style="COLOR: #000000">    SDL_FreeSurface(screen);<br /></span><span style="COLOR: #008080">42</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">43</span> <span style="COLOR: #000000">}<br /></span><span style="COLOR: #008080">44</span> <span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">45</span> <span style="COLOR: #000000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">==============================================================================</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">46</span> <span style="COLOR: #008000"></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> DrawPixel(SDL_Surface </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">screen,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> x,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> y,Uint8 R,Uint8 G,Uint8 B)<br /></span><span style="COLOR: #008080">47</span> <span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">48</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(SDL_MUSTLOCK(screen))<br /></span><span style="COLOR: #008080">49</span> <span style="COLOR: #000000">    {<br /></span><span style="COLOR: #008080">50</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(SDL_LockSurface(screen)</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br /></span><span style="COLOR: #008080">51</span> <span style="COLOR: #000000">        {<br /></span><span style="COLOR: #008080">52</span> <span style="COLOR: #000000">           </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">53</span> <span style="COLOR: #000000">        }<br /></span><span style="COLOR: #008080">54</span> <span style="COLOR: #000000">    }<br /></span><span style="COLOR: #008080">55</span> <span style="COLOR: #000000">    Uint32 color </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> SDL_MapRGB(screen</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">format,R,G,B);<br /></span><span style="COLOR: #008080">56</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">switch</span><span style="COLOR: #000000">(screen</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">format</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">BytesPerPixel)<br /></span><span style="COLOR: #008080">57</span> <span style="COLOR: #000000">    {<br /></span><span style="COLOR: #008080">58</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">:<br /></span><span style="COLOR: #008080">59</span> <span style="COLOR: #000000">            {<br /></span><span style="COLOR: #008080">60</span> <span style="COLOR: #000000">                Uint8 </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">bufp;<br /></span><span style="COLOR: #008080">61</span> <span style="COLOR: #000000">                bufp </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (Uint8 </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)screen</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">pixels</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">y</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">screen</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">pitch</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">x;<br /></span><span style="COLOR: #008080">62</span> <span style="COLOR: #000000">                </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">bufp </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> color;<br /></span><span style="COLOR: #008080">63</span> <span style="COLOR: #000000">            }<br /></span><span style="COLOR: #008080">64</span> <span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">65</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">:<br /></span><span style="COLOR: #008080">66</span> <span style="COLOR: #000000">            {<br /></span><span style="COLOR: #008080">67</span> <span style="COLOR: #000000">                Uint16 </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">bufp;<br /></span><span style="COLOR: #008080">68</span> <span style="COLOR: #000000">                bufp </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (Uint16 </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)screen</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">pixels</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">y</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">screen</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">pitch</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">x;<br /></span><span style="COLOR: #008080">69</span> <span style="COLOR: #000000">                </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">bufp </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> color;<br /></span><span style="COLOR: #008080">70</span> <span style="COLOR: #000000">            }<br /></span><span style="COLOR: #008080">71</span> <span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">72</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">:<br /></span><span style="COLOR: #008080">73</span> <span style="COLOR: #000000">            {<br /></span><span style="COLOR: #008080">74</span> <span style="COLOR: #000000">                Uint8 </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">bufp;<br /></span><span style="COLOR: #008080">75</span> <span style="COLOR: #000000">                bufp </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (Uint8 </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)screen</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">pixels</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">y</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">screen</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">pitch</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">x;<br /></span><span style="COLOR: #008080">76</span> <span style="COLOR: #000000">                </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(bufp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">screen</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">format</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Rshift</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> R;<br /></span><span style="COLOR: #008080">77</span> <span style="COLOR: #000000">                </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(bufp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">screen</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">format</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Gshift</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> G;<br /></span><span style="COLOR: #008080">78</span> <span style="COLOR: #000000">                </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(bufp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">screen</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">format</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Gshift</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> B;<br /></span><span style="COLOR: #008080">79</span> <span style="COLOR: #000000">            }<br /></span><span style="COLOR: #008080">80</span> <span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">81</span> <span style="COLOR: #000000">         </span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">:<br /></span><span style="COLOR: #008080">82</span> <span style="COLOR: #000000">             {<br /></span><span style="COLOR: #008080">83</span> <span style="COLOR: #000000">                 Uint32 </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">bufp;<br /></span><span style="COLOR: #008080">84</span> <span style="COLOR: #000000">                 bufp </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (Uint32 </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)screen</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">pixels</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">y</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">screen</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">pitch</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">x;<br /></span><span style="COLOR: #008080">85</span> <span style="COLOR: #000000">                 </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">bufp </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> color;<br /></span><span style="COLOR: #008080">86</span> <span style="COLOR: #000000">             }<br /></span><span style="COLOR: #008080">87</span> <span style="COLOR: #000000">             </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">88</span> <span style="COLOR: #000000">     }                          <br /></span><span style="COLOR: #008080">89</span> <span style="COLOR: #000000">     </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(SDL_MUSTLOCK(screen))<br /></span><span style="COLOR: #008080">90</span> <span style="COLOR: #000000">     {<br /></span><span style="COLOR: #008080">91</span> <span style="COLOR: #000000">         SDL_UnlockSurface(screen);<br /></span><span style="COLOR: #008080">92</span> <span style="COLOR: #000000">     }<br /></span><span style="COLOR: #008080">93</span> <span style="COLOR: #000000">}                                     </span></div>好了这段代码是我从网上找资料七拼八凑起来的，在dev-cpp里可以通过编译。运行结果当然是...自己看，<br />记得编译时要修改工程属性为 windows图形程序 在连接器里加参数 -lmingw32 -lSDLmain -lSDL<br />在来分析下代码，我承认我很懒从不写注释。<br />主要介绍几个SDL函数，也加强一下自己的记忆<br />1。 SDL_Init( )<br />              原型  <br />             <font face="Courier New">int <b class="FSFUNC">SDL_Init</b>(Uint32 flags);<br /></font>        初始化SDL环境 ，即视频，声音，定时器，CDROM,游戏手柄等等<br />              flags 取值为以下组合 <br />                   SDL_INIT_VIDEO     视频<br />                   SDL_INIT_TIMER      定时器<br />                   SDL_INIT_AUDIO     声音<br />                   SDL_INIT_CDROM    CDROM<br />        成功返回0否则返回-1。<br />       注意：在程序退出之前要调用 SDL_Quit( ) 在每个退出点前都要调用 SDL_Quit( )<br />                  为了避免这个麻烦，可以用 atexit(SDL_Quit) 申明一下，这样不管是从哪里退出，系统都会自动  调用 SDL_Quit( )了。                        <br />        <br />2。SDL_SetVideoMode( )<br />         函数原形是 <font face="Courier New">SDL_Surface *<b class="FSFUNC">SDL_SetVideoMode</b>(int width, int height, int bpp, Uint32 flags)<br />    设置屏幕的分辨率，成功的话返回一个 SDL_Surface 的指针，否则返回NULL <br />    width和height就是长和宽，bpp是颜色位数。<br />    flags取值为以下组合<br />      SDL_SWSURFACE     在内存中创建surface<br />      SDL_HWSURFACE     在现存中创建surface<br />      SDL_DOUBLEBUF     启用双缓冲<br />      SDL_FULLSCREEN    全屏<br />   还有其他取值，不过这四个是最常用的，通常的组合是 SDL_HWSURFACE|SDL_DOUBLEBUF<br /><br />  再来说一下SDL_Surface 这个东东，SDL里的所有一切都是画在SDL_Surface上的。     <br /><br />3。DrawPixel()<br />   这个自己写的函数是照操SDL官网上的，就是在 x,y处画一个颜色为 (R,G,B)颜色的点，说实话，我也不理解这里面的内容，不过照着用就行了。SDL_Flip(screen)是刷新 screen，即在屏幕上显示出screen中画的所有的点。<br /><br />4。接下来就是一个非常简陋的消息循环了,SDL_Event 是SDL的消息结构，SDL_PollEvent()不停的从消息队列里取出消息。<br /><br />5。SDL_FreeSurface(screen) 释放掉screen 记得你创建一个 SDL_Surface 一定要记得释放，否则。。。。<br /><br />基本代码就这样了。<br />参考资料  SDL中文教程 <a href="http://www.libsdl.org/intro.cn/toc.html">http://www.libsdl.org/intro.cn/toc.html</a><br />        SDL API参考 <a href="http://my.sdlgame.com/sdl/documentation/index.html">http://my.sdlgame.com/sdl/documentation/index.html</a><br />          <br /><br />     <br /></font><br /><img src ="http://www.cppblog.com/killshen/aggbug/13469.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/killshen/" target="_blank">魔剑</a> 2006-10-08 22:29 <a href="http://www.cppblog.com/killshen/articles/13469.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SDL学习(1)</title><link>http://www.cppblog.com/killshen/articles/13439.html</link><dc:creator>魔剑</dc:creator><author>魔剑</author><pubDate>Sat, 07 Oct 2006 23:34:00 GMT</pubDate><guid>http://www.cppblog.com/killshen/articles/13439.html</guid><wfw:comment>http://www.cppblog.com/killshen/comments/13439.html</wfw:comment><comments>http://www.cppblog.com/killshen/articles/13439.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/killshen/comments/commentRss/13439.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/killshen/services/trackbacks/13439.html</trackback:ping><description><![CDATA[
		<p>      开始学c++，不想老是写出那种黑黑的控制台程序，想搞点图形，动画等比较有意思的小程序，可是google了半天放弃了，为了画个小图形，要搞个窗口，还要GDI之类的API。还是等以后慢慢在搞把，好怀念以前的 DOS Turboc C 想画什么画什么。<br />      终于给我找到了 SDL 终于可以画图玩了，还可以写些小游戏自娱自乐，不错。<br /><br />首先要有一套 SDL 的开发库 要的东东在SDL主页上都有 <a href="http://www.libsdl.org/">http://www.libsdl.org/</a>  还有一个中文的简易教程 <a href="http://www.libsdl.org/intro.cn/toc.html">http://www.libsdl.org/intro.cn/toc.html</a><br /><br />或者在我的空间里下<br /> SDL开发包<br />  <a href="/Files/killshen/SDL-devel-1.2.11-mingw32.rar">http://www.cppblog.com/Files/killshen/SDL-devel-1.2.11-mingw32.rar</a><br /><br />SDL运行库  <br />  <a href="/Files/killshen/SDL1.2.11win32.zip">ttp://www.cppblog.com/Files/killshen/SDL1.2.11win32.zip</a><br /><br />SDL扩展库支持各种图形格式              <br />  <a href="/Files/killshen/SDL_image-devel-1.2.5-VC6.zip">http://www.cppblog.com/Files/killshen/SDL_image-devel-1.2.5-VC6.zip</a><br /><br />SDL扩展库运行库<br />  <a href="/Files/killshen/SDL_image-1.2.5-win32.zip">http://www.cppblog.com/Files/killshen/SDL_image-1.2.5-win32.zip</a>  <br /><br />下下来之后就开始配制环境了，我用的是 dev-cpp 就说 dev-cpp 的配制方法。<br />  SDL开发包下完解压后，把里面的 include目录,bin目录，lib目录 里的所有文件都copy 到dev-cpp 安装目录的对应文件夹里。把SDL运行库里的 sdl.dll文件copy 到 c:\window\system32 里。SDL扩展库里的 东东也一样分别放到 dev-cpp的对应目录里。SDL扩展库里的东西都copy到c:\window\system32里。好了要用的东东都放好了。<br /><br />编译SDL程序的时候 要加参数 -lmingw32 -lSDLmain -lSDL -SDL_image ，或者建个空工程 在工程属性==》参数==》连接一栏里添加 -lmingw32 -lSDLmain -lSDL -SDL_image 。<br /><br />ok可万事具备开始写程序了。</p>
<img src ="http://www.cppblog.com/killshen/aggbug/13439.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/killshen/" target="_blank">魔剑</a> 2006-10-08 07:34 <a href="http://www.cppblog.com/killshen/articles/13439.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>