Zweite Bitmap auf erster eine fixe Position zuweisen

  • Hallo zusammen :)


    Wiedereinmal benötige ich eure Hilfe im Bezug auf mein TowerDefense.
    Nachdem ich Scroll- und Zoomfunktion endlich bewerkstelligen konnte, bin ich nun auf ein unerwartetes Problem gestoßen.


    Zunächst benötigt ihr aber etwas Vorwissen:
    Die Scrollfunktion habe ich, wie bereits in anderen Threads erwähnt, über zwei Rects sowie eine Bitmap und die onDraw Methode von Canvas umgesetzt:


    Konstruktor der Map:


    Scroll-Methode der Map:


    onDraw-Methode der Map:

    Code
    //------====== Draw the bitmap on canvas, and finally on bitmapShow ======------
    	private void onDraw() {
    		
    		canvas.drawBitmap(bitmapRAM, srcRect, dstRect, null);
    	}


    Nun geht es darum, die ersten Gegner auf der Map spawnen zu lassen, was im prinzip auch funktioniert.
    Das Anzeigen der Gegner erfolgt sowie bei der Map durch zwei Rects und einer Bitmap. Das Canvas-Objekt bekommt beim instanzieren die Bitmap von der Map(bitmapShow) übergeben, sodass alle Bitmaps, die auf ihr gezeichnet werden, somit auf der Bitmap der Map(bitmapShow) gezeichnet wird(Zeile 10):


    Konstruktor:


    Der Gedanke dahinter war, dass somit in gewisser Weiße eine neue Bitmap "entsteht", auf der die Bitmaps der Gegner auf einer festen Position sind. Das hätte zur Folge, dass die Koordinaten der Gegner nicht vom Scrollen abhängig wären.
    zur Verdeutlichung: feste Position(Koordinate des Gegners bezieht sich auf die Map) doch leider bezieht sich die Koordinate des Gegners auf den Bildschirm(Verdeutlichung ).
    Gibt es irgent eine Möglichkeit, die Bitmap des Gegners auf die Bitmap der Map "festzunageln"? Dies würde mir die Synchronisation zwischen den Koordinaten des Gegners und den Koordinaten des Rects, das den Bildschirmausschnitt anzeigt, erspaaren.


    Ich hoffe, ich konnte mein Problem einigermaßen verständlich darstellen ^^


    MfG XoR

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!