int SRand(int seed) { switch(dxpGeneralData.randmode) { case DXP_RANDMODE_MT: if(!dxpGeneralData.mt19937context) { ChangeRandMode(DXP_RANDMODE_MT); return SRand(seed); } sceKernelUtilsMt19937Init(dxpGeneralData.mt19937context,(u32)seed); return 0; case DXP_RANDMODE_HW: __asm__ volatile ( "mtv %0, S000\n" "vrnds.s S000 \n" :: "r"(seed) ); return 0; default: ChangeRandMode(DXP_RANDMODE_MT); return SRand(seed); } }
int Load_Title_Rand(){//乱数でタイトル背景を起動するたびに変える SRand(GetRand(100));//乱数シードを変える int BG = GetRand(3);//乱数で背景を決める int BG_jpg;//画像ハンドル保存用の変数 switch (BG + 1){//乱数の値によって分岐 case 1: BG_jpg = LoadGraph("Pics/BG_Title_01.jpg"); break; case 2: BG_jpg = LoadGraph("Pics/BG_Title_02.jpg"); break; case 3: BG_jpg = LoadGraph("Pics/BG_Title_03.jpg"); break; case 4: BG_jpg = LoadGraph("Pics/BG_Title_04.jpg"); break; default://1~4以外が出た場合1の画像(保険) BG_jpg = LoadGraph("Pics/BG_Title_01.jpg"); break; } return BG_jpg; }
int DxLib_Init() { if(dxpGeneralData.initialized)return 0; if(dxpMutexInit() < 0)return -1; if(dxpMemoryInit() < 0)return -1; if(!dxpGeneralData.homebutton_callback_initialized) { dxpGeneralData.homebutton_callback_threadid = SetExitCallback(); dxpGeneralData.homebutton_callback_initialized = 1; } dxpInputInit(); if(dxpFileioInit() < 0)return -1; if(dxpGraphicsInit() < 0)return -1; if(dxpSoundInit() < 0)return -1; SRand(time(NULL)); dxpGeneralData.initialized = 1; return 0; /* err: return -1; */ }
void CompleteBoxPruningTest::Init() { m_firstTime = true; SRand(0); mBoxes = new AABB[mNbBoxes]; mBoxPtrs = new const AABB*[mNbBoxes]; mBoxTime = new float[mNbBoxes]; for(udword i=0; i<mNbBoxes; i++) { Point Center, Extents; Center.x = (UnitRandomFloat()-0.5f) * 100.0f; Center.y = (UnitRandomFloat()-0.5f) * 10.0f; Center.z = (UnitRandomFloat()-0.5f) * 100.0f; Extents.x = 2.0f + UnitRandomFloat() * 2.0f; Extents.y = 2.0f + UnitRandomFloat() * 2.0f; Extents.z = 2.0f + UnitRandomFloat() * 2.0f; mBoxes[i].SetCenterExtents(Center, Extents); mBoxPtrs[i] = &mBoxes[i]; mBoxTime[i] = 2000.0f*UnitRandomFloat(); } }
// always produces the same pseudo-random sequence NoiseSource::NoiseSource(const unsigned int InputSize) { int i; NoiseArray = new int[InputSize]; ArraySize = InputSize; SRand(2542); for(i=0; i < ArraySize; i++) NoiseArray[i] = i; for(i=0; i < 20; i++) RandomizeArray(); }
int main(int argc, char **argv) { #ifdef DXPORTLIB SetUseCharSet(DX_CHARSET_EXT_UTF8); #endif SetWindowText(_T("DxPortLib Test App")); SetWindowSizeChangeEnableFlag(TRUE); SetGraphMode(640, 480, 32); ChangeWindowMode(TRUE); if (DxLib_Init() == -1) { return -1; } SRand(0); InitBounceThings(); int isWindowed = TRUE; int wasPressed = 0; int timerDelta = 0; int timeLast = GetNowCount(); int screenshotWasPressed = 0; int drawScreen = MakeScreen(640, 480, FALSE); while (ProcessMessage() == 0 #ifndef DX_NON_INPUT && CheckHitKey(KEY_INPUT_ESCAPE) == 0 #endif ) { /* If Alt+Enter is pressed, flip to fullscreen mode. */ if (CheckHitKey(KEY_INPUT_RETURN) && (CheckHitKey(KEY_INPUT_LALT) || CheckHitKey(KEY_INPUT_RALT)) ) { if (wasPressed == 0) { isWindowed = 1 - isWindowed; ChangeWindowMode(isWindowed); } wasPressed = 1; } else { wasPressed = 0; } /* Game logic here */ MoveBounceThings(); /* Draw logic here */ SetDrawScreen(drawScreen); SetDrawBright(255, 255, 255); SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 255); DrawFillBox(0, 0, 640, 480, 0xFF000000); DrawLineBox(10, 10, 630, 470, 0xFFFFFFFF); SetDrawBlendMode(DX_BLENDMODE_ALPHA, 128); DrawFillBox(20, 20, 620, 460, GetColor(0x90, 0x80, 0x70)); DrawBounceThings(); if (CheckHitKey(KEY_INPUT_S)) { if (screenshotWasPressed == 0) { SaveDrawScreenToPNG(0, 0, 640, 480, _T("test_draw_screenshot.png")); screenshotWasPressed = 1; } } else { screenshotWasPressed = 0; } SetDrawScreen(DX_SCREEN_BACK); DrawGraph(0, 0, drawScreen, FALSE); ScreenFlip(); /* Time to next frame automatically... */ int newTime = GetNowCount(); timerDelta += newTime - timeLast; timeLast = newTime; int n = timerDelta; if (n > 16) { n = 16; } timerDelta -= n; WaitTimer(16 - n); } DxLib_End(); return 0; }