Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Имитация водной поверхности.
Небольшой код для C++ и Xors3D, с вращающимся тором и перемещением камеры. Для Code::Blocks 10.05

#include <iostream>
#include "xors3d.h"
//#include <string>
#include <cmath>
using namespace std;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
xAppTitle( "Basic start" );
xGraphics3D( 640,480,false,false,true );
void Control(double speed, double mousesensitivity, Handle Camera, Handle Pivot);
Handle Cube = xCreateTorus(16,4,1);
Handle Pivot = xCreatePivot();
Handle Camera = xCreateCamera(Pivot);
Handle Light = xCreateLight(LIGHT_DIRECTIONAL);
xTurnEntity(Light, 30.0, 30.0, 0.0);
xMoveEntity(Cube, 0.0, 0.0, 10.0);
while (xWinMessage("WM_CLOSE")==0 && xKeyHit(KEY_ESCAPE)==false)
{
xTurnEntity(Cube, 1.0, 1.0, 1.0);
xMoveEntity(Cube,0,0.2*sin(xMillisecs()/1000),0);
xRenderWorld();
Control(1,1,Camera,Pivot);
xFlip();
}
return 0;
}
void Control(double speed, double mousesensitivity, Handle Camera, Handle Pivot) {
double mxs;
double mys;
if (xKeyDown(2)) xWireframe(true);
if (not xKeyDown(2)) xWireframe(false);
xText (10,10,"i'm still not able to use properly this function, so it's reason why this have an console output :)");
if (xKeyHit(57)) {cout<<"FPS is "<<xGetFPS(); cout<<", time is "<<xMillisecs()<<"\n"; };
mxs+=xMouseXSpeed()/5.0;
mys+=xMouseYSpeed()/5.0;
if (xKeyHit(3)) {cout<<mxs<<" "<<mys<<"\n";};
xTurnEntity (Camera,mousesensitivity*mys,-mousesensitivity*mxs,0);
xMoveMouse (xGraphicsWidth()/2,xGraphicsHeight()/2);
if (xKeyDown(17) || xKeyDown(200)) xMoveEntity (Camera,0,0,speed);
if (xKeyDown(31) || xKeyDown(208)) xMoveEntity (Camera,0,0,-speed);
if (xKeyDown(30) || xKeyDown(203)) xMoveEntity (Camera,-speed,0,0);
if (xKeyDown(32) || xKeyDown(205)) xMoveEntity (Camera,speed,0,0);
xPositionEntity (Pivot,xEntityX(Camera,1),xEntityY(Camera,1),xEntityZ(Camera,1));
xPositionEntity (Camera,0,0,0);
}
Ибо в гугле на русском языке этого нет, но пусть будет.
Последний раз редактировалось dsd, 23.10.2011 в 22:19.
|