Flashhilfe.de - Flash Community

Punkte vergabe ?? [Flash 8]

 


AntwortenRegistrieren Seite1  

Atticus#1
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

02.04.2007, 21:32

Hallo, ich bastel gerade an einem Flash spiel. dort hab ich eine gettime funktion eingebaut damit man schaune kann wieviel zeit man für ein level gebraucht hat. Ich möchte jetzt auch punkte vergeben und zwar soll man je weniger zeit man gebracuht hat mehr punkte bekommen nach abschluß des levels und je länger man braucht desto weniger punkte. Hat jemand eine idde wir man das am besten realisiren kann ?? Wäre für jede hilfe und jeden tip sehr dankbar !!!

Gruß Atticus^^

burnZ#2
Benutzerbild von burnZ
Beiträge: 2827
Wohnort: Bayern
Registriert: Aug 2005

02.04.2007, 22:01

machste z.B nen mittelwert:

200pkt = 1,5min (level1)

und nu gehste für jede sekunde mehr oder weniger so und soviel hoch oder runter. wär doch was oder?

umlart#3
Benutzerbild von umlart
Beiträge: 6212
Wohnort: Berlin
Registriert: Nov 2002

02.04.2007, 22:06

oder setze dir ein Startwert und Teile es durch vergangene Zeit.
zb..
startwert = 200;
und wenn fertig.. ausgabe= startwert/vergangenezeit

*Man muß nicht wissen wie es geht,
man muß nur wissen wo es steht.*

Atticus#4
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

02.04.2007, 22:57

Hallo, vielen dank euch beiden für eure ideen!!! Könnt mir den auch sagen wie ich das umsetzen muß ?? Ich benutzte folgendes script um einen timer zu starten und im feld display wird immer die aktuelle zeit angezeigt in folgendem format 00:00:00.

ActionScript:
1
2
3
4
5
var timer:Timer = new Timer();
function update():Void {
   display.text = timer.getFormattedTime();
}
setInterval(update, 10);


und dann habe ich noch eine .as datei die mit eingebunden wird, und das hat folgendes script:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class Timer {
   private var startTime:Number;
   private var timeBeforeStopped:Number;
   private var started:Boolean = true;
   
   public function Timer() {
      this.reset();
   }
   
   public function reset():Void {
      started = true;
      startTime = getTimer();
      this.stop();
   }
   public function stop():Void {
      if(started) {
         started = false;
         timeBeforeStopped = getTimer() - startTime;
      }
   }
   public function start():Void {
      if(!started) {
         started = true;
         startTime = getTimer() - timeBeforeStopped;
      }
   }
   
   public function getTime():Number {
      return started ? getTimer() - startTime : timeBeforeStopped;
   }
   public function getFormattedTime():String {
      var date:Date = new Date(this.getTime());
      var minutes:String = checkDigits(date.getMinutes());
      var seconds:String = checkDigits(date.getSeconds());
      var centiSeconds:String = checkDigits(Math.floor(date.getMilliseconds()/10));
      return minutes + ":" + seconds + ":" + centiSeconds;
   }
   private function checkDigits(n:Number):String {
      return n >= 10 ? n.toString() : "0"+n;
   }
   
}


Ich weis jetzt nich wie ich das machen soll, danke für eure hilfe !!

Gruß Atticus^^

burnZ#5
Benutzerbild von burnZ
Beiträge: 2827
Wohnort: Bayern
Registriert: Aug 2005

02.04.2007, 23:01

wenn das spiel zuende ist, bzw level sowas z.B:
ActionScript:
1
2
timer.stop();
var points:Number = 2000 / timer.getTime();


mit den werten kannste ja spielen.

Atticus#6
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

02.04.2007, 23:03

Super, danke ich werde das mal ausprobieren und melde mich wenns probleme gibt^^

Gruß Atticus^^

Atticus#7
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

03.04.2007, 15:35

Hallo, ich habe das jetzt so gemacht:

ActionScript:
1
2
3
var points:Number = 30000000 / _parent.timer.getTime();
_global.punktezahl = _global.punktezahl + points;
_parent.punkte.text = _global.punktezahl;


und das funktioniert super^^

Aber eine sache wäre da noch, die zahl wird als kommazahl ausgegeben.

Beispiel: 5100.564

Wie bekomme ich das hin das nur eine ganzzahl ausgegeben wird ??

Gruß Atticus^^

badskill#8
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

03.04.2007, 15:38

Noch nie
ActionScript:
1Math.round()
gesehen?

Atticus#9
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

03.04.2007, 15:40

Super, vielen dank es hat geklappt !!!

Habs jetzt so gemacht:

ActionScript:
1
2
3
var points:Number = 30000000 / _parent.timer.getTime();
_global.punktezahl = _global.punktezahl + points;
_parent.punkte.text = Math.round(_global.punktezahl);



Gruß Atticus^^


AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2022 Sebastian Wichmann - Flashhilfe.de