Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Pascal grafiikka

Spirit [31.01.2005 14:59:21]

#

Turbo Pascalilla olen nyt yrittäny tehdä jotain pikkupelejä, mutta grafiikka on jääny ASCII:n ja yksinkertaisten vakiokirjastojen avulla tehtyihin kuviin. ASCII:nä olen tehny mm. pienen rpg:n ja muulla grafiikalla tetriksen.
Olisko kellä vinkkejä, miten vois tehdä yksinkertaista ja nopeaa, mutta kuitenkin selkeää ja tyylikästä grafiikkaa? Silleen että se toimisi yksinkertaisissa 2d peleissä, kuten Bomberman. Tarkoitus olisi että grafiikasta saisi tyylikästä, mutta se olisi helppo toteuttaa, sillä en ymmärrä noista grafiikkapuolen ohjelmoinneista oikeastaan mitään.

esakom [31.01.2005 15:04:11]

#

Jos ei vielä grafiikan ohjelmoinnista mitään tiedä ja se kiinnostaa, niin sitten sitä kannattaisi ruveta opiskelemaan... =)Et kuitenkaan maininnut että mihin ympäristöön haluat ohjelmoida ja haluatko sitä edelleen pascalilla vääntää... Itse olen Windows-fani, joten sille puolelle itse suosittelen joko Visual Basicia (jolla saa asioita aikaiseksi vähän liiankin helposti) tai sitten C/C++ ja DirectX-grafiikkaa (joka sitten vaatiikin jo sitä opiskelua)

Kaikilla on kuitenkin omat mieltymyksensä, joten riippuu oikeastaan mistä olet kiinnostunut...

aWW [31.01.2005 15:04:39]

#

javalla on paljon helpompi tehdä 2d-pelit

peran [31.01.2005 16:21:28]

#

Jos grafiikkaa haluat tehdä Turbo Pascalilla, niin ainakin TP 5.0:sta lähtien on tullut graph.tpu, ja EGAVGA.bgi, joilla voi tehdä 640x480 pikselin ja 16 värin VGA-grafiikkaa. EGAVGA.bgi pitää kuljettaa .exe:n kanssa, jos ei linkkaa sitä exe:n sisään (En muista miten tapahtuu). Mukaan voi vielä liittää parit fonttitiedostot, jos haluaa kirjoittaa tekstiä grafiikalla.

Grafiikan ohjelmoiminen DOS-puolella on jokseenkin seuraavasti:
Aluksi mennään Grafiikka-tilaan
sitten tehdään pää ohjelma
lopuksi palataan tekstitilaan, jotta ohjelma ei jää grafiikkatilaan ohjelmasta poistumisen jälkeen.

Hitaus ei yleensä ole ongelma DOS-ohjelmilla, koska nykyiset koneet ovat nyt ainakin 100x nopeempia kuin siihen aikaan kun ohjelmoitiin yleisesti DOS:lla.

Metabolix [31.01.2005 17:10:14]

#

Jos et halua ruveta tekemään hommaa itse, kannattanee käyttää Graph-unitia.

Muillekin tiedoksi, että Pascalilla voi ihan hyvin tehdä Windows-ohjelmia, ei siihen C:tä tai VB:tä tarvita. Suosittelen kääntäjäksi silloin FreePascalia (tai Delphiä). FreePascalissa tulee mukana unit-tiedostot OpenGL:lle, joten sillä varmaankin on helpointa aloittaa.

Jos kuitenkin innostusta riittää, Dos-unit pitää sisällään Intr-funktiota, jolla voi kutsua järjestelmän keskeytyksiä. Registers-tietuetyyppiin voi tunkea prosessorin rekisterien sisällön kutsua varten. Näyttömuistia voi tökkiä Mem-taulukon kohdasta [$A000:0000] eteenpäin.

procedure VaihdaTila;
var
  R: Registers;
begin
  R.ax := $13;  { $13 = 320x200, 256 väriä }
  Intr($10, R);
end;

procedure PalautaTekstitila;
var
  R: Registers;
begin
  R.ax := 3;  { 3 = värillinen tekstitila }
  Intr($10, R);
end;

procedure PiirraPikseli(X, Y: Word; Vari: Byte);
begin
  if (X < 320) and (Y < 200) then
    Mem[$A000 : ((320 * Y) + X)] := Vari;
end;

Spirit [01.02.2005 11:48:19]

#

Kiitoksia vinkeistä. Ja ihan vaan DOSsille olen tekemässä pelejä. Turbo Pascalia olis tarkotus käyttää edelleen. DJGPP löytyy myös ja C++ ohjekirja, mutta aikaa ei ole tarpeeksi tuon opiskeluun.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta