 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Mathias
Anmeldungsdatum: 25.02.2013 Beiträge: 7
|
Verfasst am: 25.02.2013, 20:30 Titel: Screen angaben... |
|
|
moin, ich bin hier neu zu euch gestoßen und habe schon direckt ein paar fragen.
1. wie schnell ist der compiler eigentlich?
2. was für projekte ist mit diesem möglich?
3. wo gibt es grenzen?
und so nebenbei habe ich mir die befehlsreferenz angesehen, da ich doch gern etas im vollbild modus machen würde, ist mir direckt auch etwas ins auge gestochen.
und zwar
Code: | SCREEN 21, 32, 4, 1 |
würde bedeuten
eine auflösung von 1280x1024
auf 32 bit mit 4 seiten und 1 für vollbild
wenn ich das ganze richtig verstanden habe.
aber wie ist es mögliche eine auflösung von 1920x1080 zu nutzen.?
ich bedanke mich im vorfeld. |
|
Nach oben |
|
 |
Westbeam

Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 25.02.2013, 20:36 Titel: |
|
|
Code: | ScreenRes 1920,1080,32 |
Fenster mit den Ausmaßen 1920x1080 und der Tiefe 32.
Zitat: | wo gibt es grenzen? |
Es gibt keine Grenzen, mit FreeBasic ist alles möglich. Sogar Betriebssystementwicklung und Compilerbau.  |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 25.02.2013, 20:39 Titel: Re: Screen angaben... |
|
|
Mathias hat Folgendes geschrieben: | 1. wie schnell ist der compiler eigentlich? |
In welcher Geschwindigkeitsangabe möchtest du das haben, Kilometer pro Stunde? Meinst du wirklich den Compiler, oder den von ihm erzeugten Code?
Mathias hat Folgendes geschrieben: | 2. was für projekte ist mit diesem möglich? |
Alles was du willst, wenn du denn genug Zeit und Nerven in das Programm investierst (wie bei jeder Sprache).
Mathias hat Folgendes geschrieben: | 3. wo gibt es grenzen? |
Da, wo auch die Grenzen von anderen Sprachen liegen, insbesondere C, liegen. Unspezifische Antwort, da unspezifische Frage. Auf so etwas wie "Kann man C++-Bibliotheken in FB verwenden?" könnte man z.B. mit "momentan noch nicht" antworten. Wobei die Grenze natürlich auch wieder nur eine theoretische ist - FB ist Turing-vollständig, d.h. man kann damit alles programmieren, was man möchte. Es ist nur unter umständen sehr kompliziert. Wie in jeder anderen Sprache auch.
Zitat: | aber wie ist es mögliche eine auflösung von 1920x1080 zu nutzen.? |
Mit ScreenRes. Screen ist antik und sollte nicht verwendet werden. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 25.02.2013, 20:52 Titel: Re: Screen angaben... |
|
|
Jojo hat Folgendes geschrieben: | Mit ScreenRes. Screen ist antik und sollte nicht verwendet werden. |
Siehe dazu SCREENRES in der Befehlsreferenz. Wie für SCREEN gibt es auch für SCREENRES ein Vollbildflag.
Die von FreeBASIC erzeugten Binaries sind normalerweise übrigens ziemlich schnell. Noch mal sollte sich herausholen lassen, wenn du mit der Kommandozeilenoption -gen gcc compilierst (setzt installierten gcc voraus). Dann wird das Programm auch noch mal vom gcc optimiert. Der kann da einiges mehr als FreeBASIC alleine für sich. _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Mathias
Anmeldungsdatum: 25.02.2013 Beiträge: 7
|
Verfasst am: 25.02.2013, 20:52 Titel: |
|
|
gut ok, verstehe ...
dann hätte ich noch eine frage, undzwar das grundlegende. mausbenutzung, tastertur benutzung. PNG laden (also bilder ect) gibt es dazu irgendwo hilfreiche tutorials? |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Mathias
Anmeldungsdatum: 25.02.2013 Beiträge: 7
|
Verfasst am: 25.02.2013, 21:06 Titel: |
|
|
gut werde mir alles durcharbeiten, die letzte frage die mir da bleibt.
ich habe mir so eine textausgabe erarbeitet
Code: | ScreenRes 1920,1080,32,1,&h01,60
IF SCREENPTR = 0 THEN
PRINT "Bildschirmmodus nicht initialisiert!"
END
END IF
Do
Line (0,0)-(1920,1080),RGBA(0,0,128,1),BF
Draw String (10,100),"LOL",RGBA(255,0,0,1)
LOOP UNTIL INKEY = "q" |
das problem was ist das der text flimmert, muss man das ganze irgendwie buffern lassen oder so? |
|
Nach oben |
|
 |
Westbeam

Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 25.02.2013, 21:13 Titel: |
|
|
Code: | Do
Sleep 1,1
ScreenLock
Cls
'Grafikausgabe
ScreenUnlock
Loop |
So löse ich das immer, gibt aber afaik auch andere Lösungen. |
|
Nach oben |
|
 |
Mathias
Anmeldungsdatum: 25.02.2013 Beiträge: 7
|
Verfasst am: 25.02.2013, 21:41 Titel: |
|
|
stoplerfalle, bissel kompliziert das ganze
also in mousex sind ja tatsächlich die maus x coordinaten, wenn ich diese aber ausgeben will geht das nicht warscheinlich liegt es daran weils ein intenger ist. gibt es eine möglichkeit umzuwandeln?
also wie gesagt möchte gerne mosue x ausgeben, hier mein funktions code den ich zum testen benutz
Code: | ScreenRes 1920,1080,32,,&h01
IF SCREENPTR = 0 THEN
PRINT "Bildschirmmodus nicht initialisiert!"
END
END If
Dim As Integer MouseX, MouseY, MouseDown, MouseInWindow, MBL, MBR
DECLARE FUNCTION Beenden (x AS INTEGER) AS INTEGER
FUNCTION Beenden (x AS INTEGER) AS Integer
If x=1 Then end
End Function
Do
ScreenLock
Line (0,0)-(1920,1080),RGBA(0,0,128,1),BF
Draw String (10,100),"LOL",RGBA(255,0,0,50)
ScreenUnLock
MouseInWindow = GetMouse (MouseX, MouseY, , MouseDown)
If MouseInWindow <> 0 Then
'Maus nicht vorhanden/nicht im Fenster
Else
'Maus ist im Fenster
If MouseDown And 1 Then MBL=1
If MouseDown And 2 Then MBR=1
Draw String (0,0), "MouseX:"+ MouseX ,RGBA(255,0,0,1)
End If
'Flip
Beenden(0)
LOOP UNTIL INKEY = "q"
|
und hier ist ein fehler
Code: | Draw String (0,0), "MouseX:"+ MouseX ,RGBA(255,0,0,1) |
|
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 25.02.2013, 22:01 Titel: |
|
|
Auf die Reihenfolge kommt es an:
Code: | ScreenRes 400,400,32
Dim As Integer MouseX, MouseY, MouseDown, MouseInWindow
Do
MouseInWindow = GetMouse (MouseX, MouseY, , MouseDown)
ScreenLock
Line (0, 0) - (1920, 1080), RGBA(0, 0, 128, 1), BF
Draw String (10, 100), "LOL", RGBA(255, 0, 0, 50)
If MouseInWindow = 0 Then
Draw String (0, 0), "MouseX:" & MouseX , RGBA(255, 0, 0, 1)
End If
ScreenUnLock
Sleep 100
Loop Until Inkey = "q" |
Ein Fehler in der angegebenen Zeile war '&' statt '+' um einen Integer mit einem String zu verknüpfen. |
|
Nach oben |
|
 |
Mathias
Anmeldungsdatum: 25.02.2013 Beiträge: 7
|
Verfasst am: 26.02.2013, 01:03 Titel: |
|
|
ok, ich sehe das du das prog für 100 ms schlafen legst, ist das sinnvoll?
und wenn ja warum?
Zuletzt bearbeitet von Mathias am 26.02.2013, 01:41, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 26.02.2013, 01:24 Titel: |
|
|
Ja, das ist sinnvoll in den meisten Fällen, da du damit die (salopp ausgedrückt) "CPU Auslastung" reduzierst. Ob es 100ms sein müssen ist dann entsprechend deinen Anforderungen zu entscheiden, denn auch 1ms machen Sinn.
Bei Sleep geht es weniger um die Verzögerung deines Programms, sondern CPU Ressourcen auch anderen Programmen abzugeben. Beim Aufruf von Sleep wird auf die vollständige Ausnutzung eines vom Betriebssystem zugewiesenen time slice (Zeitfenster) verzichtet und ein anderer Prozess kann aktiv werden.
In manchen Fällen (insb. z.B. Spiele) kann es jedoch auch durchaus Sinn machen, das Sleep wegzulassen und stattdessen die zugeteilte Rechenzeit vollständig auszunutzen. Am besten einfach ausprobieren, inwieweit die eingeschränkte Rechenzeit verkraftbar ist.
Ein Sleep 1 wird in der Realtät auch deutlich mehr als 1ms Verzögerung verursachen, da dabei - wie erwähnt - auf den Rest des eigenen time slice Verzichtet wird. Angenommen ein time slice sei 15ms (und unter Vernachlässigung von context switches) wird ein solches Sleep etwa eine Verzögerung von ca. 15ms bewirken. _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
Mathias
Anmeldungsdatum: 25.02.2013 Beiträge: 7
|
Verfasst am: 26.02.2013, 01:41 Titel: |
|
|
und dann nochmal eine sache zu png laden, irgendwie funktioniert das ganze nicht so wie erhofft, gibt es dazu irgendwelche libs die man in freebasic einfügen muss oder der gleichen?
wenn frag ich mich grad was alles an libs fehlt, da ich freebasic roh habe, also ich denke ohne irgendwelche libs. |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
|
Nach oben |
|
 |
Mathias
Anmeldungsdatum: 25.02.2013 Beiträge: 7
|
Verfasst am: 26.02.2013, 05:32 Titel: |
|
|
ja nach langem bemühen hat es dann geklappt aber was mich wundert ist das die pngs nicht wirklich transperent sind, warum oder wie kanns? |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 26.02.2013, 05:42 Titel: |
|
|
Wenn man mit FBimage und Get/Put arbeitet gibt es eine 'Maskenfarbe' RGB(255,0,255) oder &hFF00FF welche bei put durch den zusatz Trans nicht gezeichnet, also transparent ist.
Ansonsten, ich hab ewig nichts mehr in der Richtung probiert/getestet, gibt es auch ein richtiges Alpha per screen bzw screenres die transparenz entprechend der Alphawerte darstellen müssten...
Weiss es gerade aber nicht mehr ganz genau... _________________
 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 26.02.2013, 08:15 Titel: |
|
|
Ich denke, hier ist das Aktionswort ALPHA das was du suchst. Habe ich mit PNG zwar noch nicht getestet, sehe aber keinen Grund, warum es da zu Problemen kommen sollte. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|