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:

OGL Befehl für Print
Gehe zu Seite Zurück  1, 2
 
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
Eternal_pain



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

BeitragVerfasst am: 07.09.2007, 21:01    Titel: Antworten mit Zitat

Also ich habe den obigen Post nur als Beispiel angegeben (das mir auf die schnelle eingefallen war) nicht als ultimative loesung, es ist praktisch wenn man mal schnell was 'hinklatschen' will um variablen zu pruefen ect...
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Caran



Anmeldungsdatum: 11.03.2007
Beiträge: 290
Wohnort: Lörrach

BeitragVerfasst am: 07.09.2007, 21:02    Titel: Antworten mit Zitat

atari hat Folgendes geschrieben:
also lasst den unsinn mit text im openglfenster. als anfän ger zum testen ja und dann finger davon.
Eigentlich wollte ich nur damit die genaue Position einer Figur auslesen...
Auserdem ist mir grad auch ne höchst einfache Lösung durch Jojo eingefallen ich kann das ja in der Konsole ausgeben:
Code:
shell "echo "+str(position)

atari hat Folgendes geschrieben:
die fenster sind geschickt angebunden und für den nutzer als ein screen sichtbar.
Echt jetzt??? geschockt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
atari
gesperrt


Anmeldungsdatum: 26.08.2007
Beiträge: 144

BeitragVerfasst am: 08.09.2007, 14:43    Titel: Antworten mit Zitat

noch eine bessere lösung :

ich mache meine steuerungen alles über das clipboard und screen, können auch mehrere sein, die man geschickt optisch zusammen bringt oder nur einen screen den man dann auch optisch schön aufbereitet.

daten zum openglfenster zum steuern der objekte und auch die daten von dem opengl-objekten zur orientierung zur darstellung auf dem screen. klappt wunderbar.

Code:

#include "windows.bi"

Declare Sub WriteClipboard(Text As String)
Declare Function ReadClipboard() As String

Dim As String a

Screen 12

Input a
WriteClipboard(a)
Print ReadClipboard

sleep

Sub WriteClipboard(Text As String)
  Dim As Any Ptr lpMem, hGlobalClip

  hGlobalClip=GlobalAlloc(GMEM_MOVEABLE Or GMEM_SHARE, Len(Text)+1)
  OpenClipboard(0)
  EmptyClipboard()
  lpMem=GlobalLock(hGlobalClip)
  lstrcpy(lpMem, strptr(Text))
  GlobalUnlock(lpMem)
  SetClipboardData(CF_TEXT, hGlobalClip)
  CloseClipboard()
End Sub

Function ReadClipboard() As String
  Dim As Any Ptr hGlobal, pGlobal
  Dim As String txt

  OpenClipboard(0)
  hGlobal=GetClipboardData(1)
  If hGlobal then
    pGlobal=GlobalLock(hGlobal)
    txt=Space(lstrlen(pGlobal)) ' txt auf die Länge des Clipboards bringen
    lstrcpy(strptr(txt), pGlobal)
    ReadClipboard=txt
  End If
  CloseClipboard()
End Function



mit netzwerkbefehlen habe ich das auch schon versucht, klappt manchmal nicht und kommt mir so langsam vor.

vielleicht kann jojo ja mal was machen, das die fenster untereinander kommunizeiren können mit netzwerkbefehlen, aber einfach stricken.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Caran



Anmeldungsdatum: 11.03.2007
Beiträge: 290
Wohnort: Lörrach

BeitragVerfasst am: 08.09.2007, 21:38    Titel: Antworten mit Zitat

Ich wollte auch mal Informationen über die Zwischenablage an mehrere Fenster senden. Das war damals in meinem Programm allerdings ein Schuss in den Ofen. traurig
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 09.09.2007, 03:25    Titel: Antworten mit Zitat

@atari:
oO schlechter Stil zwinkern
hGlobal ist vom Typ HGLOBAL (und nicht any ptr) zwinkern
und pGlobal ist ein ZString Ptr (da FB die "alte" GlobalLockA verwendet, und nicht die "neue" Unicode GlobalLockW (falls es diese diff. überhaupt bei diesen kleinen Funktionen gebn sollte) zwinkern

Zitat:
ich mache meine steuerungen alles über das clipboard und screen,
Nur dumm, dass so die vorherigen Daten im ClipBoard verloren gehen. zwinkern

Zitat:
atari hat Folgendes geschrieben:
die fenster sind geschickt angebunden und für den nutzer als ein screen sichtbar.
Echt jetzt??? geschockt

Nö.
Die HL-Engine, z.B., verwendet praktisch betrachtet einfach diese Funktion, nur halt ein "bisschen sehr viel" erweitert.

Zitat:
opengl können nur die leute die sich damit befassen, ansonsten ist es nur eine hinfrimelei und bringt nichts.

wer nur freebasic/qbasic kann soll die finger von opengl lassen und deren ureigentlichen grafikbefehle ausreizen. opengl ist etwas besonderes.

es gibt nur 3 leute hier im forum die das beherrschen , ich und 2 andere.


Den ersten Satz kapiere ich nicht. (hä?)
@2Sentence:
Sonst gehts dir wohl noch ganz richtig im Kopfe, gell?
OGL zeichnet sich doch gerade dadurch aus, dass es UNABHÄNGIG vom OS, UND von der Sprache ist zwinkern
@3Sentence:
Bitte outen durchgeknallt (nicht dass ich nicht wüsste, wenn er nicht nicht nicht nicht meint. lachen )
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
atari
gesperrt


Anmeldungsdatum: 26.08.2007
Beiträge: 144

BeitragVerfasst am: 09.09.2007, 10:27    Titel: Antworten mit Zitat

Zitat:


Den ersten Satz kapiere ich nicht. (hä?)


hä, ich mache ein opengelfenster auf oder auch zwei. dann noch ein normalen grafikscreen(freebasictypisch), den teile ich in mehrere bereiche auf zb um dort die entfernung der objekte untereinander anzugeben(xyz),
grafische button(keine gui von windows sondern selber entworfen) usw. ist ein richtig nett aussehender screen für sich, man auch sagen spieleresultatfenster.
wenn ich jetzt zb ein button anklicke, wird ein text zum anderen openglfenster über das clipboard geschickt nach dem motto, tue jetz das was ich dir schicke. das openfenster schaut im interrupt dauernd nach ob etwas im clipboard steht, wenn es für dieses openglfenster ist, holt es sich das aus dem clipboard (löscht ds clipboard) und verarbeitet es. durch eine kennung im text kann ich bestimmen für welches openglfenster es ist.
da ich einen langsamen rechner habe mache ich nur 2 openglfenster auf.
andersherum kann das openglfenster auch daten in das clipboard legen für mein steuerungsfenster und da läuft es genauso ab, wichtig ist die kennung, damit es an das richtige fenster kommt.

ich hatte es schon über netzwerkbefehle versucht, da klappt es noch nicht so richtig, vielleicht schafft das einer mal.

nun frohes schaffen bei der grafik und opengl programmierung. ich hoffe ihr habt auch spass damit. es fesseld ein, immer etwas neues. na denn.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
atari
gesperrt


Anmeldungsdatum: 26.08.2007
Beiträge: 144

BeitragVerfasst am: 09.09.2007, 10:32    Titel: Antworten mit Zitat

Zitat:

oO schlechter Stil zwinkern
hGlobal ist vom Typ HGLOBAL (und nicht any ptr) zwinkern
und pGlobal ist ein ZString Ptr (da FB die "alte" GlobalLockA verwendet, und nicht die "neue" Unicode GlobalLockW (falls es diese diff. überhaupt bei diesen kleinen Funktionen gebn sollte) zwinkern


happy ich bin für jeden produktiven vorschlag dankbar. danke, das du mir helfen willst happy mach mal ein kurze beispiel mit den beiden fenstern, danke.
man lernt immer neue sachen dazu, ich freue mich.

Zitat:

Nö.
Die HL-Engine, z.B., verwendet praktisch betrachtet einfach diese Funktion, nur halt ein "bisschen sehr viel" erweitert.


helf mir hier auch mal bei, es gibt doch gute user hier.


Zitat:

Nur dumm, dass so die vorherigen Daten im ClipBoard verloren gehen. zwinkern


das habe ich nicht gewusst, toll das du dich so in die materie rein knieen tust. erklär mir das mal. hmm, freebasic ist unergründlich, das ist der reiz.
aber dafür gibt es ja das nette forum.


Zuletzt bearbeitet von atari am 09.09.2007, 10:37, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Caran



Anmeldungsdatum: 11.03.2007
Beiträge: 290
Wohnort: Lörrach

BeitragVerfasst am: 09.09.2007, 10:36    Titel: Antworten mit Zitat

csderats hat Folgendes geschrieben:

Zitat:
ich mache meine steuerungen alles über das clipboard und screen,
Nur dumm, dass so die vorherigen Daten im ClipBoard verloren gehen. zwinkern

Das könnte man doch lösen indem man das Clipboard erst ausliest und danach in nen String packt, bevor man was sendet. Wenn man das Prog dann beendet werden noch die Daten aus dem zuvor gespeicherten String wieder ins Clipboard kopiert und dann: hatt man fertig. zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
atari
gesperrt


Anmeldungsdatum: 26.08.2007
Beiträge: 144

BeitragVerfasst am: 09.09.2007, 10:49    Titel: Antworten mit Zitat

Zitat:

Das könnte man doch lösen indem man das Clipboard erst ausliest und danach in nen String packt, bevor man was sendet.


das mache ich ja durch die fensterkennung im string. bei mir wird es ja beim auslesen aus dem clipboard nicht gelöscht sondern erst wenn es im zugehörigen fenster im string aufgenommen wurde.

bei 3 fenster wird das clipboard von jedem der 3 fenster abgefragt ob es zu ihm gehört.

ich habe jetzt in freebasic noch keinen speicherbereich gefunden worauf jedes externe fenster bzw externe freebasicprogramm(exe) zugreifen kann um den abzufragen. über netzwerkbefehle müsste es gehen, habe aber noch keine vernünftige lösung gefunden die so schnell ist wie beim clipboard.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Caran



Anmeldungsdatum: 11.03.2007
Beiträge: 290
Wohnort: Lörrach

BeitragVerfasst am: 09.09.2007, 10:58    Titel: Antworten mit Zitat

Oha, so hast du das gelöst. Auch ne elegante Möglichkeit.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 09.09.2007, 11:54    Titel: Antworten mit Zitat

@atari:
Das mit den mehreren Screens wäre eher ein Geschwindigkeitsverlust, da man ja die ganzen Screens mit einer Maske (Speicher bei hohen Auflösungen!) oder mit einem Alphakanal (Geschwindigkeit!) verknüpfen müsste.
Dann auch noch Teiltransparenz (Auch nicht sehr effektiv!)!

Nun, wenns darum geht, dass mehrere Instanzen des selben Programmes untereinander kommunizieren, dann ist die Implementierung mit z.B. SDL_net, WinSockets o.ä. die sauberere Methode zwinkern
Wenn sich das ganze auch auf die loopback-Adresse bezieht ist es schneller als das ClipBoard zwinkern
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
atari
gesperrt


Anmeldungsdatum: 26.08.2007
Beiträge: 144

BeitragVerfasst am: 09.09.2007, 15:26    Titel: Antworten mit Zitat

Zitat:

Das mit den mehreren Screens wäre eher ein Geschwindigkeitsverlust, da man ja die ganzen Screens mit einer Maske (Speicher bei hohen Auflösungen!) oder mit einem Alphakanal (Geschwindigkeit!) verknüpfen müsste.
Dann auch noch Teiltransparenz (Auch nicht sehr effektiv!)!


was meinst du wie schnell die grafikbefehle im normalen freebasic sind, das glaubst du gar nicht, programmier das mal ,so schnell kann man nicht gucken. maske und transparenz brauche ich für einen info-schirm nicht, da ist schon genug im openglfenster von drin, diese arbeit soll das opengl machen.

Zitat:

Geschwindigkeitsverlust


was ist für uns kleine unwichtigen homeanwender schon geschwindigkeitsverlust.

wir schreiben keine programme für eine benzineinspritzpumpe oder werten die luftmenge aus mit dem dazugehörigen kraftstoffanteil bei 6000 umdrehungen pro minute oder so.
das sollen die leute machen die damit geldverdienen. das ist für unsere spielobjekte so unwichtig. es gibt schlimmeres im leben.

der eine macht es so der andere so.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 09.09.2007, 19:17    Titel: Antworten mit Zitat

Bei Hardcore-Gamern ist Geschwindigkeit (und damit die FPS-Zahl) durchaus wichtig.
Und dass die Grafikbefehle schneller sind, als man schaut, liegt vllt. daran, dass der Computer "ein bisschen" schneller arbeitet, als das menschliche Augen ebendiese Grafikbefehle wahrnimmt.
Und ich bin der Meinung, dass man mit Direktzugriff auf OGL gleiche Geschwindigkeiten erreicht (erreichen kann), wenn man auf ein paar Dinge achtet (effiziente Programmierung z.B.).
_________________
Eine handvoll Glück reicht nie für zwei.
--
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
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
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