小球游戏

该博客介绍了如何利用OpenGL进行小球的绘制及动态移动,并通过键盘操作改变视角,w/s/a/d键控制小球上下左右移动,上下左右箭头键调整视角旋转。
摘要由CSDN通过智能技术生成

代码实现功能如下:

       绘制一个小球,并且在小球下方添加有材质的地面。w,s,a,d分别实现控制小球上,下,左,右的移动。键盘上,下,左,右的箭头分别控制视角的旋转变化。

 

#include <GL/glut.h>
#include <cmath>
#include <stdlib.h>
#include <GL/glut.h>
#include <math.h>

static int s = 0;

//色彩全局常量
GLfloat WHITE[] = { 1, 1, 1 };    //白色
GLfloat RED[] = { 1, 0, 0 };    //红色
GLfloat GREEN[] = { 0, 1, 0 };    //绿色
GLfloat MAGENTA[] = { 1, 0, 1 };  //洋红

//摄像机类:水平移动半径为10,按上下键则垂直移动
class Camera {
public:  
    double theta;      //确定x和z的位置
    double y;          //y位置
    double dTheta;     //角度增量
    double dy;         //上下y增量
public:
    //类构造函数—默认初始化用法
    Camera() : theta(0), y(3), dTheta(0.04), dy(0.2) {}
    //类方法
    double getX() { return 10 * cos(theta); }
    double getY() { return y; }
    double getZ() { return 10 * sin(theta); }
    void moveRight() { theta += dTheta; }
    void moveLeft() { theta -= dTheta; }
    void moveUp() { y += dy; }
    void moveDown() { if (y > dy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值