首頁 資料庫 mysql教程 以opengl制作2D贪吃蛇(一)

以opengl制作2D贪吃蛇(一)

Jun 07, 2016 pm 03:07 PM
opengl 製作 基本 大小 環境 確定 視窗

1) 搭建好基本的窗口环境 要确定窗口大小, 通过确定子的大小(TILE_WIDTH, TILE_HEIGHT), 子的数量(TILE_COLUMN, TILE_ROW) 2) 画子 两个循环 /* * 1) 搭建好基本的窗口环境 * 要确定窗口大小, 通过确定格子的大小(TILE_WIDTH, TILE_HEIGHT), * 格子的数量(TIL

1) 搭建好基本的窗口环境
    要确定窗口大小, 通过确定格子的大小(TILE_WIDTH, TILE_HEIGHT),

                            格子的数量(TILE_COLUMN, TILE_ROW)

2) 画格子
     两个循环

/*
 * 1) 搭建好基本的窗口环境
 *    要确定窗口大小, 通过确定格子的大小(TILE_WIDTH, TILE_HEIGHT),
 *                            格子的数量(TILE_COLUMN, TILE_ROW)
 */
 //2) 画格子
 //*    两个循环
//3) 画方块来表示蛇的身体
// *    glPointSize(..)
#include <stdio.h>
#include <gl>
#include <gl>

int TILE_WIDTH = 32;
int TILE_HEIGHT = 32;
const int TILE_COLUMN = 20;
const int TILE_ROW = 11;

const int dt = 33;  /* 毫秒数 */

#define DIR_UP      0
#define DIR_DOWN    1
#define DIR_LEFT    2
#define DIR_RIGHT   3
#define GL_PI 3.1415f
int   dir = DIR_RIGHT;

float snake_x = 0;
float snake_y = 0;
float snake_v = 3;

float food_x = 10;
float food_y = 5;


 void ChangeSize(int w,int h)
 {
 	GLfloat nRange = 100.0f;
 	// Prevent a divide by zero
	if(h == 0)
		h = 1;

	// Set Viewport to window dimensions
    glViewport(0, 0, w, h);

	// Reset coordinate system
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();

	// Establish clipping volume (left, right, bottom, top, near, far)
    
		glOrtho (0.0f,TILE_COLUMN*TILE_WIDTH,TILE_ROW*TILE_HEIGHT,0,-1, 1);
   

	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
 }

 void SetupRC()//在循环之前,为程序做一些一次性的设置
	{
		//  background color
		glClearColor(0.0f, 0.0f, 0.0f, 1.0f );
		glColor3f(0.0f,1.0f,0.0f);
    
}

void RenderScene(void)
	{GLfloat x,y,z,angle;
	// Clear the window with current clearing color
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
	glPointSize(TILE_HEIGHT);
	glBegin(GL_POINTS);
	glVertex3f(snake_x+TILE_WIDTH/2,snake_y+TILE_HEIGHT/2,0.0f);
	glEnd();
   	for(float line_y=0;line_y


<p>编译得到</p>
<p>演示结果:</p>
<p><img  src="/static/imghw/default1.png" data-src="/inc/test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20131119171758109%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3R1NzQx%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FSouthEast&refer=http%3A%2F%2Fblog.csdn.net%2Fstu741%2Farticle%2Fdetails%2F16826925" class="lazy" alt="以opengl制作2D贪吃蛇(一)" ><br>
</p>
<br>


</gl></gl></stdio.h>
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

無法引導到Windows復原環境 無法引導到Windows復原環境 Feb 19, 2024 pm 11:12 PM

Windows復原環境(WinRE)是用來修復Windows作業系統錯誤的環境。進入WinRE後,您可以執行系統還原、出廠重設、卸載更新等操作。如果無法引導到WinRE,本文將指導您使用修復程式解決此問題。無法引導至Windows復原環境如果無法引導至Windows復原環境,請使用下方提供的修復程式:檢查Windows復原環境的狀態使用其他方法進入Windows復原環境您是否意外刪除了Windows復原分割區?執行Windows的就地升級或全新安裝下面,我們已經詳細解釋了所有這些修復。 1]檢查Wi

谷歌瀏覽器怎麼設定每次開啟都是新的窗口 谷歌瀏覽器怎麼設定每次開啟都是新的窗口 Mar 06, 2024 pm 06:19 PM

谷歌瀏覽器怎麼設定每次開啟都是新的視窗?狠毒用戶喜歡使用谷歌瀏覽器辦公或學習,這款瀏覽器具有安全、快速、便捷的特點,不同的用戶使用瀏覽器的喜好不同,一些用戶喜歡打開谷歌瀏覽器就是新的標窗口,方便快速搜索,那麼如何設定呢。接下來小編就帶給大家谷歌瀏覽器每次開啟都是新的視窗設定教程,有興趣的朋友來學習一下。谷歌瀏覽器每次開啟都是新的視窗設定教學1、將電腦桌面上的Google瀏覽器雙擊開啟之後,點選右上角的【三個點】的圖示位置進行點擊。 2.找到【設定】這個選項進入到頁面中(如圖)。 3.進入到谷歌瀏

Python和Anaconda之間有什麼區別? Python和Anaconda之間有什麼區別? Sep 06, 2023 pm 08:37 PM

在本文中,我們將了解Python和Anaconda之間的差異。 Python是什麼? Python是一種開源語言,非常重視使程式碼易於閱讀並透過縮進行和提供空白來理解。 Python的靈活性和易於使用使其非常適用於各種應用,包括但不限於對於科學計算、人工智慧和數據科學,以及創造和發展的線上應用程式。當Python經過測試時,它會立即被翻譯轉化為機器語言,因為它是一種解釋性語言。有些語言,例如C++,需要編譯才能被理解。精通Python是一個重要的優勢,因為它非常易於理解、開發,執行並讀取。這使得Pyth

如何在VirtualBox中增加磁碟大小[指南] 如何在VirtualBox中增加磁碟大小[指南] Mar 17, 2024 am 10:10 AM

我們經常遇到預定義磁碟大小沒有空間容納更多資料的情況?如果您在稍後階段需要更多的虛擬機器硬碟空間,則必須擴充虛擬硬碟和分割區。在這篇文章中,我們將看到如何在VirtualBox中增加磁碟大小。增加VirtualBox中的磁碟大小重要的是要注意,您可能希望在執行這些操作之前備份您的虛擬硬碟文件,因為總是有可能出錯。有備份總是一個好的做法。然而,該過程通常運作良好,請確保在繼續之前關閉您的機器。有兩種方法可以增加VirtualBox中的磁碟大小。使用圖形使用者介面擴充VirtualBox的磁碟大小使用CL

PPT製作膠卷移動效果的具體方法 PPT製作膠卷移動效果的具體方法 Mar 26, 2024 pm 04:00 PM

1、啟動PPT,新建一個空白文檔,選擇所有的文字方塊將其刪除。 2、執行插入-形狀指令,在文件中拖曳出一個長方形,形狀顏色填滿為黑色。 3.拖曳長方形將其拉長,執行插入-形狀指令,拖曳出小正方形,設定填滿顏色為白色。 4.依序複製黏帖小正方形,使上下均勻分佈在膠卷兩側,ctrl+a選擇所有的之後,右鍵點選選擇組合。 5.執行插入-圖片指令,在彈出的對話框中找到需插入的圖片,點選打開,調整圖片大小和位置。 6.重複步驟5依序將其餘的圖片進行插入並設置,形成一個膠卷圖片的形式。 7.選擇膠卷,執行動畫-新增動畫命

建立手機端Excel表格操作指南 建立手機端Excel表格操作指南 Feb 18, 2024 pm 02:41 PM

手機Excel表格製作教學隨著行動裝置的普及和技術的不斷進步,手機成為了我們日常生活和工作中不可或缺的工具之一。在手機上使用Excel表格,可以輕鬆進行資料記錄、計算和分析,提高工作效率。本文將為大家分享手機Excel表格製作的基本操作與技巧。一、選擇合適的應用程式目前市面上有許多可供選擇的手機Excel應用程序,例如GoogleSheets、Micro

番茄小說封面怎麼製作 番茄小說封面怎麼製作 Feb 23, 2024 pm 01:55 PM

番茄小說封面怎麼製作?番茄小說中是可以製作專屬的小說封面,但是多數的小伙伴不知道番茄小說當中的封面該如何的製作,接下來就是小編為玩家帶來的番茄小說封面製作方法圖文教程,有興趣的玩家快來一起看看吧!番茄小說使用教學番茄小說封面怎麼製作1、先打開番茄小說APP,進入到作品管理頁面創建新書,選擇下圖箭頭所示的【封面模板】;2、然後進入到封面模板頁面,選擇喜愛的封面模板;3、最後選擇封面完成後點選右上角【確認】即可。

關閉電腦遊戲廣告彈出視窗的方法 關閉電腦遊戲廣告彈出視窗的方法 Jul 07, 2023 pm 08:57 PM

很多網友在玩win10電腦時,相信都會遇到一些廣告彈窗的騷擾,有時在玩遊戲時可能會出現遊戲廣告彈窗導致體驗不佳。那麼win10電腦右下角閃爍遊戲廣告怎麼辦?如何關閉電腦遊戲廣告彈窗?以下小編就教你如何關機的遊戲廣告彈窗。關閉電腦遊戲廣告彈出視窗的方法。第一步:找到閃爍的彈出視窗程序名稱一、閃爍彈跳窗出現時,先不要關閉,右鍵開啟電腦底部的工作列設定。 2.在工作列下方找到通知區域,點選在工作列上顯示選擇哪些圖示。 3.這裡列出的圖示曾經出現在你的任務欄上,所以即使你關閉了彈出窗口,這裡還是有記錄的。你

See all articles