|
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 |
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 08.10.2005, 17:47 Titel: |
|
|
naja das geht doch auch..
du hast doch einen Wert, wie weit das sichtfeld vom bildschirm ist, 45° hattest du bei OGL glaub ich initialisiert, das zählst du einfach zur kamera dazu (0° = Mitte; 22.5° = links am bildschirm; -22.5° = rechts am bildschirm, kommt natürlich drauf an ob die breitendrehung bei dir nach links (standard) oder rechts positiv ist). Dann machst du mit Sinus und Cosinus entweder nen Wert aus meiner gleichung oder benutzt dann auch deine, müsste ja auch gehen. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
Lutz Ifer Grillmeister
Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 08.10.2005, 18:34 Titel: |
|
|
Servus!
MisterD hat Folgendes geschrieben: | 45° hattest du bei OGL glaub ich initialisiert, das zählst du einfach zur kamera dazu (0° = Mitte; 22.5° = links am bildschirm; -22.5° = rechts am bildschirm, kommt natürlich drauf an ob die breitendrehung bei dir nach links (standard) oder rechts positiv ist). Dann machst du mit Sinus und Cosinus entweder nen Wert aus meiner gleichung oder benutzt dann auch deine, müsste ja auch gehen. |
Äh - hab ich jetzt irgendwas falsch verstanden? Das ist doch genau das, was ich gemacht habe, oder seh ich das falsch? "tempx=..." und "tempy=..." = dazuzählen, und dann in dem Winkel nach unten. Aber wie ich schon sagte: Funktioniert nicht.
Was möchtest Du mir mit "du hast doch einen Wert, wie weit das Sichtfeld vom Bildschirm ist" sagen? Meinst du diesen "znear" Wert? Der ist bei mir bei 0.1 - aber was hat das für nen Einfluss auf meine Mausposition? Befindet sich der Cursor auf der Ebene, die durch den Punkt(cam.x,cam.y,cam.z) und den beiden (eigentlich ja drei, aber was solls) Winkeln definiert wird, oder auf ner parallelen Ebene mit diesem Abstand?
Gruß
Lutz Ifer |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 08.10.2005, 19:10 Titel: |
|
|
nein, znear ist die entfernung, aber welcher die objekte, die näher an der "kamera" sind nicht mehr dargestellt werden. zfar ist die maximale entfernung in der Objekte dargestellt werden.
Du hast doch irgendwo stehen
gluPerspective 45.0, 800.0/600.0, 0.1, 100.0
oder so ähnlich. Und die 45.0 vorne ist das Sichtfeld von 45°, 22,5° nach rechts und 22,5° nach links. Das Zweite gibt dann das entsprechende Verhältnis von breite zu höhe des Bildschirms an womit auch das Sichtfeld nach oben und unten berechnet wird sonst gäbs komische verzerrungen.
Also mal n beispiel:
normal hast du ja
punktx = cam.x + cam.z * sin(cam.b) / (tan(cam.h))
punkty = cam.y + cam.z * cos(cam.b) / (tan(cam.h))
also cam.b und cam.h (ps: schon mal with angeschaut?)
und jetzt machst du einfach:
blick.b = cam.b+(maus.x-bildschirmbreite/2)*45/bildschirmbreite
blick.h = cam.h+(maus.y-bildschirmhöhe/2)*45/(seitenverhältnis)/bildschirmhöhe
sähe dann so aus für screen 19 (800x600):
getmouse maus.x,maus.y
blick.b = cam.b+(maus.x-400)*45/800
blick.h = cam.h+(maus.y-300)*45/(4/3)/600
punktx = cam.x + cam.z * sin(blick.b) / (tan(blick.h))
punkty = cam.y + cam.z * cos(blick.b) / (tan(blick.h))
Keine Garantie, kann sein dass ich irgendwo nen Fehler drin hab aber das Prinzip stimmt _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
Lutz Ifer Grillmeister
Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 08.10.2005, 20:39 Titel: |
|
|
Servus!
Also, entweder steh ich grade ganz gewaltig auf der Leitung, oder Du.
Nur so nebenbei: Ich bin nicht ganz so dämlich, wie ich vielleicht Aussehen mag - mir ist klar, was znear, zfar, das Seitenverhältnis, und der Öffnungswinkel ist. Das brauchst du nicht wirkliche jedes Posting zu erklären.
Und dann vergleich doch mal den Code, den Du vorgeschlagen hast, mit dem, von dem ich jetzt schon das ein oder andere Mal gesagt habe, dass es so nicht funktioniert. Dir ist schon klar, dass Du mir was vorschlägst, was ich schon lange so mache, und von dem ich dir schon mehrmals gesagt habe, dass es nicht stimmt?
Gucks dir >>hier<< an.
Gruß
Lutz Ifer |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 08.10.2005, 20:51 Titel: |
|
|
das könnte eventuell daran liegen, dass du und opengl unterschiedliche geometrien benutzen.
es gibt einmal die variante, dass du sagst, der ausgangspunkt ist das auge des Users, der Bildschirmabstand überschneidet sich mit dem Abstand des Users von einem bestimmten Punkt.
Die andere Variante ist, dass man davon ausgeht, dass der ausgangspunkt die Bildschirmmitte ist und der Bildschirmabstand mit der normalenlänge bis zu dem Punkt addiert bestimmt die entfernung des Users zu dem Punkt.
Probier vielleicht also mal deine Formeln umzubauen, dass du den User entsprechend des Bildschirmabstandes noch verschiebst oder sowas..
/edit: Bist du dir mit den Sin/Cos/Tan sicher? Ich hab da ned drüber nachgedacht sondern bin ma von ausgegangen, dass du die richtig hast aber irgendwie erscheinen die mir grad komisch, ich denk mal nen moment nach.
/edit2: Meine formeln stimmen nicht ganz.. maus rechts und links bewegen verändert nicht nur die breitendrehung.. ich probier mal bisschen rum und meld mich wenn ich was hab.
/edit3:
Code: | glPointSize 5
DO
getmouse x,y
'Ausgangsvektor erstellen: (mausx|1|mausy)
difx=(x-400)/400*tan(degrad*29)
dify=1
difz=-(y-300)/300*tan(degrad*29)*3/4
'Vektor mit der Kamera drehen
vektor.x = difx*cos(degrad*camrot.b) +dify*sin(degrad*camrot.b)*cos(degrad*camrot.h)+difz*sin(degrad*camrot.h)*sin(degrad*camrot.b)
vektor.y = dify*cos(degrad*camrot.b)*cos(degrad*camrot.h)-difx*sin(degrad*camrot.b) +difz*sin(degrad*camrot.h)*cos(degrad*camrot.b)
vektor.z = difz*cos(degrad*camrot.h) -dify*sin(degrad*camrot.h)
'Kollisionspunkt mit dem Boden berechnen
conx = campos.x-(campos.z)/vektor.z*vektor.x
cony = campos.y-(campos.z)/vektor.z*vektor.y
'Punkt einzeichnen
glBegin GL_POINTS
glVertex2f conx,cony
glEnd |
Das funktioniert bei mir, ich musste allerdings an dem Sichtiwinkel irgendwie rumschrauben. 22.5 (45/2) hat nicht gepasst, mit 29 (58/2) kommts ziemlich haar genau hin obwohl bei der initialisierung nur 45 steht.
Ich hab übrigens statt mausposition=drehungsmanipulation einfach einen Ausgangsvektor von der Kamera aus gesehen zu Maus erstellt und den dann entsprechend der Kamera im Raum gedreht und meine Vektorengleichung benutzt, das funktioniert jetzt. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
Xolios aka Ray
Anmeldungsdatum: 07.12.2004 Beiträge: 589 Wohnort: Wildeshausen
|
Verfasst am: 09.10.2005, 13:15 Titel: |
|
|
Hallo.
Ich habe es gerade erst gemerkt.
Ich hat Folgendes geschrieben: | Hallo.
Also (endlich) ist hier mein Kampfsystem...
Einfach kampf starten...um die Kampfdaten zu verändern
die Raymni oder Corey.mni mit dem Editor ändern.
Die erste Zeile name des Spielers
Zweite Zeile anzahl der verschiedenen Einheiten (kann man ja später evtl mit Eof lösen.
Ab dritte Zeile die Monster
Name, Leben, Abwehr, Angriff, Trefferchance, Anzahl der Einheiten
u.s.w.
Wenn ein Kampf beendet ist legt das Prog eine Protokoll datei an
c:\BATTLOG.TXT (ich weiß scheiß pfad)
(lohnt sich reinzuschauen)
Gruß
Ray |
Und hier is der Link:
http://home.arcor.de/minisoft/bt.zip
Gruß
Ray _________________ www.ray-earth.de
Anm.: Neue ICQ |
|
Nach oben |
|
|
Lutz Ifer Grillmeister
Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 09.10.2005, 14:03 Titel: |
|
|
So, Servus.
Ray, dein Posting war irgendwie total an mir vorbeigegangen, tschuldige, hatte ich garnicht gesehen. Kampfsystem hab ich mir grade angeguckt, schaut soweit ganz lustig aus. Für nen rundenbasiertes Spiel wär das sicherlich super.
MisterD: Vielen Dank, ich schaus mir sofort an.
edit:
MisterD - Ich ziehe den Hut.
Funktioniert einwandfrei. Bissl mit rumprobiert, schaut gut aus.
Ich habs nicht so mit Geometrie - im dreidimensionalem Raum schon gleich garnicht. Gestern bin ich bis 3 Uhr Nachts daran gesessen, zu errechnen, wo der Punkt 1 LE vor der Kamera liegt... Aber hat dann letztendlich auch nichts gebracht, der Cursor war immernoch woanders.
Darf man fragen, was Du studierst / arbeitest / lernst?
Gruß
Lutz Ifer |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 09.10.2005, 15:22 Titel: |
|
|
Darfst du.
Schüler der 13. Klasse, um Ostern schreib ich Abitur.. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 09.10.2005, 15:29 Titel: |
|
|
Offtopic fragezeichen?
Editiert durch Moderator (Sebastian): Ja ausrufezeichen.
@Lutz Ifer: Das hab ich auch brechnet, der Ausgangsvektor ist der Vektor vom Betrachter zum Mauszeiger. der dann eben mit der Kamera gedreht ergibt den Richtungsvektor der Blickgeraden. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
Lutz Ifer Grillmeister
Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 09.10.2005, 15:49 Titel: |
|
|
Servus!
Wunderbar... hab mal spasseshalber meinen aktuellen Erfolgsstand >>hier<< online gestellt. Linke Maustaste: Die "Einheit" herumkommandieren, rechte Maustate / WASD : Bewegen.
MisterD: Wir machen gleichzeit Abitur. Nur ich im nicht ganz so verruchten Bayern. Ich wusste doch, das GeschichtsLK nicht so die Ideale Idee ist, und ich hätte Mathe wählen sollen.... dann könnte ich jetzt sowas. Naja, dafür hab ich wenigstens so im Grundkurs meine 15 Punkte abbonniert, so ist es ja nicht. Nur wie gesagt, ich hasse Geometrie, vorallem im Raum...
Gruß
Lutz Ifer |
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 09.10.2005, 16:00 Titel: |
|
|
Hallo!
Ich wollte jetzt nur noch mal bezüglich des Arbeitsforum fragen. Wird diese Idee nun realisiert?
Greetings,
Mao _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
Lutz Ifer Grillmeister
Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 11.10.2005, 22:19 Titel: |
|
|
Servus!
Sorry, war bissl beschäftigt.
Mao hat Folgendes geschrieben: | Ich wollte jetzt nur noch mal bezüglich des Arbeitsforum fragen. Wird diese Idee nun realisiert? |
Wollte das nicht programmierer machen? Tut mir leid, liegt ausserhalb meiner Möglichkeiten. Mein Webspace schreit ja schon, wenn ich Dateien >1 MB hochzuladen versuche.
Dafür hab ich jetzt bisschen mit Texturen rumgepfuscht, und Teile des alten Codes aufgeräumt. Immernoch ein heilloses Durcheinander, aber soweit läufts.
Wenn's wen interessiert: >>hier<< - Steuerung wie gewohnt, wasd und rechte Maustaste zum Bewegen, linke für die Ameise.
@MisterD: Wärst du so freundlich, mal zu gucken, ob du ne Idee hast, was immernoch nicht mit der Maus stimmt? Aus "großer" Höhe vorallem stimmen die "Klickpositionen" überhaupt nicht....
Gruß,
Lutz Ifer
edit:
Ok, zugegeben, ich bin manchmal ein bisschen doof. Hatte übersehen, dass ich da was umgebaut hatte... Sch***** rumexperimentierei ohne Kommentare, da übersieht man leicht was. Jetzt funktionierts. - Mein Server für den Webspace ist nur grad down, ich aktualisier den Link morgen.
Zuletzt bearbeitet von Lutz Ifer am 11.10.2005, 22:59, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 11.10.2005, 22:28 Titel: |
|
|
also meine idee wäre, dass das an deiner komischen perspektive liegt oder hast du das inzwischen wieder hinbekommen?
Ich habs bei mir grad ma ausprobiert, selbst wenn ich mich auf die grade noch sichtbare distanz (fog auf 100% bei 100) bewege stimmt die position noch exakt.
Leider kann ich dir ohne deinen Quelltext sonst nicht helfen. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 12.10.2005, 11:08 Titel: |
|
|
Lutz Ifer hat Folgendes geschrieben: | Servus!
Sorry, war bissl beschäftigt.
Mao hat Folgendes geschrieben: | Ich wollte jetzt nur noch mal bezüglich des Arbeitsforum fragen. Wird diese Idee nun realisiert? |
Wollte das nicht programmierer machen? |
Jo.
Bin dabei, alles einzurichten.
Wird (hoffe ich) alles mit Passwort-funktion in maximal ner woche fertig sein. Im Moment habe ich noch ein Problem, dass ich eine 2. MySQL Datenbank brauche(noch 3 Tage, dann hab ich eine), und mein FreeWebhoster alles "umsiedelt", damit keine Ausfälle mehr kommen. Erst ab gestern abend kann ich wieder ftp nutzen. Werde jetzt mal mit der Einrichtung des Forums anfangen. Forerst kommt ne PHP Passwortabfrage, nacher die .htacces abfrage.
Michael
EDIT: Forum ist Online. Brauche mal eure icq nummer(falls ihr das habt)
EDIT2: Passwortfunktion auch. Ist jetzt alles geschützt und online. Bekommt nacher die Passwörter. Möchte das aber nicht über PN machen. |
|
Nach oben |
|
|
Progger_X Mr. Lagg
Anmeldungsdatum: 24.11.2004 Beiträge: 784 Wohnort: Leipzig
|
Verfasst am: 17.10.2005, 21:00 Titel: |
|
|
Meine is 234-496-651. |
|
Nach oben |
|
|
otti
Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 07.01.2006, 00:02 Titel: |
|
|
hey
wie wärs mal mit ner zwischenstands info (vllt. mit pic oder download)....?
wär net.. ich glaub des würd mehr leute interessieren..danke
grüße und gutes neues jahr..
otti |
|
Nach oben |
|
|
Lutz Ifer Grillmeister
Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 07.01.2006, 00:40 Titel: |
|
|
Servus Otti.
Das Projekt ist mehr oder weniger eingeschlafen, ausser programmierer (siehe paar Posts über diesem) hat keiner wirklich Interesse, mit zu machen.
Ich hab dir mal was online gestellt: http://free.pages.at/datenbunker/FreeBasic/spiel.rar - ein wenig rumprobiere, OpenGL-tests, ein Beispielmodel (Nein, die Ameise sollte im Spiel nicht zu finden sein...)... Im Grunde genommen also völlig sinnlos. Gucks dir an.
Gruß
Lutz Ifer |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 07.01.2006, 14:13 Titel: |
|
|
Die Ameise ist ja cool!
Man könnte da ja auch so ein Spiel wie in irgendso einer alten Kindersendung raus machen: Annahme: Das Feld bestände aus Sumpf oder sowas. Für ein paar Sekunden sieht man das Feld aufgedeckt und sieht, wo man hergehen kann ohne einzusinken. Dann ist die Fläche wieder einheitlich und muss die Ameise durch den Sumpf über die Felder navigieren, ohne dass sie reinplumst... _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
otti
Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 07.01.2006, 16:15 Titel: |
|
|
gute idee sebastian
schade lutz ifer......
is aber interessant ( zumindest für mich ) was man mit FB und OpenGL so alles machen kann...
grüße otti |
|
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.
|
|