作者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
→ madturtle:感謝!等下去試試 08/15 17:58
→ wa007123456:不會@@ 不過我好像有點寫錯了 囧 我在想一下 08/15 18:04
補充一下:
LoadContent也是在新的元件裡面覆寫的@@
※ 編輯: wa007123456 來自: 125.226.13.45 (08/15 18:44)
推 SDNiceBoat:原來是這樣啊.....我之前都手動LoadContent..... 08/15 20:10
推 madturtle:可以用了,感謝 08/16 01:23