[英]How to make a SDL2 and C/C++ collision from image
我的游戏不是基于图块的,它是一个带有我在屏幕上渲染的游戏关卡图像的大纹理。 不想使用盒子碰撞,我希望它有一个与我的关卡图像完全相同的图像,但只有两个不同的 colors(例如红色和黑色)代表碰撞区域和自由区域。 然后当游戏关卡加载时,我将读取该值并以 0 和 1 的形式存储到矩阵中。
之后,我将检查我的播放器框角是否位于碰撞区域,例如:
if(my_collision_matrix[player_corner1_position_x][player_corner1_position_y] == 1){
return True;
}else if(my_collision_matrix[player_corner2_position_x][player_corner2_position_y] == 1){
return True;
}else if(my_collision_matrix[player_corner3_position_x][player_corner3_position_y] == 1){
return True;
}else if(my_collision_matrix[player_corner4_position_x][player_corner4_position_y] == 1){
return True;
}else{
return False;
}
这有效率吗? (我的意思是这对我来说似乎很快,但我不确定)
还有如何读取图像并存储每个像素的颜色值? 我已经看过 SDL_GetRGB function 但无法理解它是如何工作的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.