日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2D开源游戏引擎调研报告(一)

發布時間:2023/12/9 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2D开源游戏引擎调研报告(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:由于工作需要,我要找一款2D的開源游戲引擎。以下是我選取調研的四款軟件。

一、Godot
二、Panda3D
三、Cocos2dx
四、CocosCreator
(注:這些軟件中的3d部分功能均不在考察范圍中)

調研內容:
1.使用語言
2.可執行文件可以運行的平臺
3.對象的封裝、繼承、實例化等功能
4.多場景的切換
5.物理引擎,包含:
碰撞檢測
物理模型:
實體
繩子
引力效果
6.粒子效果
7. UI組件,包含:

  • 按鈕、標簽、定時器、菜單、復選框、進度條、滑動條、文本框

8.利用容器設置對象在屏幕中的位置
9.光影渲染
10.動畫部分,包含:

  • 對象的位置、朝向、移動
  • 對象的顏色變化
  • 數字的變化

11.音頻文件的加載、播放
12.視頻文件的加載、播放
13.學習資源的豐富性
14.引擎效率

一.Godot

0.基本介紹
官網:https://godotengine.org/
中文官網:http://docs.godotengine.org/zh_CN/

1.語言和代碼
引擎使用的語言:官方為GDscript語言(一個專用于Godot的語言),也支持C#語言。
GDscript語言特點:類似于Python。

編輯代碼的方式:
①在編輯器中直接編寫并編譯。
②通過外部工具進行編寫

語言的使用(使用引擎內置編輯器):
C#:在引擎中編寫時,就如同編輯txt,感受不好;部分功能目前不支持。
GDscript:能實時檢查錯誤;有智能拼寫功能。

生成可執行程序:
編輯器自帶導出程序功能
支持平臺:Android、IOS、HTML5(按網上資料,HTML幾乎用不了)、Mac OSX、Windows、Linux

2.對象的編輯和設計
由于Godot自帶圖形化編輯器,對象和程序的設計較為容易
①對象的定義和封裝
在編輯器中,可以自由創建場景節點樹,任意節點都可以作為場景文件儲存,即完成了對象的封裝
②對象的實例化
圖形化方式:右擊節點,選擇“實例化子場景”,即可添加(實例化)某個場景
代碼方式:對于已經保存好的場景(假設名為object.tscn),在代碼中輸入:

  • Var inst = object.instance()
  • Add_child()

可以創建實例并添加到場景中
③對象的繼承
選擇“新建繼承的場景”可以進行場景的繼承并編輯(除了原有的節點關系,其余都可以修改)

3.場景的切換
Self.get_tree().change_scene()方法

4.物理引擎
①碰撞監測
Godot有CollisionShape2D節點,可以繪制一個碰撞區域。若不同對象的碰撞區域發生重疊,則會發出信號(Godot中有一類信號發射器功能,用于實現函數回調。使用很簡單,對新手較友好)
②物理模型
實體方塊:
RigidBody節點可以提供物理實體模型所需的屬性,包括:重量、所受的力、摩擦系數、彈性系數、旋轉角等參數
繩子:
需要用多個實體方塊連接而成
③引力效果
需要通過代碼實現

5.粒子效果
使用Particle節點,可設置的參數如下:
①單個粒子的屬性:粒子的材料(顏色)、大小、速度、方向、加速度、旋轉等
②粒子的生成:粒子數量、粒子存在時間、產生粒子的頻率(爆炸性or持續性)、生成粒子的位置(一個點or一片區域)、粒子的隨機性等
可生成的效果:火焰、漩渦、滿天星、爆炸等

6.UI組件
Button:有
Label:有
ProgressBar:有,可添加三層圖案(頂層、底層、填充層)
定時器:有。定時器控件在到達指定時間后,會發出信號
字體、字號設置:系統只有默認字體、其余字體需手動添加(放入文件夾中并在控件上設置)
(常用功能可以直接從節點中找到并添加)

7.容器
①對象位置的設置:
可以設置對象在屏幕中的絕對位置(x,y),也可以設置對象相對于父節點的位置(margin)
②容器的種類
網格狀排列:GridContainer
橫向排列:HBoxContainer
縱向排列:VBoxContainer
九宮格容器:NinePatchContainer,用于保證容器的四個角不隨圖片大小變化而變化

9光影效果
使用light2D(在指定區域疊加一層半透明圖像)和LightOccluder2D(提供陰影效果,它所屬的對象的形狀會阻擋光線的穿過)

10動畫部分
①圖形化實現
Godot自帶動畫編輯器。選定對象后,可以在不同幀設置其位置等參數。播放時,該對象將按照這些幀進行平滑運動
②代碼實現
使用interpolate_property()函數,可以讓對象的屬性的值(包括位置、顏色或自定義變量)在指定時間內從一個數平滑過渡到另一個數
③骨骼效果(不同動畫對象的連接)在編輯器中可以選擇并添加該內容

11.音頻文件的加載、播放
使用AudioStreamPlayer
支持格式:ogg、oggstr、res、sample、tres、wav

12.視頻文件的加載、播放
使用VideoPlayer播放視頻
支持格式:ogv、res、tres、webm

13.資源的豐富性
官方api有中英兩個版本(部分英文無中文翻譯,但影響不大)

評價:godot的特點是“小而全”,需要的功能基本都能快速找到,節點種類豐富,也很容易上手,在入門初學時,基本不需要代碼就能實現簡單游戲。
但是,部分功能不夠強大(或者說不夠好用)。比如在代碼編輯上,引擎自帶的編輯器雖然有智能拼寫等功能,但實際使用感受一般般,且部分報錯信息難以讀懂。可以使用外部編輯器(如vscode)替代

總結

以上是生活随笔為你收集整理的2D开源游戏引擎调研报告(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久综合精品国产二区无码不卡 | 欧美一区二区三区四区五区 | 国产午夜电影在线观看 | 激情综合激情 | 国产精品久久毛片av大全日韩 | 日一日射一射 | 亚洲咪咪 | 国产精品一区二区人人爽 | 国产精品97 | 国产乱淫a∨片免费视频 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 午夜伦伦 | 天堂中文网在线 | 欧美性猛交xxxx乱大交hd | 国产黄色一区 | 捆绑调教视频网站 | 午夜影院免费 | 懂色av蜜臀av粉嫩av喷吹 | 新国产视频 | 日韩免费高清视频网站 | 金鱼妻日剧免费观看完整版全集 | 人人干人人澡 | 日日干天天 | 91精品视频在线免费观看 | www国产亚洲精品久久麻豆 | 中文字幕不卡在线 | 欧美性做爰毛片 | 国产18在线| 欧美国产第一页 | 欧美国产日韩视频 | 精品一区二区三区蜜臀 | 免费看一级 | 久久福利网站 | 中文字幕一区二区三区人妻在线视频 | 久久爱伊人| 国产欧美亚洲精品 | 国产免费看av | 天天看天天色 | 国产区精品在线 | 黄色aa毛片 | 日韩少妇诱惑 | 国产综合精品一区二区三区 | 波多野结衣视频网址 | 国产综合精品在线 | mm131美女视频| 欧美丰满美乳xxⅹ高潮www | 邵氏电影《金莲外传2》免费观看 | 蜜桃久久av一区 | 亚洲瑟瑟 | 欧美性生活网址 | 日本中文字幕视频在线 | 国产视频最新 | 欧美综合在线视频 | 亚洲熟女乱色一区二区三区久久久 | 欧美成人做爰猛烈床戏 | 色婷婷热久久 | 国产精品婷婷午夜在线观看 | 毛片传媒| 黑人一级女人全片 | 国产乱淫av免费 | 日本www高清视频 | 日本少妇一区 | 亚洲国产精品无码观看久久 | 日韩久久免费视频 | 在线麻豆| 欧美黑人欧美精品刺激 | 国产小视频91 | 日韩三级小视频 | 一区二区中文在线 | 亚洲视频网址 | 国产女人18毛片水真多1 | av在线影片| 亚洲一区二区在线观看视频 | 国产成人精品免费视频 | 欧美综合在线视频 | 女性毛片 | 日本欧美亚洲 | 国产精品视频无码 | 日本艳妇 | 性色av一区二区三区免费 | 婷婷在线观看视频 | jzzijzzij日本成熟少妇 | 韩国美女黄色片 | china国产乱xxxxx绿帽 | 秋霞免费av| 免费久久av | 欧美黑人狂野猛交老妇 | 日韩av资源 | 欧美日韩1区2区 | 精品欧美一区二区在线观看 | 巨骚综合 | 操你妹影院 | 校园春色亚洲色图 | 色婷婷av一区二区 | 主播一区二区 | 国产伦精品一区二区三区视频痴汉 | 激情天堂网 | 国产一区二区三区18 | 荡女精品导航 |