吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5223|回复: 14
收起左侧

[其他原创] 【笔记】【原创源码】一个简单的俄罗斯方块练习

  [复制链接]
yuna 发表于 2015-12-1 10:33
本帖最后由 yuna 于 2015-12-1 17:38 编辑

严格讲不是原创,是看视频后再写出来的。发出来主要是自己小结,做笔记。(笔记在10楼)
先上截图和源码:
GameSolution.rar (71.77 KB, 下载次数: 58)

类关系图

类关系图

项目文件列表

项目文件列表

主界面

主界面

免费评分

参与人数 2热心值 +2 收起 理由
shuai7boy + 1 谢谢@Thanks!
Cizel + 1 动手做的感觉蛮好~

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| yuna 发表于 2015-12-1 17:38
本帖最后由 yuna 于 2015-12-1 17:40 编辑

多谢各位回贴,补上学习笔记
【笔记】
#1
    System.Drawing.Graphics类,详述见https://msdn.microsoft.com/zh-cn/library/system.drawing.graphics.aspx。
    在控件上画图分两步(1)[控件].CreateGraphics创建graphics实例(2)[graphics].DrawRectangle画图。
    传控件句柄也可以创建graphics实例,Graphics.FormHwnd(intPtr)。
#2
    对象的思想分析整个游戏。形状类(Shape)、形状单元类(Unit)、背景类(Ground)容易理解,游戏控制类(GameController)、游戏面板类(GamePanel)稍难,把分析的过程走一遍。
    (1)Form1主窗口就是玩家,他不能具体指挥形状怎么生成、界面怎么绘制。他要做的就是:开始、玩。所以要找个人(new个游戏控制类)做事,然后点按钮开始,点键盘移动旋转
    (2)游戏控制类要控制场景中的对象,所以在属性中要保存各对象;要将玩家的指挥具体化,所以要提供相应方法。比如玩家点开始,控制类就创建形状、背景等对象,创建一个线程,让形状移动;玩家点移动,控制类就指挥形状移动,指挥界面重绘等。
    (3)控制类核心是“控制”,他主要精力是指挥形状下落、移动,遇障碍停止,背景中障碍物的增加、减少(消行)等。形状如何下落,如何绘制,背景如何变化等,就交给他们自身解决。
    (4)形状、背景都要绘制,所以封装到一起,用游戏面板类同时重绘。
#3
    多使用结构、枚举可提高代码可读性
#4
    protected override bool ProcessDialogKey(Keys keyData)获取键盘输入
#5
    Button.CheckForIllegalCrossThreadCalls = false 交叉线程访问验证设置
#6
    判断形状能否移动、旋转的方法——预动法,先动再判断是否出界、有障碍物
#7
    旋转的方法——不是用加减算法改小方块坐标实现旋转,而是直接写出四个方向的小方块坐标
#8
    线程锁的运用

moodlee 发表于 2015-12-6 21:37
真心不错。
比较编程习惯,我发现我的编程喜欢还可以进一步改进,譬如说,对象的灵活运用。
类会用,但是类包还没有尝试过,不知道用类包是什么感觉。
数据结构还没有接触过(一直听说其大名),真心想去接触一下,传说是一个神奇的东西!

在此,我有一些疑问:
在做小游戏的时候,我的思路是这样的,绘制工作在Form类里面,而创建其他类的主要目的是计算数据(譬如说碰撞...)。
也就是,我想用其他类来支持Form类里面的绘制,而不把绘制的任务交给其他类。
这种思路是不是比较落后?
(野路子学习,全靠自己想怎么做就怎么做,所以请不要见怪。)
常黑屏 发表于 2015-12-1 10:43
interv 发表于 2015-12-1 10:46
不错,LZ也是原创了
hackxiaonian 发表于 2015-12-1 10:47
加油    看好你    太棒了!
snwfnh 发表于 2015-12-1 11:05
恭喜楼主 我还在学习中
零和游戏 发表于 2015-12-1 11:16
高手都是从新手过来的,鼓励下
zxd07536160765 发表于 2015-12-1 12:07
路过看看!!!!
头像被屏蔽
jmf 发表于 2015-12-1 12:21
提示: 作者被禁止或删除 内容自动屏蔽
风中风 发表于 2015-12-1 12:53 来自手机
支持楼主,厉害!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 15:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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