opengl实现推箱子游戏

opengl实现推箱子游戏

ID:12854744

大小:149.35 KB

页数:19页

时间:2018-07-19

opengl实现推箱子游戏_第1页
opengl实现推箱子游戏_第2页
opengl实现推箱子游戏_第3页
opengl实现推箱子游戏_第4页
opengl实现推箱子游戏_第5页
资源描述:

《opengl实现推箱子游戏》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、共分为4个.h文件和5个.cpp文件1、keyListener.h,keyListener.cpp2、map.h,map.cpp3、texture.h,texture.cpp4、textview.h,textview.cpp5、Main.cpp1、Main.cpp#include#include#include#include#include#include"map.h"#include"Texture.h"#include"keyListener.h"#inc

2、lude"textview.h"#pragmacomment(linker,"/subsystem:"Windows"/entry:"mainCRTStartup"")Texturetexture;//文理加载类Mapmap;//地图加载类KeyListenerkeylistener;//键盘监听事件类TextViewtextview;int*image;int**mp;intwindow;//窗口intis_pass=0;//是否过关标志int*pass=&is_pass;intlevel=1;//关卡int*lv=&level;intpre_lv

3、=1;//颜色的RGB值intblack[3]={0,0,0};intwhite[3]={255,255,255};intorange[3]={255,128,0};//窗口大小变化时调用的函数voidChangeSize(GLsizeiw,GLsizeih){if(h==0){h=1;}glViewport(0,0,w,h);//定义视口大小,宽高一致intwidth=550;intheight=550;glMatrixMode(GL_PROJECTION);//重置坐标系统,使投影变换复位glLoadIdentity();//将当前的用户坐标系的原点移到

4、了屏幕中心GLfloataspect;if(w<=h){aspect=(GLfloat)h/w;glOrtho(0,width,0,height*aspect,0,height);}elseif(w>h){aspect=(GLfloat)w/h;glOrtho(0,width*aspect,0,height,0,width);}}voiddisplay_text(){glColor3ub(orange[0],orange[1],orange[2]);glRasterPos2i(250,570);//起始位置textview.drawString("推箱子")

5、;//输出的字符串glRasterPos2i(400,570);charc[10]="第";chard[5];sprintf(d,"%d关",level);strcat(c,d);textview.drawString(c);glRasterPos2i(120,80);textview.drawString("1、ESC键退出游戏");glRasterPos2i(120,60);textview.drawString("2、BackSpace后退");glRasterPos2i(120,40);textview.drawString("3、PageUp、Pa

6、geDown切换关卡");glRasterPos2i(120,20);textview.drawString("4、键盘上、下、左、右键控制方向");}//画长方形voiddraw_rect(intleftX,intleftY){glBegin(GL_POLYGON);glColor3ub(black[0],black[1],black[2]);glVertex2d(leftX,leftY);//左下角glVertex2d(leftX+100,leftY);//右下角glVertex2d(leftX+100,leftY+100);//右上角glVertex2

7、d(leftX,leftY+100);//左上角glEnd();//结束画线}voiddrawmap(){glColor3ub(white[0],white[1],white[2]);//清理颜色,为黑色,(也可认为是背景颜色)glEnable(GL_TEXTURE_2D);for(inti=50;i<500;i+=30){for(intj=100;j<550;j+=30){inty=(i-50)/30;intx=14-(j-100)/30;intpos=mp[x][y];if(pos==6){keylistener.get_man_location(x,y

8、);}texture.display_texture

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。