SFML从入门到放弃(3) 视角和碰撞检测

SFML从入门到放弃(3) 视角和碰撞检测

视角

window.draw();所画出的对象是在世界坐标的绝对位置。

视角可以选定在窗口中显示世界坐标下的的哪一个区域。

1sf::View init_view (){ 2 sf::View vi(sf::Vector2f(0,0),sf::Vector2f(1000,1000));// 设置视角的中心和大小 3 vi.setViewport(sf::FloatRect(0,0,0.9,0.9)); // 设置视角在窗口的相对位置 (起始x,起始y,x大小,y大小) 4 return vi; 5} 6 7auto vi = init_view(); 8 window.setView(vi); 9 window.draw(text); 10 window.draw(spr);

注意:要先setview再draw这样才能出现在选定视角里面

碰撞检测

碰撞检测是通过检测两个物体的外接的矩形是否相交来检测的

1template<typename T1,typename T2> 2bool check_collision(const T1 &a,const T2 &b){ //碰撞检测 3 sf::FloatRect box1 = a.getGlobalBounds(); 4 sf::FloatRect box2 = b.getGlobalBounds(); 5 return box1.intersects(box2); 6}

好了放弃了

参考:https://www.sfml-dev.org/tutorials/2.5

by karl07

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java对象与json字符串的互相转换

java对象与json字符串的互相转换1.采用 net.sf.json.JSONObjectmaven依赖包:1<dependency2<groupIdnet.sf.jsonlib</groupId