Tage zählen
Übersicht

![]() |
ToeBBetreff: Tage zählen |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie krig ich dat hin, ich möchte eine Tages anzeige erstellen, so als ob im spiel ein neuer tag beginnt, nur das dieser auch angezeigt wird... ![]() ![]() |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
willst du einen optischen Tageswechsel, oder eine Anzeige für die Zeit (z.b. für eine Uhr im Game)??
Bisschen klarer ausdrücken bitte ![]() MfG. |
||
0penguin0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
versteh ich nicht ganz... willst du, dass wenn man 30 min. spielt die sonne langsam untergeht und der mond auf oder wie?!? | ||
i never finish anyth |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich will das da ne Zeitanzeige ist, die, wenn z.b. 10 min rum sind dann auf denn nächsten tag "Überspringt". | ||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] while not keyhit(1)
a=120+(sin(millisecs()/60000)*120) ; Verändere die 60000 um die Zeit zu verändern! ambientlight a,a,a ; die +120 beim a= seht dafür, dass die Zahl die durch die Sinuskurve erzeugt wird, nicht in den Minus(-)Bereich geht (erzeugte Schwingung von -120 bis +120 >>> durch +120 also jetz 0-240) Das ist für das Licht.... (obiger Code) Eine Anzeige für die Zeit als Text... mmh.... Code: [AUSKLAPPEN] b=1
if a=0 then b=b+1 UpdateWorld RenderWorld Text 0,20,"Es ist nun der Tag "+b Flip Wend Habe es nicht getestet aber müsste funktionieren |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab ich getestet, aber der mach da nur fehler... | ||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Präzieser... ![]() Du sprichst in Rätseln ^^ Welche Fehler? |
||
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn ich das richtig versteh willst du das wenn man 10 min gespielt hat das dann da steht
" Tag : Montag " " Zeit : 12.00 " oder??? dann: Code: [AUSKLAPPEN] tag=1;montag if tag = 1 then print"montag" if tag = 2 then print"dienstag" ... ... ... if zeit = 24.00 then tag = tag+1 if tag > 7 then tag = 1 if zeit > 24.00 then zeit = 0.01 print tag print zeit dann solltest du eben noch einbauen dasdie variable zeit jede 1000 millisecs um 1 erhöht wir ich denke dann is es das was du möchtest. |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
mhmm, könnte sein...
probier ich ma aus... |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
0penguin0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Crack93 hat Folgendes geschrieben: Ich will das da ne Zeitanzeige ist, die, wenn z.b. 10 min rum sind dann auf denn nächsten tag "Überspringt".
meinst du sowas: Code: [AUSKLAPPEN] wiederhole wenn jetziger_zeitpunkt-startzeit > dauer_eines_tages dann tag = tag + 1 solange nicht ende sorry, ich versteh dein problem ehrlich gesagt nicht... |
||
i never finish anyth |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich weiß au net was du wirklich willst, aber hier ein Beispiel (auf 1 minute gekürzt)
Code: [AUSKLAPPEN] Graphics 400,300,16,2
SetBuffer BackBuffer() day_start=MilliSecs() ;Startpunkt für Zeitmessung tag=1 ;Wir starten Montags tag_str$="Montag" ;******************************+HAUPTSCHLEIFE***************************************************** Repeat Cls ;----------------------------------------------------------------------------------------- ;Berechnungen day_time=MilliSecs()-day_start;Ganz wichtig, hier wird die Zeit geupdatet stunden=Int(Floor#(day_time*0.0004));Berechnet die Stunden (24/60000=0.0004; daher dieser Faktor) minuten=Int((day_time*0.0004-stunden)*60);Die Geammtzeit minus die vollen Stunden * 60 ergibt die minuten stunden_$="" ;Leert die Zusatzstrings minuten_$="" If stunden<10 Then stunden_$="0" ;Fügt eine Null vor den String, falls er zu klein ist (z.B.: aus 9 wird 09) If minuten<10 Then minuten_$="0" zeit$=stunden_$+Str$(stunden)+":"+minuten_$+Str$(minuten);Erstellt den finalen String ;Es wird hell.... If day_time<30000 Then ClsColor day_time*0.0085,day_time*0.0085,day_time*0.0085 ;Es wird dunkel.... If day_time>30000 Then ClsColor 510-day_time*0.0085,510-day_time*0.0085,510-day_time*0.0085 If day_time>60000 Then ;Wenn der Tag vorbei ist, dann: day_start=MilliSecs() ;Beginnt er HIER neu, tag=tag+1 ;wird der nächste Wochentag gewählt If tag>7 Then tag=1 If tag=1 Then tag_str$="Montag" If tag=2 Then tag_str$="Dienstag" If tag=3 Then tag_str$="Mittwoch" If tag=4 Then tag_str$="Donnerstag" If tag=5 Then tag_str$="Freitag" If tag=6 Then tag_str$="Samstag" If tag=7 Then tag_str$="Sonntag" EndIf ;------------------------------------------------------------------------------------------ ;Ausgaben Text 200,150,tag_str$+", "+zeit$,1,1+" Uhr" ;Hauptausgabe (Wochentag+Uhrzeit) ;Nur ein paar Ausgaben zur Hilfe - nicht nötig ;) Color 255,0,0 Text 0,0,"Systemtageszeit "+day_time Text 0,20,"Umrechnungszeit: "+day_time*0.0004 Flip Until KeyHit(1) Ich weiß...Zeitberechnung ist kompliziert...aber versuche bitte ERST den Code zu verstehen und DANN nochmal nachzufragen, wenn du's net gleich kapierst ![]() |
||
Zitat:
Wie poste ich falsch? Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. |
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Meinst du so etwas eventuell?
Hatte mal langeweile und hatte mal eine Funktion von mir ein wenig modifiziert ![]() Code: [AUSKLAPPEN] Graphics 600,400,16,2 Dim monate(12) : Global schaltjahr=28 monate(1)=31 : monate(2)=29 : monate(3)=31 monate(4)=30 : monate(5)=31 : monate(6)=30 monate(7)=31 : monate(8)=31 : monate(9)=30 monate(10)=31 : monate(11)=30 : monate(12)=31 ; -------------------- Synonyme ------------------ ; %jahr = Das Jahr wird voll ausgeschrieben ; %jj = Das Jahr wird verkürzt angezeigt ; %monat = Der Monat wird voll ausgeschrieben ; %month = Der Monat wird verkürzt gezeigt ; %tag = Der Tag wir voll ausgeschrieben ; %tt = Die ersten zwei Buchstaben des Tages ; %dd = Der Tag wird als Zahl zurückgegeben ; %hh = Stunden ; %mm = Minuten ; %ss = Sekunden timer = 0 tag = 1 : monat = 1 : jahr = 1980 Global current_time$ Global current_date$ = "01 Jan 1980" While Not KeyHit(1) Cls sekunden = sekunden+8000 ; <-- gameSpeed If sekunden >=86400 sekunden = sekunden-86400 tag = tag+1 If tag>monate(monat) Then tag = 1 : monat=monat+1 If monat>12 Then monat=1 : jahr = jahr+1 If tag<10 Then a$ = "0"+tag Else a$ = tag c$ = jahr current_date$ = a$ +" "+ monatname$(monat) +" "+ c$ End If hh = sekunden / 3600 : If hh<10 Then h$ = "0"+hh Else h$ = hh mm = (sekunden-hh*3600)/60 : If mm<10 Then m$ = "0"+mm Else m$ = mm ss = sekunden Mod 60 : If ss<10 Then s$ = "0"+ss Else s$ = ss current_time$ = h$+":"+m$+":"+s$ draw_clock(220,20,200) Text 320,240,uhranzeige$("%tt %hh:%mm:%ss %dd, %tag %month %jahr"),1 Flip Wend Function uhranzeige$(zeile$) time$ = current_time$ date$ = current_date$ hh$ = Left$(time$,2) : mm$ = Mid$(time$,4,2) : ss$ = Right$(time$,2) dd$ = Left$(date$,2) : month$ = Mid$(date$,4,3) : jahr$ = Right$(date$,4) jj$ = Right$(jahr$,2) : monat$ = monatname$(month$) tag$ = getTag$(dd,monatzahl(month$),jahr) tt$ = Left$(tag$,2) For a=1 To Len(zeile$) st$ = Mid$(zeile$,a,1) If read_befehl=1 befehl$=befehl$+st$ Select befehl$ Case "hh" : n$ = hh$ Case "mm" : n$ = mm$ Case "ss" : n$ = ss$ Case "jj" : n$ = jj$ Case "dd" : n$ = dd$ Case "month" : n$ = month$ Case "tt" : n$ = tt$ Case "tag" : n$ = tag$ Case "monat" : n$ = monat$ Case "jahr" : n$ = jahr$ End Select If n$<>"" Then anzeige$=anzeige$+n$ : n$="" : read_befehl=0 : befehl$="" Else If st$<>"%" Then anzeige$=anzeige$+st$ End If If st$="%" Then read_befehl=1 Next Return anzeige$ End Function Function monatname$(mon$) Select mon$ Case "Jan" : monat$="Januar" Case "Feb" : monat$="Februar" Case "Mar" : monat$="März" Case "Apr" : monat$="April" Case "May" : monat$="Mai" Case "Jun" : monat$="Juni" Case "Jul" : monat$="Juli" Case "Aug" : monat$="August" Case "Sep" : monat$="September" Case "Oct" : monat$="Oktober" Case "Nov" : monat$="November" Case "Dec" : monat$="Dezember" End Select If mon>0 Select mon Case 1 : monat$ = "Jan" Case 2 : monat$ = "Feb" Case 3 : monat$ = "Mar" Case 4 : monat$ = "Apr" Case 5 : monat$ = "May" Case 6 : monat$ = "Jun" Case 7 : monat$ = "Jul" Case 8 : monat$ = "Aug" Case 9 : monat$ = "Sep" Case 10 : monat$ = "Oct" Case 11 : monat$ = "Nov" Case 12 : monat$ = "Dec" End Select End If Return monat$ End Function Function monatzahl(mon$) Select mon$ Case "Jan" : m=1 Case "Feb" : m=2 Case "Mar" : m=3 Case "Apr" : m=4 Case "May" : m=5 Case "Jun" : m=6 Case "Jul" : m=7 Case "Aug" : m=8 Case "Sep" : m=9 Case "Oct" : m=10 Case "Nov" : m=11 Case "Dec" : m=12 End Select Return m End Function Function getTag$(tag,monat,jahr) start_jahr = 1980 : start_tag=1 dif_jahre = jahr-start_jahr schalt_jahre = dif_jahre/4 tage = (dif_jahre*365)+schalt_jahre normal_jahr = dif_jahre Mod 4 : If normal_jahr>0 Then normal_jahr=1 Else tage=tage-1 For a=1 To monat-1 If a=2 Then plus_tage=monate(2)-normal_jahr Else plus_tage=monate(a) tage=tage+plus_tage Next : tage=tage+tag If dif_jahre=0 Then tage=tage+1 Select (tage+start_tag) Mod 7 Case 0 : n$ = "Montag" Case 1 : n$ = "Dienstag" Case 2 : n$ = "Mittwoch" Case 3 : n$ = "Donnerstag" Case 4 : n$ = "Freitag" Case 5 : n$ = "Samstag" Case 6 : n$ = "Sonntag" End Select Return n$ End Function Function draw_clock(x,y,s) Color 255,255,255 mx = x + s/2 my = y + s/2 For a=0 To 11 lx = mx+Sin(a*30)*s/2 ly = my+Cos(a*30)*s/2 Line lx,ly,lx-Sin(a*30)*4,ly-Cos(a*30)*4 Next Oval x,y,s,s,0 st$ = current_time$ hh = Left$(st$,2) : mm = Mid$(st$,4,2) : ss = Right$(st$,2) ; Sekundenzeiger Color 255,255,0 : Line mx,my,mx+Sin(ss*6)*(s-100)/2,my-Cos(ss*6)*(s-100)/2 ; Minutenzeiger Color 0,0,255 : Line mx,my,mx+Sin(mm*6)*(s-50)/2,my-Cos(mm*6)*(s-50)/2 ; Stundenzeiger Color 255,0,0 : Line mx,my,mx+Sin(hh*30)*s/2,my-Cos(hh*30)*s/2 End Function Du kannst oben in current_date$ ein Start datum setzen. Das frühste Jahr was du nehmen kannst ist 1980. Den Monat musst du abgekützt in Englisch hinschreiben. Halte dich dabei genau an die Formatierung die schon vorgegeben ist. Über Uhranzeige kannst du dir jegliche Formatierung deiner persönlichen Zeitanzeige selbst zurechtlegen. Der erhöhungswert für die Sekunden pro Umlauf, gibt dann sozusagen den Speed des Games an. Wenn du das nun meintest, dann könnte ich mich eventuell dazu bewegen, den Code ordentlich für dich aufzuschreiben ![]() |
||
°_° °.° °~° °v° .. -.- |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nurmal zur Info: Er muss den Code LERNEN und nicht geschrieben bekommen ![]() |
||
Zitat:
Wie poste ich falsch? Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich finde es auch sehr lustig dass ein Schaltjahr bei Matrix 28 und ein normales 29 Tage im Februar hat.
Als vorgehen: Du ermittelst zum Start deines Games mit ql:millisecs() die Zeit. Wenn du willst das alle 10 Minuten ein neuer Tag beginnt musst du zu diesem Wert 10min*60*sec*1000Millisec -> 600000 hinzuzählen. Wenn millisecs() größer als dieser Wert ist hat der neue Tag begonnen. Nun merkst Du dir diesen Wert und wartest auf den nächsten Tag, und so weiter und so fort. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ey danke euch allen, ich habe das problem gelöst:
Code: [AUSKLAPPEN] Repeat Day = Day + 1 Print "Tag "+ Day Delay 10000 Forever |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jop, und in der zeit des Delays macht dein Programm exakt NICHTS. Tolles Spiel.
Vergiss das also sofort wieder und mach es mit Millisecs. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mr Hopp hat Folgendes geschrieben:
... TheMatrix hat Folgendes geschrieben: Crack93 hat Folgendes geschrieben: ![]() Naja, damit das Programm nicht stehen bleibt, versuchs mal so: Code: [AUSKLAPPEN] ;** Zeitzähler ;** 25.11.2006 by Triton ;** http://www.silizium-net.de t=MilliSecs() While Not KeyDown(1) diff=MilliSecs()-t If diff > 10000 Then Cls t=MilliSecs() day=day+1 End If Text 10,10, day+" Tage vergangen!" Text 10,40, "Der aktuelle Tag ist "+diff+" ms alt." Flip Cls Wend ![]() |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
@BladeRunner
Du hast aber nur den Anfang des Codes gelesen. ![]() Später wird das Schaltjahr so verarbeitet, das da 29 rauskommt und für ein normales Jahr nur 28 Tage ![]() Naja, aber ein Versuch wars doch wert ![]() Aber was haltet ihr generell von dem Code. Wäre er würdig in das Codearchive zu posten, wenn ich ihn entsprechend anpasse? ![]() |
||
°_° °.° °~° °v° .. -.- |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich dachte er wollte einen ganz genauen tageswechsel mit Sonnenauf- und Untergang...deswegen son langer code ![]() |
||
Zitat:
Wie poste ich falsch? Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. |
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hehe, ich hab halt gleich ein wenig weiter gedacht ![]() So kann er mit dem Code nicht nur einen Tageswechsel simulieren, sondern auch wissen, welcher Tag, Monat und welches Jahr es grad in seinem Spiel ist ![]() ![]() Ich versuch halt immer gern zu helfen ![]() mfg,TheMatrix |
||
°_° °.° °~° °v° .. -.- |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group