Bug?

Previous topic - Next topic

WPShadow

Hi!

Um den Anfang zu machen, ich habe noch die Version 3.082 (glaube ich) auf meinem Rechner installiert!

Mir sind folgende Dinge aufgefallen:

1. DIM funktioniert nicht so ganz. Wenn ich versuche ein kurzes Programm zu schreiben...

Code (glbasic) Select
DIM hui[50]

FOR a = 1 to 50

hui[a] = RND (100) + 1

NEXT

PRINT hui[23]

SHOWSCREEN

MOUSEWAIT
...bleibt das Ausgabefenster nicht aufrecht. Auch nicht im Vollbildmodus. Er startet und beendet gleich darauf wieder. Das ist sehr blöd, da ich nämlich mit DIM meine Sterne anpassen und die Anzahl dadurch variabel halten möchte.

2. X_SPRITE funktioniert nicht so richtig. Oder ich bekomme da etwas nicht hin. Auf jeden Fall habe ich ein kleines Bild (ca. 150 x 100 Pixel, *.bmp, 24 bit) gemalt und mit RGB (255, 128, 0) umrandet und habe es dann mit LOADSPRITE zugewiesen. Als ich es ausgeben wollte, war es "verkehrt". Ich weiß nicht wie der Ausdruck dafür heißt, aber jeder Farbwert wurde in sein Gegenteil gekehrt. Es sah aus wie ein Negativ. Beim 2. Versuch mit einem anderen Bild selber Größe wurde schließlich gar nichts mehr angezeigt...

(3.) Ist eher ein kleines Problemchen, das aber nicht wirklich von Belang ist. Wenn man X_LINE und/oder X_DOT vor dem Licht setzt, werde die Farben normal angezeigt, aber danach bleiben sie einfach nur grau. Ist das normal???

Hoffe ich habe nicht zu viel Arbeit gemacht...

GLG

W.

PS.: Bald habe ich meinen Internetzugang zuhause, dann kann ich endlich ein paar super Ergebnisse vorweisen!!!
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Code (glbasic) Select
DIM hui[50]

FOR a = 0 TO 49
hui[a] = RND (100) + 1
NEXT

PRINT hui[23], 0, 0
SHOWSCREEN
MOUSEWAIT
Feld hui[50] hat indizies: 0...49.
Print hat 3 Argumente: text, x, y

2. Das ist nicht gut. Bitte Bild und Beispiel mailen.

3. Ist ein Fehler. Mach ich sofort 'raus.

WPShadow

SPRITE: Habe den Baum aus dem Bumpmapping Sample versucht! Funktioniert aber irgendwie nicht...

DIM: Egal in welches Programm ich es versuche einzubauen, er lädt und bricht wieder ab. Setze ich den DIM Teil unter Kommentar, funktioniert aber alles wieder.

Wenig Zeit. Versuche am Wochenende mehr zu schreiben...

GLG

W.
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

BumbleBee

Hi WPShadow

1.
Speichere doch einfach vorher die Zahl in eine Variable.
Also z.B. Number=50 und dann zieh in der Zählschleife 1 ab. Da kann schon mal
nichts schief gehen.Außerdem brauchst du dann die Zahl nur einmal oben hinschreiben.

2.
Die Zahl die du mit Print ausgibst darf auch nicht größer oder gleich sein
als die Zahl im Dim Feld. Sonst beendet sich die Anwendung auch gleich wieder.
Vielleicht hast du da ja in deinen Programmen einen Fehler reingebracht.
Sonst bau halt einfach eine überprüfung ein.

Mach's lieber so:

Code (glbasic) Select
Num_Max=50

DIM hui[Num_Max]

FOR a = 0 TO Num_Max-1

   hui[a] = RND (100) + 1

NEXT
 
 PRINT hui[23],100,100

SHOWSCREEN
MOUSEWAIT
Nimm mal das Beispiel hier.
Das muß gehen. Wenn nicht,sag ich nie mehr was.:D

Cheers
The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit

WPShadow

Das mit dem vordefinieren kann ich versuchen. Vielleicht funktioniert es dann...

Aber bisher hat er mir bei sämtlichen Programmen abgebrochen. Sowohl bei mousewait als auch bei Keywait. Auch wenn ich den wert mit "IF KEY() THEN END" angesetzt hatte, brach er ab. Ich bin wirklich etwas verzweifelt...

Danke für die Idee. Ich versuche mich vielleicht gegen Mittwoch zu melden. Mal sehen, vielleicht ergibt sich ja was...

GLG

W.
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

WPShadow

Habe vermutlich den Fehler gefunden.

Es sind die eckigen Klammern.

Wenn man hui[12] eingibt, bricht das Programm ab. bei DIM selbst aber nicht. Hilft das vielleicht ein bißchen???

GLG

W.

PS.: Vordefinieren hat nichts geholfen. Leider... :-(
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Bitte komplettes Beispiel hier posten. Ich finde keinen Fehler...

WPShadow

Habe beispiel geschickt...

BITTE HILFE...

GLG

W.

PS.: Wie funktionieren *.ddw - Dateien???
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

.ddw geht noch nicht wirklich. Ich muss da noch basteln. Aber der Kern kann's schon (zumindest ist 99% der Arbeit 'drin).
In der .ddw steht nur:
Code (glbasic) Select
[1]
obj="haus.ddd"
Tex1="haus.bmp"
[2]
obj="Baum.ddd"
tex1="baum.bmp§
tex2="baum_bump.bmp"
So im primzip...

Später macht man dann:
X_LOADOBJ "Welt.ddw", 0
X_DRAWOBJ 0,0

Easy, oder?

WPShadow

Hi!


Hat mein Beispiel schon was ergeben???

Brauche dringend Sterne. Ohne die sieht es im Weltraum nur halb so gut aus... =)

GLG

W.
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Hab ich doch zurückgeschickt, oder?


Kein Bug ;)

DIM a[5]

a[5] = 100; // Hier schepperts!
// a[] ist definiert von a[0] bis a[4] (= 5 Stück)

Anbei meine Änderungen - Ich hab nur die Funktion "sterne" bearbeitet.

Code (glbasic) Select
FUNCTION sterne: sterne1anzahl, sterne1farbe


// HOSSA!
// Du machst hier absichlich eine GLOBAL, die
// genauso heisst wie die Parameter hier oben.
// Die verwendest Du zwar nicht, aber...
GLOBAL createstars //, sterne1anzahl, sterne1farbe


GLOBAL sterneX[], sterneY[], sterneZ[], gross[]
GLOBAL farben[]
LOCAL  farb

// Wenn die Feldgröße nicht passt:
IF BOUNDS(sterneX[],0)< sterne1anzahl
// Felder dimensionieren - nicht immer wieder
// einmal reicht, wenn sie (GLOBAL) die Größe
// haben, ist's ja super
DIM sterneX[sterne1anzahl]
DIM sterneY[sterne1anzahl]
DIM sterneZ[sterne1anzahl]
DIM gross[sterne1anzahl]

// Sterne zufällig platzieren
// Natürlich auch _nur_ wenn die Sterne
// "erschaffen" werden.
FOR u1 = 0 TO sterne1anzahl-1
// Da muss man sich was überlegen...
phi = RND(360)
alpha = RND(360)
radius = RND (2000) + 4000
gross[u1] = RND(2) + 1

sterneX[u1] = radius * SIN (phi) * COS (alpha)
sterneY[u1] = radius * SIN (phi) * SIN (alpha)
sterneZ[u1] = radius * COS (phi)
NEXT
ENDIF


DIM farben[5]
farben[0]=RGB(255,255,255)
farben[1]=RGB(255,0,0)
farben[2]=RGB(255,255,0)
farben[3]=RGB(0,255,0)
// ...
farb = farben[sterne1farbe]

// -1, weil sonst out-of-bounds
FOR u1 = 0 TO sterne1anzahl-1
// hier:
// Wenn sternx,y,z weiter von der Camera Entfernt als super_weit
// sternx,y,z von der anderen Seite wieder 'reinschieben'
// also:
// IF sterneX[u1] < cam_x-1000 THEN sterneX[u1] = cam_x+900
// IF sterneX[u1] > cam_x+1000 THEN sterneX[u1] = cam_x-900

// gruoss[u1] evtl. in Abhängigkeit: Abstand zur Kamera
// skalieren?

// statt gross musst Du hier gross[u1] schreiben
// gross macht keinen Fehler, liefert aber gross[0]...
X_DOT sterneX[u1], sterneY[u1], sterneZ[u1], gross[u1], farb
NEXT



createstars = 1

ENDFUNCTION
Hast Du wieder Internet?