So mal wieder was ganz Peinliches ausm 3D bereich,....

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

jhabekost

Betreff: So mal wieder was ganz Peinliches ausm 3D bereich,....

BeitragDo, Jan 06, 2005 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi @ all 8)
ich hab ein prob, denn ich hab mich ebend mal wieder an 3d gewagt,...
was ganz einfaches:
Code: [AUSKLAPPEN]
Graphics3D 800,600,32
SetBuffer BackBuffer()
cam = CreateCamera()
PositionEntity cam,0,10,0
bodentextur = LoadTexture("stein.bmp")
boden = CreatePlane()
EntityTexture boden, bodentextur
CreateLight(1)
RenderWorld
WaitKey

ich seh aber nur nen schwarzen bildschirm Shocked Confused
Was hab ich falsch gemacht?
 

Blacky0m

Gast

BeitragDo, Jan 06, 2005 14:42
Antworten mit Zitat
Bin ja selber nur n Anfänger aber vielleicht probierst du´s mal mit Flip!


mfg Blacky

jhabekost

BeitragDo, Jan 06, 2005 14:46
Antworten mit Zitat
Benutzer-Profile anzeigen
uuuups Embarassed voll verpennt, es klappt alles super Embarassed
(ach du backe ach du backe,.... Embarassed)
vielen dank trotzdem Embarassed

jhabekost

BeitragDo, Jan 06, 2005 15:18
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab jez noch 2 probleme, ein nicht so complexes und ein complexes
ersma das nicht complexe: wie kann ich aus einer zahl die gegenzahl machen? (zbsp: aus 4 wird -4 oder aus -3 wird 3)???

Waveblue

BeitragDo, Jan 06, 2005 15:21
Antworten mit Zitat
Benutzer-Profile anzeigen
rechne die Zahl *-1!
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name

jhabekost

BeitragDo, Jan 06, 2005 15:24
Antworten mit Zitat
Benutzer-Profile anzeigen
das is gut, danke Very Happy

jhabekost

BeitragDo, Jan 06, 2005 15:29
Antworten mit Zitat
Benutzer-Profile anzeigen
und jetzt das complexere Laughing
ich drehe die kamera um die y achse wenn sich die maus (x-achse) bewegt, nur bei der maus is ja bekanntlich am bildschirmrand schluss Laughing
wie krieg ich das hin das ich mich beliebig lange um die y achse drehen kann??? Confused

D2006

Administrator

BeitragDo, Jan 06, 2005 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
mit dem Befehl MoveMouse.

Siehe OnlineHilfe (OH ist eine scheiß Abkürzung dafür)

MfG

jhabekost

BeitragDo, Jan 06, 2005 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
du meinst immer wenn die maus einen rand trifft muss sie in die mitte gesetzt werden!?
edit: was hälst du von OHi Wink

jhabekost

BeitragDo, Jan 06, 2005 15:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics3D 800,600,32
SetBuffer BackBuffer()
cam = CreateCamera()
PositionEntity cam,0,1,0
bodentextur = LoadTexture("stein.bmp")
boden = CreatePlane()
EntityTexture boden, bodentextur
timer = CreateTimer(20)
playeryaw = 0;

While Not KeyHit(1)
If KeyDown(57) Then MoveEntity cam, 0,0,+0.2
If MouseXSpeed() > 0 Then playeryaw = playeryaw + MouseXSpeed()
If MouseXSpeed() < 0 Then playeryaw = playeryaw - MouseXSpeed()
RotateEntity cam, 0,playeryaw,0

WaitTimer(timer)
RenderWorld
Flip
Wend

ich hab das mal ein bissel geändert, warum dreht sich der spieler gar nicht mehr? Confused

BladeRunner

Moderator

BeitragDo, Jan 06, 2005 15:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau dir dazu:
Zitat:
Code: [AUSKLAPPEN]
If MouseXSpeed() > 0 Then playeryaw = playeryaw + MouseXSpeed()
If MouseXSpeed() < 0 Then playeryaw = playeryaw - MouseXSpeed()

mal Divis Tutorial in der FAQ-Sektion an. Das mit dem Mousehit.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

OJay

BeitragDo, Jan 06, 2005 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
er bewegt sich schon...nur ist das plane so groß, das man das nichtmehr sieht...

zum test folgendes snippet, das dir eine grundlage für eine egoshooter steuerung gibt:

Code: [AUSKLAPPEN]
Const KEY_ARROW_UP         = 200
Const KEY_ARROW_LEFT      = 203
Const KEY_ARROW_RIGHT      = 205
Const KEY_ARROW_DOWN      = 208

Graphics3D 800,600,32
SetBuffer BackBuffer()
camera = CreateCamera()
PositionEntity camera,0,0,-3
bodentextur = LoadTexture("stein.bmp")
boden = Createcube()
;EntityTexture boden, bodentextur
timer = CreateTimer(30)

MouseXSpeed()
MouseYSpeed()

While Not KeyHit(1)

   ; --------------------------------------------------------------
   ;  key-movement
   ; --------------------------------------------------------------
   If KeyDown(KEY_ARROW_RIGHT) Then MoveEntity camera, 1,0, 0
   If KeyDown(KEY_ARROW_LEFT)  Then MoveEntity camera,-1,0, 0
   If KeyDown(KEY_ARROW_DOWN)  Then MoveEntity camera, 0,0,-1
   If KeyDown(KEY_ARROW_UP)    Then MoveEntity camera, 0,0, 1

   ; --------------------------------------------------------------
   ;  Cache mousemovement
   ; --------------------------------------------------------------
   mxs#=-MouseXSpeed() /3.0
   mys#=MouseYSpeed()  /3.0
   
   ; --------------------------------------------------------------
   ;  rotate and limit cam-rotation
   ; --------------------------------------------------------------
   If( mxs# <> 0.0 ) Then RotateEntity camera,EntityPitch(camera),EntityYaw(camera)+mxs#,EntityRoll(camera)
   If( mys# >  0.0 ) Then
      If( EntityPitch(camera)+mys#>70 ) Then mys#=70-EntityPitch(camera)
      RotateEntity camera,EntityPitch(camera)+mys#,EntityYaw(camera),EntityRoll(camera)
   ElseIf( mys# < 0 ) Then
      If( EntityPitch(camera)+mys#<-70 ) Then mys#=-70-EntityPitch(camera)
      RotateEntity camera,EntityPitch(camera)+mys#,EntityYaw(camera),EntityRoll(camera)
   EndIf
   MoveMouse GraphicsWidth()/2, GraphicsHeight()/2


WaitTimer(timer)
RenderWorld
Flip
Wend


übrigens ist ein timer von 20 schon ein bischen SEHR ruckelig...

jhabekost

BeitragDo, Jan 06, 2005 18:42
Antworten mit Zitat
Benutzer-Profile anzeigen
nein, nicht wenn man ein Gehen simulieren will Very Happy
übringens, wenn die plane textiert ist sieht man das sehr gut Wink
und blade runner traf ins schwarze Wink

jhabekost

BeitragDo, Jan 06, 2005 18:57
Antworten mit Zitat
Benutzer-Profile anzeigen
natürlich trotzdem vielen dank, habs jetzt selbst hingekriegt, wie schon angedeutet Very Happy
nur ein prob gibt es sowohl bei meinem als auch bei deinem code: der spieler bleibt nicht auf dem boden, sondern fliegt wenn man die maus nach oben schiebt Confused
  • Zuletzt bearbeitet von jhabekost am Do, Jan 06, 2005 18:59, insgesamt einmal bearbeitet
 

FBI-blitz

BeitragDo, Jan 06, 2005 22:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Dazu brauchst du nen Pivot. Schau dir mal das hier an:

Code: [AUSKLAPPEN]

Repeat ;BEGINN DER HAUPTSCHLEIFE

 If KeyDown(203) Then MoveEntity campivot, -1.5, 0, 0 ;Seitwärts bewegen
 If KeyDown(205) Then MoveEntity campivot, 1.5, 0, 0 ;Seitwärts bewegen bewegen

;Bewegung
 If MouseX() <512 Then TurnEntity campivot, 0,+2.2,0 ;Wenn mouse nach rechts oder links, dann pivot (campivot heißt meiner) bewegen!
 If MouseX() >512 Then TurnEntity campivot, 0,-2.2,0

 If MouseY() >384 Then TurnEntity cam(1), +1.9,0,0 ;Wenn maus nach oben, dann kamera drehen!
 If MouseY() <384 Then TurnEntity cam(1), -1.9,0,0


 If KeyDown(200) Then MoveEntity campivot, 0, 0, +0.05 ;Wenn Taste gedrückt, dann nur den Pivot bewegen!
 If KeyDown(208) Then MoveEntity campivot, 0, 0, -0.02

 RenderWorld
 MoveMouse 512, 384;GANZ WICHTIG!!!

 Flip

Until KeyHit(1)
;ENDE DER HAUPTSCHLEIFE


Du bewegst, wenn du nach oben guckst nur die Kamera. Die wird aber nicht selbst bewegt. Der Pivot zieht die Kamera hintr sich her! So bleibt die kamera auf dem Boden. Auch wenn du nach oben guckst! Wink
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+
Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+

jhabekost

BeitragDo, Jan 06, 2005 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
aha, das ist aber net der ganze code!?
 

FBI-blitz

BeitragDo, Jan 06, 2005 23:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Neee, dazu bin ich zu geizig Smile Smile

Nein, das ist eigentlich nur der Code den du brauchst. Mit createpivot() musst du halt noch nen Pivot erstellen! Schau mal in die Onlinehilfe
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+
Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group