我可以在这个程序中放入sound_main()函数吗?

时间:2018-02-25 16:52:31

标签: c

我制作经典的基于文本的冒险。现在似乎运作良好。我的问题(和问题)是放置sound_main()函数的地方。我试着把它放到任何地方,但是根据我把它放在哪里,我会遇到一些麻烦,因为这首歌立即开始,可以插入输入。我希望音乐与游戏同时播放,不受阻碍。这是代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#include "mmsystem.h"
#define MAX_LEN 128


void magenta(){
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    int f;
    SetConsoleTextAttribute(hConsole, f=11);
} 

void red(){
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    int k;
    SetConsoleTextAttribute(hConsole, k=12);
} 

void white(){
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    int l;
    SetConsoleTextAttribute(hConsole, l=15);
}    

void green(){
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    int a;
    SetConsoleTextAttribute(hConsole, a=10);
} 

void submenu2(void);
void print_image(FILE *fptr);
void menu();
void main_menu();

int image(){

    char *filename = "kilroy.txt";
    FILE *fptr = NULL;

    white(); 
    printf("\t\tGAME:TITLE\n");
    magenta(); 

    if((fptr = fopen(filename,"r")) == NULL)
    {
        fprintf(stderr,"error opening %s\n",filename);
        return 1;
    }

    print_image(fptr);
}

void main_menu(){
    image();
    red();
    printf("\n\t\t\tSoftware version 1.0 Beta");
    green();
    printf("\t\t\t                                         All rights reserved 2018\n\n");

    white();
    printf("[1] Play\n");
    printf("[2] Credits\n");
    printf("[3] Exit\n>>");
}


void submenu2(void){
    for(;;){
            char choice1;
            system("cls");
            printf("Written by Frank & Alex\nIDE: Bloodshed Dev-C++\nProgrammed in C\nFebruary 2018\n");
            printf("Press b key to come back to menu...\n>>");
            scanf("%c",&choice1);

            if(choice1 == 'b'){
            system("cls");
            main_menu();
            break;} // come back to mainmenu
            else 
                printf("wrong input. try again.");
    }
}


void menu(){
    int choice,i=1;
    main_menu();

    while(i){
    scanf("%d",&choice);

    switch(choice){
        case 1:
            break;

        case 2:
            submenu2();
            break;

        case 3:
            system("cls");
            green(); printf("\n\t\t\t\t\t           ***************************************\n       ");
            red();printf("\n\t\t\t\t\t           ***********Thanks for playing**********\n");
            white();printf("\n\t\t\t\t\t           ***************************************\n       ");
            i = 0; /* loop exit */
            break;

            default:
            printf("\nInvalid choice!\n>>");
            break;

     }
  }
}

int main(void)
{    
   menu();
}


void print_image(FILE *fptr)
{
    char read_string[MAX_LEN];

    while(fgets(read_string,sizeof(read_string),fptr) != NULL)
        printf("%s\t\t\t\t",read_string);
}


int sound_main()
{
    PlaySound(TEXT("Battle.wav"), NULL, SND_SYNC);
    return 0;
}

0 个答案:

没有答案