zoukankan      html  css  js  c++  java
  • 【小游戏开发】七巧板!思路、源码,超适合学习的小项目!

    游戏介绍

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


     

     

    新增内容

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

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

    有待完善...

    程序说明

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

    ▓ 属性

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

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

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

    ▓ 对象管理机制

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

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

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

    ▓ 对线段的数学描述

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

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

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

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

    程序源码

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

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

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

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


     

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


     
  • 相关阅读:
    oracle中Blob和Clob类型的区别
    为什么要分库分表
    Enable file editing in Visual Studio's debug mode
    SQL Server Dead Lock Log
    Debug .NET Framework Source
    SQL Server text field里面有换行符的时候copy到excel数据会散乱
    诊断和修复Web测试记录器(Web Test Recorder)问题
    Can't load Microsoft.ReportViewer.ProcessingObjectModel.dll
    'telnet' is not recognized as an internal or external command
    Linq to XML
  • 原文地址:https://www.cnblogs.com/huya-edu/p/15218495.html
Copyright © 2011-2022 走看看