• 【小游戏开发】七巧板!思路、源码,超适合学习的小项目!


    游戏介绍

    鼠标左键拖动图形移动,松开时自动吸附,按下 ctrl 键的同时拖动则不进行吸附,右键单击图形顺时针旋转 45°,ESC 结束游戏。


     

     

    新增内容

            1. 增加了点吸附效果,拖动图形松开后,触发边吸附的同时也会触发点吸附。

            2. 拖动图形的同时,若按下 ctrl 键,则不会进行吸附。

    有待完善...

    程序说明

    简要介绍程序中的一些点。

    ▓ 属性

    使用模板类和 lambda 表达式实现了属性,用于对外暴露字段,详见 C# 属性。

    使用属性可以简化程序,减少繁琐的 get 函数和 set 函数,提高了程序的可读性。

    因为是自行封装的属性,所以存在很大的缺陷,很大程度上增加了类的大小(因为把函数成员变成了数据成员),属性的重写以及访问控制的不完善等。

    ▓ 对象管理机制

    使用 Tangram 类来管理程序中所有的图形。

    每一个图形对象在被创建之初就被加入到 Tangram 中,由该类来统一管理。每一个图形类仅提供一些属性来供用户合法地修改一些数据。

    重载所有图形类公共基类 Base 类的 new 运算符,可以得知该对象位于栈中还是堆中,便于 Tangram 处理这些对象的析构。

    ▓ 对线段的数学描述

    使用四个参数来描述一条线段,利于距离计算。

        ▶ 斜率:线段所在直线的斜率,描述直线的倾斜程度。

        ▶ 原点距离:坐标原点到线段所在直线的距离矢量。绝对值为距离,符号代表方向,配合斜率可用于描述一条直线。

        ▶ 端点距离:过坐标原点引一条垂直于该线段所在直线的直线,垂足到线段的两个端点的距离矢量称为该线段的端点距离。

    程序源码

    【值得关注】我的 编 程 学 习 交 流 俱 乐 部 !【进入领取】

    —————————————

    一起学习,一起交流,不管你是转行也好,初学也罢,进阶也可,如果你想学编程,进阶程序员~

    更多C语言入门资料(网盘链接免费分享):


     

    全方位C语言书籍(PDF免费分享):


     
  • 相关阅读:
    【Web-Components】document.registerElement
    Date
    类型转换
    【Web-Components】HTML imports
    【Web-Components】
    【Web-Components】Shadow Dom
    【Mobile】
    数据库读写分离
    HDU——T 1711 Number Sequence
    洛谷——P2957 [USACO09OCT]谷仓里的回声Barn Echoes
  • 原文地址:https://www.cnblogs.com/huya-edu/p/15218495.html
Copyright © 2020-2023  润新知