-1

所以我正在关注“C# Game Programming - For Serious Game Creation”一书,我参与了这本书的一部分,让您使用 Tao 创建 OpenGL 表单并将颜色从黑色更改为红色。这是我的代码,与书中完全相同

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Tao.OpenGl;

namespace GameLoop
{
    public partial class Form1 : Form
    {
        FastLoop _fastLoop;
        bool _fullscreen = false;
        public Form1()
        {
            _fastLoop = new FastLoop(GameLoop);
            InitializeComponent();
            _openGLControl.InitializeContexts();
            if (_fullscreen)
            {
                FormBorderStyle = FormBorderStyle.None;
                WindowState = FormWindowState.Maximized;
            }
        }
        void GameLoop(double elapsedTime)
        {
            Gl.glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
            Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
            Gl.glFinish();
            _openGLControl.Refresh();
        }
    }
}

我根本没有收到任何错误,它只是保持黑色。发生这种情况的可能原因是什么?

其他游戏循环的代码

static void GameLoop(double elapsedTime)
{
    // GameCode goes here
    // GetInput
    // Process
    // Render
    System.Console.WriteLine("Loop");
}
4

1 回答 1

0

感谢 Ali Kazmi 和 Matthew,我想通了。通过将代码放入 public Form1() 它起作用了,我能够得出结论,该方法没有更新,而且我对 C# 很陌生,我认为这是因为其他游戏循环没有让它走得那么远。我删除了它,一切正常。

于 2013-11-11T18:51:06.033 回答