[BB,B+] Binäre Uhr
Übersicht

da_pollerBetreff: [BB,B+] Binäre Uhr |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie im Blitzmax Codearchiv schon zu finden jetzt auch für BB und B+: die binäre uhr..
in den 6 type objekten(bc_w.bc_wert) finden sich folgende werte: dezimal ![]() binär[4] (blitzarray) ![]() id ![]() bc_bin_max ![]() Installation: einfach am anfang des projektes die "binar uhr.bb" includieren und vor anzeigen bc_update() aufrufen. hier erstmal die lib:Code: [AUSKLAPPEN] ; Author: da_poller
; Email: bpoller2810[at]aol[dot]com ; Copyright: FFA(Free For All) ; Description: gives you an type stack with the actual binary time ; ; ;==================================================================== Type bc_wert Field bc_binar[4] Field bc_dezimal Field bc_bin_max Field id End Type Global bc_w.bc_wert Local bc_wert$="243434" For bc_k=0 To 5 bc_w.bc_wert=New bc_wert bc_w\bc_bin_max=Mid(bc_wert$,bc_k+1,1) bc_w\id=bc_k+1 Next Function bc_update() Local i Local zeit$=CurrentTime() zeit$=Replace(zeit$,":","") For bc_w.bc_wert=Each bc_wert bc_i=bc_i+1 For bc_k=0 To 3 bc_w\bc_binar[bc_k]=0 Next bc_w\bc_dezimal=Int(Mid(zeit$,bc_i,1)) Local bc_zahl=bc_w\bc_dezimal Local bc_count=3 Local bc_stack=8 While bc_zahl>0 If bc_zahl>=bc_stack bc_w\bc_binar[bc_count]=1 bc_zahl=bc_zahl-bc_stack EndIf bc_stack=bc_stack/2 bc_count=bc_count-1 Wend Next End Function und hier ein beispiel:Code: [AUSKLAPPEN] Include "binar uhr.bb"
Graphics 400,300,0,2 SetBuffer BackBuffer() timer=CreateTimer(30) Repeat Cls bc_update() draw_clock(10,200) draw_clock2(100,230,30) WaitTimer(timer) Flip 0 Forever End Function draw_clock(x,y) Local zz$ Color 255,255,255 For bc_k=0 To 3 For bc_w.bc_wert=Each bc_wert If bc_k<bc_w\bc_bin_max zz$=zz$+bc_w\bc_binar[k] Else zz$=zz$+" " EndIf Next zz$=Left(zz$,2)+":"+Mid(zz$,3,2)+":"+Right(zz$,2) Text x,y+40-(bc_k*10),zz$ zz$="" Next End Function Function draw_clock2(x,y,size) Local bc_dx=0 For bc_w.bc_wert=Each bc_wert For bc_k=0 To 3 If bc_k<bc_w\bc_bin_max Select bc_w\bc_binar[bc_k] Case 0 Color 100,100,100 Case 1 Color 255,255,255 End Select Oval x+(bc_dx*(size+5)),y-(bc_k*(size+5)),size,size,1 EndIf Next bc_dx=bc_dx+1 Next End Function ich weiß alles recht spärlich kommentiert jedoch ist der code so einfach das er leicht und schnell selbst verstanden werden kann. ob meine art die beste ist wage ich zu beweifeln aber es ist eine und ich hoffe der ein oder andere findet gebrauch dafür.. ps: kritik lob etc immer her damit(natürlich auch verbesserungen und weitere beispiele) edit: 2. anzeigebeispiel eingefügt und korrigiert |
||
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sieht gut aus, nur im Beispiel:
Code: [AUSKLAPPEN] Repeat
Cls bc_update() draw_clock(10,200) draw_clock2(100,230,30) WaitTimer(timer) Flip 0 Forever Das ist ne Endlosschleife... ![]() MFG EDIT Ja, ich find den Code gut, aber ich kann die Kreise nicht wirklich Stunde/Minute/Sekunde zuordnen. |
||
- Zuletzt bearbeitet von Starwar am Do, Feb 26, 2009 21:40, insgesamt einmal bearbeitet
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich weiß,
dumme angewohnheit ich drück immer aufs X is ja fenstermodus ![]() wie findest du und der rest des forums den code? |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ganz überspitzt kann man auch sowas machen: 191b (Dank Holzchopf, der wusste, dass man manche Doppelpunkte weglassen kann!)
Und nochmal ein paar Bytes rausgekitzelt, weil keine mehrstelligen Zahlen mehr verwendet^^. Code: [AUSKLAPPEN] SetBuffer BackBuffer()While 1Cls:For i=1To 8z=4If i=1z=2ElseIf i=4Or i=7z=3
If i Mod 3For j=1To z:Oval 9+9*i,9+9*(4-j),9,9,Mid(Right(Bin(Mid(CurrentTime(),i,1)),4),5-j,1)Next Next:Flip:Wend Ach, und wers nicht lesen kann: Wiki weiß alles |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
spion kannst du den code auch mal leserlich formatieren? ich dacht das codearchiv soll nciht nur codes sondern auch lektionen vermiteln(ich zumindest hab viel im CA gefunden woraus ich lernen konnte) | ||
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sieht gut aus, ich müsste noch irgendwo 'ne binäre Uhr für die Taskleiste rumliegen haben (B+), vlt finde ich sie.
MfG |
||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@da_poller
Der Code von SpionAtom soll nur Zeigen wie kurz man das Zeichnen einer Binäruhr machen kann. Und das Formatiren von den 4 Zeilen Code sollte eig kein Problem, für dich sein. mfg ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group