Форум программистов, компьютерный форум CyberForum.ru

playsound(), как сделать фоновую музыку в игре - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ нужно составить программы к данным заданиям! http://www.cyberforum.ru/cpp-beginners/thread233171.html
1.Написать программу вычисления суммы кубов чисел от 25 до 55. 2.Написать программу поиска среди двузначных чисел таких, сумма квадратов цифр которых делится на 13. 3.Даны натуральное число n, действительное число а. Выдать на экран последовательность чисел: а, а+1, а+2, а+3, ... , а+n. 4.Дано натуральное число n и действительное число х. Вычислить sin(x) + sin2(x) + ... + sinn(x).
C++ Применение Динамического выделения памяти Надо решить задачу написав функцию. Нужно выделить память использую malloc. Помогите Плиз..! Заранее Спасибо)) Дана матрица размера M × N. Для каждой строки матрицы с нечет-ным номером (1, 3, …) найти среднее арифметическое ее элементов. Ус-ловный оператор не использовать. http://www.cyberforum.ru/cpp-beginners/thread233167.html
Реализация функции srcat. C++
Я написал (реализовал) функцию strcat. Вот ... #include "stdafx.h" #include <iostream> #include <iomanip> using namespace std; int _tmain(int argc, _TCHAR* argv) {
C++ Поменять местами первый и последний элементы списка и удалить их средне арифметическое
Помогите решить задачи пожалуйста!!! 1)Дан список, содержащие числовые данные. Поменять местами первый и последний элементы и удалить из списка их средне арифметическое (если такой элемент есть в списке) 2) Сформировать матрицу В(m, n), элементами которой являются случайные числа, равномерно распределенные в интервале . Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент...
C++ Массивы http://www.cyberforum.ru/cpp-beginners/thread233149.html
Привет! Помогите, плиз решить, я в этом почти не шарю,: В одномерном массиве из 25 вещественных чисел вычислить среднее арифметическое положительных чисел. Преобразовать исходный массив, вычитая из каждого элемента среднее значение. Мне нужна ток блок схема!))
C++ Дан текстовый файл с фамилиями жильцов дома Дан текстовый файл с фамилиями жильцов дома. Вывести на экран 1) фамилии, которые не повторяются 2) фамилии и число их повторений. Учитывать, что одинаковые фамилии могут принадлежать мужчинам и женщинам (например Сидоров - Сидорова, Соколовский - Соколовская на си!)помогите подробнее

Показать сообщение отдельно
ser4ega
27 / 27 / 3
Регистрация: 15.11.2009
Сообщений: 143

playsound(), как сделать фоновую музыку в игре - C++

24.01.2011, 00:07. Просмотров 1880. Ответов 2
Метки (Все метки)

Есть игра. Есть звуки с использованием Beep()/ Нужна фоновая музыка. Читал что нашел - предлагают создать параллельный поток. Для меня это сложно. Объясните пожалуйста или предложите другой вариант.

Добавлено через 39 минут
Помогите!!

Добавлено через 11 минут
вот такая вот игра
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#include <iostream.h>
#include <conio.h>
#include <windows.h>
#include <fstream.h>
#define n 15
#define m 30
//#include <stdlib.h>
 
void showscore(int l,char nickname[15])
{
fstream inFile;
inFile.open("C://file.txt");
if(!inFile) {cerr << "\nCouldn't open file, Try again"; return;}
char next;
typedef char stri[25];
stri MasString[4];char temp[25]="";
int i=0;cout<<endl;
cin.get();
while(true){
              inFile.getline(MasString[i],20); 
              next=inFile.peek();
              if (next==EOF) break;
              i++;             
              }
struct BestScores{char mesto[20]; char nick[20];char score[20];} bsc[3];
 
for (int j=0;j<3;j++) 
              {      
              sscanf(MasString[j+1], "%s%s%s", bsc[j].mesto, bsc[j].nick, bsc[j].score);
              if (l>atoi(bsc[j].score))
                 {
                 for(int k=3;k>j+1;k--)
                         {
                         strcpy(temp,MasString[k-1]);
                         temp[0]=(char)(48+k);
                         strcpy(MasString[k],temp);}
                 sprintf(bsc[j].score,"%d",l);
                 strcpy(MasString[j+1],bsc[j].mesto);
                 strcat(MasString[j+1]," ");
                 strcat(MasString[j+1],nickname);
                 strcat(MasString[j+1], " ");
                 strcat(MasString[j+1],bsc[j].score);
                 l=0;
                 }
              }
              fstream datei;
              datei.open("C://file.txt");  
for(int j=0;j<4;j++){cout<<MasString[j]<<endl;datei<<MasString[j]<<endl;}datei.close();
inFile.close();
return ;
};
void gameover(int sco,char nick[15])
{
     system("cls");
     cout<<"GAMEOVER your score "<<sco;showscore(sco,nick);Sleep(2000);system("PAUSE");
     return;
    
};
void Win(int sco,char nick[15],int l)
{cout<<"You WIN!!! your score "<<l*10;showscore(sco,nick); system("PAUSE"); return ;};
void Painting(COORD c,HANDLE h,int *arr[], int *TTL[])
{
   for(int i=0;i<n;i++)
    {
            for(int j=0;j<m;j++)
            {
                    c.X = j;
                    c.Y = i;
                    SetConsoleCursorPosition(h, c);
                    switch (arr[i][j])
                    {
                    case 0:{if(TTL[i][j]>0){TTL[i][j]--;if(TTL[i][j]>0){cout<<"o";}else cout<<" ";break;}break;  }
                    case 1:cout<<(char)4;break;
                    case 2:if(TTL[i][j]>0) TTL[i][j]=0;cout<<"$";break;
                    }
            }
    cout<<endl;
   }
};
void CreateDollar(int *arr[],int *TTL[],int *r1, int *r2)
{
     while((arr[*r1=rand()%(n-1)][*r2=rand()%(m-1)]==1)||(TTL[*r1][*r2])||(arr[*r1][*r2]==3)){;}
     arr[*r1][*r2]=2;
};
void CreateFirstTime(int *arr[],int *TTL[])
{
 for(int i=0;i<n;i++)//zapolnenie massiva i pervi4naya otrisovka
    {
            for(int j=0;j<m;j++)
            {
                    if ((i==n-1)||(i==0)||(j==0)||(j==m-1)) {arr[i][j]=3;cout<<(char)254;TTL[i][j]=-1;} else{
                    arr[i][j]=0;TTL[i][j]=0;cout<<" ";}
            }
            cout<<endl;
    }     
};
void CheckFileScore()
{
fstream ds;
ds.open("C://file.txt");
if(!ds) {
        ds.close();ofstream cr; cr.open("C://file.txt"); 
        cr<<"Best scores:\n1) wasya 2520\n2) ser4ega 120\n3) ser4egaDrunk 110";
        cr.close();
        }
ds.close();
};
void Melody(){Beep (659.26,200);
          Beep (659.26,200);
          Sleep (200);
          Beep (659.26,200);
          Sleep (100);
          Beep (523.26,200);
          Beep (659.26,200);
          Sleep(200);
          Beep (783.98,200);
          Sleep(400);
          Beep (391.99,200);};
 
//INT MAIN INT MAIN INT MAIN INT MAININT MAIN INT MAIN INT MAIN INT MAININT MAIN INT MAIN INT MAIN INT MAIN
 
int main()
{
COORD c;
HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
    CheckFileScore();
    srand(time(0));
    int ii=1,ij=1,r1,r2,l=0,sl=250,sco=0,k=0;
    bool music=true;
    char g,oldg='d',nick[15];cout<<"Enter your name\n";cin>>nick; 
    int **arr=new int*[n],**TTL=new int*[n];
    for (int i=0;i<n;i++) {arr[i]=new int[m];TTL[i]=new int[m];}//arr[n][m] arr[i][j]
cout<<"Be careful when you eat, try to do eat from up or from left, else";
cout<<"  you can lose =) Now Put on 'd' or 's' or die immediatly *EVIL*";
g=(char)getch();
system("cls");
CreateFirstTime(arr,TTL);
CreateDollar(arr,TTL,&r1,&r2);
arr[1][1]=1;
while(true){          
if(kbhit() ) g=(char)getch();
    switch(g){
              case('d'):oldg=g;if((TTL[ii][ij+1]==0)){arr[ii][ij]=0;ij++;}else {gameover(sco,nick);return 0;}break;
              case('D'):oldg=g;if((TTL[ii][ij+1]==0)){arr[ii][ij]=0;ij++;}else {gameover(sco,nick);return 0;}break;
              case('a'):oldg=g;if((TTL[ii][ij-1]==0)){arr[ii][ij]=0;ij--;}else {gameover(sco,nick);return 0;}break;
              case('A'):oldg=g;if((TTL[ii][ij-1]==0)){arr[ii][ij]=0;ij--;}else {gameover(sco,nick);return 0;}break;
              case('w'):oldg=g;if((TTL[ii-1][ij]==0)){arr[ii][ij]=0;ii--;}else {gameover(sco,nick);return 0;}break;
              case('W'):oldg=g;if((TTL[ii-1][ij]==0)){arr[ii][ij]=0;ii--;}else {gameover(sco,nick);return 0;}break;
              case('s'):oldg=g;if((TTL[ii+1][ij]==0)){arr[ii][ij]=0;ii++;}else {gameover(sco,nick);return 0;}break;
              case('S'):oldg=g;if((TTL[ii+1][ij]==0)){arr[ii][ij]=0;ii++;}else {gameover(sco,nick);return 0;}break;
              case('M'):music=!music;g=oldg;continue; break;
              case('m'):music=!music;g=oldg;continue;break;
              case('p'): while(!kbhit()) Sleep(100);
              case('P'): while(!kbhit()) Sleep(100);
              default:g=oldg;continue;break;
              }      
              if(music)Beep(100,10);
    arr[ii][ij]=1;TTL[ii][ij]=l+1;
    if (arr[r1][r2]==1){if(music)Beep (200,20);l++;sco+=10*(k+1);CreateDollar(arr,TTL,&r1,&r2);}
    Painting(c,h,arr,TTL);
    cout<<"Score "<<sco;
    if (l==10){if(music)Melody();k++;l=0;sl-=30;if (sl<40) Win(sco,nick,l);}
    cout<<endl<<"Level "<<k+1; 
    cout<<endl<<"Use WASD to move, collect the money, become faster, \nwrite down your name in history!!!";
    cout<<"\n\n\tTo turn Off/On the music press M";
    cout<<"\n\n\tTo pause press P, to play press ANYKEY";
    if(k<5){ if(kbhit()) Sleep(sl-120);else Sleep(sl);} else Sleep(sl);
}
    system("PAUSE");
}
Добавлено через 1 час 27 минут
ну че там, може посоветуете ченить?)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru