だから私は Triangle クラスを持っていて、三角形のインスタンスを描画したいのですが、何らかの理由で 1 つだけが描画され、その背後にあるロジックは私を超えています。
私は周りを見回してきましたが、すべての三角形が同じファイルに描かれている例しか見つかりませんでした。
これは Triangle クラスです。
public class Triangle:IGameObject
{
Vector3 position;
int speed;
public Triangle(int speed, Vector3 vec) {
this.speed = speed;
position = new Vector3(vec);
}
public void Update() { }
public void Render()
{
Gl.glPushMatrix();
Gl.glRotated(speed*Time.deltaTime,speed*Time.deltaTime,speed*Time.deltaTime,speed*Time.deltaTime);
Gl.glBegin(Gl.GL_TRIANGLE_STRIP);
Gl.glColor3f(1.0f, 0.0f, 0.0f);
Gl.glVertex3d(position.x, 0, 0);
Gl.glColor3d(0.0, 1.0, 0.0);
Gl.glVertex3d(position.y, 0, 0);
Gl.glColor3d(0.0, 0.0, 1.0);
Gl.glVertex3d(0, position.z, 0);
Gl.glEnd();
Gl.glPopMatrix();
}
}
ここに Form.cs があります
public partial class Form1 : Form
{
Triangle _trA = new Triangle(100, new Vector3(0.1f,-0.2f,0.2f));
Triangle _trB = new Triangle(50, new Vector3(0.5f, 0.3f, -0.1f));
public Form1()
{
InitializeComponent();
_openGLControl.InitializeContexts();
if (_fullscreen)
{
FormBorderStyle = FormBorderStyle.None;
WindowState = FormWindowState.Maximized;
}
else {
ClientSize = new Size(1280,720);
}
}
void GameLoop()
{
Gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
_trA.Render();
_trB.Render();
_openGLControl.Refresh();
}
}
オブジェクトに使用した後(または前)にマトリックスをクリアする必要があることを見たと思いますが、それを理解できません。
何か案は?