篇文章屬於'節目'
昨天有計時器的問題得到解決,不知何故我現在可以奉獻的場景。 在這裡,我想,但讓我們不容易去野生方案上,花了整個事情,而幾次 Bedenkminuten微型
第一次我一直在尋找一個可愛的地圖編輯器和平鋪發現。 是用Java編寫並運行這樣好的也認真參與任何操作系統。 我也覺得非常有用,地圖都存儲在XML和可分配給對象的地圖編輯其屬性。
後者例如有用的,如果它適合作為一個記事本。 事實可能是這樣,即使你設計的卡丟失其內容。 他們的目標或傳送點心靈傳輸領域 ...尼斯的事情:)
在國內,我將節省大約 3個現場二維陣列。 在一樓的地磚。 為什麼? 我注意到在機器人三,它看起來不很漂亮,如果在森林wegätzt牆,因為當時有一個白色的瓷磚,中間的森林。 這將是很好,如果有會出現在我的帳戶棕色森林土。 這正是讓我做我的第一個數組(我打電話,讓我一層 0次微型)。
第一層將包含所有其他非全國人大遊戲對象。 而在第2層的屋頂,然後一切可以運行在長期查理。 查理你在我的帳戶在一所房子,簡單地將不再簽署的第2層和我們有同樣的效果在機器人比賽的屋頂:)
NPC和所有對象都存儲在每一個列表。 這些都是然後不sooooo長時間延遲,我必須有,儘管所有的可能性的多個物體之一,在same領域。 由於這種情況的話,我相信,只要球員拋棄的對象。 或者是因為我錯過了什麼?
目前,我已經為每個對象自己的巴紐兼容,但不幸的是各種瓷磚沒有那麼大。 所以這裡要再談一個單一圖像獲得完全tileset。 一個或兩個轉變的對象基類,這個小問題也將得到解決。
我希望的時刻,我仍然創造所有這一切在本星期內,因為這樣我可以發洩再次在GUI;)
2009年2月8日
因為有愛一切都運作得很成功,我抄了定時器和開關作為預防措施,所有浮動整數變量。 這帶來了一個不錯的突發速度和抨擊我的動畫完美。 但我只是想利用液態對象運動和一切開始打勾。 所以,一切轉換回浮動。 現在他們更流暢,但他希望是愚蠢又啞,20醫科損失:(
,必須有更好的... ...我們將目光
2009年2月7日
最基本的功能沒有雜音在他們的新家園辛格爾頓(屏幕,定時器,圖像)消失。 遊戲類還需要慢慢形成:)
下一步是對象的基類的遊戲元素。 首先,我想看看它是如何在野生環境的行為,因為它必須照顧也對任何動畫。 沒有愛,我應該關心自己,所以這一次*笑*
我已經注意到在愛情 GORC版本每個對象實例都有自己的實例圖片 ...這當然不一定是資源。 這一次我得到支付的圖片加載一次,並會採取任何其他的“商店”從緩存。
因此,我站出來 ...,儘管極端寒冷和緩慢的思維過程微型
2009年2月6日
前一段我還不敢肯定。 但是,沒有我剛回答賀克的評論,有Ð(再次),而印象深刻,我的思想的繼承變量和函數的父類的小子。
我承認我是來真的不知道我應該做的事情,比如“虛擬”和“保護”。 但是,如果我為:
一
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| 一流形象
(
...
uint x , uint y ) 無效畫(uint uint 的x,y)
(
...
)
...
)
Image 動畫 類 :圖像
(
...
無效畫()
(
, 1 ) ;畫(1,1);
)
...
) |
的確,為什麼要抱怨上帝的意志是D編譯器,類不繪製動畫 uint(“uint)函數? 我的理解是,他們仍然應該繼承自Image類,對不對? 好,感謝谷歌,我是這樣看:
一
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| void draw ( uint x , uint y ) { ... } ... } class Animation : Image { ... alias Image. draw draw ; void draw ( ) { draw ( 1 , 1 ) ; } ... } 一流的 圖像(... 無效畫(uint十,uint y)的(...) ...)動畫 類 :圖像(... 又名形象。 吸取 和借鑒 無效畫()(畫(1,1); ...)) |
唷! 慢慢地,我真的覺得誰不處理面向對象的原則,他的睡眠,應讓手指的D:(
所以...我買的C + +,這涉及我的無知有點親切,並嘗試了解它;)
2009年2月5日
在這裡我的舊筆記本電腦 GORC運行得太慢。 這主要是因為情感的使用OpenGL。 SDL的一個 2D遊戲引擎就足夠完美。 眼鏡。 但是,現在怎麼辦?
其實一個非常好的時機 GORC在一個“真正的”編程語言編寫新的和喜歡使用SDL庫。 最後,我需要不超過 SDL的,SDL_mixer和SDL_image。 後來還是南湖為腳本,但在那之前還有時間 ...
在短期來這裡列出四種語言:C語言,C + +,基本的,免費數字火星四,後者我一直想聞一多一點密切合作。 該圖書館的所有支持我的選擇。
C和C + +不喜歡我寫的太多了。 幾乎可以被編譯的一切,我只是愛的語法:)
免費基本就像一個 C的快速基本語法。 可以編譯,但可惜只適用於 Windows和Linux。
D將可能是“更好”比C + +。 在何種程度上很容易在一個項目像GORC影響,不知道。 編制設計擴頻,非常感謝容易在C / C + +。 因為我還從來沒有真正的管理,這讓我的程序編譯通過。/配置&作出。 只是太貴了所有*笑*
在這裡,一次小一目了然的方向D輯:
一
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| . sdl ; import tango. io . Console ; void main ( ) { try { DerelictSDL. load ( ) ; } catch ( Exception e ) { Cout ( "Could not load the SDL shared library. \n " ) ; return ; } SDL_Init ( SDL_INIT_VIDEO ) ; SDL_SetVideoMode ( 640 , 348 , 24 , SDL_SWSURFACE ) ; SDL_WM_SetCaption ( "GORC" , null ) ; mainLoop : while ( true ) { SDL_Event event ; while ( SDL_PollEvent ( & event ) ) { switch ( event. type ) { case SDL_QUIT : break mainLoop ; default : break ; } } SDL_Delay ( 10 ) ; } Cout ( "Oki Dokili. \n " ) ; SDL_Quit ( ) ; DerelictSDL. unload ( ) ; } 進口廢棄。sdl的。sdl的, 進口的探戈。 印務局。 控制台; 無效的主要()(嘗試 (DerelictSDL. 負載 ();) 趕上 (例外五)(法院(“ 無法加載SDL的共享庫。\ ñ”); 返回;)SDL_Init(SDL_INIT_VIDEO); SDL_SetVideoMode(640,348,24,SDL_SWSURFACE); SDL_WM_SetCaption(GORC“, 空); mainloop: 雖然 (真)(SDL_Event事件而 (SDL_PollEvent(&事件))(開關 (事件 。 型)( 案件 SDL_QUIT: 打破 mainloop; 默認: 打破;))SDL_Delay(10);)法院(“衝電氣 Dokili。\ ñ”); SDL_QUIT(); DerelictSDL。 卸載 ();) |
所以? 我買了什麼呢?
2009年2月3日
我今天一整天尋找死*搖頭 *
菜單和對話框框架已制訂沒有任何問題,好嗎 ...我們仍然能夠迅速完成的主菜單,然後下班後。 尼克斯適應那裡 ...不知怎的,無論是菜單項沒有在窗口或窗口太大。 但是你可以去當一個錯誤幀的一部分,恰恰是8 × 10像素大,一個字母的字體大小是一樣的? 簡單的數學,但不適合的東西!
我其實只是幾個字母的字體資源油漆錯過一個框架,看到錯誤。 在此之前,我有我的來源可能已經讀了一千次沒有結果的校正。 標準功能為愛插入位圖字體(當然我不知道)是一個新興的一個像素之間的兩個字母。 幸好還有一個功能,由於我可以離開這個愚蠢的像素;)
好吧,我現在已經有足夠的節目。 菜單可以現在終於等到今天,誰是18強,並已經沒有我的慶祝活動。
恭喜你,兄弟!
2009年1月24日
前言:我注意到,我GORC我的線程在遊戲中的機器人論壇現在濫用,DevBlog。 這時候,我現在工作的人反對,我的進步和思想在這個博客帖子...,他們其實都屬於太;)
所以...我用的最後一個星期,標本,所有遊戲內容納入課程。 一個場景的內容不再是一個二維數組,但在兩種洛表。 其中一個機器人,那麼也許所有其他的NPC這裡來。 而在其他表中插入的所有其他元素(牆,黃金等)。
該程序的目的是為了使遊戲的邏輯控制。 而是一個長期的if - then - else塊現在把所有的邏輯在其特定的對象類的實例。 一個例子:
一
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| "Gold" , Object ) GoldImage = love.graphics.newImage ( "images/gold-0.png" ) GoldImage:setCenter ( 0 , 0 ) GoldSound = love.audio.newSound ( "sounds/gold.wav" ) function Gold:init ( x, y, params ) self.super:init ( x, y ) self.ani = GoldImage end function Gold:canEnter ( obj ) -- kann nur vom Spieler betreten werden if not Player:made ( obj ) then return false end return true end function Gold:onEntered ( obj ) if not Player:made ( obj ) then return end self: remove ( ) spieler.gold = spieler.gold + 1 love.audio.play ( GoldSound ) end黃金類=(“金”,對象)黃金love.graphics.newImage圖像=(“images/gold-0.png”),金像:setCenter(0,0)=金聲love.audio.newSound(“聲音 / gold.wav “) 函數黃金:初始化(的x,y,params)self.super:初始化(的x,y)=黃金self.ani 結束函數圖像的黃金:canEnter(obj的) -可以輸入的球員 ,如果不是 唯一的球員:(作obj的), 則返回false月底結束函數返回true黃金:onEntered(obj的) 如果不是球員:由(obj的), 然後返回結束自己: 刪除 ()= spieler.gold spieler.gold love.audio.play + 1(金聲) 結束 |
確定。 一個收藏對象現在沒有真正的腳本技術的挑戰。 但如何對某事更複雜?
一
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| "Isolator" , Moving ) IsolatorImage = love.graphics.newAnimation ( love.graphics.newImage ( "images/isolator-0.png" ) , 16 , 12 , 0.1 , 0 ) IsolatorImage:setCenter ( 8 , 6 ) function Isolator:init ( x, y, params ) self.super:init ( x, y ) self.ani = IsolatorImage self.speed = spieler.speed end function Isolator:canEnter ( obj ) local dx, dy -- kann nur vom Spieler betreten werden if not Player:made ( obj ) then return false end -- bewegt sich der Isolator bereits, -- können wir ihn nicht betreten, bzw. in seine Richtung gehen -- da wir sonst durch ihn hindurch laufen if self:isMoving ( ) then return false end dx = self.x - obj.x dy = self.y - obj.y return self:canMoveTo ( dx, dy ) end function Isolator:canMoveTo ( dx, dy ) local feld = Szenen:current ( ) :get ( self.x + dx, self.y + dy ) if #feld == 0 then self:setTarget ( dx * 16 , dy * 12 ) return true end for i, e in pairs ( feld ) do if not Isolator:made ( e.obj ) and not Barbwire:made ( e.obj ) then return false else if e.obj:canMoveTo ( dx, dy ) then self:setTarget ( dx * 16 , dy * 12 ) return true end end end return false end絕緣子=班(“絕緣體”,移動)圖像= love.graphics.newAnimation絕緣體(love.graphics.newImage(“images/isolator-0.png”),16,12,0.1,0)絕緣體圖:setCenter(8,6 )絕緣體功能:初始化(的x,y,params)self.super:初始化(的x,y)= self.ani絕緣體圖像self.speed = spieler.speed 結束函數絕緣體:canEnter(obj的) 地方的DX,鏑-只能不能訪問的球員 ,如果球員:由(obj的), 然後返回false結束 -絕緣體移動已經-我們不能進入它,或者它的方向來-否則我們就會通過他的自我,如果: isMoving(), 則返回false結束的DX = self.X - obj.x頤= self.y - obj.y 返回自己:canMoveTo(dx和dy) 結束函數絕緣體:canMoveTo(dx和dy) 本地外地=場景:當前():獲取(self.X + dx和dy self.y +) 如果外地== 0#* 然後自己:setTarget(dx的 16頤* 12) 返回true年底我,S 的雙 (場), 如果做不絕緣子:國產(e.obj), 而不是巴巴爾:(e.obj), 然後返回false否則如果 e.obj:canMoveTo(dx和dy), 那麼自:由setTarget(dx的* 16 12 *頤) 返回true結束年底結束返回false結束 |
另一個附帶好處是,能夠現在有幾個項目在同一領域。 當一個人進入現場的第一時間,通常只有一個對象在一個字段。 但是,誰發揮的博弈機器人已經知道一些時間來清理其庫存。 多田! 有什麼能比任何不需要在此刻,只是躺在一個堆? 當再次需要它,只需運行在外地和自動將你收集一切。
可惜我不能真的很高興我的小“成就”,因為它的成本框架:(剛才的介紹下與 1000 60幀在牆上,只是在第50次跌破其持有的場面依然在邊界( 300-400對象),但一旦你把他們周圍的絕緣體,你能再次消失高達 10幀。
不過有一個或其他的想法我怎麼可以限制損失。 但長遠而言,我會更好地尋找的東西一個表現之解決方案。 什麼複雜,但絕非快速中央腳本的對象 ...
現在我想,但仍然無法打破你的腦袋有問題,我已經想到了GUI來 GORC widment。 最後,比賽將是菜單,消息框,上面所有的庫存。 我們會看到,夜晚才剛剛開始微型
2009年1月22日
我有幾天開始在GORC流體運動,並試圖安裝一個小的代碼更容易做出。 由於如查理和機器人是針織非常相似,沒有什麼比兩個對象也得出同樣的功能(移動,使用...)讓。 它出來的東西是這樣的:
一
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| m = { } mx = 0 my = 0 return m end function movable_setPosition ( m, x, y ) mx = x my = y end -- Beispiel: spieler = movable_create ( ) movable_setPosition ( spieler, 2 , 2 ) movable_create 函數 ()()米=米x = 0 = 0 返回結束我的功能 movable_setPosition米(米的x,y)× = x我= Y 端 -例如:movable_create球員=()movable_setPosition(球員,2,2) |
一切都進行得還算順利。 但是,剛才我在想。 豈不是很有意思,建立整個對象? 但是,我們如何在南湖? 經過大量的使用Google和擺弄,我得出以下結論:
一
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| - Class.lua
baseClass ) 功能類(BaseClass的)
當地 new_class =()
__index = new_class } 當地 class_mt __index =()= new_class
self, ... ) new_class 功能:新的(自我,...)
當地 Newin =()
newinst, class_mt ) setmetatable Newin(class_mt)
Newin:初始化()
Newin 回報
結束
baseClass then 如果 〜= 零然後 BaseClass的
new_class, { __index = baseClass, __call = function ( self,... ) return self:new ( ... ) end } ) setmetatable(new_class,__index =(BaseClass的,__call = 功能 (自我,...) 返回自己:新(...) 完))
結束
new_class 功能:類()
返回 new_class
結束
功能 new_class:超()
返回 BaseClass的
結束
new_class 功能:初始化()
結束
theClass ) new_class 功能:是(theClass)
false b_isa 當地 = 假
new_class 當地 cur_class = new_class
nil ~ = cur_class ) and ( false == b_isa ) do 而(零 〜= cur_class) 和(假 == b_isa) 做
theClass then 然後,如果 cur_class == theClass
b_isa = 真
其他
cur_class = cur_class:父類()
結束
結束
返回 b_isa
結束
返回 new_class
結束 |
最好的在自己的文件,如“class.lua保存。 在行動上看到整體來說,我們有:
一
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
| "class.lua" ) love.filesystem。 要求 (“class.lua”)
-標準對象
nil )對象=類(無)
目標函數:初始化()
- Gridposition
self.X = 0
self.y = 0
-雪碧/動畫
self.ani = 0
結束
x, y )目標函數:setPosition( 的x,y)
self.X = x
self.y = Ÿ
結束
-移動物體
Object )可移動的=類(對象)
可移動的功能:初始化()
self.super():初始化()
-目標Gridposition
self.nx = 0
self.ny = 0
-定向運動,以消除(!)
self.dir = 0
self.ani_x = 0
self.ani_y = 0
-場每秒
self.speed = 4
self.last_update = 0
結束
可移動的功能:制定()
當地的x,y
) * 16 + self.ani_x x =(self.X - 1)* 16 + self.ani_x
12 + self.ani_y為y = 12 + * self.y self.ani_y
love.graphics.draw(self.ani中,x,y)的
結束
...
-例子:
牆=屬性()
, 15 )牆:setPosition(10,15)
移動球員=()
, 2 )球員:setPosition(2,2) |
現在問我,但不是所有這一切到底如何運作;)對我來說這是一。 誰是有興趣的運作仍然可以有這麼聰明閱讀以下網頁:
2009年1月19日
想像一下,你在前面,她只是一個小遊戲的iPhone,並書面德語。 但是,因為你要呼籲盡可能多的觀眾,應該有一個英文版本。 但你如何唱好這個問題? 有一次,我GOOGLE了一下。
在您的Xcode項目目錄您提交給兩個目錄:“de.lproj”和“en.lproj”
現在,它適合你的項目使用添加- >“新建文件... - >”其他- >“文件弦樂兩個新的文件添加Localizable.strings”。 一個在“de.lproj”和其他在“en.lproj”目錄。
您的項目的看法應該是這樣的:
我有時作為一個例子,一個主菜單,代碼仍然是這樣的:
一
2
3
4
5
6
7
| MenuItemFont itemFromString : @ "Starte Spiel" target : self selector : @selector ( startGame : ) ] ; MenuItem * help = [ MenuItemFont itemFromString : @ "Hilfe" target : self selector : @selector ( help : ) ] ;開始菜單項* = [MenuItemFont itemFromString:@“ 開始遊戲” 的目標:自我選擇:@ 選擇開始遊戲(:)];菜單項*幫助= [MenuItemFont itemFromString:@“ 幫助” 目標:自我選擇:@ 選擇 (幫助:)] ; |
字符串“開始遊戲”和“幫助取代”我們的NSLocalizedString()函數。StartGameKey和HelpKey給我們什麼字符串現在想擁有該機構說,翻譯,當然;)
一
2
3
4
5
6
7
8
9
| 菜單項*開始=
[MenuItemFont itemFromString:
, @ "" ) NSLocalizedString(@“StartGameKey”,@“”)
@selector ( startGame : ) ] ; 目標:自我選擇:@ 選擇 (開始遊戲:)];
*菜單項幫助=
[MenuItemFont itemFromString:
, @ "" ) NSLocalizedString(@“HelpKey”,@“”)
@selector ( help : ) ] ; 目標:自我選擇:@ 選擇 (幫助:)]; |
即使我們兩個Localizable.strings編輯文件,對這一方案得到我們後來翻譯的字符串。
德國:
一
2
| "Starte Spiel" ; “StartGameKey”=“開始遊戲”;
"Hilfe" ; “HelpKey”=“幫助”; |
英文:
一
2
| "Start Game" ; “StartGameKey”=“開始遊戲”;
"Help" ; “HelpKey”=“幫助”; |
我們曾經和已經交付給 iPhone的最佳語言翻譯:)是一個語言應設置,為此我們將提供任何翻譯似乎是採取了什麼是英語翻譯,在大多數情況下,完全確定。
2009年1月13日
雖然我仍然試圖找出如何呈現在OpenGL ES的紋理,現在出現的問題如何設計界面?
這裡有足夠多的一次典型的例子:
或者,正如我已經看到了我的角色扮演精靈:
不知怎的,這將是對我很重要,但其中的一些方式向我們提供最終整合iPhone。 減永久可見按鈕,減少不必要的三維視圖,並最終將成為不良,稍大的手指。 黨的議案,在3D視圖定義的領域,改變黨的建立drag'n'drop等一個非常粗略的結構可能是這樣的:
你怎麼看的呢? 或者你可能有更好的建議?
2009年1月10日
先前的文章