Ist das so richtig? [ ja es ist richtig ] =)
Übersicht

![]() |
noobyblasterBetreff: Ist das so richtig? [ ja es ist richtig ] =) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sers
Ich hab mich heute endlich mal an Type rangetraut (ich habs schon ewig vor mir hergeschoben). ich bin der meinung es funktioniert/es ist richtig so. aber ich würd gern mal von den pro's wissen ob das denn wirklich stimmt =) Code: [AUSKLAPPEN] Type k
Field e Field x# Field y# Field z# Field tex Field ty End Type Code: [AUSKLAPPEN] If KeyHit(28) Then kugel.k = New k kugel\e=CreateSphere() kugel\x# = Rnd(10,50) kugel\y# = Rnd(1,2) kugel\z# = Rnd(10,50) kugel\tex = box_tex kugel\ty = 3 EndIf For kugel.k = Each k PositionEntity kugel\e,kugel\x#,kugel\y#,kugel\z# EntityType kugel\e,kugel\ty EntityTexture kugel\e,kugel\tex Next hab ich hier mit type gearbeitet? ( also richtig ) @ Admins dieser beitrag kann nach beantwortung gern gelöscht werden =) |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
- Zuletzt bearbeitet von noobyblaster am Mi, Dez 02, 2009 16:53, insgesamt einmal bearbeitet
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
ja, du hast absolut richtig gearbeitet. Aber , hast du auch schon versucht die Schüsse zu bewegen/upzudaten? Mfg, count-doku |
||
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
nein das hab ich noch nicht versucht
aber ich werds noch machen und erneut nachfragen ( obs richtig ist ) =) |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
~EDIT~ Huh da seh ich ja noch was, bin jetzt nicht so fit mit 3D, aber ich denke du kannst das Erstellen der Kugel und das Positionieren zu einem Step zusammen fassen. Sprich: Code: [AUSKLAPPEN] If KeyHit(28) Then kugel.k = New k kugel\e=CreateSphere() kugel\x# = Rnd(10,50) kugel\y# = Rnd(1,2) kugel\z# = Rnd(10,50) kugel\tex = box_tex kugel\ty = 3 PositionEntity kugel\e,kugel\x#,kugel\y#,kugel\z# EntityType kugel\e,kugel\ty EntityTexture kugel\e,kugel\tex EndIf Somit brauchst du nicht noch einmal alle Types durchrattern nur um sie zu positionieren ![]() =Speed Optimierung Evt. beugt das deiner Frage vor: Type Stuff Type komplett: https://www.blitzforum.de/foru...hp?t=25321 Type Schnellkurs: https://www.blitzforum.de/foru...hp?t=25694 Speziell Schüsse: https://www.blitzforum.de/foru...hp?t=22296 Viel Erfolg Gruß Dottakopf |
||
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm ok .
hab mich jetzt mir dem schuss beschäftigt aber komm nicht recht weiter. Code: [AUSKLAPPEN] Type k
Field e Field x# Field y# Field z# Field sx# Field sy# Field sz# Field tex Field ty Field move# Field dista# End Type Code: [AUSKLAPPEN] Global f_k = CreatePivot()
PositionEntity f_k,0,2,5 EntityType f_k,1 cam=CreateCamera(f_k) ich hab mir gedacht das ich das mit nem Pivot machen kann komm jetzt aber nicht weiter. Code: [AUSKLAPPEN] If KeyHit(28) Then
kugel.k = New k kugel\e=CreateSphere() kugel\x# = EntityX(f_k) kugel\y# = EntityY(f_k) kugel\z# = EntityZ(f_k) kugel\sx# = 0.2 kugel\sy# = 0.2 kugel\sz# = 0.2 kugel\tex = box_tex kugel\ty = 4 kugel\move# = 10 kugel\dista# = 50 PositionEntity kugel\e,kugel\x#,kugel\y#,kugel\z# EntityType kugel\e,kugel\ty EntityTexture kugel\e,kugel\tex ScaleEntity kugel\e,kugel\sx#,kugel\sy#,kugel\sz# EndIf For kugel.k = Each k Next Die Kamera verfolgt den Pivot, die schüsse kommen immer " aus dem Pivot und der Pivot ist immer in der mitte, also muss man immer zu seinem ziel hinlaufen( welches man abschiesen will). so hab ich mir das gedacht aber jetzt steh ich auf dem schlauch ![]() |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann müsste sich der Pivot ja bewegen.
Das geht, du musst halt nur den Spieler bewegen und die Schüsse updaten. Hier mal ein kleiner Beispiel Code: [AUSKLAPPEN] Graphics3D 800,600,32,2
SetBuffer BackBuffer() Global GameSpeed%=60 Global FramePeriod%=1000/GameSpeed Global FrameTime%=MilliSecs()-FramePeriod Global DeltaTimeOld Const TYPE_PLAYER=1,TYPE_ZIEL=2,TYPE_SHOT=3;Schonmal Collisions teil. Collisions TYPE_SHOT,TYPE_ZIEL,2,1 Global f_k = CreatePivot() PositionEntity f_k,0,0,-20 EntityType f_k,TYPE_PLAYER Global ziel=CreateCone();Ein Ziel EntityType ziel,TYPE_ZIEL Global cam=CreateCamera(f_k) Type k Field e Field x# Field y# Field z# Field sx# Field sy# Field sz# Field tex Field ty Field move# Field dista# End Type Local FrameElapsed%,FrameTicks%,FrameTween#,t%,fps#,FPS_LAST=MilliSecs() Repeat Cls ; Frametween Berechnungen Repeat FrameElapsed=MilliSecs()-FrameTime Until FrameElapsed FrameTicks=FrameElapsed/FramePeriod FrameTween=Float(FrameElapsed Mod FramePeriod)/Float(FramePeriod) For t=1 To FrameTicks ; Frametween Captureworld FrameTime=FrameTime+FramePeriod : If t=FrameTicks Then CaptureWorld If KeyHit(28) Then;Neue Kugel erstellen kugel.k = New k kugel\e=CreateSphere(5,f_k);Kugel wird direkt am Pivot platziert [u]und[/u] richtig gedreht. kugel\x# = EntityX(f_k) kugel\y# = EntityY(f_k) kugel\z# = EntityZ(f_k) kugel\sx# = 0.2 kugel\sy# = 0.2 kugel\sz# = 0.2 kugel\tex = "";Hat keine, evtl. später einfügen kugel\ty = TYPE_SHOT kugel\move# = 10 kugel\dista# = 50 EntityType kugel\e,kugel\ty ;EntityTexture kugel\e,kugel\tex;Dann aktivieren ScaleEntity kugel\e,kugel\sx#,kugel\sy#,kugel\sz# EntityParent kugel\e,0;Kugel für bewegung vom Pivot lösen EndIf For kugel.k=Each k;Alle Kugeln durchgehen UpdateShot(kugel.k) Next UpdatePlayer() UpdateWorld() Next RenderWorld(FrameTween) Color 255,255,255 fps#=(19*fps#+(1000./(MilliSecs()-FPS_LAST)))/20.:FPS_LAST=MilliSecs();FPS zählen Text 1,15,fps#+" FPS";FPS anzeigen# Flip 0 Until KeyHit(1) Function UpdateShot(kugel.k);Die Kugel wird nach vorne bewegt. Später hier auch Kollision. MoveEntity kugel\e,0,0,2 End Function Function UpdatePlayer();Hier wird der Player bewegt TurnEntity f_k,0,KeyDown(203)-KeyDown(205),0 MoveEntity f_k,0,0,KeyDown(200)-KeyDown(208) End Function Steuerung: Pfeiltasten. Wenn du Fragen zum Code hast, ich erklärs dir gerne. Ansonsten guck dir mal in Samples\mak\ die castle demo an, erklärt die Schuss abfrage. Mfg, count-doku |
||
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dankefein =)
und wenn ich die Kugeln dann löschen will (wenn sie nicht treffen) mache ich ne Function oder? Code: [AUSKLAPPEN] DeletKugel(kugel.k)
Function DeletShot(kugel.k) If Not EntityCollided(kugel\e,TYPE_ZIEL) And EntityDistance(cam,kugel\e) > 100 Then FreeEntity kugel\e End Function |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vergiss aber nicht, das Typeobjekt hinterher noch mit Delete zu löschen.
Ich würde übrigens empfehlen, den Type Kugel zu nennen und die Objektvariable k (o.ä.) anstatt umgekehrt ![]() |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
noobyblaster hat Folgendes geschrieben: Dankefein =)
und wenn ich die Kugeln dann löschen will (wenn sie nicht treffen) mache ich ne Function oder? Code: [AUSKLAPPEN] DeletKugel(kugel.k)
Function DeletShot(kugel.k) If Not EntityCollided(kugel\e,TYPE_ZIEL) And EntityDistance(cam,kugel\e) > 100 Then FreeEntity kugel\e End Function Nur mal so ne Frage: Wenn eine Kugel nicht trifft, dann willst du sie direkt löschen? Und wenn sie kurze Zeit später einen anderen Gegner treffen würde? Würdest du das löschen der Kugel nicht besser über die Entfernung laufen lassen? Also, z.B. wenn sie aus dem Sichtbereich des SPielers verschwindet wird sie gelöscht. Korrigier mich bitte, wenn ich dich falsch verstanden habe. Lg, M0rgenstern |
||
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das tut er doch in dem Code, den du gerade zitiert hast, oder nicht? | ||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja... und ich versteh den Sinn nicht.
Du überprüfst ob die Kugel nicht kollidert. Wenn sie das nicht tut, dann wird sie gelöscht. Aber sie könnte doch auch später, wenn sie sich ein Stück weiterbewegt hat, einen anderen Gegner treffen. Das meinte ich. Deshalb wäre es klüger sie zu löschen, wenn sie sich in einer bestimmten Entfernung zum Spieler befindet. Lg, M0rgenstern |
||
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
naja is doch so wenn die kugel nicht kollidiert und die distance > 100 ist erst dann wird sie gelöscht | ||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
oha... tut mir Leid.
Die Bedingung nach dem AND hab ich geschickt überlesen^^ Lg, M0rgenstern |
||
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
thehe ^^
jetzt hab ich ganz vergessen euch zu sagen das dies nicht geht ![]() wenn ich das mesh nach updateshot() löschen will, dann kommt dann (logischer weise) entity does not exist. Is ja auch klar weil er den schuss ja immernoch updaten mag..... aber ich weiß nicht recht wie ich das hinbekommen kann. |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie wäre es mit "Delete k" beim Löschen des Schusses?
Dann ist auch der Type-Eintrag zum Schuss weg. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
des wär mal ne idee ![]() Dankefein =) |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group