Gelöschter Account
- Forum-Beiträge: 2.492
13.01.2014, 15:06:20 via Website
13.01.2014 15:06:20 via Website
Hallo,
ich möchte gerne, dass sich ein Ball auf dem Bildschirm bewegt und an den Rändern abprallt. Wenn man dann auf den Bildschirm drückt, soll genau da ein Block gesetzt werden, wo der Ball auch abprallt.
Ich habe bisher eine Klasse (Level1) in der die Klasse Ball aufgerufen wird und in dieser wird ein Ball auf einem Canvas gezeichnet und bewegt sich dort (Kollision mit Wand klappt).
Dann habe ich noch die Klasse Block, Wenn man auf den Bildschirm drückt, reagiert in der Level1 Klasse der onTouchListener und ruft die Klasse Block auf, in der dann ein Block gemalt wird. Mein Problem ist jetzt, das immer nur ein Block gemalt wird und wenn man nochmal irgendwo drückt verschwindet der alte und ein neuer wird gemalt. Ich möchte aber gerne das dann 2 vorhanden sind.
Ich habe die Blöcke mal in einer Liste gespeichert aber das hilft leider auch nicht.
Level1 Klasse:
Wär echt cool wenn da jemand eine Idee hat, ich hab nämlich echt schon viel ausprobiert aber entweder wird gar nichts angezeigt oder halt nur ein Block der immer "springt".
Gruß
Lars
ich möchte gerne, dass sich ein Ball auf dem Bildschirm bewegt und an den Rändern abprallt. Wenn man dann auf den Bildschirm drückt, soll genau da ein Block gesetzt werden, wo der Ball auch abprallt.
Ich habe bisher eine Klasse (Level1) in der die Klasse Ball aufgerufen wird und in dieser wird ein Ball auf einem Canvas gezeichnet und bewegt sich dort (Kollision mit Wand klappt).
Dann habe ich noch die Klasse Block, Wenn man auf den Bildschirm drückt, reagiert in der Level1 Klasse der onTouchListener und ruft die Klasse Block auf, in der dann ein Block gemalt wird. Mein Problem ist jetzt, das immer nur ein Block gemalt wird und wenn man nochmal irgendwo drückt verschwindet der alte und ein neuer wird gemalt. Ich möchte aber gerne das dann 2 vorhanden sind.
Ich habe die Blöcke mal in einer Liste gespeichert aber das hilft leider auch nicht.
Level1 Klasse:
1protected void onCreate(Bundle savedInstanceState) {
2 // TODO Auto-generated method stub
3 super.onCreate(savedInstanceState);
4 BlockAdapter = new ArrayAdapter<Block>(this,android.R.layout.simple_list_item_1, BlockList);
5 gBlock = BitmapFactory.decodeResource(getResources(), R.drawable.block);
6 rl = new RelativeLayout(this);
7 rl.setOnTouchListener(this);
8 ball = new Ball(this);
9 rl.addView(ball);
10 setContentView(rl);
11 }
12
13 @Override
14 public boolean onTouch(View v, MotionEvent event) {
15 // TODO Auto-generated method stub
16 switch(event.getAction()){
17 case MotionEvent.ACTION_DOWN:
18 blockX = event.getX(); //public Variable, die in der Block Klasse abgefragt werden um Position herauszufinden)
19 blockY = event.getY();// s.o.
20 BlockList.add(new Block(this));
21 for(int j = 0; j < BlockList.size(); j++){
22 ll.removeView(BlockList.get(j));
23 ll.addView(BlockList.get(j));
24 }
25 break;
26 }
27 return false;
28 }
Ball Klasse:2 // TODO Auto-generated method stub
3 super.onCreate(savedInstanceState);
4 BlockAdapter = new ArrayAdapter<Block>(this,android.R.layout.simple_list_item_1, BlockList);
5 gBlock = BitmapFactory.decodeResource(getResources(), R.drawable.block);
6 rl = new RelativeLayout(this);
7 rl.setOnTouchListener(this);
8 ball = new Ball(this);
9 rl.addView(ball);
10 setContentView(rl);
11 }
12
13 @Override
14 public boolean onTouch(View v, MotionEvent event) {
15 // TODO Auto-generated method stub
16 switch(event.getAction()){
17 case MotionEvent.ACTION_DOWN:
18 blockX = event.getX(); //public Variable, die in der Block Klasse abgefragt werden um Position herauszufinden)
19 blockY = event.getY();// s.o.
20 BlockList.add(new Block(this));
21 for(int j = 0; j < BlockList.size(); j++){
22 ll.removeView(BlockList.get(j));
23 ll.addView(BlockList.get(j));
24 }
25 break;
26 }
27 return false;
28 }
1public Ball(Context context) {
2 super(context);
3 // TODO Auto-generated constructor stub
4 gBall = BitmapFactory.decodeResource(getResources(), R.drawable.greenball);
5 yPosition = 20;
6 xPosition = 5;
7 geschwindigkeit = 1.5f;
8 richtungX = 5;
9 richtungY = 5;
10 }
11
12 @Override
13 protected void onDraw(Canvas canvas) {
14 // TODO Auto-generated method stub
15 super.onDraw(canvas);
16
17 //Bitmap auf canvas (Ball
18 canvas.drawBitmap(gBall, xPosition, yPosition, null);
19 xPosition = (xPosition + richtungX);
20 yPosition = (yPosition + richtungY);
21
22 wandkollisionen();
23 invalidate();
24 }
Block Klasse:2 super(context);
3 // TODO Auto-generated constructor stub
4 gBall = BitmapFactory.decodeResource(getResources(), R.drawable.greenball);
5 yPosition = 20;
6 xPosition = 5;
7 geschwindigkeit = 1.5f;
8 richtungX = 5;
9 richtungY = 5;
10 }
11
12 @Override
13 protected void onDraw(Canvas canvas) {
14 // TODO Auto-generated method stub
15 super.onDraw(canvas);
16
17 //Bitmap auf canvas (Ball
18 canvas.drawBitmap(gBall, xPosition, yPosition, null);
19 xPosition = (xPosition + richtungX);
20 yPosition = (yPosition + richtungY);
21
22 wandkollisionen();
23 invalidate();
24 }
1public Block(Context context) {
2 super(context);
3 jaj = context;
4 // TODO Auto-generated constructor stub
5 gBlock = BitmapFactory.decodeResource(getResources(), R.drawable.block);
6 }
7
8 @Override
9 protected void onDraw(Canvas canvas) {
10 // TODO Auto-generated method stub
11 super.onDraw(canvas);
12 canvas.drawBitmap(gBlock, (int)Level1.blockX, (int)Level1.blockY, null);
13 invalidate();
14 }
2 super(context);
3 jaj = context;
4 // TODO Auto-generated constructor stub
5 gBlock = BitmapFactory.decodeResource(getResources(), R.drawable.block);
6 }
7
8 @Override
9 protected void onDraw(Canvas canvas) {
10 // TODO Auto-generated method stub
11 super.onDraw(canvas);
12 canvas.drawBitmap(gBlock, (int)Level1.blockX, (int)Level1.blockY, null);
13 invalidate();
14 }
Wär echt cool wenn da jemand eine Idee hat, ich hab nämlich echt schon viel ausprobiert aber entweder wird gar nichts angezeigt oder halt nur ein Block der immer "springt".
Gruß
Lars
— geändert am 13.01.2014, 15:07:02
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.