ue4html5游戏,用UE4可以做什么游戏怎么做

回答:一般来说网上有

如:

include lt;iostream;

include lt;vector;

include lt;ctime;

include lt;CStdlib;

include lt;conio.h;

include lt;windows.h;

using namespace std;

enum Direction {UP, DOWN, LEFT, RIGHT};

//Frame of the game

class Frame {

public:

friend class snakeNode;

friend class movement;

unsigned width, height;

Frame(): width(30), height(30) {}

void setHeight(unsigned h) {

height = h;

}

void setWidth(unsigned wid) {

width = wid;

}

void initializeFrame();

void displayFrame();

private:

vectorlt; vectorlt;char; ; window;

}frame;

void Frame::initializeFrame() {

if (width lt;= 0 height lt;= 0) {

cerr lt;lt; WRONG FRAME DIMENSION! lt;lt; endl;

exit(0);

}

window = vectorlt;vectorlt;char; ;(height, vectorlt;char;(width, ; ;));

for (int i = 0; i != height; ++i) {

window[i][0] = window[i][width-1] = ;;;

}

for (int j = 0; j != width; ++j) {

window[0][j] = window[height-1][j] = ;;;

}

}

void Frame::displayFrame() {

for (int i = 0; i != height; ++i) {

for (char ch : window[i])

cout lt;lt; ch lt;lt; ; ;;

cout lt;lt; endl;

}

}

//snakeNode

class snakeNode {

public:

friend class movement;

snakeNode(int ix, int iy): x(ix), y(iy), next(nullptr), prior(nullptr) {}

void addHead(int, int);

void delTail();

private:

int x, y;

snakeNode *next, *prior;

}*head, *tail;

void snakeNode::addHead(int ix, int iy) {

snakeNode *newSnake = new snakeNode(ix, iy);

newSnake-;next = head;

if (head)

head-;prior = newSnake;

else

tail = newSnake;

head = newSnake;

frame.window[ix][iy] = ;~;;

}

void snakeNode::delTail() {

snakeNode *snakeTail = tail;

frame.window[snakeTail-;x][snakeTail-;y] = ; ;;

tail = snakeTail-;prior;

if (tail)

tail-;next = nullptr;

else

head = nullptr;

delete snakeTail;

}

//movement

class movement {

public:

movement(): dir(LEFT) {randomFood();}

void randomFood();

void move();

void changeDirection(char);

private:

enum Direction dir;

int fx, fy;

bool outOfFrame(int h, int w) {

return h lt; frame.height - 1 h ; 0 w lt; frame.width - 1 w ; 0 ? false : true;

}

bool block(int h, int w) {

for (snakeNode *snake = head; snake; snake = snake-;next) {

if (snake-;x == h snake-;y == w)

return true;

}

return false;

}

};

void movement::randomFood() {

srand((unsigned)time(0));

bool onSnake = true;

while (onSnake) {

onSnake = false;

fx = rand() % (frame.height - 2) + 1;

fy = rand() % (frame.width - 2) + 1;

for (snakeNode *snake = head; snake; snake = snake-;next) {

if (fx == snake-;x fy == snake-;y) {

onSnake = true; break;

}

}

}

frame.window[fx][fy] = ;x;;

}

void movement::move() {

int h = head-;x, w = head-;y;

switch(dir) {

case UP: --h; break;

case DOWN: ++h; break;

case LEFT: --w; break;

case RIGHT: ++w; break;

}

if (outOfFrame(h, w) block(h, w)) {

cout lt;lt; Game Over! lt;lt; endl;

exit(0);

}

if (h == fx w == fy) {

head-;addHead(fx, fy);

randomFood();

}

else {

head-;addHead(h, w);

head-;delTail();

}

}

void movement::changeDirection(char key) {

switch(key) {

case ;w;: {

if (dir != DOWN) dir = UP;

break;

}

case ;s;: {

if (dir != UP) dir = DOWN;

break;

}

case ;a;: {

if (dir != RIGHT) dir = LEFT;

break;

}

case ;d;: {

if (dir != LEFT) dir = RIGHT;

break;

}

}

}

int main() {

unsigned speed, h, w;

char key;

cout lt;lt; Please input height and width!(10~39) lt;lt; endl;

cout lt;lt; height = ;

cin ;; h;

cout lt;lt; width = ;

cin ;; w;

cout lt;lt; Please input speed!(1~500) lt;lt;endl;

cout lt;lt; speed = ;

cin ;; speed;

frame.setHeight(h); frame.setWidth(w);

frame.initializeFrame();

head-;addHead(frame.height / 2, frame.width / 2);

movement myMove;

while (true) {

while (!kbhit()) {

system(cls);

myMove.move();

frame.displayFrame();

Sleep(speed);

}

key = getch();

myMove.changeDirection(key);

}

return 0;

}

还有更好的,可惜我找不到了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值