當按下某個鍵時,屏幕上顯示了一個紋理。對此的檢查位於基於布爾help_on的更新方法中。按F1即可,如果help_on爲false,則顯示紋理並使help_on爲true。如果help_on爲true,那麼將其設爲false,這裏應該刪除一個精靈。任何人都可以給我一個小費嗎?我已經知道這可能不是做這件事的方法,但我不知道如何以另一種方式做。XNA正在刪除Sprite
1
A
回答
0
你需要做兩件事情,使這項工作,你打算:
首先,你需要存儲整個幀的鍵盤狀態,所以你可以檢查當狀態變化。所以:當一個鍵在一幀上「上」,然後在下一個「下」時,你知道該鍵被「按下」了該幀。
二,切換可變,只需設置新值變量爲「not」的變量的當前值(其設置爲它的倒數)。
請看下面的代碼,它可以把你的遊戲類:
bool help_on;
KeyboardState lastKeyboardState;
protected override void Update(GameTime gameTime)
{
KeyboardState keyboardState = Keyboard.GetState();
// If the F1 key went down on this frame
if(keyboardState.IsKeyDown(Keys.F1) && lastKeyboardState.IsKeyUp(Keys.F1))
{
help_on = !help_on; // Toggle the help_on variable
}
lastKeyboardState = keyboardState;
base.Update(gameTime);
}
protected override void Draw(GameTime gameTime)
{
if(help_on)
{
// Draw your help screen here
}
base.Draw(gameTime);
}
0
因爲我不知道你的遊戲架構做,我會提供一個非常簡單的方法:
在你更新方法:
kbdState = Keyboard.GetState();
help_on = kbdState.IsKeyDown(Keys.F1);
它總是好的緩存KeyboardState因爲你通常希望處理更多的按鍵,而不僅僅是F1。 然後,在你繪製方法:
if (help_on)
spriteBatch.Draw(...); //all your drawing code
+0
謝謝您的時間,但這個也不太工作。解決了。 – user2459750
相關問題
- 1. XNA sprite縮放
- 2. XNA Sprite旋轉
- 3. sprite在xna上敲擊
- 4. Phaser,刪除outOfBounds sprite
- 5. XNA Sprite旋轉點
- 6. 從cocos2d sprite中刪除b2body
- 7. Sprite,XNA,C#和優雅
- 8. XNA擦除/刪除紋理2D
- 9. Sprite工具包,刪除Sprite以進行碰撞
- 10. 初學xcode swift sprite kit - 刪除名稱爲sprite的精靈
- 11. Sprite刪除但Hitbox/Rect仍然
- 12. sprite工具包刪除特定節點
- 13. 如何從ArrayList中刪除Sprite/Object?
- 14. 從圖像中動態創建XNA sprite
- 15. XNA sprite基於alphas的相交測試?
- 16. XNA刪除着色器效果
- 17. 刪除第二個XNA遊戲模板
- 18. 正在刪除UITextField
- 19. 正在刪除* char []
- 20. 正在刪除BeautifulSoup
- 21. sprite碰撞檢測並從pygame中的組中刪除一個sprite
- 22. Pygame - 在一段時間後刪除/殺掉Sprite,無需輪詢
- 23. 如何在延遲時間後刪除sprite/b2body?
- 24. 在一段時間後刪除節點xcode sprite kit
- 25. cocos2d-xna:如果使用從sprite繼承的類的實例,則不繪製sprite
- 26. 何時在XNA中使用多個sprite批處理?
- 27. this.parentNode.parentNode.removeChild正在刪除父親
- 28. XSLT:正在刪除xmlns =「」
- 29. 正在刪除StopWords [Java]
- 30. Bash正在刪除命令?
我無法描述我對你的感恩回答!非常感謝:) – user2459750
@ user2459750沒問題。不要忘記接受答案:) –
@ user2459750另請注意,我對示例代碼做了一個小而重要的錯誤修復編輯。對於那個很抱歉 :) –