Graphikmodus

Tutorials.at
Verfügbare Informationen zu "Graphikmodus"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: C+++ - Dragorad - Jul007 - Moritz - vpascal - jan040793
  • Forum: Tutorials.at
  • Forenbeschreibung: Programmierforum
  • aus dem Unterforum: Pascal
  • Antworten: 27
  • Forum gestartet am: Mittwoch 19.04.2006
  • Sprache: deutsch
  • Link zum Originaltopic: Graphikmodus
  • Letzte Antwort: vor 16 Jahren, 5 Monaten, 3 Tagen, 20 Stunden, 10 Minuten
  • Alle Beiträge und Antworten zu "Graphikmodus"

    Re: Graphikmodus

    C+++ - 01.01.2007, 21:15

    Graphikmodus
    Hi, erstmal ein Hallo an alle hier :D Ich hab vor ein paar Wochen mit dem Programmieren angefangen (mit Pascal da es mir für den Anfang am einfachsten ausgesehen hat :) ). Jetzt würde ich aber gerne mal den Grafischen Sachen zuwenden und nicht nur Test-basierte Dinge machen.
    Da gibt es jetzt nur ein Problem:
    Ich benutze FreePascal und da gibt es (wenn man nach dem Tutorial auf dieser Seite geht) ja einige Probleme, wenn man in den Grafikmodus wechseln will. Oder zumindest weiß ich das nicht,w ie es geht. Denn wen ich es 1:1 so wie im Tutorial mache, kommt ein Compiler-Fehler. Was muss ich tun um auch in FPC grafik zu verwenden? ich meine die Graph.tpu usw. sind ja eigentlich vorhanden... :cry:

    Gruß
    C+++



    Re: Graphikmodus

    Dragorad - 02.01.2007, 00:00


    Ich komme folgendermaßen in den Grafikmodus:

    Code: driver:=0;
    initgraph(driver,mode,'c:\tp\bgi');


    Im Variablenteil müssen driver und mode als integer deklariert werden.

    Musst einfach mal ausprobieren ...



    Re: Graphikmodus

    C+++ - 02.01.2007, 00:11


    hm also ich habe gerade mal etwas getestet und festgestellt, das das gleiche von mir geschriebene Programm auf einem anderen PC, der auch komplett das gleiche FreePascal hat und eigentlich auch die gleichen Einstellugen haben müsste, einwandfrei läuft, nur auf meinem nicht. Liegt das an meinem PC? Vielleicht hat es etwas mit der Grafikkarte zu tun, da diese OnBoard ist?

    Gruß
    C+++

    EDIT: So, ich habe es nun geschaft den Grafikmodus mit der Unit Wingraph anstatt der normalen Graph zu initalisieren. Funtkioniert auch alles soweit ganz gut. Nur: ISt es möglich, das wenn man in den Grafikmodus wechselt trotzdem im Vollbildschirm bleibt (wie im Textmodus wenn man die Eingabeauffoder so konfiguriert hat.) und nicht wieder zur normalen windows-fenster-ansicht wechselt sobald man Graph benutzt?



    Re: Graphikmodus

    Dragorad - 03.01.2007, 00:16


    Hab' zum Grafikmodus auch 'ne Frage:
    Wie mache ich das, dass ich einen Punkt mittels der WASD-Tasten über dem Bildschirm flitzen lassen kann? In meinem Programm gibt's da noch 'nen Fehler! Wenn man eine Richtungstaste drückt, geht der Punkt auch nur in diese Richtung (so weit so gut :D ), aber jetzt kann ich die Richtung nicht mehr ändern!! Egal welche Taste ich drücke, der Punkt wandert stur in die eine Richtung.
    Hier der Quellcode:
    Code:
    program   test;
    uses      graph,crt,ugraph;
    const     esc=#27;
    var       taste:char;
              driver,mode,x,y:integer;

    {---------------------------------------------------------------------------}

    begin     driver:=0;
              initgraph(driver,mode,'c:\tp\bgi');
              hg(2);
              x:=320;y:=240;
              taste:=upcase(readkey);
              cleardevice;
              repeat
              putpixel(x,y,15);
              case taste of
               'W':begin
                    putpixel(x,y,2);
                    y:=y-1;
                    putpixel(x,y,15);
                   end;
               'A':begin
                    putpixel(x,y,2);
                    x:=x-1;
                    putpixel(x,y,15);
                   end;
               'S':begin
                    putpixel(x,y,2);
                    y:=y+1;
                    putpixel(x,y,15);
                   end;
               'D':begin
                    putpixel(x,y,2);
                    x:=x+1;
                    putpixel(x,y,15);
                   end
              end;
              until readkey=esc;
    end.

    Und hier die Prozedur ugraph (wegen dem Hintergrund):
    Code:
    unit      ugraph;

    {----------------------------------------------------------------------------}

    interface
    uses      crt,graph,uengl;

    procedure schreib(x,y:integer;text:string);
    procedure vg(x:integer);
    procedure hg(x:integer);

    {----------------------------------------------------------------------------}

    implementation
    procedure schreib(x,y:integer;text:string);
              begin
               settextstyle(1,0,1);
               outtextxy(x,y,text);
              end;
    procedure vg(x:integer);
              begin
               setcolor(x);
               if (x<0) or (x>15) then
               begin
                fehler;
                halt;
               end;
              end;
    procedure hg(x:integer);
              begin
               setbkcolor(x);
               if (x<0) or (x>7) then
               begin
                fehler;
                halt;
               end;
              end;
    end.

    Und hier die Unit uengl, die für ugraph gebraucht wird:
    Code:
    unit      uengl;

    {----------------------------------------------------------------------------}

    interface
    uses      crt,ucolor;

    procedure fehler;

    {----------------------------------------------------------------------------}

    implementation
    procedure fehler;
              begin
               sound(440);
               delay(250);
               nosound;
              end;
    end.



    Re: Graphikmodus

    Jul007 - 15.01.2007, 19:27


    bei mir sagt pascal, dass er die datei EGAVGA.BGI nicht findet. sie ist aber eindeutig da...kann mir einer helfen?



    Re: Graphikmodus

    Dragorad - 16.01.2007, 07:53


    Leg' die Datei mal ins Hauptverzeichnis von Turbo PAscal. Dann müsste es eigentlich funktionieren.



    Re: Graphikmodus

    Jul007 - 20.01.2007, 17:56


    also ich benutz jetzt free pascal. hat auch im hauptverzeichnis nicht funktioniert.



    Re: Graphikmodus

    Dragorad - 20.01.2007, 23:19


    Welches Zielverzeichnis für die BGIs hast du denn eingegeben? Dort müsste sie dann eigentlich hin.
    Unter TP sieht der Initiierungsteil mit Pfad dann so aus:
    Code: initgraph(driver,mode,'c:\tp\bgi');



    Re: Graphikmodus

    Moritz - 04.11.2007, 16:00


    @dragorad: Mach die readkey -anweisung im Hauptprogram mal hinter das repeat



    Re: Graphikmodus

    Dragorad - 04.11.2007, 23:49


    Ok :D
    Hab' auch gesehen, was der Fehler war!
    Danke (auch wenn ich inzwischen das Programm völlig vergessen hab ...) :mrgreen:



    Re: Graphikmodus

    Moritz - 06.11.2007, 21:56


    @dragorad: Ich habe auch mal so ein Programm geschrieben, nur im Textmodus^^
    ich komme bis heute nicht in den Graphikmodus



    Re: Graphikmodus

    Dragorad - 07.11.2007, 11:10


    Wo liegt denn der Fehler?



    Re: Graphikmodus

    Moritz - 07.11.2007, 15:50


    weder in Turbopascal noch in free p. noch in vp. kann ich die Procedur initgraph oder detectgraph verwenden.



    Re: Graphikmodus

    Dragorad - 07.11.2007, 21:52


    Hast du auch bei USES die Unit graph mit angegeben?



    Re: Graphikmodus

    Moritz - 08.11.2007, 15:33


    ja, aber manchmal scheint selbst die nicht existieren



    Re: Graphikmodus

    Dragorad - 08.11.2007, 22:52


    das kapier' ich jetzt nicht genau ... eine Datei kann doch nicht mal da sein und mal nicht und dann wieder?!



    Re: Graphikmodus

    Moritz - 09.11.2007, 15:21


    bei vp zB. kommt:
    unit graph not fond



    Re: Graphikmodus

    Dragorad - 09.11.2007, 21:37


    Da ist es natürlich wichtig zu wissen, wo die Unit gespeichert ist und ob der Compiler auch auf sie (per vorher definiertem Pfad) darauf zurückgreifen kann.



    Re: Graphikmodus

    Moritz - 20.11.2007, 21:33


    jetzt komme ich mit free pascal in den Graphikmodus, ich habe es mir nochmal neu runtergeladen



    Re: Graphikmodus

    Moritz - 20.11.2007, 22:48


    Nachdem ich auf meinem pc windows neu installiert habe (und meine Festplatte "totgeteilt" habe(10Partitionen)), habe ich es mir neu runtergezogen. Dann ging es...ich vermute, dass beim alten irgendwas mit der installation nicht geklappt hat!



    Re: Graphikmodus

    Moritz - 20.11.2007, 22:54


    und gleich noch ne Frage: wie kommen die kleinen Dreiecke zustande??

    Code:
    program gr;
    uses crt, graph;
    var tr, mo: integer;
    i, j, re: integer;
    begin
    i:=1;
    j:=1;
    detectgraph (tr, mo);
    initgraph (tr, mo, 'D:\fpc\2.2.0\');
    for re:=1 to 10 do
    begin

    for i:=1 to 150 do
    begin
    setcolor (i);
    rectangle (i*10+re, i*10+re, i*10+100+re, i*10+100+re);
    end;
    end;
    readkey;
    closegraph;
    readkey;
    end.





    Re: Graphikmodus

    Dragorad - 20.11.2007, 23:05


    Schön, dass es doch noch geklappt hat!



    Re: Graphikmodus

    vpascal - 21.11.2007, 15:32


    Oh mein Gott! Sei froh das dies hier kein großes Forum ist und es hier nicht so genaugenommen wird^^ Satte 3 Posts hintereinander! Naja...



    Re: Graphikmodus

    Moritz - 21.11.2007, 19:17


    Laut tutorial geht beim dritte Parameter von rectangle nur ein wert von 1-15
    woher kommen denn hier die anderen Farben, und wie enstehen die Dreicecke?? Das Programm zecinet ja eigentlich nur vierecke! Is dass jetzt ein BUG des compilers??



    Re: Graphikmodus

    Dragorad - 21.11.2007, 22:35


    Ich würde mal meinen, dass du durch die Überlappung der Rechtecke die 16Farb-Schranke gebrochen hast! Durch die Vermischung entstehen ja die ganzen anderen Farben, und die Dreiecke sind auch 'ne Art optische Täuschung durch die Überlappung.



    Re: Graphikmodus

    jan040793 - 22.11.2007, 08:32


    [quote="Moritz"]und gleich noch ne Frage: wie kommen die kleinen Dreiecke zustande??

    Code:
    program gr;
    uses crt, graph;
    var tr, mo: integer;
    i, j, re: integer;
    begin
    i:=1;
    j:=1;
    detectgraph (tr, mo);
    initgraph (tr, mo, 'D:\fpc\2.2.0\');
    for re:=1 to 10 do
    begin

    for i:=1 to 150 do
    begin
    j:=j+1;
    if j=14 then j:=1;
    setcolor (i);
    rectangle (i*10+re, i*10+re, i*10+100+re, i*10+100+re);
    end;
    end;
    readkey;
    closegraph;
    readkey;
    end.



    Sollte es nicht eigentlich heißen: Code:
    setcolor (j);
    Oder wozu ist das da Code:
    j:=j+1;
    if j=14 then j:=1;

    dann sieht das bei mir so aus:

    jetzt nur noch mit 15 Farben :D Ist aber komisch, dass FPC 150 Farben kann...



    Re: Graphikmodus

    Moritz - 22.11.2007, 20:24


    Der teil mit dem j ist überflüssig, habe ich auch gemerkt *edit top*

    Vieleicht ist das einfach ne eigenart von fpc, das man 256 Farben darstellen kann, ohne die Farbpalette neu zu definieren...(es ist ja moderner als Turbopascal)!!!



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Tutorials.at

    Unterschied zwischen void Funktion und andere Funktionen - gepostet von EndSub am Montag 10.07.2006
    Ein Programm um eine Nachricht zu versenden? - gepostet von niGGo am Dienstag 27.03.2007
    Error - gepostet von xxx am Freitag 01.12.2006
    problem beim öffnen von halloweltprogramm mit linker - gepostet von Madless am Donnerstag 13.09.2007
    ???? - gepostet von drubba7 am Freitag 18.05.2007
    Bitte umhilfe! - gepostet von lFreshManl am Freitag 29.12.2006
    Problem mit Turo Pascal Programm - gepostet von Dagoth Dut am Donnerstag 31.08.2006
    Timer ? - gepostet von Martix391 am Mittwoch 31.05.2006
    [C++]Problem mit Dateilese/schreibfunktion - gepostet von Dirty Oerty am Dienstag 23.01.2007



    Ähnliche Beiträge wie "Graphikmodus"