作者wa007123456 (大笨羊)
看板GameDesign
标题Re: [程式] XNA 关於class的问题
时间Sun Aug 15 17:38:03 2010
※ 引述《madturtle (旅者‧愚人‧梦想家 )》之铭言:
: 我是看这边的教学:
: http://creators.xna.com/en-US/education/gettingstarted/bg3d/chapter1
: 用他最後一章的原始码改出了一个TPS的操作。
: 现在的问题是:
: 有办法在GameObject这种类别中,加入Update()、Draw()这类method吗?
你的程式码已经继承 DrawableGameComponent
如果要加入的话可以加入下面的程式码
public override void Draw(GameTime gameTime)
{
//绘图
base.Draw(gameTime);
}
public override void Update(GameTime gameTime)
{
//逻辑运算
base.Update(gameTime);
}
然後Game1主程式里面要加入你的Component
public Game1()
{
........
this.Components.Add(myComponent);
//myComponent 是你的新元件
}
这样子你的元件就会一起跟主程式绘图 逻辑运算....等等
很方便吧!! 最重要的是这个元件你可以带着到处走
例如:你今天写了一个有网格的元件
就可以直接用到其他的游戏程式上面!!
: 例如把敌人的参数及行为全部编成另一个class。
: 教学中的GameObject类别,好像只用来宣告参数,
: 玩家、敌人的动作都是写在主程式里,
: 不过这样物件一多就会乱掉吧。
: 还有在新类别中,可以直接读取模型吗?
: public Model model = null;
: model = Content.Load<Model>("Models\\enemy");
不可以直接读取
一样要在LoadContent里面使用
像是:
protected override void LoadContent()
{
model=Game.Content.Load<Model>("enemy");
base.LoadContent();
}
注意!我用的是主程式Game的Content
: 这样写它都说「名称'Content'不存在於目前内容中」。
: 但是主程式里也没宣告Content,却可以用?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.226.13.45
1F:→ madturtle:感谢!等下去试试 08/15 17:58
2F:→ wa007123456:不会@@ 不过我好像有点写错了 囧 我在想一下 08/15 18:04
补充一下:
LoadContent也是在新的元件里面覆写的@@
※ 编辑: wa007123456 来自: 125.226.13.45 (08/15 18:44)
3F:推 SDNiceBoat:原来是这样啊.....我之前都手动LoadContent..... 08/15 20:10
4F:推 madturtle:可以用了,感谢 08/16 01:23