わかりましたので、Chili による一連のチュートリアルに従っています。宿題は、塗りつぶされた立方体のコードを作成することでした。これは私がしました。次に、関数のためにそれを単純化するために真似しました。エラーなしでコンパイルできるようになりましたが、実行しようとするとクラッシュします。私はこのことを長い間見てきましたが、何が悪いのかわかりません。私はこれを一瞬チリのものと比較します. しかし、私はここで新鮮な目を望んでいました. 起こっていることは、まったく意味のない曖昧で奇妙な C++ の法則の 1 つだと思います。しかし、ここで論理エラーが発生する可能性があります。
関数からコードを取り出して、通常の C++ ステートメントに戻したことに注意してください。ここにあります:
int xN = 200;
int yN = 100;
int xP = 600;
int yP = 500;
while(xN <= xP)
{
while(yN <= yP)
{
gfx.PutPixel(xN, yN, 100, 150, 255);
xN++;
}
yN++;
}
私はあなたの助けに感謝します!
アップデート!OK、コードを修正しました。xP と yP の 2 つのユーザー変数 (定数値) を作成しました。以前は塗りつぶされた立方体を描いていませんでした。そのスコープまたは何かが問題であることが判明しました。ループの外で 2 つの変数を宣言しても、何も起こりません。使用されているループのすぐ外側でそれぞれを宣言した場合にのみ、機能します。だから今、私は何とかこれを関数に戻さなければなりません...
int xN = 200;
while(xN <= xP)
{
int yN = 100;
while(yN <= yP)
{
gfx.PutPixel(xN, yN, 100, 150, 255);
yN++;
}
xN++;
}
OK、他の誰かが知りたい場合は、これが私の関数の作成方法です(2つ必要であることがわかりました):
void Game::DrawCubeX(int xN, int yN)
{
while(xN <= xP)
{
gfx.PutPixel(xN, yN, 100, 150, 255);
xN++;
}
}
void Game::DrawCubeY(int xN, int yN)
{
while(yN <= yP)
{
gfx.PutPixel(xN, yN, 100, 150, 255);
DrawCubeX(xN, yN);
yN++;
}
}
何らかの理由でループをネストすることはできません。while ループでこれを行うためのより優れた、またはよりエレガントな方法があれば、私に知らせてください。
ありがとうございました!