Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - BumbleBee

#796
Hi
So kann's auch nicht funktionieren, weil nur beim Programmstart die Leertaste überprüft
wird und danach nicht mehr. Du müsstest also in diesem Fall die Leertaste gedrückt halten
und dann das Programm starten. Außerdem wird dein Programm auch gleich wieder beendet,
weil du ein END eingebaut hast. Das was du brauchst ist eine Schleife in der ständig die
Tastatureingabe überprüft wird oder du springst mit GOTO wieder zum Anfang zurück. Aber viele
GOTO's erzeugen Spaghetticode.
Hier mal zwei Möglichkeiten:

Code (glbasic) Select
 
                 //So zum Beispiel              
WHILE TRUE
 IF KEY(57)
   PRINT "HI",100,100
 ENDIF
 SHOWSCREEN
WEND

                //oder so
             
Start:
  IF KEY(57)
   PRINT "HI",100,100
  ENDIF
 SHOWSCREEN
GOTO Start
Ich hoffe das hilft dir weiter.


Cheers
#797
Hi
Um eine Function aufzurufen, musst du nach dem Namen eine Klammer setzen.
Also Sleep(1000)
Außerdem hast du X_MAKE3D,X_CAMERA,SHOWSCREEN nicht in der Schleife



Code (glbasic) Select
LET z=0

WHILE z<10

 X_MAKE3D 1,1000,45
 X_CAMERA 0,0,0,60,100,0

 X_PRINT "Testlauf",80+z,100,0,0
 Sleep(1000)

 z=z+1
 SHOWSCREEN
 
WEND

MOUSEWAIT

FUNCTION Sleep: ms
LOCAL st
    st=GETTIMERALL()
    WHILE GETTIMERALL()-st < ms
    WEND
ENDFUNCTION
Willst du einen Timer einbauen, für eine konstante Spielgeschwindigkeit,
Animationsgeschwindigkeit etc.? Wenn ja würde ich das aber nicht so machen.



Cheers
#798
Hallo Gernot
Also ich hab was interessantes festgestellt.Wenn ich die Objekte
nicht mit X_DRAWOBJ sondern mit X_DRAWANIM darstelle, funktioniert
Bump Mapping wieder, allerdings nur mit den richtigen Werten.

Hier ein paar Möglichkeiten die funktionieren:
        X_DRAWANIM 1, 0, 1, 1, FALSE
        X_DRAWANIM 1, 0, 0, 1, FALSE
        X_DRAWANIM 1, 1, 0, 1, FALSE
        X_DRAWANIM 1, 1, 1, 1, FALSE
        X_DRAWANIM 1, 1, 0, 1, FALSE
        X_DRAWANIM 1, 0, 1, 0, TRUE  
        X_DRAWANIM 1, 0, 1, 1, TRUE  


             So geht's nicht (Windows Meldung)
        X_DRAWANIM 1, 0, 0, 1, TRUE  
        X_DRAWANIM 1, 1, 0, 1, TRUE  
        X_DRAWANIM 1, 1, 1, 1, TRUE  
        X_DRAWANIM 1, 0, 0, 0, TRUE
        X_DRAWANIM 1, 1, 0, 0, FALSE
        X_DRAWANIM 1, 0, 0, 0, FALSE

               Und so auch nicht
       X_DRAWOBJ 1,0

Auf einem zweiten Windows Rechner mit einer Geforce FX 5200
hab ich die selben Ergebnisse.Keine Ahnung woran das liegt.
Vielleicht hilft dir das ja weiter.


Cheers
#799
Hi
Also, die Grafiken sind im Programmverzeichnis.
Lade mir GLView später noch runter.

Hier ein paar Soft- und Hardware Daten

GLBasic Version 2.50519
Windows XP Sp2
Athlon XP 1700 +
Geforce 4 Ti 4200  Treiberversion 71.84
256 MB Ram
Creative Sound Blaster PCI512
Und natürlich ein paar Laufwerke und ein Mainboard :lol:

Ist auch nicht weiter schlimm. Sonst funktioniert ja alles einwandfrei. :)



Cheers
#800
Ja ich lade eine Bump Map und setze X_SETTEXTURE wie es in der Hilfe steht.
Das Programm wird fehlerfrei compiliert, ich kann' s bloß nicht ausführen.
Hab's auf einem zweiten Rechner probiert und auch da geht's nicht. :(
Das ist das Beispiel, dass bei GLBasic dabei ist.
Code (glbasic) Select
// Bump Mapping Demo
// -----------------

// Bild-Daten
LOADSPRITE      "image.bmp",0
// Wie LOADSPRITE, jedoch wird aus einer Heightmap eine Normalen-Map erstellt
LOADBUMPTEXTURE "bump.bmp", 1

// Ein einfaches Quadrat
X_OBJSTART 1
 X_OBJADDVERTEX   -20, -20, 0,  0,1, RGB(255,255,255)
 X_OBJADDVERTEX   -20,  20, 0,  0,0, RGB(255,255,255)
 X_OBJADDVERTEX    20, -20, 0,  1,1, RGB(255,255,255)
 X_OBJADDVERTEX    20,  20, 0,  1,0, RGB(255,255,255)
X_OBJEND

// Hauptschleife
WHILE TRUE
 phi=phi+GETTIMER()/20; IF phi>=360 THEN phi=phi-360
 X_MAKE3D 1, 500, 45
 X_CAMERA 0, 10, 100, 0,0,0
 // Licht Nr. -1 is Bump-Licht Postition
 X_SPOT_LT -1, 0, 0,0,50, 0,0,0,90
 X_SETTEXTURE 0, 1 // 0=Textur, 1=Bump-normal-map
 X_ROTATION phi, 0, 1, 0
 X_DRAWOBJ 1, 0
 SHOWSCREEN
WEND
Wenn ich das so ausführen will beschwert sich Windows oder das Programm beendet sich
gleich wieder.


Cheers
#801
Hallo Gernot

Ich wollte mit dem Bump Mapping Beispiel im Projects/Samples Ordner
etwas herumspielen und bekomme die Fehlermeldung von Windows,

--------------------------------------------------------
Simple.exe hat ein Problem festgestellt und muß beendet
werden
---------------------------------------------------------

oder das Programm wird gleich wieder beendet.

Und zwar immer dann, wenn bei X_SPOT_LT -- cutoff# größer Null ist.

X_SPOT_LT -1, 255,0,0,50,0,50,0,90 <-- Fehlermeldung
X_SPOT_LT -1, 255,0,0,50,0,50,0,0 <--Keine Fehlermeldung

Wenn man X_DRAWOBJ weglässt sieht man zwar nichts, aber
es kommt auch keine Fehlermeldung. Mit Sicherheit weißt
du woran das liegt.
         
GLBasic Version 2.50519                                
 
       
Danke schon mal

Cheers
#802
Hi
Du brauchst eine zweite Zählschleife, die doppelte Zahlen prüft.
Folgender Code zieht die Lottozahlen, bei der es ja auch
keine doppelten Zahlen geben soll.
Die erste Schleife zieht die Zahlen.
Die zweite Schleife prüft ob eine Zahl schon gezogen wurde.
Kann man natürlich auch anders machen.

Code (glbasic) Select
DIM Zahlen[7]

   FOR i=1 TO 6
      Zahlen[i]=RND(48)+1 //1 addieren falls die Null gezogen wird
         
            //Diese Schleife prüft doppelte Zahlen  
       FOR j=0 TO i-1
         IF Zahlen[j]=Zahlen[i]
           i=i-1
         ENDIF
       NEXT
               //Zahlen ausgeben
       PRINT Zahlen[i],300,100+30*i    
   NEXT  
 
  SHOWSCREEN
  MOUSEWAIT
Diese Angaben sind wie immer ohne Gewähr :)

Konnte ich dir damit helfen?


Cheers
#803
Hallo Gernot

Wäre es möglich den Befehl X_SETTEXTURE um zwei Parameter zu erweitern,
um die Textur horizontal oder vertikal über ein Objekt zu bewegen?
Man könnte dann z.B. Wasserfälle, fließende Lava etc. simulieren.


Thanks

Cheers
#804
Hi

Hmm wie fang ich am besten an.  Also ich bewege mich mit einer Figur in einer 3D Welt an
einem Objekt vorbei. Das Objekt ist eine große (texturierte) Box (z.B. für ein langes Gebäude).
Die Kamera ist immer hinter der Figur. Plötzlich verschwindet das Objekt wenn sich die Figur
links oder rechts (schräg) daran vorbei bewegt oder wenn die Kamera gedreht wird.
Es müsste aber noch zu sehen sein.
Einfach mal im TruckDriver Beispiel das Haus vergrößern
(In Function DrawCity-- Case 56-- X_SCALING 4,4,4 einsetzen) und knapp vor dem Haus nach rechts fahren.
Etwa ab der Mitte ist das Haus weg.
Aber am extremsten sieht man's bei der Verfolgerkamera und das Objekt sollte nicht zu klein sein.
Ist das nur bei mir so oder ist das ein Bug?


Gernot kann mir da bestimmt weiterhelfen.

Danke schonmal



Cheers
#805
GLBasic - de / Nebel
2005-Mar-24
Super, perfekt.

Thanks a lot


Cheers
#806
GLBasic - de / Nebel
2005-Mar-19
Hi
Also erstmal ein großes Lob an das GLBasic Entwicklerteam. Es kommen immer neue Befehle hinzu, bugs
werden sofort behoben und kommt man mal nicht weiter wird einem sofort geholfen. Macht weiter so!

Und nun zu meiner Frage

Kann man in GLBasic auch Nebel darstellen?  



Cheers
#807
Hi
Also bei mir funktioniert jede Auflösung, egal ob Fenster oder Vollbild.
Du mußt bei Optionen  >erstellen für diese Plattform<  den Haken reinmachen.

Cheers
#808
Hi,
Der Fullscreen funktioniert nicht. Hab das schon vor 4 Wochen gemeldet. Soll aber mit dem nächsten Update behoben werden.

Cheers
#809
Ach so funktioniert das. Danke


Cheers
#810
Hi,
Also, seit ich Version 2.40811 drauf hab geht Playsound nicht mehr.Und wie
schalte ich auf Vollbild um? Geht bei den Projektoptionen leider nicht mehr.
Dann noch eine Frage. Wie drehe ich die Kamera um die X-Y-Z Achse?


Danke

Cheers