[英]Easy way to detect if sprite was touched?
我有兩個精靈,需要同時觸摸它們,因此我制作了兩個Vector2 xy和xy1。
//xy = x and y coordinate of pointer 1
//xy1 = x x and y coordinate of pointer 2
//faces is the class for the sprites
if(xy.x >= faces.faceSpr.getX() && xy.x <= faces.faceSpr.getX() + faces.faceSpr.getWidth() && //detecting if xy and xy1 are inside the sprites
xy.y >= faces.faceSpr.getY() && xy.y <= faces.faceSpr.getY() + faces.faceSpr.getHeight() && //*
xy1.x >= faces.faceSpr1.getX() && xy1.x <= faces.faceSpr1.getX() + faces.faceSpr1.getWidth() && //*
xy1.y >= faces.faceSpr1.getY() && xy1.y <= faces.faceSpr1.getY() + faces.faceSpr1.getHeight()) //*
score += 1;
else if(xy1.x >= faces.faceSpr.getX() && xy1.x <= faces.faceSpr.getX() + faces.faceSpr.getWidth() && //*
xy1.y >= faces.faceSpr.getY() && xy1.y <= faces.faceSpr.getY() + faces.faceSpr.getHeight() && //*
xy.x >= faces.faceSpr1.getX() && xy.x <= faces.faceSpr1.getX() + faces.faceSpr1.getWidth() && //*
xy.y >= faces.faceSpr1.getY() && xy.y <= faces.faceSpr1.getY() + faces.faceSpr1.getHeight())
我尚未測試此代碼是否有效,是否有更簡便更好的方法?
編輯:
我嘗試使用getBoundingRectangle()方法,它可以正常工作,但是在設置位置時出現問題。
sprite.getBoundingRectangle().setPosition(x,y);
// then I check if it works
System.out.println(sprite.getBoundingRectangle().getPostion);
但結果始終是0.0,0.0
解決方案很簡單。 獲取它的矩形並進行包含調用。
sprite.getBoundingRectangle().contains(new Vector2D(touch.x,touch.y)); //or
sprite.getBoundingRectangle().contains(touch.x, touch.y); //
確保您未投影正確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.