作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将 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/
我从 C# 的 OpenGL 开始,所以我下载并安装了 CsGL 库,但是当我尝试运行一些示例解决方案时,Visual Studio 抛出异常 the type initializer for 'cs
我将 oslib 与 pspsdk 工具链一起使用,但出于某种原因,这并不像我认为的那样工作 float spritewidth = sprite->stretchX; float spritehe
我想实现这个功能,比如在我的 Lua 版本中嵌入套接字功能。 所以我不再需要复制socket.core.dll(只是为了好玩)。 我搜索邮件列表,看到一些人讨论这个话题, http://lua-use
我是一名优秀的程序员,十分优秀!