FullScreen Mode : Switch (Part 1)

posted on 12 Oct 2008 02:02 by ninetales in XNA

FullScreen Mode Switching หรือ Toggle FullScreen
คำสั่งจริงๆเพียงแค่ บรรทัดเดียวอีกแล้ว

graphics.ToggleFullScreen();

ไม่ว่าจะอยู่ส่วนใหนของเกม
เจอคำสั่งนี้เข้าไป จาก FullScreen จะกลายเป็น Windows
จาก Windows จะกลายเป็น FullScreen

ทีนี้ มาลองยัด Code ใส่เข้าไปในโปรแกรมกันดีกว่า
ตรง Update ผมให้กด F10 เป็น ToggleFullScreen ละกันครับ

        protected override void Update(GameTime gameTime)
        {

            if (Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            if (Keyboard.GetState().IsKeyDown(Keys.F10))
            {
                graphics.ToggleFullScreen();
            }


            base.Update(gameTime);
        }

ทีนี้กด F5 Run ดู แล้วลองกด F10 ***อย่ากดแช่นานระวังแฮงค์***
สำหรับบางเครื่อง กด(ไวๆ) แล้วปล่อย อาจจะดูไม่มีปัญหาอะไร
แต่บางเครื่องจะพบว่า มัน "วูบวาบ"

Why?
เพราะว่า XNA ทำการเช็คทุกรอบนั่นเอง ว่า เราได้ทำการ "กดอยู่" รึเปล่า
เพราะฉะนั้นในการกด 1 ครั้งของเรา เกมก็อาจจะ run ไปหลาย loop แล้ว
เครื่องจึงอาจจะพยายามทำการ ToggleFullScreen หลายครั้งใน1 วินาที!!!

Why? ทำไม Exit() ทำได้? ทั้งๆที่เขียน code คล้ายๆกัน
ก็ ออกแล้วมันออกเลยนี่ครับ
กดไปแล้ว มันไม่กลับมาเช็คว่า เราจะออกอีกหรือเปล่า เพราะเกมเรา จบ แล้ว...

...ต่อตอนต่อไป

edit @ 13 Oct 2008 17:19:47 by 『Ninetales』

Comment

Comment:

Tweet

『Ninetales』 View my profile