Avatar billede anoukim Nybegynder
04. januar 2003 - 00:39 Der er 4 kommentarer og
1 løsning

Flere C++ spørgsmål fra newbie

Jeg har tidligere (86-91) programmeret en del 8-bit kode på den gode gamle c64. Nu vil jeg gerne igang med at programmere på pc'en, og har derfor kastet mig over C++ (Borland 5.0).

Jeg har leget lidt med at få skærmen i 13h mode, og smidt nogle pixels på skærmen, men nu vil jeg gerne videre, og har forgæves forsøgt at finde en tutorial el.lign. på hvordan jeg smider et almindeligt 2d billede på skærmen.

Findes der en enkelt tutorial til Borland compileren, som beskriver 2d grafik?

På den gamle c64 kunne man dele skærmen op, så man f.eks. kører grafikmode i øverste halvdel og alm. tekstmde i den nederste. Kan man noget lign. på PC?

Jeg vil også gerne have nogle gode link til Borland compatible tutorial på hvoran man får C++ til at spille musik (MX, mod etc.).

Evt. også link til hvordan man laver tekstscroll (puh, jeg er da vist noget af en oldtimer!!)

Point fordeles med hård hånd til de (for mig) bedste svar!!
Avatar billede soreno Praktikant
04. januar 2003 - 14:28 #1
xm, mod kan du afspille med fmod:
http://www.fmod.org

Jeg kan ikke helt finde ud af om det er "ren DOS" eller "DOS under Windows" du leger med. Hvis det er ren DOS, så tror jeg ikke du kan få fmod til at virke.

Mode13h er jo ved at være lidt (meget) out-of-date. Jeg synes du burde kigge lidt på OpenGL istedet.

Jeg tror du vil kunne finde meget godt her, både OpenGL og mode13h (en del teoretisk materiale også):
http://www.gamedev.net/reference/

Specielt:
http://www.gamedev.net/reference/list.asp?categoryid=40#30

Mig bekendt kan man ikke køre grafik og tekst mode på samme tid - ihvertfald ikke med de BIOS kald der er til rådighed.

Om ikke andet så findes der en masse her..:
http://www.google.com/search?hl=en&lr=&ie=UTF-8&q=mode+13h&spell=1
Avatar billede anoukim Nybegynder
05. januar 2003 - 00:39 #2
Det er DOS under windows jeg har brugt. Den eneste grund til dette er at jeg andetsteds har læst at det skulle være det letteste at starte med mode 13h under DOS. Men du har ret, jeg kan jo ligeså godt starte med Win32 programmering og så se på enten OpenGL eller DirectX.

Gamedev linket er ganske ok, det får jeg med garanti brug for.

Jeg har ganske kort prøvet fmod for et par dage siden, uden at få det til at virke, men giver det lige en chance til i næste uge.

Jeg lader lige spørgsmålet stå åbent lidt endnu.
Avatar billede soreno Praktikant
05. januar 2003 - 10:30 #3
Følgende eksempel bruger minifmod (en yderst skrabet udgave af fmod, afspiller kun xm),
minifmod kan også findes på deres side. Jeg bruger selv MinGW, så jeg ved ikke lige hvordan det vil arte sig med Borland. Fordelen ved minifmod er at der ikke skal distribueres diverse dll filer for at få lortet til at spille.

#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include "minifmod.h"

unsigned int fileopen(char *name);

unsigned int fileopen(char *name)
{
  return((unsigned int)fopen(name, "rb"));
}

void fileclose(unsigned int handle)
{
    fclose((FILE *)handle);
}

int fileread(void *buffer, int size, unsigned int handle)
{
    return(fread(buffer, 1, size, (FILE *)handle));
}

void fileseek(unsigned int handle, int pos, signed char mode)
{
  fseek((FILE *)handle, pos, mode);
}

int filetell(unsigned int handle)
{
  return(ftell((FILE *)handle));
}


int main(int argc, char **argv)
{
    FMUSIC_MODULE *mod;

    FSOUND_File_SetCallbacks(fileopen, fileclose, fileread, fileseek, filetell);    if(!FSOUND_Init(44100, 0))
    {
        printf("Error upon initialization.\n");
        return(1);
    }

    mod = FMUSIC_LoadSong("test.xm", NULL);
    if(!mod)
    {
        FSOUND_Close();
        printf("Error loading song\n");
        return(1);
    }
    FMUSIC_PlaySong(mod);

    printf("Playing song ...\n");
    getch();

    FMUSIC_StopSong(mod);
    FMUSIC_FreeSong(mod);
    FSOUND_Close();
    return 0;
}

Hvis du beslutter dig for at kigge nærmere på OpenGL kan det anbefales at kigge lidt nærmere på disse sider:
http://nehe.gamedev.net/
http://nate.scuzzy.net/

+ du bør kigge nærmere på GLUT api'et.
http://www.xmission.com/~nate/glut.html

Det er et API der er bygget til mindre eksperimenter med grafik. Du slipper for at skulle sætte dig ind i initialiserings kode osv. ved at bruge GLUT. GLUT lægger sig ovenpå OpenGL og er crossplatform. Ulempen ved GLUT er dens alder og manglende opdatering. Men, hvis ikke det er doom4 du vil starte med er GLUT et ganske glimrende valg - så har du fokus på grafik og ikke diverse obskure win32 kommandoer.
Avatar billede anoukim Nybegynder
15. januar 2003 - 22:49 #4
Soreno jeg siger tak for info, og kvitter med point. Jeg havde egentligt gerne set flere indlæg, men synes nu at spørgsmålet har stået åbent længe nok.

Jeg har kort prøvet fmod uden held, før jeg oprettede spørgsmålet. Men vil nok lige prøve igen.

Jeg ved endnu ikke helt om jeg hopper på DirectX eller OpenGL vognen, men linket til Gamedev kan jeg helt sikkert bruge, den side er super.

Jeg har lånt en Visual C++ i et par uger, og jeg tror nok at jeg skifter hertil. Det virker letter når man har det hele samlet i et udviklingsmiljø.
Avatar billede jesper_bn Nybegynder
20. september 2003 - 10:51 #5
i want to try
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester