﻿<?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++博客-alligetor</title><link>http://www.cppblog.com/alligetor/</link><description>To hell and back</description><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:08:36 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:08:36 GMT</pubDate><ttl>60</ttl><item><title>测试</title><link>http://www.cppblog.com/alligetor/archive/2008/06/11/52815.html</link><dc:creator>alligetor</dc:creator><author>alligetor</author><pubDate>Tue, 10 Jun 2008 16:13:00 GMT</pubDate><guid>http://www.cppblog.com/alligetor/archive/2008/06/11/52815.html</guid><wfw:comment>http://www.cppblog.com/alligetor/comments/52815.html</wfw:comment><comments>http://www.cppblog.com/alligetor/archive/2008/06/11/52815.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alligetor/comments/commentRss/52815.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alligetor/services/trackbacks/52815.html</trackback:ping><description><![CDATA[<p>over</p><img src ="http://www.cppblog.com/alligetor/aggbug/52815.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alligetor/" target="_blank">alligetor</a> 2008-06-11 00:13 <a href="http://www.cppblog.com/alligetor/archive/2008/06/11/52815.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OGRE笔记 2</title><link>http://www.cppblog.com/alligetor/archive/2007/11/28/37420.html</link><dc:creator>alligetor</dc:creator><author>alligetor</author><pubDate>Wed, 28 Nov 2007 03:19:00 GMT</pubDate><guid>http://www.cppblog.com/alligetor/archive/2007/11/28/37420.html</guid><wfw:comment>http://www.cppblog.com/alligetor/comments/37420.html</wfw:comment><comments>http://www.cppblog.com/alligetor/archive/2007/11/28/37420.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alligetor/comments/commentRss/37420.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alligetor/services/trackbacks/37420.html</trackback:ping><description><![CDATA[刚刚写了1，马上就写2，有点骗人的嫌疑 o(&#8745;_&#8745;)o...<br>做完了1的步骤之后，我们的代码应该是<br><br>
<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"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ExampleApplication.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;TutorialApplication&nbsp;:&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;ExampleApplication<br><img id=Codehighlighter1_87_453_Open_Image onclick="this.style.display='none'; Codehighlighter1_87_453_Open_Text.style.display='none'; Codehighlighter1_87_453_Closed_Image.style.display='inline'; Codehighlighter1_87_453_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_87_453_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_87_453_Closed_Text.style.display='none'; Codehighlighter1_87_453_Open_Image.style.display='inline'; Codehighlighter1_87_453_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_87_453_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_87_453_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;TutorialApplication()<br><img id=Codehighlighter1_132_135_Open_Image onclick="this.style.display='none'; Codehighlighter1_132_135_Open_Text.style.display='none'; Codehighlighter1_132_135_Closed_Image.style.display='inline'; Codehighlighter1_132_135_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_132_135_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_132_135_Closed_Text.style.display='none'; Codehighlighter1_132_135_Open_Image.style.display='inline'; Codehighlighter1_132_135_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_132_135_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_132_135_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">TutorialApplication()&nbsp;<br><img id=Codehighlighter1_164_167_Open_Image onclick="this.style.display='none'; Codehighlighter1_164_167_Open_Text.style.display='none'; Codehighlighter1_164_167_Closed_Image.style.display='inline'; Codehighlighter1_164_167_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_164_167_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_164_167_Closed_Text.style.display='none'; Codehighlighter1_164_167_Open_Image.style.display='inline'; Codehighlighter1_164_167_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_164_167_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_164_167_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;createScene(</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_205_451_Open_Image onclick="this.style.display='none'; Codehighlighter1_205_451_Open_Text.style.display='none'; Codehighlighter1_205_451_Closed_Image.style.display='inline'; Codehighlighter1_205_451_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_205_451_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_205_451_Closed_Text.style.display='none'; Codehighlighter1_205_451_Open_Image.style.display='inline'; Codehighlighter1_205_451_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_205_451_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_205_451_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mSceneMgr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">setAmbientLight(&nbsp;ColourValue(&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Entity&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">ent1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;mSceneMgr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">createEntity(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Robot</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">robot.mesh</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SceneNode&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">node1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;mSceneMgr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">getRootSceneNode()</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">createChildSceneNode(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">RobotNode</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;node1</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">attachObject(&nbsp;ent1&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;</span></div>
讲了半天结果只有createScene中的四行是刚刚加进去的。。。汗<br><br>还是这个例子，刚刚我们并没有指定要把Robot放到哪里，但是OGRE&#8220;擅作主张&#8221;的把它放在了&#8220;一个位置&#8221;，这是为什么呢？<br>接着看这段代码<br>
<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"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">Entity&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">ent2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;mSceneMgr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">createEntity(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Robot2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">robot.mesh</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SceneNode&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">node2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;mSceneMgr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">getRootSceneNode()</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">createChildSceneNode(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">RobotNode2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;Vector3(&nbsp;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;)&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;node2</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">attachObject(&nbsp;ent2&nbsp;);</span></div>
这里的createChildSceneNode函数有两个参数，第二个参数明确的指定了这个节点"RobotNode2"对于根节点的<span style="COLOR: #ff0000"><strong>相对</strong></span>位置，顺便提一下，这个组织场景的方法貌似叫做节点树，以后会提到。<br>这个node相对于根节点的位置是(50,0,0)，也就是说它的位置要由根节点移动(50,0,0)的距离<br>如果把第二行改为直接由node1创建子节点"RobotNode2"，即<br>
<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"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">SceneNode&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">node2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;node1</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">createChildSceneNode(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">RobotNode2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;Vector3(&nbsp;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;)&nbsp;);</span></div>
这时node2是相对于node1移动(50,0,0)的距离而不是根节点，这点要注意。<br><br>如果这个节点树为rootNode-&gt;node1-&gt;node2，这个时候父节点变化则子节点跟着变化，而子节点变化的时候则对父节点无影响<br><br>OK，暂且说这些，还有些函数，等第三次笔记补齐<br><br><br>
<img src ="http://www.cppblog.com/alligetor/aggbug/37420.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alligetor/" target="_blank">alligetor</a> 2007-11-28 11:19 <a href="http://www.cppblog.com/alligetor/archive/2007/11/28/37420.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OGRE笔记 1</title><link>http://www.cppblog.com/alligetor/archive/2007/11/28/37417.html</link><dc:creator>alligetor</dc:creator><author>alligetor</author><pubDate>Wed, 28 Nov 2007 02:53:00 GMT</pubDate><guid>http://www.cppblog.com/alligetor/archive/2007/11/28/37417.html</guid><wfw:comment>http://www.cppblog.com/alligetor/comments/37417.html</wfw:comment><comments>http://www.cppblog.com/alligetor/archive/2007/11/28/37417.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alligetor/comments/commentRss/37417.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alligetor/services/trackbacks/37417.html</trackback:ping><description><![CDATA[从头开始学，部分代码取自wiki<br><br>wiki上给的第一个Tutorial 是Beginner Tutorial 1: The SceneNode, Entity, and SceneManager constru<br><br>开始的框架什么也没有，不过给了一个TutorialApplication&nbsp;类的&#8220;空壳&#8221;而已<br>
<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"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ExampleApplication.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;TutorialApplication&nbsp;:&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;ExampleApplication<br><img id=Codehighlighter1_87_237_Open_Image onclick="this.style.display='none'; Codehighlighter1_87_237_Open_Text.style.display='none'; Codehighlighter1_87_237_Closed_Image.style.display='inline'; Codehighlighter1_87_237_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_87_237_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_87_237_Closed_Text.style.display='none'; Codehighlighter1_87_237_Open_Image.style.display='inline'; Codehighlighter1_87_237_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_87_237_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_87_237_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;TutorialApplication()<br><img id=Codehighlighter1_138_144_Open_Image onclick="this.style.display='none'; Codehighlighter1_138_144_Open_Text.style.display='none'; Codehighlighter1_138_144_Closed_Image.style.display='inline'; Codehighlighter1_138_144_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_138_144_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_138_144_Closed_Text.style.display='none'; Codehighlighter1_138_144_Open_Image.style.display='inline'; Codehighlighter1_138_144_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_138_144_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_138_144_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">TutorialApplication()&nbsp;<br><img id=Codehighlighter1_179_185_Open_Image onclick="this.style.display='none'; Codehighlighter1_179_185_Open_Text.style.display='none'; Codehighlighter1_179_185_Closed_Image.style.display='inline'; Codehighlighter1_179_185_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_179_185_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_179_185_Closed_Text.style.display='none'; Codehighlighter1_179_185_Open_Image.style.display='inline'; Codehighlighter1_179_185_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_179_185_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_179_185_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;createScene(</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_229_235_Open_Image onclick="this.style.display='none'; Codehighlighter1_229_235_Open_Text.style.display='none'; Codehighlighter1_229_235_Closed_Image.style.display='inline'; Codehighlighter1_229_235_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_229_235_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_229_235_Closed_Text.style.display='none'; Codehighlighter1_229_235_Open_Image.style.display='inline'; Codehighlighter1_229_235_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_229_235_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_229_235_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>然后大概就是先设置环境光，用setAmbientLight函数，wiki上给的方法是<br>
<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"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">mSceneMgr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">setAmbientLight(&nbsp;ColourValue(&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)&nbsp;);</span></div>
注意里面ColorValue里面的元素是由0到1的。<br><br>然后就可以创建&#8220;实体（Entity）&#8221;了，wiki的方法是<br>
<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"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">Entity&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">ent1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;mSceneMgr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">createEntity(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Robot</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">robot.mesh</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;);</span></div>
注意的是我们几乎从来不在程序中直接创建一个entiry，场景中的entity的创建和管理一般是由scenemanager完成的，所以调用上面这个函数创建实体<br>mSceneMgr是在ExampleApplication类中已经定义好了的（以后笔记中会专门介绍这个类）。createEntity这个函数有两个参数，第一个是实体的&#8220;名字&#8221;每个实体都要有一个&#8220;独一无二&#8221;的名字，重名是不允许的。第二个参数是这个实体使用的mesh文件，在ExampleApplication中已经加载了程序的资源配置信息，这里是resources.cfg，可以自己修改这个文件。<br><br>实体创建之后就要把它和一个SceneNode，每个SceneManager都有一个RootSceneNode，我们可以把这个实体当作一个RootSceneNode的ChildSceneNode加入其中<br><br>首先创建一个子节点(ChildSceneNode)<br>
<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"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">SceneNode&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">node1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;mSceneMgr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">getRootSceneNode()</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">createChildSceneNode(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">RobotNode</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;);</span></div>
这段代码用getRootSceneNode找到mSceneMgr的RootSceneNode，然后再创建它的子节点(ChildSceneNode)，参数也是&#8220;名字&#8221;而且独一无二<br><br>接下来就是把刚才的实体和这个子节点结合<br>
<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"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">node1</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">attachObject(&nbsp;ent1&nbsp;);</span></div>
<br>然后就可以编译并且运行了
<img src ="http://www.cppblog.com/alligetor/aggbug/37417.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alligetor/" target="_blank">alligetor</a> 2007-11-28 10:53 <a href="http://www.cppblog.com/alligetor/archive/2007/11/28/37417.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>