3D-2D-3D Koords, Pausieren, Partikel und mehr
Übersicht

Willi3DBetreff: 3D-2D-3D Koords, Pausieren, Partikel und mehr |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich hab schon über 8 Stunden das Forum aufmerksam durchgelesen, und hab viele Interessante Sachen gefunden die ich jetzt schon selbst "zum laufen" gebracht hab'. Aber gibt noch immer ein paar Dinge bei denen ich Hilfe, vllt auch Beispiele brauchen könnte. 1.) "3D-2D-3D Koords" Das gab es ja schon mehrmals hier im Forum, aber entweder versteh' ichs nicht, ich mach irgendwas falsch, oder es ist doch nicht das selbe. Also ich habe eine Map, 3D. Dann habe ich ein Objekt was man frei im Raum bewegen kann (x, y,z). Und dann ist da natürlich noch das 2D Teil.. der Mauszeiger. Ich möchte es jetzt so hinbekommen, das wenn ich die linke Maustaste drücke Objekte (Schüsse) erstellt werden, und vom Objelt auf die Map fliegen, je nachdem wo sich der Mauszeiger befindet. Aber egal was ich anstell' die fliegen immer nur gerade aus ![]() 2.) "Pausieren" Wie kann ich das Spiel komplett pausieren, ein Menü einblenden und bei einem Klick auf "Weiter" (o.ä.) wieder vortsetzen? Habe in der Hauptschleife schon probiert mit einer Abfrage zuerst zu prüfen ob "spielpause" 1 oder 0 ist, und bei 1 soll nichts passieren. Aber das einzige was passiert der Platzhaltertext wird angezeigt, das Spiel wird grafisch angehalten, aber bei einem Klick auf weiter sieht man gleich dass das Spiel weitergelaufen ist - man hat es halt nur nicht gesehen. 3.) "Partikel" Tja, im Grunde sollten die doch klappen, tun sie aber nicht. Ich plaziere am Objekt Partikel, diese sollen immer hinten am Objekt sein. Sind sie aber nicht. Wenn ich mich zu schnell fortbewege kommen die einfach nicht nach, und sind nicht mehr zu sehen, und wenn ich mich drehe sind sie weg bis ich wieder unefähr die alte Position einnehme. Ich nehme mal an das liegt daran das die Partikel mitgedreht werden, hab aber nicht viel ahnung davon. 4.) "und mehr" Falls das für den anfang nicht reicht wüsste ich gerne wie ich es hinbekomme das man sich nur innerhalb der Map aufhalten/bewegen kann, wie ich das Bild blau einfärbe wenn man unterwasser ist, und wie ich eine Minimap realisieren könnte. Danke schonmal ![]() |
||
![]() |
darth |
![]() Antworten mit Zitat ![]() |
---|---|---|
zu 1.:
camerapick zu 2.: Code: [AUSKLAPPEN] while not keyhit(1)
if menue=0 then ;spiel else ;menü endif wend oder Code: [AUSKLAPPEN] while not keyhit(1)
;spiel while menue=1 ;menü wend wend NAT¨RLICH WIRD DAS PROGRAMM JETZT BEI ESC BEENDET. DIE ABBRUCH BEDINGUNG DER WHILE SCHLEIFE IST JA DAS DRÜCKEN DER ESC TASTE! will man das nicht dann macht man eine andere bedingung rein -.- |
||
Diese Signatur ist leer. |
- Zuletzt bearbeitet von darth am Do, Feb 08, 2007 0:07, insgesamt einmal bearbeitet
Willi3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
danke für deine Antwort ![]() Also Spielpause klappt nicht, das Spiel wird jetzt komplett beendet wenn man ESC drückt. Vorhin hatte ich es noch so hinbekommen das zumndest eine Meldung erscheint, das Spiel weiterläuft, und bei erneutem drücken von ESC beendet wird. Will aber noch ein schönes Menü unterbringen, und irgendwie klappt es nicht so ganz ![]() Zu CameraPick: Das war es was ich versucht habe, was aber nicht klappt. Oder mach' ich einfach was falsch? Code: [AUSKLAPPEN] Function spieler_shoot()
CameraPick(camera,MouseX(),MouseY()) ent=PickedEntity() x#=PickedX() y#=PickedY() z#=PickedZ() s.schuss = New schuss s\schuss = CreateSphere(16) ScaleEntity s\schuss,.05,.05,.05 ;RotateEntity s\schuss, PickedX (), PickedY (), PickedZ () RotateEntity s\schuss, x#, y#, z# PositionEntity s\schuss, EntityX(testobj), EntityY(testobj), EntityZ(testobj) s\schuss_x = x# s\schuss_y = y# End Function Hab da einfach den Code verwendet den ich hier im Forum gefunden habe, und die Antwort darauf war etwas in der Art von "Hat geklappt, danke!", nur bei mir klappt das irgendwie nicht so ganz. Aber von der Funktion selbst hab' ich sowieso noch keine Ahnung, also denk ich mal ich mach' nur irgendwas total falsch. |
||
AMD Athlon 64 X2 5200+, MSI K9N Neo SKT AM2 ATX, 4096 MB RAM (Samsung, 533 MHZ DDR2), Radeon X1950XTX GDDR4 (512 MB RAM), 2x250 GB Samsung SATA HDD (8ms 7200U, 3GB/s(! ![]() |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Problem da ist das RotateEntity. Das kann so natürlich nicht funktionieren.
Da musst du schon eine Rotation rein packen, nicht eine Koordinate. Alternativ könntest du an pickedXYZ ein "Ausrichtungspivot" hinverschieben, deinen Schuss positionieren und dann einfach mittels PointEntity deinen Schuss auf dieses Testpivot ausrichten. Das mit dem Menu: Nun dann musst du deinem Spiel halt beibringen, das es bei Drücken von ESC im Spiel in den Menüzustand wechselt und falls vorher spiel aktiv war und jetzt menü, ESC wieder zurück ins spiel führt und wenn vorher kein spiel aktiv war fragt es halt ob man das spiel wirklich beenden will. Das Programm kann nur was du ihm beigebracht hast, mach dir also von daher gedanken darüber was es wie machen soll und welche Zustände du dir dafür merken musst, damit es funktionieren kann. Gedanken machen ist übrigens nicht das gleiche wie Forensuche benutzen und Code anderer kopieren und sich (und später dann uns) dann fragen warum er im eigenen Fall nicht funktioniert. ~VERSCHOBEN~ falsches Forum Dreamora |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Willi3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Erstmal danke für die Antwort ![]() Dreamora hat Folgendes geschrieben: Alternativ könntest du an pickedXYZ ein "Ausrichtungspivot" hinverschieben, deinen Schuss positionieren und dann einfach mittels PointEntity deinen Schuss auf dieses Testpivot ausrichten.
Wie genau kann ich soetwas realisieren? Und wie schaut es da mit der Performance aus? Man feuert recht viele Schüsse pro Sekunde ab. Dreamora hat Folgendes geschrieben: Das mit dem Menu: Nun dann musst du deinem Spiel halt beibringen, das es bei Drücken von ESC im Spiel in den Menüzustand wechselt und falls vorher spiel aktiv war und jetzt menü, ESC wieder zurück ins spiel führt und wenn vorher kein spiel aktiv war fragt es halt ob man das spiel wirklich beenden will.
Also es hat ja schon halb geklappt (Spiel läuft aber weiter trotz pause, bei 2x ESC drücken wurde es aber wie gewollt beendet) Aber jetzt klappts garnicht mehr.. Naja, das Menü ist und wird aber nicht das Problem sein. Hauptsächlich erstmal die Schüsse und das mit den Partikeln. |
||
AMD Athlon 64 X2 5200+, MSI K9N Neo SKT AM2 ATX, 4096 MB RAM (Samsung, 533 MHZ DDR2), Radeon X1950XTX GDDR4 (512 MB RAM), 2x250 GB Samsung SATA HDD (8ms 7200U, 3GB/s(! ![]() |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bei den Partikeln ist dein Partikelsystem vermutlich einfach kaputt wenns trotz Parenting den Emission Point nicht korrekt updatet.
Was die Schüsse betrifft: Die Performance ist nicht ganz so gut, da hast du recht. Am einfachsten nimmst du EntityYaw etc um die Rotation der Kamera zu erhalten und den Schuss auszurichten. Ich vermute Mal den Schuss bewegst du danach einfach nur noch mit Each s.Schuss MovEntity s\entity, 0, 0, distanz/fps next oder etwas gleichwertiges. (Position und Translate Entity werden net gehen, die ignorieren die lokale ausrichtung) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Willi3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dreamora hat Folgendes geschrieben: Am einfachsten nimmst du EntityYaw etc um die Rotation der Kamera zu erhalten und den Schuss auszurichten.
Hm.. darf ich fragen wie das geht? Bzw wie kann/muss ich das verwenden? Gibt es dazu vielleicht Beispiele/Tuts? Dreamora hat Folgendes geschrieben: Ich vermute Mal den Schuss bewegst du danach einfach nur noch mit
Each s.Schuss MovEntity s\entity, 0, 0, distanz/fps next Genau. An sich ja ganz brauchbar, das Problem liegt eben nur daran den Schuss jetzt richtig auszurichten. |
||
AMD Athlon 64 X2 5200+, MSI K9N Neo SKT AM2 ATX, 4096 MB RAM (Samsung, 533 MHZ DDR2), Radeon X1950XTX GDDR4 (512 MB RAM), 2x250 GB Samsung SATA HDD (8ms 7200U, 3GB/s(! ![]() |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
EntityYaw und die anderen beiden Befehle geben dir die Rotation die die Kamera hat wenn du sie auf die Camera Entity anwendest. Das ist auch exakt die Ausrichtung die dein Schuss brauchst.
Wenn du suchst wirst du was dazu finden, da Schiessen (oder Shooter) das lieblingsthema der meisten Anfänger sind und darum das Board damit recht gut bestückt ist. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab noch nen Tipp für dich zur Pause, die Pausenvariable hattest du ja schon und damit kannst du einfach eine Funktion aufrufen, in der dann das Menü abläuft, um das Spiel währenddessen nicht weiterlaufen zu lassen, fürst du die anderen Teile nur aus, wenn die Pausenvariable 0 ist. | ||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
Willi3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So, ich hab jetzt
Code: [AUSKLAPPEN] RotateEntity s\schuss,EntityPitch(x#),EntityYaw(y#),EntityRoll(z#)
Kann das zumindest vom Ansatz her stimmen? Ganz stimmen kann es nicht, weil ich bekomm immer wenn ich die Schuss-Tste drück' eine Fehlermeldung (Memory access violation). @skey-z: Genau das ist es was ich versuche, bzw meine gemacht zu haben, aber es hat doch nicht so geklappt.. Aber dafür hab ich für den Antrieb statt Partikeln jetzt was besser passendes gefunden, und das klappt wenigstens. ![]() Mal eine andere Frage, ist es auch möglich das Mausrad abzufragen? Nicht das klicken, weil das hab ich schon in verwendung, sondern das drehen/scrollen. |
||
AMD Athlon 64 X2 5200+, MSI K9N Neo SKT AM2 ATX, 4096 MB RAM (Samsung, 533 MHZ DDR2), Radeon X1950XTX GDDR4 (512 MB RAM), 2x250 GB Samsung SATA HDD (8ms 7200U, 3GB/s(! ![]() |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mausrad position: MouseZ()
Mausrad veränderung seit dem letzten durchlauf: MousezSpeed() www.blitzbase.de, da hast du alle Befehle und ein paar Tutorials ind er Übersicht und auf Deutsch |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
Willi3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke.
Hab mich mal auf der Seite umgeschaut, und auch gleich mal die Hilfe-Datein runtergeladen. Sind zwar schon wieder ein paar bisher genannte Probleme/Fragen gelöst, aber das Problem mit den Schüssen besteht weiterhin... Was mach ich falsch? ![]() |
||
AMD Athlon 64 X2 5200+, MSI K9N Neo SKT AM2 ATX, 4096 MB RAM (Samsung, 533 MHZ DDR2), Radeon X1950XTX GDDR4 (512 MB RAM), 2x250 GB Samsung SATA HDD (8ms 7200U, 3GB/s(! ![]() |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dein problem oben ist, das du versuchst Yaw etc von einer koordinate zu holen.
Dort musst du das EntityHandle deiner Kamera einfügen nicht irgendwelche Positionen! (das Mousepick und picked zeug brauchst du garnicht, wenn du wirklich projektile verschiest. Der MousePick ansatz wird für Laser, MG und dergleichen benötigt, welche so viel und schnell schiessen, das es keine einzelnen projektile mehr gibt) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Willi3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also weder im Forum noch in der Hilfe von blitzbase finde ich irgendwas zu "EntityHandle" ![]() |
||
AMD Athlon 64 X2 5200+, MSI K9N Neo SKT AM2 ATX, 4096 MB RAM (Samsung, 533 MHZ DDR2), Radeon X1950XTX GDDR4 (512 MB RAM), 2x250 GB Samsung SATA HDD (8ms 7200U, 3GB/s(! ![]() |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dazu wirst du auch nix finden, das ist keine Funktion.
Ein EntityHandle ist eine Variable die das gespeichert hat, was du von LoadMesh, CreateLight etc bzw. in diesem Fall CreateCamera() zurück bekommen hast. Denn das musst du da einsetzen (was auch heisst das die Kamera in irgend einer Form global gespeichert sein muss) Für PositionEntity durch Nutzung von TestObj hast du es ja auch hinbekommen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Willi3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kamera ist global gespeichert.
Aber wie soll ich das ganze verwenden? Und wo ist da der Unterschied? Die Kamera befindet sich immer hinter dem Objekt, somit sind die Koordinaten ja fast identisch. Soll das jetzt wie z.b. "EntityHandle(camera)" funktionieren? Oder soll ich das PositionEntity bei der Kamera verwenden? ![]() |
||
AMD Athlon 64 X2 5200+, MSI K9N Neo SKT AM2 ATX, 4096 MB RAM (Samsung, 533 MHZ DDR2), Radeon X1950XTX GDDR4 (512 MB RAM), 2x250 GB Samsung SATA HDD (8ms 7200U, 3GB/s(! ![]() |
Willi3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kennt sich da keiner aus? ![]() Was auch noch interessant wäre... Eine Art Unterwasser-Effekt. Habe schon mit einigen Objecten rumgespielt die normal transparent sind, und bei unterwasser 0.8 haben, klappt aber nur zum Teil so richtig. Aber das Problem mit den Schüssen besteht weiterhin.. wäre nett wenn da jemden helfen könnte, der sich da auch auskennt. Ggf einen Beispielcode o.ä. anstatt nur immer Bruchstücke zu nennen wie man es vielleicht irgendwie halb hinbekommen könnte? Danke schonmal ![]() |
||
AMD Athlon 64 X2 5200+, MSI K9N Neo SKT AM2 ATX, 4096 MB RAM (Samsung, 533 MHZ DDR2), Radeon X1950XTX GDDR4 (512 MB RAM), 2x250 GB Samsung SATA HDD (8ms 7200U, 3GB/s(! ![]() |
timmeTheOnly |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
[code]
global cam = createcamera() global eX = entityx(cam) global eY = entityy(cam) global eZ = entityz(cam) [code] MfG T-Master |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Willi: Ich bin nicht Gott und weiss darum nicht, wie deine Kamera Entity als Variable heisst.
Wie wärs wenn du einfach Mal dine die Dokumentation schauen würdest. Des weiteren hat es hier im Tutorial Board und auf www.robsite.de in den Tutorials verschiedene Tutorials. Mach die am besten Mal. Wir sind nicht dazu da dir Code zu liefern, denn schliesslich willst DU programmieren, nicht wir. Wenn du trotz all den Hinweisen immer noch nicht in der Lage bist das Problem zu lösen, beschäftig dich erst Mal mit 2D bevor du dich an Entity und 3D machst, denn dann wäre es definitiv zu kompliziert für deinen aktuellen Wissensstand. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Willi3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] global eX = entityx(cam)
global eY = entityy(cam) global eZ = entityz(cam) diese Vars liefern mir immer 0 zurück. Und ich habe die Vars angepasst (camera). Also bei der länge des Codes denk ich nicht das man da etwas falsch machen könnte, aber warum klappt es nicht? Oder soll' ich diese erst mit den schon früher verwendeten Vars füllen?!? @Dreamora: Und das hast du nicht fragen können, bzw etwas posten was mir mehr weiterhilft und halt schreiben "Diese Var musst du ggf. anpassen"? ![]() ![]() Ich will ja keinen ganzen Code, und verlangen kann ich ja sowieso nix von jemanden hier, aber es wäre hilfreich. Und ich dachte mir dieses Forum ist hier damit User anderen helfen... Das Problem ist noch nicht gelöst, ist aber das einzige. 2D verwende ich, und mehr als ich verwende brauch' ich ja eigentlich nicht. Ich habe Blitz3D nicht für 2D Sachen ![]() Außerdem ist es doch nur eine Frage.. ist das wirklich sooo schlimm? |
||
AMD Athlon 64 X2 5200+, MSI K9N Neo SKT AM2 ATX, 4096 MB RAM (Samsung, 533 MHZ DDR2), Radeon X1950XTX GDDR4 (512 MB RAM), 2x250 GB Samsung SATA HDD (8ms 7200U, 3GB/s(! ![]() |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group