저는 Android 개발시 초보자입니다.비트 맵 게임 개체의 여러 인스턴스 구현
나는 게임을 만들었습니다. 하나의 비트 맵 (1)은 제어 가능하고 다른 비트 맵 (2)은 첫 번째 비트 맵과의 충돌시 작동합니다. 잘 작동합니다. 문제 ; 어떻게 (2)의 인스턴스를 여러 개 만들면 같은 방법으로 (1)과의 충돌에 모두 응답 할 것입니다.
내가 지금까지 작성한 내용. MainGamePanel에서
, 나는 두 개의 비트 맵을 만듭니다basket = new basket(BitmapFactory.decodeResource(getResources(), R.drawable.basket01), 50, 50);
apple = new apple(BitmapFactory.decodeResource(getResources(), R.drawable.apple_red01));
MainThread가 업데이트를 수행하고 (나는 사이의 충돌 검사 (MainGamePanel에서) 업데이트에서 패널
에 캔버스를 그립니다 1) 및 (2) 좌표를 확인하십시오.
충돌이 감지되면 apple (2)에 좌표를 설정하면 슬롯이 지정됩니다.
그러면 apple (2)가 슬롯에 닿아 있고 터치 된 경우이를 화면의 임의 위치로 이동하고 부울 슬롯을 false로 설정합니다. 나는 붙어,이 개 질문은 (내가 SO에 여기를 분할해야합니까?)하고있어 어디
...이입니다
- 가 어떻게 비트 맵 (2)의 여러 인스턴스를 만들까요?
- 캔버스의 X 및 Y 최대 값은 어떻게 얻습니까? 아니면 클래스 자체에서 생성되지 않은 뷰는 어떻게됩니까?
고마워요! 비트 맵 (2) "사과"에 대한
현재 코드 조각 : 두 (리뷰 난수 생성기를, 내가 최대 값을 설정해야합니다) 질문에 관해서
public void draw(Canvas canvas) {
canvas.drawBitmap(bitmap, X - width/2, Y - height/2, null);
}
;
if (slotted){
if (eventX >= (X - width/ 2) && (eventX <= (X + width/2))) {
if (eventY >= (Y - height/ 2) && (eventY <= (Y + height/ 2))) {
// basket touch
Random Rnd = new Random();
float nX=Rnd.nextInt(HOWTOMAXOFVIEWORCANVAS);
float nY=Rnd.nextInt(HOWTOMAXOFVIEWORCANVAS)+80;
// the +80 is to prevent the apple from returning in the 'slotted' area (the basket can't get there ;)
setX(nX);
setY(nY);
slotted = false;
viewsize와 관련하여; public int sizeY = getHeight();를 추가하려고했습니다. MainGamePanel (SurfaceView 확장). 그러나 Apple 클래스에서 MainGamePanel.sizeY를 호출하면 정적 및 비 정적 참조에 대한 오류가 발생합니다. getDefaultSize 메소드도별로 도움이되지 않습니다. SurfaceView의 치수를 다른 클래스에 구현하는 방법에 대해 자세히 설명해 주시겠습니까? –
답장을 보내 주시면 제 질문 2를 해결했습니다. MainGamePanel에서 public static int width를 만들었습니다.나중에 캔버스가 그려져 있다고 확신하면 width = getWidth();와 같이 채 웁니다. 그런 다음 다른 클래스에서 MainGamePanel.width에 액세스 할 수 있습니다! 감사! –
당신의 대답 덕분에, 나는 내 질문 1을 해결했다. 'for (int i = 0; i <7; i ++) { \t apple nextApple = 새로운 사과 (BitmapFactory.decodeResource (getResources(), R.drawable.apple_red01)); \t AppleList.add (nextApple); \t} '배열의 위치에 따라 다른 사과에 액세스 할 수 있습니다. 감사합니다. 투표하기. –