你好我有渲染我的角色的问题我认为我错误地传递函数的参数因为调试器告诉我我的图像高度是1854382513251:D 但我不知道自己做得不好。如果smb可以帮助我,那就太好了。 这是我的代码。
Wydruk_postaci(&P1, &NPCprzod, &NPCtyl, &NPCbok, &Renderer, &klatki);
void Wydruk_postaci(Postac *P,sTekstura *Przod[2],sTekstura *Tyl[2],sTekstura *Bok[2],SDL_Renderer **Renderer,int *frame)
{
char position = 'F';
if ((*P).predkoscx > 0)
{
render((*P).pozycjax, (*P).pozycjay, &(Bok[(*frame) / 4]), &Renderer, NULL);
position = 'S';
}
if ((*P).predkoscx < 0)
{
render((*P).pozycjax, (*P).pozycjay, &(Bok[(*frame) / 4]), &Renderer, NULL);
position = 'S';
}
if ((*P).predkoscy > 0)
{
render((*P).pozycjax, (*P).pozycjay, &(Przod[(*frame) / 4]), &Renderer, NULL);
position = 'F';
}
if ((*P).predkoscy < 0)
{
render((*P).pozycjax, (*P).pozycjay, &(Tyl[(*frame) / 4]), &Renderer, NULL);
position = 'B';
}
if((*P).predkoscx==0 && (*P).predkoscy==0)
{
if (position == 'F')
{
render((*P).pozycjax, (*P).pozycjay, &(Przod[(*frame) / 4]), &Renderer, NULL);
}
}
++(*frame);
if ((*frame) / 4 >= ILOSC_ANIMACJI)
{
(*frame) = 0;
}
}
渲染功能正常工作,因为我将其与其他功能中的其他图像一起使用。这个有点复杂。我知道,如果我希望它完全正确的工作,我应该通过与位置的争论,但首先是这一行
if((*P).predkoscx==0 && (*P).predkoscy==0)
{
if (position == 'F')
{
render((*P).pozycjax, (*P).pozycjay, &(Przod[0]), &Renderer, NULL);
}
}
必须工作,但事实并非如此。 如果我在主要功能
中获得此订单,则屏幕上不显示任何内容 Poruszanie(&P1);
render(0, 0, &TloGra, &Renderer,NULL);
for (int i = 0,x=x_sciany,y=y_sciany ; i < 17; i++)
{
render(x, y, &Sciana, &Renderer, &Pomniejszacz);
x += 50;
}
for (int i = 0, x = x_sciany, y = y_sciany+50; i < 12; i++)
{
render(x, y, &Sciana, &Renderer, &Pomniejszacz);
y += 50;
}
for (int i = 0, x = x_sciany+800, y = y_sciany+50; i < 12; i++)
{
render(x, y, &Sciana, &Renderer, &Pomniejszacz);
y += 50;
}
for (int i = 0, x = x_sciany + 50, y = y_sciany + 600; i < 15; i++)
{
render(x, y, &Sciana, &Renderer, &Pomniejszacz);
x += 50;
}
for (int i = 0, x = x_sciany + 100, y = y_sciany + 100; i < 5; i++)
{
for (int i = 0; i < 7; i++)
{
render(x, y, &Sciana, &Renderer, &Pomniejszacz);
x += 100;
}
x -= 700;
y += 100;
}
Wydruk_postaci(&P1, &NPCprzod, &NPCtyl, &NPCbok, &Renderer, &klatki);
}
SDL_RenderPresent(Renderer);
基本上是程序在前面做的,它是在地图上渲染对象。