gpt4 book ai didi

c++ - C++ 中 OSlib for psp 的冲突问题

转载 作者:行者123 更新时间:2023-11-28 08:33:14 25 4
gpt4 key购买 nike

我将 oslib 与 pspsdk 工具链一起使用,但出于某种原因,这并不像我认为的那样工作

float spritewidth  = sprite->stretchX;
float spriteheight = sprite->stretchY;
float bushwidth = bush->stretchX;
float bushheight = bush->stretchY;

//Basic border collision
if (sprite->x <= 0)
sprite->x = 0;
if (sprite->y <= 0)
sprite->y = 0;
if (sprite->x >= 455)
sprite->x = 455;
if (sprite->y >= 237)
sprite->y = 237;

//Bush
if ( (sprite->x + spritewidth > bush->x) &&
(sprite->x < bush->x + bushwidth) &&
(sprite->y + spriteheight > bush->y) &&
(sprite->y < bush->y + bushheight) )
{
bushcol = 1;
}
else
{
bushcol = 0;
}

if (osl_keys->held.down)
{
if (bushcol == 0)
{
sprite->y += 4;
sprite_position = DOWN;
SpriteAnimate();
}
else
{
sprite->y -= 6;
bushcol = 0;
}
}

if (osl_keys->held.up)
{
if (bushcol == 0)
{
sprite->y -= 4;
sprite_position = UP;
SpriteAnimate();
}
else
{
sprite->y += 6;
bushcol = 0;
}
}

if (osl_keys->held.right)
{
if (bushcol == 0)
{
sprite->x += 4;
sprite_position = RIGHT;
SpriteAnimate();
}
else
{
sprite->x -= 6;
bushcol = 0;
}
}

if (osl_keys->held.left)
{
if (bushcol == 0)
{
sprite->x -= 4;
sprite_position = LEFT;
SpriteAnimate();
}
else
{
sprite->x += 6;
bushcol = 0;
}
}

当我试图离开时, Sprite 开始向与灌木丛相反的方向移动,但最终还是自由落下

有什么更好的碰撞方法或者建议

我什至对每个按钮都试过了,但还是不行

if (osl_keys->held.down)
{
if ( (sprite->x + spritewidth > bush->x) &&
(sprite->x < bush->x + bushwidth) &&
(sprite->y + spriteheight > bush->y) &&
(sprite->y < bush->y + bushheight) )
{
sprite->y -= 4;
}
else
{
sprite->y += 2;
sprite_position = DOWN;
SpriteAnimate();
}
}

最佳答案

您可以做的一件事是,当角色撞到灌木丛时,您可以改变他的位置,而不是让角色“向后移动”。

我的意思是这样的:(仅使用 up 作为示例)。

 if (osl_keys->held.up)    
{
if (bushcol == 0)
{
sprite->y -= 4;
sprite_position = UP;
SpriteAnimate();
}
else
{
sprite->y = bush->y + 2;
bushcol = 0;
}
}

这样,每当 Sprite 碰撞时,它只是设置位置而不是让它向后移动。

还有其他方法可以进行碰撞检测,但我现在太累了,无法立即给出一个智能的、可读性更差的答案……在谷歌上搜索会出现很多结果。

关于c++ - C++ 中 OSlib for psp 的冲突问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/860779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com