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

Topics - WPShadow

#301
GLBasic - de / 2.9...
2006-Jan-16
Hi!

Eine Frage: Kann ich mir die 2.983 oder so noch einmal runterladen? Ich habe die unabsichtlich überschrieben...

Danke

W.
#302
Hi!

Ich habe ein inzwischen schwerwiegendes Problem. Zumindest für mich ist es eines.

X_Collision und X_CollisionAABB funktioniert im "Weltraum" perfekt, da meine Raumschiffe durch keinerlei Bewegung "behindert" werden.

Kritisch wird es bei meinem Bodenfahrzeug. Ich habe also ein Gelände gezeichnet, mit Texturen versehen und ein kleines Bodenfahrzeug draufgestellt. Dabei hab ich die "Gravitation" mit y = y - 1 an. Soweit so gut. Auf einer Ebene verhielt sich das Fahrzeug auch super und bewegte sich relativ normal. Kritisch wurde es jetzt bei den Steigungen.

Insgesamt bewegt sich das Fahrzeug wie ein Hovercraft, wobei die hinteren Reifen in der Luft bleiben und die vorderen (inklusive Cockpit) fast das Gelände durchschlagen.

Wie bekommt man es hin, daß das Fahrzeug sich halbwegs dem Gelände anpaßt und alle vier Reifen den Boden berühren?

Ist ein Rechteck/Quadrat eine Lösung, von der man eine Normale nach oben zieht und so relativ zum Boden das Fahrzeug positioniert??? Und geht das überhaupt?

Und sollte ich alle vier Reifen einzeln als Kollisionsobjekt behandeln oder eher das gesamte Fahrzeug???

GLG

W.
#303
GLBasic - de / World2Screen
2006-Jan-10
Hi!

Frage:

LOCAL a, b, c, a1, b1, c1

X_MAKE3D 1, 1000, 45

X_CAMERA 0, 0, 0, 200, 100, 100

a=200
b=100
c=100

X_DOT a, b, c, 10, RGB(0xff, 0xff, 0xff)



X_MAKE2D

X_WORLD2SCREEN a, b, c, a1, b1, c1

PRINT a1, 0, 0
PRINT b1, 0, 20


SHOWSCREEN

MOUSEWAIT


Wie bekomme ich das hin, daß das System mir in 2D die Koordinaten ausgegeben werden. Dadurch würde ich es nämlich hinbekommen, daß ich in 2D einen Begrenzungsrahmen anklicken kann und dadurch ein 3D Objekt anwählen kann. Wie soll ich das machen???
#304
GLBasic - de / Dim
2006-Jan-09
Hi!

Eine Frage:

Wie groß ist eigentlich die maximale Größe des DIM - Bereiches, den ich machen kann???

Ich frage nur, weil ich Sterne erzeugen wollte. Inetwa in diesem Stil:




DIM sterneX [1000]
DIM sterneY [1000]
DIM sterneZ [1000]

FOR u = 0 TO 1000
    phi = RND(360)
    alpha = RND(360)
  sterneX = 1000 * SIN (phi) * COS (alpha)
  sterneY = 1000 * SIN (phi) * SIN (alpha)
  sterneZ = 1000 * COS (phi)
NEXT


FOR Sterne = 1 TO 1000
  X_DOT sterneX [Sterne], sterneY [Sterne], sterneZ [Sterne], 1, RGB(0xff, 0xff, 0xff)
NEXT



GLG

W.
#305
GLBasic - de / Licht
2006-Jan-08
Hi!

Egal was ich mache, alle 3D Modelle erscheinen sehr sehr dunkel. Was kann ich denn da machen?

Folgende Kombinationen ergeben ein sehr dunkles bzw. kaum sichtbares Modell:

X_AMBIENT_LT -2, RGB(255, 255, 255)
X_AMBIENT_LT 1, RGB(255, 255, 255)
X_SPOT_LT 1, RGB(255,255,255), 0, 0, 0, 250, 0, 0, 179
X_SPOT_LT -2, RGB(255,255,255), 0, 0, 0, 250, 0, 0, 179

In den Programmen setze ich zuerst das Licht und danach erst das Modell. Normalerweise sollte es funktionieren. Die Sichtbarkeit bei [X_AMBIENT_LT -1, ...] wäre genau richtig und hell genug, nur daß die Farben nicht gerade "ideal" sind. :-) Allmälig bin ich nämlich verzweifelt, da so ziemlich alles funktioniert, nur eben das Licht nicht.

GLG

W.

PS.: [an Gernot] Bei dem kleinen Demoprogramm mit dem Jäger, das ich dir geschickt habe, ist es das selbe...
#306
Hi!

Habe mitgelesen und bin anbei genau auf das selbe Problem gestoßen:

Wie erzeugt man eine Keyframe - Animation alias *.3ds???

Worauf ist da genau zu achten???

GLG

W.
#307
Und danke für die viele Hilfe in dem ganzen Jahr! Vor allem Gernot, ohne den ich nie auch nur einen Pixel hätte zeichnen können! :-)

frohes Fest euch allen!!!
#308
GLBasic - de / Lens Effekt
2005-Dec-20
Hi!

Ich habe ein Problem: Ich bräuchte einen Lens Effekt für mein Intro und für die Kampfszenen im Spiel, nur bekomme ich das irgendwie nicht hin. Wie genau programmiert man soetwas???

GLG

W.
#309
GLBasic - de / Transparenz
2005-Dec-11
S-Zero ist ein gutes Beispiel:

Wenn man im Kreis fährt, erreicht man eine Art von Nebel, den man durchfahren kann... Von der Farbe her ist er ca. türkis bzw. hellblau. Wie wird der erzeugt? Ich habe mir die Sorces schon durchgesehen, aber ich komme nicht drauf...

Bitte HILFE...

Danke im Voraus...

GLG

W.
#310
GLBasic - de / Data\Grafik
2005-Dec-10
Hi!

Meine Unfähigkeit hat eine Obergrenze erreicht. Liegt vielleicht auch daran, daß ich lange nichts mehr gemacht habe...

Ok, hier mein Problem: Ich versuche mit GETFILE eine Datei einzulesen, bekomme aber keinen Zugriff auf die z.B. *.txt - Datei:

GETFILE "\DATA\Text.txt", 0, a

oder

GETFILE "DATA\Text.txt", 0, a

funktioniert nicht!!!

Bitte Hilfe, ansonsten kann ich meine "Schuhschachtel" vergessen! :-)

Danke im Voraus!!!!!

GLG

W.
#311
GLBasic - de / Musik - Loop
2005-Dec-06
Hi!

Noch eine Frage:


Wiederholt sich die Musik eigentlich automatisch, wenn ein "Song" zu ende ist???

Falls nicht, gibt es eine Möglichkeit / einen Wert wie Musikaktiv=1 (if Mu...=0 then PLAYMUSIC "...")???



GLG

W.
#312
GLBasic - de / Zippen
2005-Dec-06
Hi!

Frage: Besteht die Möglichkeit meine Daten in eine z.B. *.zip Datei zu packen und die einzelnen Dateien dort heraus zu lesen???

Falls es funktioniert, was müßte ich tun um das hinzubekommen und weiters stellt sich mir die Frage: Kann man die Daten in diesem Fall komprimieren oder sollte man einfach nur die Dateien unter einen sogenannten "Deckmantel" --> Data.zip verschieben und unkomprimiert speichern???

GLG

Willi

PS.: Ich komme mit meinem Spiel gut voran, habe aber leider noch immer keinen Titel dafür gefunden! :-) Ihr könnt mir gerne bei der Namensfindung helfen... *g*
#313
GLBasic - de / 3D Matrix
2005-Nov-06
Was mache ich denn falsch???


X_LOADOBJ "test1.ddd", 1
X_LOADOBJ "test2.ddd", 2
LOADSPRITE "colormap.bmp", 1

WHILE TRUE

  X_MAKE3D 0, 2000, 45
  X_CAMERA 300, 300, 300, 0, 0, 0
  X_SPOT_LT  0, RGB(0,255,255), 200,0,0, 0, 0, 0, 180

  X_MOVEMENT 0, 0, 0

  X_SETTEXTURE 1, -1

    X_PUSHMATRIX
    X_MOVEMENT 20, 0, 0
    X_SETTEXTURE 1, -1

    X_DRAWOBJ 2, 0

    X_POPMATRIX

  X_SETTEXTURE 1, -1

  X_DRAWOBJ 1,0

  SHOWSCREEN

WEND


GLG W.
#314
_______________________________________
*** Configuration: WIN32 ***
precompiling...

GPC - GLBasic Precompiler V.2005.23 - 3D(1), NET(1)
compiling...
C:\Programme\GLBasic\Projects\INI\INI.gbas (4471 bytes)
Wordcount:110 commands

compile+link...
C:\Programme\GLBasic\Compiler\platform\gpc_temp.cpp: In function `int __GLBASIC__::__MainGameSub_()':
C:\Programme\GLBasic\Compiler\platform\gpc_temp.cpp:15: `class GLBASIC::CGStr' used where a floating point value was expected
C:\Programme\GLBasic\Compiler\platform\gpc_temp.cpp:15: aggregate value used where a float was expected
C:\Programme\GLBasic\Compiler\platform\gpc_temp.cpp:19: `class GLBASIC::CGStr' used where a floating point value was expected
C:\Programme\GLBasic\Compiler\platform\gpc_temp.cpp:19: aggregate value used where a float was expected
*** FATAL ERROR - Bitte die Compiler-Ausgabe ins Forum kopieren
_______________________________________
*** Fertig ***
Zeit: 0.5 sek
Erstellen: 0 erfolgreich, 1 fehlgeschlagen


Tja, soviel dazu!

Hier das Programm dazu:

// --------------------------------- //
// Project:
// Start: Monday, September 26, 2005
// IDE Version: 2.50920

LOCAL lines$[] // Lokale Variable für die Einträge der Sektion


auswahl = RND (2)+1

IF auswahl = 1
datei = "game.ini"
ENDIF

IF auswahl = 2
datei = "game2.ini"
ENDIF


GetSection(datei, "Control", lines$[]) // Die Sektion Control einlesen
test = GetSectionVal$("test", lines$[]) // Aus den glesenen Einträgen "Test" suchen
angriff = GetSectionVal$("angriff", lines$[])
verteidigung = GetSectionVal$("verteidigung", lines$[])




PRINT test, 0, 0
PRINT angriff, 0, 50
PRINT verteidigung, 0, 100
  summe = INTEGER (angriff * (verteidigung / (verteidigung + angriff)))
PRINT summe, 0, 150
PRINT auswahl, 0, 200


SHOWSCREEN
MOUSEWAIT
END


SUB einlesen:

LOCAL lines$[] // Lokale Variable für die Einträge der Sektion
GetSection("game.ini", "Control", lines$[]) // Die Sektion Control einlesen
test = GetSectionVal$("test", lines$[]) // Aus den glesenen Einträgen "Test" suchen
angriff = GetSectionVal$("angriff", lines$[])
verteidigung = GetSectionVal$("verteidigung", lines$[])


ENDSUB



//IF GetSection("game.ini", "Control", lines$[])
//    FOR i=0 TO BOUNDS(lines$[], 0)-1
//        PRINT "> " + lines$
  • + " = " + lines$[1], 0, i*20
//    NEXT
//ELSE
//    PRINT "Section not found!", 0, 0
//ENDIF

//SHOWSCREEN
//MOUSEWAIT

// ------------------------------------------------------------
// Read until you find a [section] then copy it's contents into
// the array
// ------------------------------------------------------------
FUNCTION GetSection: file$, name$, lines$[]
LOCAL i, start, stop, good, nread, rd$, line$[]
    DIM lines$[0]
    // Find the first line of the required section
    start=0
    // Ignore upper-lower case in sections
    name$=UCASE$(name$)
    FOR start = 0 TO 255
        GETFILE file$, start, rd$
        rd$ = UCASE$(rd$)
        // the line must contain "[", "]" and name$, that's
        // close enough for us ;)
        IF    INSTR(rd$, name$)>-1 AND _
            INSTR(rd$,"[")>-1 AND _
            INSTR(rd$,"]")>-1 THEN GOTO find_end
    NEXT
    RETURN FALSE
find_end:
    // Now find the last line of that section (where a new section beginns)
    rd$=""
    start=start+1
    stop = start
    nread=0
    FOR stop=start TO 255
        GETFILE file$, stop, rd$
        rd$ = Trim$(rd$)
        IF MID$(rd$,0,1) = "[" THEN GOTO do_read
        // skip empty + comment lines
        IF rd$ <> "NO_DATA" AND MID$(rd$,0,1)<>"#" THEN nread=nread+1
    NEXT
    stop=255

do_read:
    IF nread=0 THEN RETURN FALSE
    // now that we know the number of good lines, we can DIM the result
    DIM lines$[nread][2]
    good=0
    FOR start=start TO stop
        GETFILE file$, start, rd$
        rd$ = Trim$(rd$)
        IF rd$ <> "NO_DATA" AND MID$(rd$,0,1)<>"#"
            // Split the line at '=' sign
            SPLITSTR(rd$, line$[], "=")
            IF BOUNDS(line$[], 0) = 2

                lines$[good][1] = Trim$(line$[1])
                // Make left of '=' upper case and trim whitespace
                lines$[good][0] = Trim$( UCASE$(line$[0]) )
                // Is this a good one?
                IF LEN(lines$[good][0]) THEN good=good+1
            ENDIF
            IF nread=good THEN RETURN TRUE
        ENDIF
    NEXT
    // this should never be reached
    RETURN FALSE
ENDFUNCTION


// ------------------------------------------------------------- //
// -=#  GETSECTIONVAL  #=-
// Find the value of a section's entry
// ------------------------------------------------------------- //
FUNCTION GetSectionVal$: value$, lines$[]
LOCAL i
    value$=UCASE$(value$)
    FOR i=0 TO BOUNDS(lines$[], 0)-1
        IF lines$
  • = value$ THEN RETURN lines$[1]
   NEXT
RETURN ""
ENDFUNCTION


// ------------------------------------------------------------- //
// Trim whitespace at start and end of a string
// ------------------------------------------------------------- //
FUNCTION Trim$: in$
LOCAL start, fin, a$
    FOR start=0 TO LEN(in$)
        a$=MID$(in$, start,1)
        IF a$<>" " AND a$<>"\t" THEN GOTO skip
    NEXT
    skip:

    FOR fin=LEN(in$)-1 TO start STEP -1
        a$=MID$(in$, fin, 1)
        IF a$<>" " AND a$<>"\t" THEN RETURN MID$(in$, start, fin-start+1)
    NEXT
RETURN ""
ENDFUNCTION
#315
Hi!

Kreative Frage:

Ich möchte (wie in fast jedem Spiel) die ESC - Taste als "MENÜ" - Taste einsetzen, was bedeutet, daß man auf die ESC - Taste hämmert und dadurch sofort in die Menü - Ansicht kommt, bei der man dann speichern und laden usw. kann.

WHILE TRUE
 
  IF KEY(01) = 1
    PRINT "MENÜ", 0, 0
  ENDIF
 
  SHOWSCREEN

WEND

Das kleine Programm scheint nicht wirklich zu funktionieren! Wo liegt denn mein Fehler???

GLG

W.
#316
GLBasic - de / Teiltexturen
2005-Oct-07
Hi!

Diesmal betrifft meine Frage indirekt GL Basic!

Ich habe noch keinen Hinweis darauf gefunden, wie man "Teiltexturen" auf ein Objekt aufbringen kann!

Selbst mit dem Anim8or habe ich es nicht geschafft, eine z.B. Kugel zu erzeugen und nur den oberen Teil mit einer Textur zu überziehen. Habe aber auch nirgendwo etwas brauchbares darüber gefunden...

Kann mir wer helfen???

GLG

W.
#317
Hi!

Ich habe einige Tests gemacht und es hat nicht gerade so funktioniert, wie ich es wollte!

Also hier mein Problem:

Nehmen wir an, wir haben einen Würfel, das wir drehen! Zu diesem Würfel lade ich noch eine Pyramide. Jetzt möchte ich, daß der Würfel rotiert und die Pyramide an der einen Seite  des Würfels steht bzw. bleibt und so mitrotiert, also ob nun beide ein einziges Objekt wären.

Lasse ich den Würfel rotieren, ergibt sich leider das Problem, daß die Pyramide immer irgendetwas macht, z.B. überschneidet sie sich mit den Rändern des Würfels oder geht fast ganz im Würfel unter!

Mein Problem ist, daß ich mindestens 6 verschiedene Objekte an einen Quader bringen möchte. Und dabei sollten die Objekte als Ganzes rotieren können...

Habt ihr vielleicht eine Lösung oder zumindest eine Idee für mich???

GLG

Willi
#318
GLBasic - de / Timer
2005-Sep-28
Da das Programm jetzt durch meine Graphikkarte eingegrenzt wird, wollte ich fragen, wie ich hier einen Timer setzen kann, der auch funktioniert:


X_LOADOBJ "earth.ddd", 1

LOADSPRITE "planet.bmp", 1

LOADSPRITE "mausx.bmp", 2

LET camx = -200

WHILE TRUE

X_MAKE3D 1, 2000, 45

  X_AMBIENT_LT 0, RGB(255,255,255)

  X_SPOT_LT -2, RGB(255,255,255), 0, 0, 0, 0, 0, 0, 180

    X_CAMERA camx, 0, 10, 0, 0, 0

  //X_DRAWAXES -50, 0, 0

  X_SETTEXTURE 1, 0

    X_MIPMAPPING TRUE

    //X_ROTATION

//phi=phi + 0.05

IF mx <= 100 THEN phi = phi - 0.05
IF mx >= 700 THEN phi = phi + 0.05

IF my <= 100 THEN camx = camx + 0.3
IF my >= 500 THEN camx = camx - 0.3


IF b1 = 1 THEN END

IF camx > -150 THEN camx = -150
IF camx < -350 THEN camx = -350


IF phi = 360 THEN phi = 0
IF phi < 0 THEN phi = 360

  //X_SCALING 3, 3, 3
  X_ROTATION phi, 0, 1, 0

//FOG RGB(255,255,255), FALSE, 1/2, 0

  X_DRAWOBJ 1, 0

X_MAKE2D

  MOUSESTATE mx, my, b1, b2

  SPRITE 2, mx, my

  SHOWSCREEN

WEND




Danke! :-)
#319
GLBasic - de / Lichteffekt
2005-Sep-28
Hi!

Diesmal habe ich eine Frage, die sich vermutlich simpel beantworten läßt:

Ich habe meine Erdkugel erzeugt und zum rotieren gebracht und beobachtet, daß sich bei der Rotation die Lichtverhältnisse verändert haben. Insgesamt heißt das, daß auf der einen Seite der Kugel das Licht stärker war und auf der anderen schwächer bzw. die eine Seite heller wirkt und die andere dunkler, obwohl sich weder Kamera noch Licht bewegen und nur das Objekt um seine eigene Achse rotieren.

Ist das normal und kann man das Licht zumindest so einstellen, daß man eine kontinuierliche Helligkeit auf dem ganzen Objekt hat???

GLG

Willi
#320
Dieses Programm erzeugt eine schwarze Kugel! Problem an der Sache ist, daß die Textur eine Karte der Erde ist bzw. sein sollte! Setze ich X_SETTEXTURE -1, 0 dann ist die Kugel weiß! Tja, HILFE?????



X_LOADOBJ "planet.ddd", 1

LOADSPRITE "planet03.bmp", 1



X_MAKE3D 1, 2000, 45

  X_AMBIENT_LT 0, RGB(128,128,128)

  X_SPOT_LT -2, RGB(255,255,255), -50, -100, 0, 0, 0, 0, 180

    X_CAMERA 0, 20, 100, 0, 0, 0

  X_DRAWAXES -200, 0, 0

  X_SETTEXTURE 1, 0

  X_DRAWOBJ 1, 0



SHOWSCREEN

MOUSEWAIT