Chat Box

User Yang Sedang Online
Total 1 user online :: 0 Terdaftar, 0 Tersembunyi dan 1 Tamu

Tidak ada

[ View the whole list ]


User online terbanyak adalah 24 pada Mon Oct 04, 2010 10:03 am
Total Pengunjung
Website counter
Visitor

Sound di Ogre

Topik sebelumnya Topik selanjutnya Go down

default Sound di Ogre

Post by risdo on Tue May 04, 2010 1:40 pm

bro gw dpt code tuk mengeluarkan suara di ogre.. pake ini aja


#include "stdafx.h"
#include "OgreFrameListener.h"
#include "OgreEventListeners.h"
#include "OgreKeyEvent.h"
#include "SoundManager.h"


#if _DEBUG
#pragma comment(lib, "OgreMain_d.lib")
#else
#pragma comment(lib, "OgreMain.lib")
#endif

#pragma comment(lib, "C:/Program Files/FMOD SoundSystem/FMOD Programmers API/api/lib/fmodex_vc.lib")


using namespace Ogre;


// Bad form to use these globals, but this is just a sample app.
SoundManager * soundMgr;
SceneNode * cameraNode;
SceneNode * ff06Node;
int gunSoundIndex;
int gunSoundChannel;


const int flightRadius = 200.0; // radius of the circle the plane flies in
const float flightSpeed = 1.0; // multiplier for the plane speed
const float fireGunInterval = 3.0; // how often to fire the guns



// Move the plane in a circle around the camera.
void MoveFF06(SceneNode *sceneNode, Real timeElapsed)
{
Vector3 newPostion;
static Real currentRadians = 3.1;

currentRadians += timeElapsed * flightSpeed;
if (currentRadians >= 6.2832)
currentRadians = 0;

newPostion.x = -((float)cos(currentRadians) * flightRadius);
newPostion.z = ((float)sin(currentRadians) * flightRadius);
newPostion.y = 150.0;
sceneNode->setPosition(newPostion);
}




class CSimpleFrameListener : public FrameListener
{
public:
CSimpleFrameListener(InputReader* inputReader)
{
m_InputReader = inputReader;
}

bool frameStarted(const FrameEvent& evt)
{
static float timeToFireGuns = 0;

m_InputReader->capture();

// exit application if ESC key pressed
if (m_InputReader->isKeyDown(KC_ESCAPE))
return false;

// Move the plane in a circle around our camera.
MoveFF06(ff06Node, evt.timeSinceLastFrame);

if (timeToFireGuns <= 0)
{
// Fire the guns! (just plays sound, no visuals in this demo)
soundMgr->PlaySound(gunSoundIndex, ff06Node, &gunSoundChannel);
// Allow the plane's gunfire to be heard farther away than normal sounds.
soundMgr->Set3DMinMaxDistance(gunSoundChannel, 100.0, 500.0);
timeToFireGuns = fireGunInterval;
}
else
{
timeToFireGuns -= evt.timeSinceLastFrame;
}

// Allow SoundManager to update sound positions, velocities
soundMgr->FrameStarted(cameraNode, evt.timeSinceLastFrame);

return true;
}

bool frameEnded(const FrameEvent& evt)
{
return true;
}

private:
InputReader* m_InputReader;
};




class CSimpleKeyListener : public KeyListener
{
public:
void keyClicked(KeyEvent* e)
{
}

void keyPressed(KeyEvent* e)
{
}

void keyReleased(KeyEvent* e)
{
}
};




#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include "windows.h"
INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)
#else
int main(int argc, char **argv)
#endif
{
int ff06SoundIndex;
int ff06SoundChannel;
Entity * ent;
Root * root;

root = new Root;
if (!root->showConfigDialog())
return false; // Exit the application on cancel
root->initialise(true, "FMOD SoundManager Sample App");

ConfigFile cf;
cf.load("resources.cfg");

// Go through all sections & settings in the file
ConfigFile::SectionIterator seci = cf.getSectionIterator();

String secName, typeName, archName;
while (seci.hasMoreElements())
{
secName = seci.peekNextKey();
ConfigFile::SettingsMultiMap *settings = seci.getNext();
ConfigFile::SettingsMultiMap::iterator i;
for (i = settings->begin(); i != settings->end(); ++i)
{
typeName = i->first;
archName = i->second;
ResourceGroupManager::getSingleton().addResourceLocation(archName, typeName, secName);
}
}

ResourceGroupManager::getSingleton().initialiseAllResourceGroups();

SceneManager* sceneMgr = root->getSceneManager(ST_GENERIC);
sceneMgr->setAmbientLight(ColourValue(1, 1, 1));

Camera* camera = sceneMgr->createCamera("SimpleCamera");
camera->setPosition(Vector3(0.0f, 0.0f, 0.0f));
camera->lookAt(Vector3(50.0f, 50.0f, 0.0f));
camera->setNearClipDistance(2.0f);
camera->setFarClipDistance(5000.0f);
cameraNode = sceneMgr->getRootSceneNode()->createChildSceneNode("CameraNode", Vector3(0.0f, 0.0f, 0.0f));
cameraNode->attachObject(camera);

Viewport* viewPort = root->getAutoCreatedWindow()->addViewport(camera);
viewPort->setBackgroundColour(ColourValue(0.4f, 0.45f, 0.93f));

EventProcessor* eventProcessor = new EventProcessor();
eventProcessor->initialise(root->getAutoCreatedWindow());
eventProcessor->startProcessingEvents();

CSimpleKeyListener* keyListener = new CSimpleKeyListener();
eventProcessor->addKeyListener(keyListener);
CSimpleFrameListener* frameListener = new CSimpleFrameListener(eventProcessor->getInputReader());
root->addFrameListener(frameListener);

soundMgr = new SoundManager;
soundMgr->Initialize();

// Create a 3D, looped sound for the plane's engine noise
ff06SoundIndex = soundMgr->CreateLoopedSound(Ogre::String("Sound050.ogg"));
// or you can use the generic CreateSound, specifying the sound type directly:
// ff06SoundIndex = soundMgr->CreateSound(Ogre::String("Sound050.ogg"), SOUND_TYPE_3D_SOUND_LOOPED);
ff06SoundChannel = INVALID_SOUND_CHANNEL;

// Create a 3D, single-shot sound for the plane's gunfire noise
gunSoundIndex = soundMgr->CreateSound(Ogre::String("Sound035.ogg"));
gunSoundChannel = INVALID_SOUND_CHANNEL;

ent = sceneMgr->createEntity("FF06", "FF06.mesh");
ff06Node = sceneMgr->getRootSceneNode()->createChildSceneNode("FF06Node", Vector3(0.0f, 0.0f, 0.0f));
ff06Node->attachObject(ent);
ff06Node->setScale(1.0f, 1.0f, 1.0f);

// Start playing the plane's engine noise
soundMgr->PlaySound(ff06SoundIndex, ff06Node, &ff06SoundChannel);
// Allow the plane's engine to be heard farther away than normal sounds.
soundMgr->Set3DMinMaxDistance(ff06SoundChannel, 100.0, 500.0);

// blocks until a frame listener returns false. eg from pressing escape in this example
root->startRendering();

delete soundMgr;
delete frameListener;
delete keyListener;
delete eventProcessor;
delete root;
return 0;




sumber : http://www.ogre3d.org/wiki/index.php/File_SoundMgrSample.cpp
}
avatar
risdo
Admin
Admin

Posts : 209
Reputasi : 377
Cendol : 1
Join date : 26.10.09
Location : Bekasi

Lihat profil user http://c0b4d1b4c4.indonesianforum.net

Kembali Ke Atas Go down

Topik sebelumnya Topik selanjutnya Kembali Ke Atas

- Similar topics

 
Permissions in this forum:
Anda tidak dapat menjawab topik