交互媒体设计作业:Processing射击游戏
一、简介
这是一个全年龄向的双人射击游戏,操作简单,容易上手,只需操控四个方向键,就能操控你的小球吐出子弹全屏弹跳,攻击你的对手。这个简单的小游戏通过processing实现,运用多种动画技术实现游戏的整体流畅。
二、游戏机制
玩家操控的小球由两个圆组成,中间的圆能够根据小球的运动变换形态,就像是这个小球的嘴能一张一合,子弹也是设定为小球“吐出“,小球的运动具有加速度,稍微增加操作难度,并增加一些实感,使玩家不能轻易的锁定对手。子弹会在玩家小球运动后以一定速度不断射出,子弹会不断变换颜色,但是色系与玩家操控的红蓝小球保持一致,以便玩家区分。不同玩家的子弹也有区别。红方的子弹是散弹,会发射三倍弹幕,让蓝方需要处处小心:蓝方的子弹则是在射出的一小段时间内具有追踪效果,红方需要逃脱子弹的追杀。子弹有碰撞判定,在撞击到边界后会进行反弹,在整张地图布满弹幕,玩家需要随时小心从四处飞来的流弹。子弹在一定时间或击中对手时消失,在地图上化作一圈涟漪,同时子弹击中对手时,对手小球会在一瞬闪烁,以示中弹。地图上方是双方的血条,被子弹击中会不断减少血量,率先将对方血条打空的玩家获得胜利。
三、核心技术
这个游戏的核心技术是粒子系统和操作系统。由于procesing一次最多只能储存一个按键,因此有实现双人同时操作需要定义按键列表储存当前被按下的按键,同时在释放时删除对应的按键。由于双人按键不同,因此定义两个不同的类来区分玩家的按键:
def keyPressed():
if key not in key0:
key0.append(key)
def keyReleased():
key0.remove(key)
双方的粒子也需存放在不同的粒子列表中,来实现对不同玩家的响