📄 main.cpp
字号:
/*presented by cb*/
#include<iostream>
#include<fstream>
using namespace std;
#ifndef CONSOLE
#include"GraphicEngine.h"
#include"ABCSimulation.h"
#define WIN32_LEAN_AND_MEAN
BOOL ActiveApp;
ABCGraphic ag;
cBaseSprite bk1(1,424,424);
cBmpFileReader frame;
cBmpFileReader gray;
long CALLBACK WinProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstace,LPSTR lpCmdLine,int nShowCmd){
MSG msg;HWND hwnd;WNDCLASS wc;
static TCHAR name[]=TEXT("ABC Simulation");
wc.style=CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc=WinProc;
wc.cbClsExtra=wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName=NULL;
wc.lpszClassName=name;
if(!RegisterClass(&wc)){
MessageBox(NULL,TEXT("This program requires Windows NT."),name,MB_ICONERROR);
return 0;
}
hwnd=CreateWindowEx(WS_EX_TOPMOST,name,name,
WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MINIMIZE|WS_MAXIMIZEBOX,
0/*CW_USEDEFAULT*/,0/*CW_USEDEFAULT*/,WINDOW_WIDTH2,
WINDOW_HEIGHT2,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,nShowCmd);
UpdateWindow(hwnd);
SetFocus(hwnd);
//ShowCursor(FALSE);
ag.BeWindowed(hwnd);
ag.CreateSurfaces();
ag.ButtonsLoad("picture\\tile.bmp",0,4);
cBmpFileReader gray2;
gray2.load("picture\\gray.bmp");
try{
frame.load("picture\\BK2.bmp");
gray.load("picture\\background2.bmp");
gray.draw(ag.m_lpSecondarySurface,138,138,0,0);
bk1.CreateSurface(ag);
bk1.SetColorkey(RGB(255,255,255));
bk1.load(frame,0,0,0);
bk1.draw(ag.m_lpSecondarySurface,0,0,0);
}catch(cgError e){
MessageBox(GetActiveWindow(),e.errmessage.c_str(),e.errmessage2.c_str(),MB_ICONERROR);
}
ag.VP1Load("picture\\tile.bmp","map\\testmap.map");
ag.VP2Load();
ag.VP3Load();
ag.DrawToBackSurface(ag.lpVideoport1,12,8);
ag.DisplayButtons();
while(TRUE)
if(PeekMessage(&msg,NULL,0,0,PM_NOREMOVE)){
if(!GetMessage(&msg,NULL,0,0))return msg.wParam;
TranslateMessage(&msg);DispatchMessage(&msg);
}else {
if(!ActiveApp) WaitMessage();
else{
ag.PageFlip(hwnd);
ag.RobotMove();
ag.VP2Load();
try{
gray2.draw(ag.lpVideoport3,235,313,0,0);
ag.DrawToBackSurface(ag.lpVideoport3,433,220);
}catch(cgError e){
MessageBox(GetActiveWindow(),e.errmessage.c_str(),e.errmessage2.c_str(),MB_ICONERROR);
PostQuitMessage(0);
}
ag.VP3Load();
ag.DrawToBackSurface(ag.lpVideoport2,433,9);
ag.DrawToBackSurface(ag.lpVideoport1,12,8);
}
}
}
long CALLBACK WinProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
ofstream out("map\\error.txt");
// static cGraphicEngine cg;
POINT pttemp;
switch(message){
case WM_ACTIVATEAPP:
ActiveApp=wParam;
return 0;
case WM_CREATE:
return 0;
case WM_KEYDOWN:
switch(wParam){
case VK_ESCAPE:
PostQuitMessage(0);
break;
}
return 0;
case WM_CHAR:
switch(wParam){
case 'a':
break;
case 'b':
break;
case 'c':
break;
}
return 0;
case WM_LBUTTONDOWN:
pttemp.x=LOWORD(lParam);
pttemp.y=HIWORD(lParam);
ag.MenuLButtonDown(hwnd,pttemp);
return 0;
case WM_LBUTTONUP:
pttemp.x=LOWORD(lParam);
pttemp.y=HIWORD(lParam);
ag.MenuLButtonUp(hwnd,pttemp);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}
#endif
#ifdef CONSOLE
#include"GraphicEngine.h"
int main(){
MAP map;
int **ppt;
map.map_read("map\\testmap.map");
ofstream out("map\\result.txt");
cout<<map.width()<<endl;
cout<<map.height()<<endl;
ppt=map.getMapPt();
for(int i=0;i<map.height();i++){
for(int j=0;j<map.width();j++)
out<<ppt[i][j];
out<<endl;
}
cout<<ppt[101][0]<<endl;
cout<<ppt[101][101]<<endl;
cout<<1/4<<":"<<5%4<<endl;
return 0;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -