渲染SDL2功能

时间:2018-05-27 00:28:36

标签: c sdl-2

你好我有渲染我的角色的问题我认为我错误地传递函数的参数因为调试器告诉我我的图像高度是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);

基本上是程序在前面做的,它是在地图上渲染对象。

0 个答案:

没有答案