velocity

pygame游戏

安稳与你 提交于 2020-04-06 13:29:45
本次项目为pygame游戏开发,使用pycharm来进行开发。 游戏名称: 迷航。 游戏设定: 设定一架简略图标飞机。可以通过左右键或者鼠标控制方向,上键朝目前方向前进,空格或者左键进攻,一次一发子弹。边缘会不停的刷新陨石,地图无边界相通,在通过简单的第一关后,玩家需要防止飞船与陨石碰撞,偶尔会刷新外星飞船.飞船外围有一层保护膜可以防止一次伤害,飞船直接受损则死亡.注:大陨石被子弹击中时会分散成多个小的陨石。 游戏起始界面: 游戏界面 项目代码 1.alien.py(生成外星目标) import os import math import random import pygame from pygame import mixer import util import sprite import bullet import ship class Alien(sprite.Sprite): def __init__(self, world): super(Alien, self).__init__(world) self.points = [[1, 0], [-1, 0], [-0.7, 0], [-0.5, 0.2], [0.5, 0.2], [0.7, 0], [0.5, -0.4], [-0.5, -0.4], [-0.7, 0]] self.direction = random

pygame游戏

坚强是说给别人听的谎言 提交于 2020-04-05 21:00:07
本次项目为pygame游戏开发,使用pycharm来进行开发。本项目命名:迷航。 游戏设定:设定一架简略图标飞机。只可前进,和进攻,前进的方向可以由鼠标或者键盘的左右方向键控制,攻击命令可由空格或者单击鼠标左键完成,一次一发子弹。边缘会不停的刷新陨石,偶尔会刷新外星飞船。注:大陨石被子弹击中时会分散成多个小的陨石。 以下为所需的土图片素材 1:开始场景 2:游戏所需场景 3.音效素材省略 项目代码如下 1.alien.py(生成外星目标) import os import math import random import pygame from pygame import mixer import util import sprite import bullet import ship class Alien(sprite.Sprite): def __init__(self, world): super(Alien, self).__init__(world) self.points = [[1, 0], [-1, 0], [-0.7, 0], [-0.5, 0.2], [0.5, 0.2], [0.7, 0], [0.5, -0.4], [-0.5, -0.4], [-0.7, 0]] self.direction = random.randint(1, 2) * 2 - 3

Velocity可配置消息模版封装

别等时光非礼了梦想. 提交于 2020-04-05 19:10:49
背景:项目中时常有一些需要发消息给通知的场景(不是指消息队列..)。 消息的形式 有许多比如邮件,比如钉钉。 消息的内容 由业务决定,而且其中可能还包含动态参数。 消息的接收人 可能是固定的人,也可能是动态不确定的人。 消息的发送时机 一般都是在一段业务逻辑处理完成之后。 现在在做的项目,发送消息使用了Velocity 模板引擎。 在资源目录下有一个模版文件夹,专门放置.vm的消息模版。 每当有新的需要发送消息的场景就新建一个模版然后开发业务代码把动态参数和模版整合。 一般业务逻辑很少变化,可是出于体验或者什么的考量产品会经常调整消息的内容,这个时候就要改模版内容,然后上线。 优化:为了避免由于改动模版内容引发频繁上线,将消息模版做成可配置的。 需要抽离出来的就是三个部分:消息内容,消息接收人,消息发送时机。 1.思路: 2.方案: 3.实现: 3.1.涉及到的包: <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version> <exclusions> <exclusion> <groupId>commons-collections</groupId> <artifactId>commons-collections<

SpringMVC 集成 Velocity 模板引擎

只谈情不闲聊 提交于 2020-03-24 01:23:13
本文通过 maven 项目中集成 1、引入 SpringMVC 与 Velocity 需要的依赖 <!-- SpringMVC --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.7.RELEASE</version> </dependency> <!-- velocity --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-tools</artifactId> <version>2.0</version> </dependency> 2、在resources 目录下创建 SpringMVC 框架配置文件 dispatcherServlet.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www

velocity基础语法(部分)

北慕城南 提交于 2020-03-12 21:30:57
velocity是一个java的页面模板框架,Apache基金会出品,自从2010年出了1.7版本之后,就没有出新版本了,svn里面有一个2.0的分支,但是下载下来根本没有办法编译过,会有各种奇怪的maven依赖问题,据传已经把人调过去开发freemarker了。 其他的不说了,不更新,想好一点就是足够稳定了,不需要更新了。 下面是我在自学的时候整理的部分语法,贴在这里,大家来指正一下。:) ##关键字 所有的关键字都是以 # 开头的,而所有的变量则是以 $ 开头 ##变量 定义变量使用 #set( $iAm = "good!" ) ,而 #set( $hhh = "good! $iAm" ) 则会读取 $ 对应的变量的值,将值填充到对应的位置 在找不到对应的变量的时候会将其当成普通字符串进行处理 当时用单引号将 $xxx 引起来的时候不会对其进行变量替换 在使用变量的时候可以使用 $name 和 ${name} 的形式,但是对于同时定义了name和names的情况,$names就没办法正确识别了, 就只能用${names}的形式。 对于复杂的对象类型变量,使用${person.name}可以访问得到name属性的值,其实这是通过对get方法的访问得到的, 也就是 ${person.name} 等同于 ${person.getName()} ###变量赋值 变量是弱类型的

Hello 2019! Hanjst/汉吉斯特 模板语言及引擎创新发布

故事扮演 提交于 2020-03-11 22:59:53
Hello 2019! Hanjst/汉吉斯特 模板语言及引擎创新发布。 值此一元复始之际,恭祝 网友们新年万事如意! 寄望 Hanjst/汉吉斯特能帮助大家从各种模板中解脱出来,为人类做出更大的贡献。 1. 背景 网页模板语言/引擎缘起于 MVC 思想的引入。当软件项目膨胀复杂到足够大时,软件研发人员与UI/UE设计人员就需要分别独立出来,其中设计制作人员工作的V(View)部分需要用模板语言与引擎。 模板语言及引擎的设计与研发工作是一项既简单又复杂的工作。简单地说,模板就是一种变量替换的工作,在模板中预留相应的占位符和变量标记,模板引擎在工作时在相应的占位符将对应的变量替换为实际对应的数值即可。 复杂地说,模板语言是一种全新表达语言的设计,设计一门语言,其难度是可想而知的,这门语言要能够满足日常沟通之需要,首先或入门的是语言设计者要考虑的,是该模板语言能够普遍接受和广泛使用,这样语言才有生命力。无疑,简洁而表意丰富是重要而优先的考虑项。 先行者已经在模板领域创制出大量符合各种需求的模板语言与模板引擎,这里是一个简单的归集 -R/U2SJ , 为了更好的梳理其发展类别,我们绘制了一个 Mind map: Fig1. 网页模板语言分类概括 2. 问题讨论 如在Fig1中所展示的,模板语言及引擎有很多种类,每个分类下面又有不同的应用实例,可谓多姿多彩,琳琅满目。实际上

Flutter 拖拽控件Draggable看这一篇就够了

好久不见. 提交于 2020-03-10 22:18:31
注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 Draggable系列组件可以让我们拖动组件。 Draggable Draggable组件有2个必须填写的参数, child 参数是子控件, feedback 参数是拖动时跟随移动的组件,用法如下: Draggable( child: Container( height: 100, width: 100, alignment: Alignment.center, decoration: BoxDecoration( color: Colors.red, borderRadius: BorderRadius.circular(10) ), child: Text('孟',style: TextStyle(color: Colors.white,fontSize: 18),), ), feedback: Container( height: 100, width: 100, alignment: Alignment.center, decoration: BoxDecoration( color: Colors.blue, borderRadius: BorderRadius.circular(10) ), child: Text('孟'

Velocity根据模版生成静态html

泄露秘密 提交于 2020-03-05 09:45:43
  新公司的一个CMS项目要用到,这里记录下 一、项目文件图 二、springmvc-servlet.xml 添加 <!-- 定义环境变量文件 --> <bean id="propertyHolder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/> <property name="ignoreResourceNotFound" value="true"/> <property name="locations"> <list> <value>classpath*:/*.properties</value> </list> </property> </bean> 三、html_template.vm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv=

《 Java 编程思想》CH07 复用类

≡放荡痞女 提交于 2020-02-28 11:15:47
复用代码是 Java 众多引人注目的功能之一。 Java 可以通过创建类来复用代码,要在使用类的时候不破坏现有代码,有两种方式: 组合:在新的类中使用现有类的对象。 继承:按照现有类的类型来创建新类,无需改变现有类的形式,并为其添加新代码。 组合语法 使用组合技术只需要将对象引用置于新类中。 每个非基本类型的对象都有一个 toString() 方法,而且当编译器需要一个 String 而你传入一个对象时, toString() 会被调用。 类中的对象引用会被默认初始化为 null,如果你对其调用任何方法都会抛出异常,但是可以在不抛出异常的情况下,仍然可以打印一个 null 引用 类中对象引用的初始化位置: 在定义对象的地方 在类的构造器中 惰性初始化,即在要使用该对象的地方进行初始化 实例初始化 class Soap { private String s; Soap() { System.out.println("Soup()"); s = "Constructed"; } @Override public String toString() { return s; } } /** * Bath */ public class Bath { private String s1 = "happy", // 在定义处初始化 s2; private Soap soap; private

前后端分离概述

孤街醉人 提交于 2020-02-28 07:54:53
背景 前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。 核心思想是前端HTML页面通过AJAX调用后端的RESTFUL API接口并使用JSON数据进行交互。 Web服务器:一般指像Nginx,Apache这类的服务器,他们一般只能解析静态资源; 应用服务器:一般指像Tomcat,Jetty,Resin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有web服务器好; 一般都是只有web服务器才能被外网访问,应用服务器只能内网访问。 以前的Java Web项目大多数都是Java程序员又当爹又当妈,又搞前端,又搞后端。随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事情,后端工程师只管后端的事情。正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精。大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,前后端需要分离。 2、未分离时代(各种耦合) 早期主要使用MVC框架,Jsp+Servlet的结构图如下: