Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-07-2010, 20:55   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2010
Beiträge: 13
Question Wie fülle ich mehrer Sprites mit je einem Bild?

Ich komme gleich zur Sache:

Momentan bin ich dabei ein kleines Jump and Run mit Flasch zu Programmieren.

Hierbei möchte ich die Landschaft um meine Figur aus einzelnen Sprits aufbauen.Durch ein großes Array soll dann für jede 1 solch ein Block gesetzt werden:
Code:
        var lvlArray1:Array = new Array(
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
	1,0,1,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,
	1,0,1,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,
	1,0,1,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,
	1,0,1,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,1,
	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
	1,0,0,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
);
Jede dieser Sprits soll ein und die selbe Textur haben(ground.jpg).
Was durch diese Funktionen bereits ralisiert wird:
Code:
function createLvl():void{
	for(i;i<lvlArray.length;i++){
		//Wenn ein Stein gezeichnet werden soll
		if(lvlArray[i]==1){
			//Testet ob ein in der nächsten Zeile gezeichnet werden soll
			if(i/lvlColumns == int(i/lvlColumns)){
				row ++;
			}
			var request:URLRequest=new URLRequest(ground_1);
			loader_1.load(request);
			loader_1.contentLoaderInfo.addEventListener(Event.COMPLETE,drawimage);
		} else if (lvlArray[i] == 'MAIN'){
			mcMain.x = (i-(row-1)*lvlColumns)*25;
			mcMain.y = (row-1)*25;
		}
	}
	//reset the row for another use
	row = 0;
}

function drawimage(event:Event):void{
	//neuer Block wird erstellt
	var newBlock:Block=new Block();
	var myBitmap:BitmapData = new BitmapData(loader_1.width, loader_1.height, false);
  
    myBitmap.draw(loader_1, new Matrix());
            
    var matrix:Matrix = new Matrix();
    matrix.rotate(Math.PI/4);
            
   	newBlock.graphics.beginBitmapFill(myBitmap, matrix, true);
    newBlock.graphics.drawRect(0, 0, loader_1.width, loader_1.height);
    newBlock.graphics.endFill();
	newBlock.x = i;
	newBlock.y = i;
	addChild(newBlock);
}
Mein Problem ist jedoch, dass immer wenn eine neu Sprite mit dem Bild belegt wird, wird dieses von der alten entfernt?

Weiß jemand wie ich alle Sprites mit ground.jpg texturieren kann??

lg primat
primate ist offline   Mit Zitat antworten
Alt 13-07-2010, 00:26   #2 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.231
i ist in der funktion drawimage nicht mehr bekannt.
Erstelle doch den neuen Block schon in der ceatetLvl Funktion, positioniere ihn und lade bzw. adde die Texture schon dort in den Block.

LG ANdré
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.
andrelehnert ist offline   Mit Zitat antworten
Alt 13-07-2010, 13:22   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2010
Beiträge: 13
Nein so leider ist i nicht das Problem ich kreire es nicht erst in der for-schleife es ist eine globale variable... =( trotzdem danke...
Auch kann ich das Füllen nicht in der ceatetLvl Funktion machen; das gewartet werden muss miss die Bitmap geladen ist folglich geht es ohne den EventListener nicht

Geändert von primate (13-07-2010 um 13:28 Uhr)
primate ist offline   Mit Zitat antworten
Alt 13-07-2010, 13:35   #4 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.231
aber i ist am Ende der for schleife bzw. des LadeVorgangs höchstwahrscheinlich immer gleich, somit werden alle deine Blöcke übereinander positioniert.
Du solltest versuchen, die Laufvariable in der for-Schleife anders zu benennen - das wär dann sowieso auch sauberer.

LG ANdré
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.
andrelehnert ist offline   Mit Zitat antworten
Alt 13-07-2010, 14:22   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2010
Beiträge: 13
jaa das das alles noch unsauber ist weiß ich bin erst ein neuling

aber ich habe das Problem gelöst es lag darin ,dass das Bild noch nicht geladen war als die funktion drawimage() aufgerufen wurde trotzdem vielen vielen dank!!
primate ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
bitmap, block, jump n run, loader, sprite

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
x,y Position mehrer Sprites definieren lukyluky ActionScript 3 3 29-10-2009 18:27
Fireworks: Wie fülle ich Vektorgrafiken? doolak Bitmap-Programme 2 08-11-2006 15:31
springen von einem mc zu einem best. bild in einem anderen pikay03 Flash MX 4 27-03-2004 19:33
Bilder und mehrer Links in einem Textfeld? Svenne Flash 4 und Flash 5 6 31-10-2003 20:36
In einem anderen film und in einem bestimmten bild - aber wie? Karlis Flash 4 und Flash 5 1 04-09-2001 12:22


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele