Hey gamedev
Straight to the point, I'm using rand() to randomise where my enemies spawn each time you play, but for some reason every time I run the game they are always in the same position as they were last time I played. It seems like rand() is using the same seed every time, but I pass time to srand. Any ideas?
CODE! ![]()
Heres the seeding of srand
</p><div>int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLinw, int nShowCmd)</div>
<div>{</div>
<div>srand(time(0));</div>
<div>HWND hWnd;</div>
<div>WNDCLASSEX wc;</div>
<div>RECT client = {5, 30, CAMERASIZE.right, CAMERASIZE.bottom};</div>
<div> </div>
<div>void InitializeD3D(HWND hWnd);</div>
<div>void Pulse();</div>
<div>void KillD3D();</div>
<div> </div>
<div>ZeroMemory(&wc, sizeof(WNDCLASSEX));</div>
<div>wc.cbSize = sizeof WNDCLASSEX;</div>
<div>wc.hbrBackground = (HBRUSH)COLOR_WINDOW;</div>
<div>wc.hCursor = LoadCursor(NULL, IDC_ARROW);</div>
<div>wc.hInstance = hInstance;</div>
<div>wc.lpszClassName = L"WINDOW";</div>
<div>wc.lpfnWndProc = WinProc;</div>
<div>wc.style = CS_VREDRAW | CS_HREDRAW;</div>
<div> </div>
<div>RegisterClassEx(&wc);</div>
<div> </div>
<div>AdjustWindowRectEx(&client, WS_OVERLAPPEDWINDOW, FALSE, NULL);</div>
<div> </div>
<div>hWnd = CreateWindowEx(</div>
<div>NULL, L"WINDOW", L"DEAD ROAD",</div>
<div>WS_OVERLAPPEDWINDOW,</div>
<div>client.left, client.top, client.right, client.bottom,</div>
<div>NULL, NULL, hInstance, NULL);</div>
<div> </div>
<div>ShowWindow(hWnd, nShowCmd);</div>
<div> </div>
<div>MSG msg = {0};</div>
<div>InitializeD3D(hWnd);</div>
<div> </div>
<div>while (true)</div>
<div>{</div>
<div>if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))</div>
<div>{</div>
<div>TranslateMessage(&msg);</div>
<div>DispatchMessage(&msg);</div>
<div> </div>
<div>if (msg.message == WM_QUIT)</div>
<div>break;</div>
<div>}</div>
<div> </div>
<div>GetCursorPos(&mousePosition);</div>
<div>ScreenToClient(hWnd, &mousePosition);</div>
<div>Pulse();</div>
<div>srand(rand());</div>
<div>}</div>
<div> </div>
<div>KillD3D();</div>
<div>return msg.wParam;</div>
<div>}</div>
And here's where I initialize enemy positions, in Zombies constructor
</p><div>Zombie()</div>
<div>{</div>
<div>animBox.left = 0;</div>
<div>animBox.top = 0;</div>
<div>animBox.right = 23;</div>
<div>animBox.bottom = 42;</div>
<div>position = D3DXVECTOR2((rand() % 4000), (rand() % 4000));</div>
<div>health = 100;</div>
<div>isAlive = true;</div>
<div>width = 23;</div>
<div>height = 42;</div>
<div>animX = 0;</div>
<div>animY = 0;</div>
<div>timePassed = 0;</div>
<div>};</div>
Thanks ![]()






