佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

楼主: 弥勒

TETRIS游戏制作讨论区

[复制链接]
发表于 25-11-2008 12:22 AM | 显示全部楼层
找了幾個Tetris的Flash玩了幾下發現旋轉方面都有區別
比如説直綫
有的是左邊要空一格才能轉,右邊要空兩格才能轉
有的是左邊要空兩格才能轉,右邊要空一格才能轉
題外話)以前Favourite過一個Google到的Tetris的文章但沒有細看,是關於12行寫Tetris的
這個天才是這樣轉的
XOOO
XOOO
XOOO
XOOO

OOOO
OOOO
XXXX
OOOO

OXOO
OXOO
OXOO
OXOO

OOOO
XXXX
OOOO
OOOO
再轉回到
XOOO
XOOO
XOOO
XOOO
除了直綫外,這個天才的T在轉的時候也是會上下左右變化
OXOO
OXXO
OXOO
OOOO

OOOO
OXOO
XXXO
OOOO

OOOO
OOXO
OXXO
OOXO

OOOO
OXXX
OOXO
OOOO
再轉回到
OXOO
OXXO
OXOO
OOOO
像我這種寫Tetris要一百行以上的菜鳥還真的不得不對這種30行寫出來的天才配服到五体投地阿
回复

使用道具 举报


ADVERTISEMENT

发表于 25-11-2008 09:09 AM | 显示全部楼层
回复

使用道具 举报

发表于 27-11-2008 01:53 PM | 显示全部楼层
制作Tetris的流程
以下以ABC标题的,可以不管次序,以123标题就需要
A 定义Global参数
1。砖的种类
2。砖的方向
3。砖的位置 (也可以直接在下一个参数中放砖)
4。以自己的方式先定义游戏的空间,也就是方块落下的空间。可以用1D array或2D array。当中以bit就足够,除非方块的颜色想保持不一样,就用char或int之类的。(这是为什么我们玩的,掉下后都是一个颜色的)

B 设计/编写游戏规则和系统(main game loop)
1。定义一个loop,这个loop就是方块下跌的速度(当中会有一个参数可以自由更换下跌速度,这样很容易更改游戏难度)
2。Random一块砖(转动砖另外写)并且接受玩家的输入(input另外写)
3。更改砖的位置(下跌)
4。在loop中需要检查方块碰到了地没有,碰到后通长还允许玩家有一小段时间转或移动
5。过了允许玩家动的时间就把input给暂时freeze掉(input另外写)
6。检查吃了没有,吃了就加分,删除,移动等等
7。update 画面
8。停顿N秒(控制速度)

C 玩家输入
1。定义玩家的输入键
2。定义一个参数来hold砖的现况
3。定义一个参数来hold砖的种类
4。把每一个砖的每一个可能性都以array定义出来(参考#21楼)
5。当玩家一按输入键,就把参数转换

D 画面输出
1。根据游戏空间的array,以及砖的位置,把画面画出来。使用GDI+,directX,OpenGL都可以
2。通常是在Main Game Loop中Call这个Function

暂时想到这么多
遗漏的请大家补上吧
希望能够帮到楼主
回复

使用道具 举报

发表于 27-11-2008 06:11 PM | 显示全部楼层
想象你自己是一个方格,每隔一段时间或有按键就update一次:
先处理按键
下面都有空位就告诉邻居
自己和所有邻居下面都有空位就往下移
旁边是墙就告诉邻居
两个邻居都说有墙就自我消失
最后一个update就在高处生个孩子
不是第四个孩子就随机一边再生一个

PS: 第一个程式其实不用什么graphic driver的啦,ASCII art就可以了。
回复

使用道具 举报

发表于 28-11-2008 03:10 AM | 显示全部楼层

回复 22# tensaix2j 的帖子

看到這個很有趣
讓我也有想寫個類似的遊戲的衝動
回复

使用道具 举报

发表于 29-11-2008 10:09 PM | 显示全部楼层
原帖由 Squall_Chua 于 28-11-2008 03:10 AM 发表 看到這個很有趣讓我也有想寫個類似的遊戲的衝動
 
期待你的作品 
回复

使用道具 举报

Follow Us
发表于 30-11-2008 07:39 PM | 显示全部楼层

回复 26# tensaix2j 的帖子

表給我壓力
我不想一直開空頭支票
回复

使用道具 举报

发表于 1-12-2008 06:18 PM | 显示全部楼层
那就让我来开一张空头支票吧! http://bsd.miki.eu.org/~iquit/client.html
回复

使用道具 举报


ADVERTISEMENT

发表于 1-12-2008 07:40 PM | 显示全部楼层
LS 那个什么link来的
回复

使用道具 举报

发表于 8-12-2008 12:46 PM | 显示全部楼层
要倒了,有什么free shell hosting介绍吗?
回复

使用道具 举报

发表于 31-12-2008 11:46 AM | 显示全部楼层
原帖由 Squall_Chua 于 30-11-2008 07:39 PM 发表
表給我壓力
我不想一直開空頭支票


说的也是。。

我也是从来都没有办法完成一样东西,因为一直被 其它东西distract,
每天都有很多新东西学.。。今天学flex, 明天学 blender, 后天学 fruity loop, 永远都有新玩具玩。。。
回复

使用道具 举报

发表于 1-1-2009 08:25 PM | 显示全部楼层

回复 31# tensaix2j 的帖子

被你說中了

一下想玩這個
一下想玩那個
如果沒有一個很concrete的motivation的話
真的很難去完成一樣東西
回复

使用道具 举报

发表于 6-1-2009 01:07 AM | 显示全部楼层
原来大家都是这样,哈哈哈。。。我们可以一群这样的人组一个同好会正正经经的找一件事情来做也不错啊。。hmm..
回复

使用道具 举报

发表于 6-1-2009 03:21 AM | 显示全部楼层

回复 33# chingjun 的帖子

好主意哦
就由你來執行啦

你負責plan
plan好了在sourceforge開一個project
我們來加入幫忙做就好了
回复

使用道具 举报

发表于 10-1-2009 08:01 PM | 显示全部楼层

回复 34# Squall_Chua 的帖子

当然是找有名望有能力的人来做啊。。
我区区一个默默无闻的小角色,担当不起这个大担子啦。。

话说回来之前用c++编程的时候就会很羡慕那些java、ruby、php的人有这么多现成的library很方便调用
很想写一个像java的API 那样的一个大library 方便一下,而且还要cross-platform的

[ 本帖最后由 chingjun 于 10-1-2009 08:04 PM 编辑 ]
回复

使用道具 举报

发表于 11-1-2009 05:48 PM | 显示全部楼层

回复 35# chingjun 的帖子

寫c++你也可以去找很多library來用的
不過都比較low level
但是可以學到比較多東西
回复

使用道具 举报


ADVERTISEMENT

发表于 18-1-2009 04:05 PM | 显示全部楼层
我最近在学写android游戏, 有没有人也在学?
回复

使用道具 举报

发表于 22-2-2009 05:40 PM | 显示全部楼层

回复 37# tensaix2j 的帖子

偷偷的過來說
我最近也在研究android

形勢所逼沒辦法
回复

使用道具 举报

发表于 25-2-2009 09:03 PM | 显示全部楼层
这次就留给你开帖了。。。。
回复

使用道具 举报

发表于 26-2-2009 02:49 PM | 显示全部楼层

回复 39# tensaix2j 的帖子

我沒有在寫android的遊戲
所以你隨時都可以開帖先的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 8-12-2025 02:22 PM , Processed in 0.118685 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表