OpenGL制作简易地图(二)
2012-07-12 21:44
148 查看
1.设置一个活动的block,从红方块出发,随机寻找兰方块,直到找到位置才停止.
2. 部分代码
2. 部分代码
#include "tree.h" #include "global.h" #include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <time.h> struct Tree_Node { NODE_ID id; POS pos; short status; TREE_NODE *left_node; TREE_NODE *right_node; TREE_NODE *up_node; TREE_NODE *below_node; }; TREE_NODE * new_node() { TREE_NODE *t; t=(TREE_NODE *)malloc(sizeof(TREE_NODE)); t->below_node=NULL; t->left_node=NULL; t->right_node=NULL; t->up_node=NULL; return t; } void create_tree() { TREE_NODE *t; for(int i=0; i<N; i++) for(int j=0; j<M; j++) { t=new_node(); t->pos.i=i; t->pos.j=j; t->id=getID(i,j); //maping the code from MAP[][] to tree_ node[][] tree_node[i][j]=t; } init_move_matrix(); } void init_move_matrix() { move_matrix[0].i=1; move_matrix[0].j=0; move_matrix[1].i=1; move_matrix[1].j=1; move_matrix[2].i=0; move_matrix[2].j=1; move_matrix[3].i=-1; move_matrix[3].j=1; move_matrix[4].i=-1; move_matrix[4].j=0; move_matrix[5].i=-1; move_matrix[5].j=-1; move_matrix[6].i=0; move_matrix[6].j=-1; move_matrix[7].i=1; move_matrix[7].j=-1; } NODE_ID getID(int i,int j) // get the ID from map for each position { int t=0; t=MAP[i][j]; switch(t) { case 0: return FREE; break; // FREE PLACE case 1: return BLOCK; break; //BLOCK POSITION case 2: return BLUE; break; // START POSITION case 3: return RED; break; // TARGET POSITION default : return FREE; break; } } bool goNEXT() { srand(time(NULL)); while(1) { int t=rand()%8; int x=temp_pos.i+move_matrix[t].i; int y=temp_pos.j+move_matrix[t].j; if(x>=0&&x<N&&y>=0&&y<N) { if(checkNEXT(x,y)==true) { temp_pos.i=x; temp_pos.j=y; break;; } else continue; } else continue; } return true; } bool checkNEXT(int i,int j) { if(tree_node[i][j]->id!=BLOCK) return true; else return false; } // THE END3.出图.
相关文章推荐
- OpenGL制作简易地图(一)
- 用SCMD2.0.8.0汉化版制作OB地图简易教程
- 电子地图简易制作教程
- [UnityUI]简易的小地图制作
- 五分钟学GIS | 立体效果地图制作
- 【百度地图API】如何利用PhoneGap制作地图APP
- 制作地图软件的经验和心得
- 学习制作google map地图无法显示问题
- Unity小地图制作
- D3D游戏编程系列(二):自己动手编写即时战略游戏之地图编辑器的制作
- OpenCV探索之路(二十二):制作一个类“全能扫描王”的简易扫描软件
- 转 OpenStreetMap初探(八)——制作地图瓦片Kosmos及Maperitive使用
- 使用opengl实现一个简易的robot模拟
- Cocos3.4 横版游戏制作-《KillBear》-边缘检测 地图滚动
- unity3d学习笔记(十一)--NGUI结合Shader制作小地图
- Cocos3.4 横版游戏制作-《KillBear》-添加地图
- 用SVGDeveloper制作svg地图
- Tiled使用教程(游戏地图制作)
- Android SQLite 如何制作一个简易通讯录(附上代码)
- 【Visual C++】游戏开发笔记之九 游戏地图制作(一)平面地图贴图