Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Screen angaben...

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mathias



Anmeldungsdatum: 25.02.2013
Beiträge: 7

BeitragVerfasst am: 25.02.2013, 20:30    Titel: Screen angaben... Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 25.02.2013, 20:36    Titel: Antworten mit Zitat

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. vor lachen auf dem Boden rollen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 25.02.2013, 20:39    Titel: Re: Screen angaben... Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 25.02.2013, 20:52    Titel: Re: Screen angaben... Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mathias



Anmeldungsdatum: 25.02.2013
Beiträge: 7

BeitragVerfasst am: 25.02.2013, 20:52    Titel: Antworten mit Zitat

gut ok, verstehe happy...

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 25.02.2013, 20:57    Titel: Antworten mit Zitat

Ja, zufälligerweise auf genau dieser Seite.
http://www.freebasic-portal.de/tutorials/
Tastatur: INKEY / MULTIKEY, Maus: GETMOUSE.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 25.02.2013, 20:59    Titel: Antworten mit Zitat

Mathias hat Folgendes geschrieben:
mausbenutzung,

http://www.freebasic-portal.de/befehlsreferenz/getmouse-291.html

Mathias hat Folgendes geschrieben:
tastertur benutzung.



Mathias hat Folgendes geschrieben:
PNG laden (also bilder ect)



Im FreeBASIC-Portal findest du eigentlich alles, was du zum FreeBASIC-Lernen brauchst. zwinkern
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mathias



Anmeldungsdatum: 25.02.2013
Beiträge: 7

BeitragVerfasst am: 25.02.2013, 21:06    Titel: Antworten mit Zitat

gut werde mir alles durcharbeiten, die letzte frage die mir da bleibt.

ich habe mir so eine textausgabe erarbeitet happy

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
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 25.02.2013, 21:13    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Mathias



Anmeldungsdatum: 25.02.2013
Beiträge: 7

BeitragVerfasst am: 25.02.2013, 21:41    Titel: Antworten mit Zitat

stoplerfalle, bissel kompliziert das ganze happy

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 happy

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
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 25.02.2013, 22:01    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Mathias



Anmeldungsdatum: 25.02.2013
Beiträge: 7

BeitragVerfasst am: 26.02.2013, 01:03    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 956
Wohnort: Austria

BeitragVerfasst am: 26.02.2013, 01:24    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Mathias



Anmeldungsdatum: 25.02.2013
Beiträge: 7

BeitragVerfasst am: 26.02.2013, 01:41    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 26.02.2013, 03:46    Titel: Antworten mit Zitat

Sebastian hat Folgendes geschrieben:


Im FreeBASIC-Portal findest du eigentlich alles, was du zum FreeBASIC-Lernen brauchst. zwinkern


PNG Grafik Library, FBpng und pnglib

The FreeImage Project

Für den Anfang (zum üben) ist der Umgang mit BMPs etwas einfacher und ohne weitere Libs möglich...
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Mathias



Anmeldungsdatum: 25.02.2013
Beiträge: 7

BeitragVerfasst am: 26.02.2013, 05:32    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 26.02.2013, 05:42    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 26.02.2013, 08:15    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz