CamControl
From SWWorkshop
Similar to 3D games in 2D games need camera controls for move screen left,right,bottom and up directions. Platform games, side-scrolling shootem-up games and other games based on sliding screen different direction. SWEngine simplifies this operation with camera control functions.
Api Docs
SwEngine, swInput, swGraphics, swPoint, swDimension, swApplication
Source Code
#include "../../include/SWEngine.h" #pragma comment (lib,"../../lib/SWUtil.lib") #pragma comment (lib,"../../lib/SWTypes.lib") #pragma comment (lib,"../../lib/SWCore.lib") #pragma comment (lib,"../../lib/SWEngine.lib") swApplication camControlApp; swPoint elipsCenter={400,300}; swDimension elipsDim={300,100}; swKeyboardState keybState; swMouseState mousState; int camID; //------------------------------------------------------------------------------------------- void GameLoop(){ //Input Handling swInputListenKeyboard(&keybState); swInputListenMouse(&mousState); if(keybState.keyESCAPE){ swEngineExit(); } if(keybState.keyLEFT) swGraphicsAddCamPosX(camID,-2); if(keybState.keyRIGHT) swGraphicsAddCamPosX(camID,2); if(keybState.keyUP) swGraphicsAddCamPosY(camID,2); if(keybState.keyDOWN) swGraphicsAddCamPosY(camID,-2); if(keybState.key1) swGraphicsAddCamZoom(camID,0.1); if(keybState.key2) swGraphicsAddCamZoom(camID,-0.1); if(mousState.btnLEFT) swGraphicsAddCamRot(camID,2); if(mousState.btnRIGHT) swGraphicsAddCamRot(camID,-2); swGraphicsBeginScene(); swGraphicsActiveCam(camID); //Background swGraphicsSetBgColor0(0.6f,0.6f,0.6f); //BlendingMode swGraphicsSetBlendingMode(SW_BLENDING_MODE_ADDITIVE); //Draw Elips swGraphicsSetColor0(0,1,0,0.5); swGraphicsRenderSolidElips2(&elipsCenter,&elipsDim,30,0); swGraphicsSetColor0(1,0,0,0.5); swGraphicsRenderSolidElips2(&elipsCenter,&elipsDim,30,60); swGraphicsSetColor0(0,0,1,0.5); swGraphicsRenderSolidElips2(&elipsCenter,&elipsDim,30,120); swGraphicsEndScene(); } //------------------------------------------------------------------------------------------- int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd) { //Application Settings camControlApp.hInstance=hInstance; camControlApp.fullScreen=false; camControlApp.cursor=true; camControlApp.width=800; camControlApp.height=600; camControlApp.title="Camera Control"; camControlApp.path=""; camControlApp.appRun=GameLoop; //Application Execution swEngineInit(&camControlApp); //Create Cam camID=swGraphicsCreateCam(); swEngineRun(); swEngineExit(); return 0; }

