Spiel-Nachbau...

SonMiko

Erfahrenes Mitglied
Hallo zusammen,

derzeit versuche ich ein Spiel nachzubauen ( siehe hier - gemeint ist "Homerun" ).
Allerdings erscheint dies nicht allzueinfach.

Mein Code bisweilen:
Code:
stop();

//Starteinstellungen------------------------------------|||
//V
var leftright:String;//Links oder Rechts
var schwankfaktor=0.1;//Faktor des Schwankens
var xvmouse:Number;//Geschwindigkeit des Schwankens
var spielende:Boolean=false;//Gibt an, ob das Spiel zuende ist
var crash:Boolean=false;//Gibt an, ob die Figur gecrasht ist
//------------------------------------------------------|||

//Maus--------------------------------------------------|||
//S
//Mouse.hide();

//F
function mouseleftright(){
	//Links oder Rechts----------------------
	if(_xmouse<Stage.width/2 && _xmouse>=80){
		leftright="left";
		xvmouse=-1*((300-_root._xmouse)/250);
	}
	if(_xmouse>Stage.width/2 && _xmouse<=520){
		leftright="right";
		xvmouse=1*((_root._xmouse-300)/250);
	}
	//--------------------------------------
		
}
//------------------------------------------------------|||

//+Figur------------------------------------------------|||

//F
function figurfunction(){
if(spielende==false){
	if(crash==false){
if(leftright=="left"){
	figur_mc.shirt._rotation+=schwankfaktor*xvmouse;
	figur_mc.shirt.larm._rotation-=schwankfaktor*xvmouse;
	figur_mc.shirt.flasche._rotation-=schwankfaktor*xvmouse;
	figur_mc.shirt.rhand._rotation-=schwankfaktor*xvmouse;
	figur_mc.shirt.hals._rotation-=((schwankfaktor*xvmouse)/5);
	figur_mc.shirt.hose._rotation+=((schwankfaktor*xvmouse)/2);
}
if(leftright=="right"){
	figur_mc.shirt._rotation+=schwankfaktor*xvmouse;
	figur_mc.shirt.larm._rotation-=schwankfaktor*xvmouse;
	figur_mc.shirt.flasche._rotation-=schwankfaktor*xvmouse;
	figur_mc.shirt.rhand._rotation-=schwankfaktor*xvmouse;
	figur_mc.shirt.hals._rotation-=((schwankfaktor*xvmouse)/5);
	figur_mc.shirt.hose._rotation+=((schwankfaktor*xvmouse)/2);
}
}
//Crash produziert
else{
	
}
}
//Spielende erreicht
else{
	//SPIELENDE?
}
}

function zufallsschwanker(){
	var rndschwank=Math.round(Math.random()*15);
	var rndplusminus=Math.round(Math.random()*15);
}
//------------------------------------------------------|||

//Erhöhen des Schwankwertes-----------------------------|||
function schwankerhoehen(){
	schwankfaktor+=0.3;
}
IDschwankerhoehen=setInterval(schwankerhoehen,1000);
IDmouseleftright=setInterval(mouseleftright,100);
IDfigurfunction=setInterval(figurfunction,1);
//------------------------------------------------------|||

//Debugging---------------------------------------------|||
onEnterFrame = function(){
trace(schwankfaktor+" Schwankfaktor");
trace(figur_mc.shirt._rotation+=schwankfaktor*xvmouse);
}


//------------------------------------------------------|||

/*-----------
Legende     |
V=Variables |
S=Settings  |
F=Functions |
-----------*/

Ich versuche in regelmäßigen Abständen den "Schwankfaktor" zu erhöhen um die "Navigation" zu erschweren... Eigentlich sollte es aber so aussehen,
dass per Zufall eine Schwankrichtung ausgegeben wird (links oder rechts), dann wird vom aktuellen Rotationswert der MovieClip-Instanz "figur_mc", ein weiterer Zufallswert (-15 bis 15 ->Das entspräche der Rotationsmatrix) solange addiert oder subtrahiert, bis er erreicht wird. Dazwischen soll aber das Bewegen der Maus auf der X-Achse den jeweiligen _rotationswert verringern, damit man quasi gegensteuern kann.

Wenn ich das hier so schreibe habe ich zwar Ideen aber ich kann es irgendwie nicht "zuschnüren", ich kriege es nicht aufs Blatt...

Vielleicht kann mir jemand einen Denkanstoß geben?
Ich will keineswegs das jemand hier alles löst, also das muss nicht sein -
ich ärgere mich eigentlich schon genug darüber, dass ich ins Forum schreibe weil ich selbst nicht wirklich drauf komme...

Naja wie gesagt, wäre dankbar für kleine "Anregungen" oder Hinweise.
Vielleicht habe ich auch etwas vergessen


Besten Gruß,


Mike
 
Hi,

ist wahrscheinlich zum größten Teil die Abstimmung verschiedener Parameter, die auf die Rotation Einfluss nehmen. Auf die Schnelle habe ich folgendes Ergebnis (siehe Anhang) hinbekommen.

Gruß
.
 

Anhänge

Manno Tobi das ist genial
Darf ichs verwenden und ausbauen?

Ja die Schwierigkeit liegt definitiv darin, dass eben viele dynamische Werte harmonieren müssen.
Und da gibt es schon Welten Unterschiede, wenn nur die setInterval-Funktion, zu flott
eingestellt ist... Schwer war für mich das gegensteuern mit der Maus zu realisieren...
Das hat nicht wirklich so geklappt wie bei Dir...

Tausend Dank...

Besten Gruß,


Mike
 
Zuletzt bearbeitet:
Klasse,

dankeschön

Sag mal, wie bist Du analytisch an das Problem heran gegangen, wie hast du es gelöst?

Hast Du erstmal alles auf einem Blatt fixiert oder.... wie geht man da so am besten vor


Lieben Gruß,


Mike
 
... eigentlich ist das Ding innerhalb von 2 Minuten ad hoc entstanden - da ich öfters mit Slide-Galerien, Partikeleffekten und Panoramen zu tun habe, die verzögert auf die Mausposition reagieren, habe ich solche Dinge schon ein wenig verinnerlicht. ;)

Grundsätzlich berechne ich immer den Abstand des Mauszeigers zum anvisierten Mittelpunkt, inkrementiere damit einen Geschwindigkeitswert, der wiederum als Inkrementator für die Position/Rotation dient.

Gruß
.
 
Zurück