Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

GET/PUT Fehler

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Ferdi



Anmeldungsdatum: 10.03.2007
Beiträge: 284
Wohnort: Berlin

BeitragVerfasst am: 22.08.2008, 15:09    Titel: GET/PUT Fehler Antworten mit Zitat

Hi.
Ich habe folgendes Texturenprogramm:

Code:

DECLARE SUB Auswahl ()
DEFINT A-Z
CLS
DIM SHARED file$
SizeTex% = 4 + INT(((64 - 0 + 1) * (8) + 7) / 8) * 1 * ((64 - 0) + 1)
PRINT SizeTex%
DIM Tex(4229)  AS INTEGER
file$ = COMMAND$
IF file$ = "" THEN
 CALL Auswahl
END IF

DIM byte AS STRING * 1
P$ = file$
SCREEN 13
CLS

OPEN P$ FOR BINARY AS #1
  GET #1, 1, ftype: GET #1, 29, bits
  IF ftype = 19778 AND bits = 8 THEN
    FOR attr = 0 TO 255
      OUT &H3C8, attr
      FOR rgb1 = 1 TO 3
        GET #1, attr * 4 + 58 - rgb1, byte
        OUT &H3C9, INT(ASC(byte) * .2471)
      NEXT
    NEXT
    GET #1, 19, xsz: GET #1, 23, ysz
    FOR ypl& = 1 TO ysz
      IF ypl& > 200 THEN EXIT FOR
      FOR xpl& = 1 TO xsz
        IF xpl& > 320 THEN EXIT FOR
        bpl& = LOF(1) - (ypl& * (3 - (xsz + 3) MOD 4)) - ypl& * xsz + xpl&
        GET #1, bpl&, attr
        PSET (xpl& - 1, ypl& - 1), attr
      NEXT
    NEXT
  ELSEIF ftype = 19778 THEN
    PRINT "You are trying to load a Bit-Map image"
    PRINT "which has been saved in"; bits; "bit format."
    PRINT "For coding efficiency, this program"
    PRINT "only reads 8 bit files. Please save the"
    PRINT "image as a 256 color BMP and try again."
  ELSEIF LOF(1) = 0 THEN
    PRINT "You have specified an invalid file name"
    PRINT "to be opened. Please verify that your"
    PRINT "P$ variable setting is correct.": del = 1
  ELSE
    PRINT "You are trying to load a non Bit-Map"
    PRINT "file. Check to see if your file name is"
    PRINT "correct. "
  END IF
CLOSE #1
IF del THEN KILL P$
DO: LOOP WHILE INKEY$ = ""
SCREEN 13
GET (0, 0)-(64, 64), Tex%
'PRINT Tex%
Texture$ = STR$(Tex%)
OPEN "C:\tex\brick1.tex" FOR RANDOM AS #1
 PUT #1, 1, Tex%
CLOSE #1
CLS
PRINT Tex%
SLEEP
PUT (10, 10), Tex%
'PRINT Tex%
END

DEFSNG A-Z
SUB Auswahl ()
'FILES "*.bmp"
INPUT "Dateiname: "; file$
END SUB


Leider speichert es nichts in die Datei. Was hab ich schon
wieder falsch gemacht??

LG Ferdi
_________________
Dieser Post wurde cum grano salis gewürzt! Na dann: Guten Appetit!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 22.08.2008, 15:38    Titel: Antworten mit Zitat

Ich kann das Problem leider auf die Schnelle nicht nachvollziehen. Das Fehlverhalten muss ja wahrscheinlich hier stattfinden:
Code:
OPEN "C:\tex\brick1.tex" FOR RANDOM AS #1
 PUT #1, 1, Tex%
CLOSE #1

Probiere mal nur diesen Code aus, ob er funktioniert (am besten Tex% noch einen Wert zuweisen).
Sonst würde ich statt RANDOM eher BINARY empfehlen.

Noch was zum Code: Wenn du die Variable file$ nur im Hauptprogramm und in der Auswahl brauchst, wäre es sinnvoller, sie nicht SHARED zu definieren, sondern aus der SUB Auswahl eine FUNCTION Auswahl zu machen, die den eingegebenen Dateinamen als Funktionswert zurückliefert.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Ferdi



Anmeldungsdatum: 10.03.2007
Beiträge: 284
Wohnort: Berlin

BeitragVerfasst am: 22.08.2008, 18:04    Titel: Antworten mit Zitat

Hi nemored.
Ich habe nun die änderungen durchgeführt, doch in der Datei steht nun eine "0" und nicht das Bild (bzw. die Textur).
mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen weinen traurig

EDIT:

Screenshot d. Programms (Die Zahl l.o. ist der Wert von Tex%)

EDIT2:
Laut MS Debugger wird Tex% im ganzen Programm nicht größer als 0 (und das obwohl in Tex% eigentlich ein Bild gespeichert ist...)

EDIT3:
Ich hab jetzt durch
Code:

OPEN "C:\Tex\brick1.tex" FOR BINARY AS #8
 FOR I = 1 TO 4229
  GET #8, , Texture(I)
 NEXT I
CLOSE #1


wenigstens irgendwas in die Datei geschrieben. Doch wenn ich die Datei mit dem oben stehenden Programm öffnen will, krieg ich farbenwirrwarr geschenkt...
_________________
Dieser Post wurde cum grano salis gewürzt! Na dann: Guten Appetit!


Zuletzt bearbeitet von Ferdi am 22.08.2008, 19:46, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 22.08.2008, 19:45    Titel: Antworten mit Zitat

Vielleicht ist an dieser Stelle

http://www.dreael.ch/Deutsch/Download/WindowsBitmapBibliothek.html

aus meiner Sammlung hilfreich. Dort ist Laden und Speichern möglich.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Ferdi



Anmeldungsdatum: 10.03.2007
Beiträge: 284
Wohnort: Berlin

BeitragVerfasst am: 22.08.2008, 20:15    Titel: Antworten mit Zitat

Danke!
So kann ich zumindest die Umwandlungsroutine ersetzen...
Aber wie speichere ich das feld h% in eine Datei und lade sie wieder? Ich hab nur eine Routine zum speichern von .BMPs entdeckt und wenn ich
Code:
open "C:\tex\brick1.tex" for binary as #1
put #1,1,h%
close #1

scheibe dann ist die Datei brick1.tex hinterher leer... traurig
_________________
Dieser Post wurde cum grano salis gewürzt! Na dann: Guten Appetit!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 23.08.2008, 12:58    Titel: Antworten mit Zitat

Hallo

Du machst da gleich mehrere grobe Fehler. Du lädst Dateien im BMP-Format und speicherst aber einfach das Array, das du mit dem Grafik-Get beschrieben hast. Das sind völlig unterschiedliche Datenformate. Mit OPEN ... AS BINARY öffnest du die Datei für das Lesen und Schreiben einzelner Bytes, du willst 16-Bit Integer reinschreiben, das Grafik-Get erstellt keinen BMP-Header für Farbtiefe, Palette usw. Geht also gar nicht zusammen.

Aber eigentlich versuchst du auch nur, was in die Datei zu schreiben. Wenn du nämlich ein Array abspeichern willst, musst du dessen einzelne Feldelemente in die Datei schreiben. Genauso beim Anzeigen. Die Klammer mit dem Index darfst du nur bei GET/PUT (Grafik) weglassen. In deinem Fall ist Tex% ja nur der Name des ganzen Arrays. Willst du einzelne Einträge ansehen oder Speichern, musst du den Index mit angeben.

Code:
SCREEN 13
CLS
DIM Tex%(2049)
RANDOMIZE TIMER

FOR rechteck = 0 TO 19                   'Zufallsbild zeichnen
 FOR ecke = 0 TO 3
  p(ecke) = FIX(RND * 64)
 NEXT
 farbe = FIX(RND * 15) + 1
 LINE (p(0), p(1))-(p(2), p(3)), farbe, BF
NEXT

GET (0, 0)-(63, 63), Tex%                'Mit GET speichern

OPEN "bild.dat" FOR OUTPUT AS #1         'In Datei schreiben
FOR index = 0 TO 2049
 PRINT #1, Tex%(index)
NEXT
CLOSE #1

OPEN "bild.dat" FOR INPUT AS #1          'Datei laden
FOR index = 0 TO 2049
 INPUT #1, Tex%(index)
NEXT

PUT (74, 0), Tex%, PSET                  'Mit PUT anzeigen


Wenn du die Bilder im BMP-Format speichern willst, wird es etwas komplizierter, aber wenn du die Grafiken nur für das QB-Programm brauchst, kannst du ja auch ein Bitmap laden (das klappt ja), wie in meinem Beispiel auf Grafik-PUT-Format umschreiben und speichern.

Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Ferdi



Anmeldungsdatum: 10.03.2007
Beiträge: 284
Wohnort: Berlin

BeitragVerfasst am: 23.08.2008, 13:06    Titel: Antworten mit Zitat

Hallo!
Danke!!!!
Ich werds gleich versuchen.
peinlich das ich das nicht gleich hinbekommen habe...
So jetzt werde ich endlich mein Texturenproggie fertigstellen...

EDIT:
Funktioniert wunderbar happy
_________________
Dieser Post wurde cum grano salis gewürzt! Na dann: Guten Appetit!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Ferdi



Anmeldungsdatum: 10.03.2007
Beiträge: 284
Wohnort: Berlin

BeitragVerfasst am: 23.08.2008, 13:42    Titel: Antworten mit Zitat

Code:

DECLARE SUB Texture4eck (x1%, y1%, x2%, y2%, x3%, y3%, x4%, y4%, Texture%)
DECLARE SUB Texture3eck (x1%, y1%, x2%, y2%, x3%, y3%, Texture%)
'Code supplement for the vector article
'Texture triangle filler
'Original code by CGI Joe(Generic)

'''Relsoft 2004
'''Rel.Betterwebber.com


DECLARE SUB TextureTri (ox1%, oy1%, ou1%, ov1%, ox2%, oy2%, ou2%, ov2%, ox3%, oy3%, ou3%, ov3%, TSEG%, TOFF%)
DECLARE SUB GradColor (col1%, r1%, g1%, b1%, col2%, r2%, g2%, b2%)

DEFINT A-Z

RANDOMIZE TIMER
'Size% = ((32 * 32) + 4) \ 2
DIM SHARED Tex%(4229)

CLS
SCREEN 13

GradColor 0, 0, 0, 0, 128, 32, 63, 32
GradColor 128, 32, 63, 32, 255, 63, 0, 63

'FOR y = 0 TO 31
'FOR x = 0 TO 31
'    PSET (x, y), (x * 15) XOR (y * 15)
'NEXT x
'NEXT y
'GET (0, 0)-(31, 31), Texture%

open "C:\tex\brick1.tex" FOR INPUT AS #1
 FOR index = 0 TO EOF(1)
  INPUT #1, Tex%
 NEXT index
close #1

PUT(0,0),Tex%

TSEG% = VARSEG(Tex%(0))
TOFF% = VARPTR(Tex%(0))

C$ = INPUT$(1)

'DO

x1 = 0
y1 = 30

x2 = 10
y2 = 50

x3 = 300
y3 = 10

u1 = x1
u2 = x2
u3 = x3

v1 = y1
v2 = y2
v3 = y3

CLS
'TextureTri x1, y1, u1, v1, x2, y2, u2, v2, x3, y3, u3, v3, TSEG%, TOFF%
CALL Texture4eck(10, 30, 100, 10, 10, 100, 100, 80, Texture%)
END
'LOOP UNTIL INKEY$ <> ""

SUB GradColor (col1, r1, g1, b1, col2, r2, g2, b2)
'Makes a gradient color by interpolating the RGB values of the first
'color index (col1) and col2 by the number of cols.
'Only use this in screen 13

R! = r1
G! = g1
B! = b1
cols = (col2 - col1 + 1)
Rstep! = (r2 - r1 + 1) / cols
Gstep! = (g2 - g1 + 1) / cols
Bstep! = (b2 - b1 + 1) / cols
FOR Col = col1 TO col2
    R! = R! + Rstep!
    G! = G! + Gstep!
    B! = B! + Bstep!
    IF R! > 63 THEN R! = 63
    IF R! < 0 THEN R! = 0
    IF G! > 63 THEN G! = 63
    IF G! < 0 THEN G! = 0
    IF B! > 63 THEN B! = 63
    IF B! < 0 THEN B! = 0
    OUT &H3C8, Col
    OUT &H3C9, FIX(R!)
    OUT &H3C9, FIX(G!)
    OUT &H3C9, FIX(B!)
NEXT Col

END SUB

SUB Texture3eck (x1, y1, x2, y2, x3, y3, Texture%)
u1 = x1
u2 = x2
u3 = x3

v1 = y1
v2 = y2
v3 = y3

TSEG% = VARSEG(Tex%(0))
TOFF% = VARPTR(Tex%(0))

TextureTri x1, y1, u1, v1, x2, y2, u2, v2, x3, y3, u3, v3, TSEG%, TOFF%
END SUB

SUB Texture4eck (x1, y1, x2, y2, x3, y3, x4, y4, Tex%)
 CALL Texture3eck(x1, y1, x2, y2, x3, y3, Tex%)
 CALL Texture3eck(x2, y2, x3, y3, x4, y4, Tex%)
END SUB

SUB TextureTri (ox1%, oy1%, ou1%, ov1%, ox2%, oy2%, ou2%, ov2%, ox3%, oy3%, ou3%, ov3%, TSEG%, TOFF%)
'
'
'             /
'        d1 /  |
'         /    |
'         \    |
'          \   |d3
'        d2 \  |
'            \ |
'             \|

'This implementation of the Textured triangle routine is
'the the fast FIXPOINT point version.
'Almost the same as a Flat Triangle routine with an added interpolation
'of the U and V Texture coordinates.  Note the comments with '***. It means
'Addition from the Flat filler code to make it a Texture filler code.

CONST FIXPOINT = 65536

DIM x1 AS INTEGER, y1 AS INTEGER
DIM x2 AS INTEGER, y2 AS INTEGER
DIM x3 AS INTEGER, y3 AS INTEGER

DIM u1 AS INTEGER, v1 AS INTEGER               '***texture coords
DIM u2 AS INTEGER, v2 AS INTEGER
DIM u3 AS INTEGER, v3 AS INTEGER


DIM dx1 AS INTEGER, dy1 AS INTEGER, du1 AS INTEGER, dv1  AS INTEGER      '***
DIM dx2 AS INTEGER, dy2 AS INTEGER, du2 AS INTEGER, dv2  AS INTEGER      '***
DIM dx3 AS INTEGER, dy3 AS INTEGER, du3 AS INTEGER, dv3  AS INTEGER      '***


DIM delta1&, delta2&, delta3&
DIM UDelta1&, UDelta2&, UDelta3&        '***
DIM VDelta1&, VDelta2&, VDelta3&        '***

DIM Lx&, Rx&
DIM Lu&, Ru&                            '***
DIM Lv&, Rv&                            '***

x1 = ox1%
y1 = oy1%
u1 = ou1%                               '***
v1 = ov1%                               '***

x2 = ox2%
y2 = oy2%
u2 = ou2%                               '***
v2 = ov2%                               '***

x3 = ox3%
y3 = oy3%
u3 = ou3%                               '***
v3 = ov3%                               '***



DEF SEG = TSEG%
TEXTUREWID% = (PEEK(TOFF%) + PEEK(TOFF% + 1) * 256) \ 8
TWM1% = TEXTUREWID% - 1

IF y2 < y1 THEN
    SWAP y1, y2
    SWAP x1, x2
    SWAP u1, u2
    SWAP v1, v2
END IF
IF y3 < y1 THEN
    SWAP y3, y1
    SWAP x3, x1
    SWAP u3, u1
    SWAP v3, v1
END IF

IF y3 < y2 THEN
    SWAP y3, y2
    SWAP x3, x2
    SWAP u3, u2
    SWAP v3, v2
END IF

dx1 = x2 - x1
dy1 = y2 - y1
du1 = u2 - u1                           '***
dv1 = v2 - v1
IF dy1 <> 0 THEN
    delta1& = dx1 * FIXPOINT \ dy1
    UDelta1& = du1 * FIXPOINT \ dy1     '***
    VDelta1& = dv1 * FIXPOINT \ dy1     '***
ELSE
    delta1& = 0
    UDelta1& = 0                        '***
    VDelta1& = 0                        '***
END IF

dx2 = x3 - x2
dy2 = y3 - y2
du2 = u3 - u2                           '***
dv2 = v3 - v2
IF dy2 <> 0 THEN
    delta2& = dx2 * FIXPOINT \ dy2
    UDelta2& = du2 * FIXPOINT \ dy2     '***
    VDelta2& = dv2 * FIXPOINT \ dy2     '***
ELSE
    delta2& = 0
    UDelta2& = 0                        '***
    VDelta2& = 0                        '***
END IF


dx3 = x1 - x3
dy3 = y1 - y3
du3 = u1 - u3                           '***
dv3 = v1 - v3
IF dy3 <> 0 THEN
    delta3& = dx3 * FIXPOINT \ dy3
    UDelta3& = du3 * FIXPOINT \ dy3     '***
    VDelta3& = dv3 * FIXPOINT \ dy3     '***
ELSE
    delta3& = 0
    UDelta3& = 0                        '***
    VDelta3& = 0                        '***
END IF


'Flat bottom
'Tup part of triangle

Lx& = x1 * FIXPOINT
Rx& = Lx&

Lu& = u1 * FIXPOINT                     '***Left U
Ru& = Lu&                               '***Right U
Lv& = v1 * FIXPOINT                     '***Left V
Rv& = Lv&                               '***Right V


FOR y% = y1 TO y2 - 1
    Tx1% = Lx& \ FIXPOINT   '\          '***
    Tx2% = Rx& \ FIXPOINT   ' \   Parameters for TextureHline subroutine
    TLu1& = Lu&             ' /         '***
    TLu2& = Ru&             '/
    TLv1& = Lv&            '/           '***
    TLv2& = Rv&
    GOSUB TextureHline                  '***
    Lx& = Lx& + delta1&
    Rx& = Rx& + delta3&
    Lu& = Lu& + UDelta1&                '***
    Ru& = Ru& + UDelta3&                '***
    Lv& = Lv& + VDelta1&                '***
    Rv& = Rv& + VDelta3&                '***
NEXT y%

'Flat top
'Lower part of triangle

Lx& = x2 * FIXPOINT
Lu& = u2 * FIXPOINT                     '***
Lv& = v2 * FIXPOINT                     '***

FOR y% = y2 TO y3
    Tx1% = Lx& \ FIXPOINT   '\          '***
    Tx2% = Rx& \ FIXPOINT   ' \   Parameters for TextureHline subroutine
    TLu1& = Lu&             ' /         '***
    TLu2& = Ru&             '/
    TLv1& = Lv&            '/           '***
    TLv2& = Rv&
    GOSUB TextureHline                  '***
    Lx& = Lx& + delta2&
    Rx& = Rx& + delta3&
    Lu& = Lu& + UDelta2&                '***
    Ru& = Ru& + UDelta3&                '***
    Lv& = Lv& + VDelta2&                '***
    Rv& = Rv& + VDelta3&                '***
NEXT y%

EXIT SUB

'**************************************************************************
'Draws a Textured horizontal line interpolated from u1 to u2, v1 to v2
'Needed variables.
'   Tx1% = integer x1 coordinate
'   Tx2% = integer x2 coordinate
'   y% = integer y coordinate
'   u1& = Long int of u1 *Fixpoint. In this case 2^16
'   u2& = Ditto.
'   v1& = Long int of v1 *Fixpoint. In this case 2^16
'   v2& = Ditto.
'**************************************************************************
TextureHline: 

    Gx1% = Tx1%             'Save values to be safe
    Gx2% = Tx2%
    yy% = y%

    Tu1& = TLu1&
    Tu2& = TLu2&
    Tv1& = TLv1&
    Tv2& = TLv2&

    IF Gx1% > Gx2% THEN             'Sort values
        SWAP Gx1%, Gx2%
        SWAP Tu1&, Tu2&
        SWAP Tv1&, Tv2&
    END IF
    Gdx% = (Gx2% - Gx1%) + 1       'Get Xdelta(+1) for the Div by 0 error
    Udx& = Tu2& - Tu1&             'U delta
    deltaU& = Udx& \ Gdx%          'Interpolate
    Vdx& = Tv2& - Tv1&             'V delta
    deltaV& = Vdx& \ Gdx%          'Interpolate


    u& = Tu1&                       'save values to be safe
    v& = Tv1&
    FOR l% = Gx1% TO Gx2%                   'Rasterizer loop
        u% = (u& \ FIXPOINT) AND TWM1%
        v% = (v& \ FIXPOINT) AND TWM1%
        Pix = PEEK(4 + u% + v% * TEXTUREWID%)
        PSET (l%, yy%), Pix                 'Use poke for speed
        u& = u& + deltaU&                   'DDA
        v& = v& + deltaV&                   'DDA
    NEXT l%

RETURN

END SUB



Der sagt mir:
Zitat:
Illegal function call

mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen
böse böse böse
_________________
Dieser Post wurde cum grano salis gewürzt! Na dann: Guten Appetit!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 23.08.2008, 14:13    Titel: Antworten mit Zitat

Tja, das passiert manchmal, wenn man versucht, Programmteile von verschiedenen Leuten zusammenzustückeln.

Geht es dir nur darum, beliebige Dreiecke mit Texturen aus Bitmaps zu füllen? Das geht sicher auch einfacher. Dein Code ist mir jetzt zu lang, um mich da durchzuarbeiten und ohne die Texturdatei kann man es auch nicht laufen lassen.

Denke auch daran, dass die Bitmaps die gleiche Farbpalette nutzen müssen, die du bei Programmstart laden musst, oder du speicherst von vorneherein alle Bitmaps mit der Palette von SCREEN 13.

Ich habe die früheren Fragen zu deinem Projekt nicht gelesen, kannst du noch einmal kurz beschreiben, was genau du vor hast?

Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Ferdi



Anmeldungsdatum: 10.03.2007
Beiträge: 284
Wohnort: Berlin

BeitragVerfasst am: 23.08.2008, 18:09    Titel: Antworten mit Zitat

Hallöle!
Es geht mir darum Jojo zu beweisen, dass man 3D Spiele (Mit Schatten, Texturen & Co.) auch unter QBasic (bzw. DOS) laufen lassen kann.
Daraufhin hab ich ein bissl rumgefragt und von *Andy* eine Website vorgeschlagen bekommen zu der unter anderem dieses Programm gehört, das Dreiecke texturiert. Dann hab ich mir kostenlose Texturen besorgt und wollte das nun laufen lassen, wobei letzten endes ich auf diese Probleme stieß.

Texturen: Zu Skydrive wechseln
_________________
Dieser Post wurde cum grano salis gewürzt! Na dann: Guten Appetit!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 23.08.2008, 19:15    Titel: Antworten mit Zitat

Niemand, auch nicht Jojo, hat je behauptet, dass 3D-Spiele unter DOS nicht möglich sind. Er hat allerdings darauf hingewiesen, dass man mit weniger Arbeit unter moderneren Systemen anspruchsvollere 3D-Anwendungen entwickeln kann bzw. dass diese ganzen Dinge, die eigtl. von der GPU gemacht werden sollten und um die man sich nicht kümmern bräuchte, hier von der CPU deutlich langsamer erledigt werden müssen. Auch die begrenzte Auflösung bzw. Farbtiefe wirkt sich nicht gerade positiv auf 3D-Anwendungen aus.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Ferdi



Anmeldungsdatum: 10.03.2007
Beiträge: 284
Wohnort: Berlin

BeitragVerfasst am: 23.08.2008, 19:16    Titel: Antworten mit Zitat

ok.
Es gibt aber dennoch SVGA Libs grinsen
_________________
Dieser Post wurde cum grano salis gewürzt! Na dann: Guten Appetit!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 23.08.2008, 19:18    Titel: Antworten mit Zitat

Und damit kommen wir schon zur nächsten Sache: Speicherplatz. Auch eine SVGA-Lib frisst Speicherplatz, der unter DOS ohnehin schon sehr knapp ist.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Ferdi



Anmeldungsdatum: 10.03.2007
Beiträge: 284
Wohnort: Berlin

BeitragVerfasst am: 23.08.2008, 19:25    Titel: Antworten mit Zitat

EMS, XMS Zunge rausstrecken
_________________
Dieser Post wurde cum grano salis gewürzt! Na dann: Guten Appetit!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 23.08.2008, 21:14    Titel: Antworten mit Zitat

Ferdi hat Folgendes geschrieben:
EMS, XMS Zunge rausstrecken
, Kleinkind.

Natürlich kann man 3D Spiele für DOS entwickeln. Ob es sich lohnt ist eine andere Frage. EMS/XMS sind für Spiele auch nicht gerade geeignet da langsam.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 24.08.2008, 00:56    Titel: Antworten mit Zitat

Lerne bitte die Fachterminologie, die du zum Angeben im Forum benutzt, vorher auswendig. was zum lutz hat SVGA bitte mit 3d zu tun?! SVGA ist kein 3D-Standard und hat nichts mit 3D-Spielen zu tun!
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Ferdi



Anmeldungsdatum: 10.03.2007
Beiträge: 284
Wohnort: Berlin

BeitragVerfasst am: 24.08.2008, 08:31    Titel: Antworten mit Zitat

Es geht um die Auflösug!
_________________
Dieser Post wurde cum grano salis gewürzt! Na dann: Guten Appetit!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 24.08.2008, 11:49    Titel: Antworten mit Zitat

@Ferdi:
Du kommst - egal was du machst - immer weiter in die Beschränkungen.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 24.08.2008, 15:27    Titel: Antworten mit Zitat

Warum zum Henker willst du nicht FreeBasic + openGL oder DirectX 9 nutzen!?

Glaubst du ernsthaft, dass dich irgendjemand anbeten wird, wenn du in zwei Jahren ein Spiel veröffentlichst, was nicht nur eine absurd schlechte Grafik haben wird, sondern dann auch auf vielen Rechnern überhaupt nicht lauffähig sein wird (x64 ist auf dem Vormarsch! - Und da gibts kein WOW16 mehr!!)!?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz