锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久国产精品久久精品国产,国产一区观看,国产在线精品一区二区中文http://m.shnenglu.com/lf426/category/6743.htmlGame Design Using C++ and SDLzh-cnMon, 19 May 2008 13:17:20 GMTMon, 19 May 2008 13:17:20 GMT60MixSoundClasshttp://m.shnenglu.com/lf426/archive/2008/04/20/47642.htmllf426lf426Sat, 19 Apr 2008 17:49:00 GMThttp://m.shnenglu.com/lf426/archive/2008/04/20/47642.htmlhttp://m.shnenglu.com/lf426/comments/47642.htmlhttp://m.shnenglu.com/lf426/archive/2008/04/20/47642.html#Feedback0http://m.shnenglu.com/lf426/comments/commentRss/47642.htmlhttp://m.shnenglu.com/lf426/services/trackbacks/47642.html
//UVi Soft ( 2008 )
//Long Fei ( lf426 ), E-mail: zbln426@163.com
//Laboratory of ZaiBieLiunNian
//http://m.shnenglu.com/lf426/

//FileName: MixSoundClass.hpp

#ifndef MIX_SOUND_CLASS_HPP
#define MIX_SOUND_CLASS_HPP

#include 
<iostream>
#include 
<string>
#include 
"SDL/SDL.h"
#include 
"SDL/SDL_mixer.h"

class BaseMixSound
{
private:
    
static int MixNUM;
protected:
    BaseMixSound();
public:
    
virtual ~BaseMixSound();
};

class EffectSound: public BaseMixSound
{
private:
    Mix_Chunk
* sound;
public:
    EffectSound(
const std::string& sound_fileName);
    
~EffectSound();
    
void play() const;
};

class MusicSound: public BaseMixSound
{
private:
    Mix_Music
* music;
public:
    MusicSound(
const std::string& music_fileName);
    
~MusicSound();
    
void play() const;
    
void stop() const;
};

#endif

//UVi Soft ( 2008 )
//Long Fei ( lf426 ), E-mail: zbln426@163.com
//Laboratory of ZaiBieLiunNian
//http://m.shnenglu.com/lf426/

#include 
"MixSoundClass.hpp"

//*******************************
//class BaseMixSound

int BaseMixSound::MixNUM = 0;

BaseMixSound::BaseMixSound()
{
    
if ( MixNUM == 0 ){
        
if( Mix_OpenAudio( 22050, MIX_DEFAULT_FORMAT, 24096 ) == -1 ){
            std::cerr 
<< "Mix_Open ERROR" << std::endl;
            exit(
-1);
        }
    }
    MixNUM
++;
}

BaseMixSound::
~BaseMixSound()
{
    MixNUM
--;
    
if ( MixNUM == 0 ){
        Mix_CloseAudio();
    }
}

//*******************************



//*******************************
//class EffectSound

EffectSound::EffectSound(
const std::string& sound_fileName)
{
    sound 
= Mix_LoadWAV(sound_fileName.c_str());
    
if ( sound == 0 ){
        std::cerr 
<< sound_fileName << " : load failed!" << std::endl;
    }
}

EffectSound::
~EffectSound()
{
    Mix_FreeChunk(sound);
}

void EffectSound::play() const
{
     
if( Mix_PlayChannel(-1, sound, 0== -1 ){
         std::cerr 
<< "Mix_PlayChannel() ERROR" << std::endl;
     }
}

//*******************************



//*******************************
//class MusicSound

MusicSound::MusicSound(
const std::string& music_fileName)
{
    music 
= Mix_LoadMUS(music_fileName.c_str());
    
if (  music == 0 ){
        std::cerr 
<< music_fileName << " : load failed!" << std::endl;
    }
}

MusicSound::
~MusicSound()
{
    Mix_FreeMusic(music);
}

void MusicSound::play() const
{
    
if( Mix_PlayingMusic() == false ){
        
if( Mix_PlayMusic( music, -1 ) == -1 ){
            std::cerr 
<< "Mix_PlayMusic() ERROR" << std::endl;
        }
    } 
else {
        
if( Mix_PausedMusic() == 1) {
            Mix_ResumeMusic();
        }
        
else {
            Mix_PauseMusic();
        }
    }
}

void MusicSound::stop() const
{
    Mix_HaltMusic();
}

//***************************************

lib: SDL.lib, SDLmain.lib
     SDL_mixer.lib

dll: SDL.dll
     libogg-0.dll, libvorbis-0.dll, libvorbisfile-3.dll, SDL_mixer.dll, smpeg.dll

last update: 2008-04-20

lf426 2008-04-20 01:49 鍙戣〃璇勮
]]>
ButtonClasshttp://m.shnenglu.com/lf426/archive/2008/04/15/47156.htmllf426lf426Tue, 15 Apr 2008 13:29:00 GMThttp://m.shnenglu.com/lf426/archive/2008/04/15/47156.htmlhttp://m.shnenglu.com/lf426/comments/47156.htmlhttp://m.shnenglu.com/lf426/archive/2008/04/15/47156.html#Feedback0http://m.shnenglu.com/lf426/comments/commentRss/47156.htmlhttp://m.shnenglu.com/lf426/services/trackbacks/47156.html闃呰鍏ㄦ枃

lf426 2008-04-15 21:29 鍙戣〃璇勮
]]>
StringDatahttp://m.shnenglu.com/lf426/archive/2008/04/14/47040.htmllf426lf426Mon, 14 Apr 2008 06:11:00 GMThttp://m.shnenglu.com/lf426/archive/2008/04/14/47040.htmlhttp://m.shnenglu.com/lf426/comments/47040.htmlhttp://m.shnenglu.com/lf426/archive/2008/04/14/47040.html#Feedback2http://m.shnenglu.com/lf426/comments/commentRss/47040.htmlhttp://m.shnenglu.com/lf426/services/trackbacks/47040.html#ifndef STRING_DATA_HPP
#define STRING_DATA_HPP

#include 
<clocale>
#include 
<string>
#include 
<vector>
#include 
"GNU/libintl.h"

class StringData
{
private:
    std::vector
<std::string> data;
public:
    StringData(
const std::string& type);
    std::
string operator [](const unsigned int& n) const;
};

#endif
#include "StringData.hpp"

StringData::StringData(
const std::string& type)
{
    setlocale(LC_ALL, 
"");
    bindtextdomain(
"StringData""./po");
    textdomain(
"StringData");

    
if ( type == "type1" ){
        
//0, 
        data.push_back(gettext(" "));
        
//1
        data.push_back(gettext(" "));
        
//
    }
    
else if ( type == "type2" ){
        
//0, other
        data.push_back(gettext(" "));
        
//1
        data.push_back(gettext(" "));
        
//
    }
    
else if ( type == "type3" ){
        
//0
        data.push_back(gettext(" "));
        
//1
        data.push_back(gettext(" "));
        
//
    else {
        
//0
        data.push_back(gettext("NULL"));
    }
}

std::
string StringData::operator [](const unsigned int& n) const
{
    
if ( n >= data.size() )
        
return 0;
    
return data[n];
}

lib: libintl.lib

dll: libiconv2.dll, libintl3.dll

last update: 2008-04-14

lf426 2008-04-14 14:11 鍙戣〃璇勮
]]>
SurfaceClasshttp://m.shnenglu.com/lf426/archive/2008/04/14/47038.htmllf426lf426Mon, 14 Apr 2008 06:03:00 GMThttp://m.shnenglu.com/lf426/archive/2008/04/14/47038.htmlhttp://m.shnenglu.com/lf426/comments/47038.htmlhttp://m.shnenglu.com/lf426/archive/2008/04/14/47038.html#Feedback0http://m.shnenglu.com/lf426/comments/commentRss/47038.htmlhttp://m.shnenglu.com/lf426/services/trackbacks/47038.html闃呰鍏ㄦ枃

lf426 2008-04-14 14:03 鍙戣〃璇勮
]]>
SDL_render_Chinesehttp://m.shnenglu.com/lf426/archive/2008/04/14/47033.htmllf426lf426Mon, 14 Apr 2008 05:24:00 GMThttp://m.shnenglu.com/lf426/archive/2008/04/14/47033.htmlhttp://m.shnenglu.com/lf426/comments/47033.htmlhttp://m.shnenglu.com/lf426/archive/2008/04/14/47033.html#Feedback0http://m.shnenglu.com/lf426/comments/commentRss/47033.htmlhttp://m.shnenglu.com/lf426/services/trackbacks/47033.htmlWindows only. Linux needn't.

//UVi Soft ( 2008 )
//Long Fei ( lf426 ), E-mail: zbln426@163.com
//Laboratory of ZaiBieLiunNian
//http://m.shnenglu.com/lf426/

//FileName: SDL_render_Chinese.h
//For Windows only

#ifndef RENDER_CHINESE_H
#define RENDER_CHINESE_H

#include 
"gb2312_to_Unicode.h"
#include 
"SDL/SDL_ttf.h"

SDL_Surface
* myTTF_RenderString_Blended(TTF_Font* font, const std::string& str, SDL_Color fg);
SDL_Surface
* myTTF_RenderString_Solid(TTF_Font* font, const std::string& str, SDL_Color fg);
SDL_Surface
* myTTF_RenderString_Shaded(TTF_Font* font, const std::string& str, SDL_Color fg, SDL_Color bg);

#endif

//UVi Soft ( 2008 )
//Long Fei ( lf426 ), E-mail: zbln426@163.com
//Laboratory of ZaiBieLiunNian
//http://m.shnenglu.com/lf426/

//FileName: SDL_render_Chinese.cpp
//For Windows only

#include 
"SDL_render_Chinese.h"

SDL_Surface
* myTTF_RenderString_Blended(TTF_Font* font, const std::string& str, SDL_Color fg)
{
    SDL_Surface
* textbuf;
    
//Get Unicode
    std::vector<Uint16> unicodeUnit;
    
if ( getUnicode(str, unicodeUnit) == false )
        
return 0;
    
int arraySize = unicodeUnit.size();
    Uint16
* perOne = new Uint16[arraySize+1];
    
for ( int i = 0; i < arraySize; i++ )
        perOne[i] 
= unicodeUnit[i];
    perOne[arraySize] 
= 0;

    
    
//Render the new text
    textbuf = TTF_RenderUNICODE_Blended(font, perOne, fg);

    
//Free the text buffer and return
    delete [] perOne;
    
return textbuf;
}

SDL_Surface
* myTTF_RenderString_Solid(TTF_Font* font, const std::string& str, SDL_Color fg)
{
    SDL_Surface
* textbuf;
    
//Get Unicode
    std::vector<Uint16> unicodeUnit;
    
if ( getUnicode(str, unicodeUnit) == false )
        
return 0;
    
int arraySize = unicodeUnit.size();
    Uint16
* perOne = new Uint16[arraySize+1];
    
for ( int i = 0; i < arraySize; i++ )
        perOne[i] 
= unicodeUnit[i];
    perOne[arraySize] 
= 0;

    
    
//Render the new text
    textbuf = TTF_RenderUNICODE_Solid(font, perOne, fg);

    
//Free the text buffer and return
    delete [] perOne;
    
return textbuf;
}

SDL_Surface
* myTTF_RenderString_Shaded(TTF_Font* font, const std::string& str, SDL_Color fg, SDL_Color bg)
{
    SDL_Surface
* textbuf;
    
//Get Unicode
    std::vector<Uint16> unicodeUnit;
    
if ( getUnicode(str, unicodeUnit) == false )
        
return 0;
    
int arraySize = unicodeUnit.size();
    Uint16
* perOne = new Uint16[arraySize+1];
    
for ( int i = 0; i < arraySize; i++ )
        perOne[i] 
= unicodeUnit[i];
    perOne[arraySize] 
= 0;

    
    
//Render the new text
    textbuf = TTF_RenderUNICODE_Shaded(font, perOne, fg, bg);

    
//Free the text buffer and return
    delete [] perOne;
    
return textbuf;
}

lib: iconv.lib
     SDL_ttf.lib
     SDL.lib, SDLmain.lib

dll: iconv.dll
     SDL_ttf.dll, libfreetype-6.dll, zlib1.dll
     SDL.dll

last update: 2008-05-12

lf426 2008-04-14 13:24 鍙戣〃璇勮
]]>
gb2312_to_Unicodehttp://m.shnenglu.com/lf426/archive/2008/04/14/47032.htmllf426lf426Mon, 14 Apr 2008 05:23:00 GMThttp://m.shnenglu.com/lf426/archive/2008/04/14/47032.htmlhttp://m.shnenglu.com/lf426/comments/47032.htmlhttp://m.shnenglu.com/lf426/archive/2008/04/14/47032.html#Feedback0http://m.shnenglu.com/lf426/comments/commentRss/47032.htmlhttp://m.shnenglu.com/lf426/services/trackbacks/47032.htmlWindows only. Linux needn't.

//UVi Soft ( 2008 )
//Long Fei ( lf426 ), E-mail: zbln426@163.com
//Laboratory of ZaiBieLiunNian
//http://m.shnenglu.com/lf426/

//FileName: gb2312_to_Unicode.h
//For Windows only


#ifndef GB2312_TO_UNICODE_H_
#define GB2312_TO_UNICODE_H_

#include 
<iostream>
#include 
<vector>
#include 
"GNU/iconv.h"

//if not include "SDL/SDL.h"
#ifndef _SDL_H
typedef unsigned 
short int Uint16;
#endif

bool getUnicode(const std::string& str, std::vector<Uint16>& unicodeVectorArray);

#endif

//UVi Soft ( 2008 )
//Long Fei ( lf426 ), E-mail: zbln426@163.com
//Laboratory of ZaiBieLiunNian
//http://m.shnenglu.com/lf426/

//FileName: gb2312_to_Unicode.cpp
//For Windows only

#include 
"gb2312_to_Unicode.h"

int myUTF8_to_UNICODE(Uint16* unicode, unsigned char* utf8, int len);

bool getUnicode(const std::string& str, std::vector<Uint16>& unicodeVectorArray)
{
    
const int CHAR_SIZE = 256;
    
//GB2312 src
    const unsigned char* src = (const unsigned char*)(str.c_str());
    size_t src_len 
= strlen((char*)src);
    
//Unicode dst to get
    unsigned char dst[CHAR_SIZE] = {0};
    size_t dst_len 
= sizeof(dst);
    
//iconv arg
    const unsigned char* in = src;
    unsigned 
char* out = dst;

    iconv_t cd;
    
//GB2312 to UTF-8
    cd = iconv_open("UTF-8""GB2312");
    
if ((iconv_t)-1 == cd){
        
return false;
    }
    
//conversion
    iconv(cd, (const char**)&in&src_len, (char**)&out&dst_len);

    
//UTF-8 to Unicode
    int utf8Len = strlen((char*)dst);
    Uint16 unicodeData[CHAR_SIZE] 
= {0};
    
int unicodeLen = myUTF8_to_UNICODE(unicodeData, dst, utf8Len);
    
for (int i = 0; i < unicodeLen; i++) {
        unicodeVectorArray.push_back(unicodeData[i]);
    }
    
    iconv_close(cd); 
    
return true;
}

int myUTF8_to_UNICODE(Uint16* unicode, unsigned char* utf8, int len)
{
    
int length;
    unsigned 
char* t = utf8;

    length 
= 0;
    
while (utf8 - t < len){
        
//one byte.ASCII as a, b, c, 1, 2, 3 ect
        if ( *(unsigned char *) utf8 <= 0x7f ) {
            
//expand with 0s.
            *unicode++ = *utf8++;
        }
        
//2 byte.
        else if ( *(unsigned char *) utf8 <= 0xdf ) {
            
*unicode++ = ((*(unsigned char *) utf8 & 0x1f<< 6+ ((*(unsigned char *) (utf8 + 1)) & 0x3f);
            utf8 
+= 2;
        }
        
//3 byte.Chinese may use 3 byte.
        else {
            
*unicode++ = ((int) (*(unsigned char *) utf8 & 0x0f<< 12+
                ((
*(unsigned char *) (utf8 + 1& 0x3f<< 6+
                (
*(unsigned char *) (utf8 + 2& 0x3f);
            utf8 
+= 3;
        }
        length
++;
    }

    
*unicode = 0;
    
    
return (length);
}

lib: iconv.lib
dll: iconv.dll

last update: 2008-05-12

lf426 2008-04-14 13:23 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美精品一区三区| 欧美成人精品福利| 91久久久亚洲精品| 最新国产成人在线观看 | 国产真实久久| 狠狠狠色丁香婷婷综合激情| 永久免费毛片在线播放不卡| 91久久久一线二线三线品牌| 日韩午夜黄色| 午夜精品一区二区三区四区| 久久精品av麻豆的观看方式| 亚洲第一成人在线| 在线亚洲+欧美+日本专区| 午夜久久久久久| 久久综合一区| 国产精品久久九九| 亚洲人成精品久久久久| 欧美在线观看网站| 亚洲毛片网站| 老牛影视一区二区三区| 国产精品乱子久久久久| 亚洲高清影视| 欧美在线播放视频| 日韩午夜电影在线观看| 老色鬼精品视频在线观看播放| 欧美激情一区二区三区全黄| 中文在线不卡视频| 午夜精品美女久久久久av福利| 美女视频黄免费的久久| 一级日韩一区在线观看| 免费永久网站黄欧美| 国产欧美一区视频| 亚洲一级黄色av| 91久久久亚洲精品| 久久精品首页| 国产麻豆综合| 亚洲欧美日韩中文播放| 亚洲人妖在线| 欧美第一黄色网| 亚洲国产精品va在线观看黑人| 久久av红桃一区二区小说| 夜夜嗨一区二区| 欧美黄色影院| 日韩视频免费观看高清在线视频 | 亚洲伊人网站| 日韩午夜av电影| 欧美理论电影网| 亚洲精品综合| 亚洲高清在线精品| 欧美成人a视频| 91久久夜色精品国产九色| 噜噜噜在线观看免费视频日韩| 羞羞答答国产精品www一本| 国产精品久久久久久久久久妞妞 | 亚洲免费视频成人| 一区二区三区欧美视频| 国产精品久久久久秋霞鲁丝| 亚洲免费在线视频一区 二区| 亚洲精品欧洲| 欧美视频四区| 久久精品成人一区二区三区蜜臀| 亚洲性夜色噜噜噜7777| 国产精品亚洲一区二区三区在线| 亚洲欧洲av一区二区| 亚洲欧美日韩久久精品| 国产欧美精品xxxx另类| 久久久久久久波多野高潮日日 | 亚洲美女黄色| 欧美视频免费在线| 欧美影院在线| 久久青青草综合| 亚洲精品一区二区在线观看| 亚洲欧洲日产国产网站| 欧美性一二三区| 久久国产黑丝| 你懂的国产精品永久在线| 欧美在线在线| 亚洲电影免费观看高清完整版在线观看| 久久嫩草精品久久久久| 日韩午夜在线电影| 99国产精品视频免费观看一公开| 欧美性理论片在线观看片免费| 亚洲综合国产精品| 久久久精品久久久久| 99riav国产精品| 午夜国产欧美理论在线播放 | 欧美精品一区二区三区蜜桃| 一区二区三区日韩| 欧美在线不卡视频| 日韩视频在线一区二区| 亚洲女人小视频在线观看| 亚洲成人资源| 亚洲视频1区2区| 亚洲国产91色在线| 亚洲影院在线| 亚洲看片网站| 久久精品国产99| 亚洲图片自拍偷拍| 久久在线观看视频| 性欧美超级视频| 欧美高清视频一区二区| 久久欧美肥婆一二区| 国产精品乱码妇女bbbb| 亚洲国产日日夜夜| 在线精品国产欧美| 性亚洲最疯狂xxxx高清| 99精品国产热久久91蜜凸| 欧美综合第一页| 午夜精品福利一区二区蜜股av| 免费在线视频一区| 另类人畜视频在线| 国产亚洲成av人片在线观看桃| 亚洲美女福利视频网站| 亚洲精品欧美一区二区三区| 久久噜噜噜精品国产亚洲综合| 亚洲男人的天堂在线aⅴ视频| 欧美高清hd18日本| 欧美激情精品久久久六区热门| 国产视频一区在线观看一区免费 | 久久综合久久综合久久综合| 久久国产欧美日韩精品| 国产精品久久久久9999高清| 亚洲精品久久久久中文字幕欢迎你| 樱花yy私人影院亚洲| 欧美一区二区三区免费观看视频| 亚洲一区免费观看| 欧美日韩一区二区精品| 亚洲精品久久久久| 一二三区精品| 欧美手机在线| 亚洲午夜电影| 亚洲欧洲av一区二区| 国产精品久久久久久av福利软件 | 亚洲大胆美女视频| 亚洲国产精品成人精品| 另类欧美日韩国产在线| 久久久精品视频成人| 激情一区二区三区| 中文国产一区| 亚洲免费视频网站| 国产农村妇女精品一二区| 午夜精品久久久久久99热| 久久福利影视| 精品盗摄一区二区三区| 久久中文字幕一区| 亚洲国产成人久久综合| 亚洲美女福利视频网站| 欧美日韩成人在线观看| 亚洲午夜精品国产| 久久精品网址| 亚洲精品视频免费观看| 国产精品成人一区二区三区夜夜夜 | 久久精品一二三区| 在线看片成人| 欧美日韩国产美| 亚洲一区二区三区高清不卡| 久久xxxx| 悠悠资源网亚洲青| 欧美精品久久99久久在免费线| 亚洲深夜福利视频| 欧美成人一区二区三区在线观看 | 一本久久综合亚洲鲁鲁五月天| 亚洲免费视频在线观看| 黑人巨大精品欧美一区二区 | 国产精品亚洲人在线观看| 久久av资源网| 亚洲精品美女在线| 欧美在线亚洲在线| 亚洲精品一品区二品区三品区| 国产精品欧美日韩| 欧美高清视频免费观看| 亚洲欧美中文另类| 最新国产成人av网站网址麻豆| 欧美专区在线观看一区| 日韩手机在线导航| 国内精品久久久久伊人av| 欧美成人午夜免费视在线看片| 亚洲综合成人婷婷小说| 亚洲国产精品成人综合| 久久久精品999| 亚洲欧美激情一区| 亚洲欧洲日产国产综合网| 国产日本欧美一区二区| 欧美日韩精品三区| 老司机67194精品线观看| 亚洲欧美精品伊人久久| 日韩视频―中文字幕| 欧美大胆人体视频| 久久成人综合视频| 亚洲主播在线播放| 99ri日韩精品视频| 91久久在线视频| 在线国产日韩| 尤物在线精品| 国产综合久久| 国产一区二区三区网站| 国产精品一区久久久| 国产精品成人aaaaa网站| 久久久久久久久伊人| 欧美日韩免费观看一区二区三区|