Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash MX 2004

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-11-2007, 09:04   #1 (permalink)
INSERT COIN
 
Benutzerbild von pacman.hgw
 
Registriert seit: May 2003
Ort: Hansestadt Greifswald
Beiträge: 1.717
Suche immernoch nach einer Idee!

Hallo Leute,

also tut mir echt leid dass ich immernoch Probleme mit meinem kleinen Spiel habe, aber ich finde einfach keine Lösung. Also wie bereits erwähnt, habe ich ein Zucker-Spiel programmiert. Man hat 5 Nahrungsmittel denen man per drag & drob den Zuckeranteil (Stückchen) zuweisen soll. Es sind 5 Reihen mit jeweils 13 Rahmen in denen man die Zuckerstückchen (Quadrate) ablegen kann. Via Button wird geprüft ob die abgelegten Zuckerstückchen dem richtigen Anteil der jeweiligen Nahrungsmittel entspricht.

Nun zu meinen Problem:

Wenn ein Zuckerwürfel (Quadrat/MC) in einen Rahmen liegt, ist diese Rahem ja belegt. Das heißt, wenn ich versuche ein 2. Zuckerstückchen dort abzulegen tweent er es an seine Ursprungsposition zurück. Dann aber erkennt er das Zurückgetweente Zuckerstück nicht mehr als abgelegt an. Das wiederum bedeutet das die Überprüfung fehlerhaft sein kann falls einer Versucht ein Zuckerstück auf das andere zulegen. Ich hoffe mir kann einer helfen bzw. eine Idee mitteilen. Bitte nicht Böse sein das ich euch immernoch damit nerve.

Hier das Script:

Code:
import mx.transitions.Tween;
import mx.transitions.easing.*;
Fehler_mc._visible = false;  
Fehler2_mc._visible = false;
Fehler3_mc._visible = false;
Fehler4_mc._visible = false;
Fehler5_mc._visible = false;
richtig_mc._visible = false;  // Hier werden die Fehlermeldungen auf _visible = false gesetzt
var hit:Array = new Array(Zucker1, Zucker2, Zucker3, Zucker4, Zucker5, Zucker6, Zucker7, 
Zucker8, Zucker9, Zucker10, Zucker11, Zucker12, Zucker13, Zucker14, Zucker15, Zucker16, 
Zucker17, Zucker18, Zucker19, Zucker20, Zucker21, Zucker22, Zucker23, Zucker24, Zucker25, 
Zucker26, Zucker27, Zucker28, Zucker29, Zucker30, Zucker31, Zucker32, Zucker33, Zucker34, 
Zucker35, Zucker36, Zucker37);
var haben:Array = new Array(0, 0, 0, 0, 0);
var soll:Array = new Array(12, 3, 4, 5, 13);
for (var i = 0; i<hit.length; i++) {
	var mc:MovieClip = hit[i];
	mc.onPress = function() {
		for (var x = 0; x<66; x++) {
			var rahmen:MovieClip = _root["Rahmen"+x];
			if (this.hitTest(rahmen)) {
				rahmen.belegt = false;
			}
		}
		this.t1.stop();
		this.t2.stop();
		this.sX = this._x;
		this.sY = this._y;
		this.startDrag();
		Fehler_mc._visible = false;
		Fehler2_mc._visible = false;
		Fehler3_mc._visible = false;
		Fehler4_mc._visible = false;
		Fehler5_mc._visible = false;
		richtig_mc._visible = false;
	};
	mc.onRelease = mc.onReleaseOutside=function () {
		stopDrag();
		checkhit(this);
	};
	mc.useHandCursor = false;
}
//  
function checkhit(mc) {
	for (var x = 0; x<66; x++) {
		var rahmen:MovieClip = _root["Rahmen"+x];
		if (mc.hitTest(rahmen)) {
			if (!rahmen.belegt) {
				mc.t1 = new Tween(mc, "_x", Regular.easeOut, mc._x, rahmen._x, 1, true);
				mc.t2 = new Tween(mc, "_y", Regular.easeOut, mc._y, rahmen._y, 1, true);
				rahmen.belegt = true;
				break;
			} else {
				trace(_root["Rahmen"+x]+" ist belegt!");
				mc.t1 = new Tween(mc, "_x", Bounce.easeOut, mc._x, mc.sX, 1, true);
				mc.t2 = new Tween(mc, "_y", Bounce.easeOut, mc._y, mc.sY, 1, true);
				break;
			}
		} else {
			this = new Tween(mc, "_x", Bounce.easeOut, mc._x, mc.sX, 1, true);
			this = new Tween(mc, "_y", Bounce.easeOut, mc._y, mc.sY, 1, true);
		}
	}
	var count = 0;
	for (var x = 0; x<66; x++) {
		if (_root["Rahmen"+x].belegt) {
			count++;
		}
	}
	trace(count+" MC"+(count == 1 ? "" : "s")+" abgelegt");
}
tester_mc.onRelease = function() { //Hier wird getestet ob die benötigte Anzahl der MC´s in den jeweiligen Reihen richtig ist
	var y = 0;
	var zaehler = 0;
	for (var x = 1; x<66; x=x+13) {
		var anzahl = x+13;
		for (var z = x; z<anzahl; z++) {
			if (_root["Rahmen"+z].belegt) {
				zaehler++;
			}
		}
		haben[y] = zaehler;
		zaehler = 0;
		y++;
	}
	if (haben[0] == soll[0]) {
		Fehler_mc._visible = false;
	} else {
		Fehler_mc._visible = true;
	}
	if (haben[1] == soll[1]) {
		Fehler2_mc._visible = false;
	} else {
		Fehler2_mc._visible = true;
	}
	if (haben[2] == soll[2]) {
		Fehler3_mc._visible = false;
	} else {
		Fehler3_mc._visible = true;
	}
	if (haben[3] == soll[3]) {
		Fehler4_mc._visible = false;
	} else {
		Fehler4_mc._visible = true;
	}
	if (haben[4] == soll[4]) {
		Fehler5_mc._visible = false;
	} else {
		Fehler5_mc._visible = true;
	}
	if (haben[0] == soll[0] && haben[1] == soll[1] && haben[2] == soll[2] && haben[3] == soll[3] && haben[4] == soll[4]) {
		richtig_mc._visible = true;
	}
};
restart_mc.onRelease = function() {
	unloadMovie(_root);
	loadMovie("Zucker.swf", 0);
};
Angehängte Dateien
Dateityp: rar Zucker.rar (8,7 KB, 6x aufgerufen)
pacman.hgw ist offline   Mit Zitat antworten
Alt 12-11-2007, 16:38   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Eigentlich musst du nur als Startpositionen (sX und sY) immer die "Zuckerdose" nehmen. Glaube zumindest, dass das jetzt so klappt, wie's soll.
Abgesehen davon, dass ein Glas Kirschsaft wohl keine 13 Zuckerstücke enthält...
PHP-Code:
import mx.transitions.Tween;
import mx.transitions.easing.*;
Fehler_mc._visible false;
Fehler2_mc._visible false;
Fehler3_mc._visible false;
Fehler4_mc._visible false;
Fehler5_mc._visible false;
richtig_mc._visible false;
_root.sX Zucker1._x;
_root.sY Zucker1._y;
var 
hit:Array = new Array(Zucker1Zucker2Zucker3Zucker4Zucker5Zucker6Zucker7Zucker8Zucker9Zucker10Zucker11Zucker12Zucker13Zucker14Zucker15Zucker16Zucker17Zucker18Zucker19Zucker20Zucker21Zucker22Zucker23Zucker24Zucker25Zucker26Zucker27Zucker28Zucker29Zucker30Zucker31Zucker32Zucker33Zucker34Zucker35Zucker36Zucker37);
var 
haben:Array = new Array(00000);
var 
soll:Array = new Array(1234513);
for (var 
0i<hit.lengthi++) {
    var 
mc:MovieClip hit[i];
    
mc.onPress = function() {
        for (var 
0x<66x++) {
            var 
rahmen:MovieClip _root["Rahmen"+x];
            if (
this.hitTest(rahmen)) {
                
rahmen.belegt false;
                break;
            }
        }
        
this.t1.stop();
        
this.t2.stop();
        
this.startDrag();
        
Fehler_mc._visible false;
        
Fehler2_mc._visible false;
        
Fehler3_mc._visible false;
        
Fehler4_mc._visible false;
        
Fehler5_mc._visible false;
        
richtig_mc._visible false;
    };
    
mc.onRelease mc.onReleaseOutside=function () {
        
stopDrag();
        
checkhit(this);
    };
    
mc.useHandCursor false;
}
//  
function checkhit(mc) {
    for (var 
0x<66x++) {
        var 
rahmen:MovieClip _root["Rahmen"+x];
        if (
mc.hitTest(rahmen)) {
            if (!
rahmen.belegt) {
                
mc.t1 = new Tween(mc"_x"Regular.easeOutmc._xrahmen._x1true);
                
mc.t2 = new Tween(mc"_y"Regular.easeOutmc._yrahmen._y1true);
                
rahmen.belegt true;
                break;
            } else {
                
trace(_root["Rahmen"+x]+" ist belegt!");
                
mc.t1 = new Tween(mc"_x"Bounce.easeOutmc._x_root.sX1true);
                
mc.t2 = new Tween(mc"_y"Bounce.easeOutmc._y_root.sY1true);
                break;
            }
        } else {
            
this = new Tween(mc"_x"Bounce.easeOutmc._x_root.sX1true);
            
this = new Tween(mc"_y"Bounce.easeOutmc._y_root.sY1true);
        }
    }
    var 
count 0;
    for (var 
0x<66x++) {
        if (
_root["Rahmen"+x].belegt) {
            
count++;
        }
    }
    
trace(count+" MC"+(count == "" "s")+" abgelegt");
}
tester_mc.onRelease = function() {
    var 
0;
    var 
zaehler 0;
    for (var 
1x<66x=x+13) {
        var 
anzahl x+13;
        for (var 
xz<anzahlz++) {
            if (
_root["Rahmen"+z].belegt) {
                
zaehler++;
            }
        }
        
haben[y] = zaehler;
        
zaehler 0;
        
y++;
    }
    if (
haben[0] == soll[0]) {
        
Fehler_mc._visible false;
    } else {
        
Fehler_mc._visible true;
    }
    if (
haben[1] == soll[1]) {
        
Fehler2_mc._visible false;
    } else {
        
Fehler2_mc._visible true;
    }
    if (
haben[2] == soll[2]) {
        
Fehler3_mc._visible false;
    } else {
        
Fehler3_mc._visible true;
    }
    if (
haben[3] == soll[3]) {
        
Fehler4_mc._visible false;
    } else {
        
Fehler4_mc._visible true;
    }
    if (
haben[4] == soll[4]) {
        
Fehler5_mc._visible false;
    } else {
        
Fehler5_mc._visible true;
    }
    if (
haben[0] == soll[0] && haben[1] == soll[1] && haben[2] == soll[2] && haben[3] == soll[3] && haben[4] == soll[4]) {
        
richtig_mc._visible true;
    }
};
restart_mc.onRelease = function() {
    
unloadMovie(_root);
    
loadMovie("Zucker.swf"0);
}; 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 13-11-2007, 12:49   #3 (permalink)
INSERT COIN
 
Benutzerbild von pacman.hgw
 
Registriert seit: May 2003
Ort: Hansestadt Greifswald
Beiträge: 1.717
Thumbs up

Das mit dem Kischsaft is wirklich wahr... Deswegen habe ich es ja in die Liste mit aufgenommen. Hier mal der Link http://www.humanistische-aktion.home....de/zucker.htm

--> Denn auch Fruchtzucker ist letzten endes auch nur Zucker (zwar gesünder aber trotzdem Zucker)

Aufjedenfall vielen vielen Dank das du mir noch geantwortet hast. Ich weiß das ist keine Selbstverständlichkeit. Wirklich sehr sehr hilfsbereit. Ich schau mal ob ich deinen Tipp umsetzen kann...
pacman.hgw ist offline   Mit Zitat antworten
Alt 13-11-2007, 13:29   #4 (permalink)
INSERT COIN
 
Benutzerbild von pacman.hgw
 
Registriert seit: May 2003
Ort: Hansestadt Greifswald
Beiträge: 1.717
Also funktioniert wunderbar. Vielen Dank nochmal.
pacman.hgw ist offline   Mit Zitat antworten
Antwort

Lesezeichen

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



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:50 Uhr.

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


Copyright ©1999 – 2014 Marc Thiele