前言
最近决定要做游戏,虽然最应该学习的是C#语言,因为要学习unity,但是语言都是触类旁通的,关键是实现的方法和思想,不同代码的不同细节,慢慢就会熟能生巧了。今天听课遇到了一个小游戏,于是准备python来模拟实现一下。
功能(第一次)
1.炮台,一直存在,每秒发射一个激光炮
2.飞机,每3秒产生一架
3.激光炮(每秒一个),发射后立即判断是否击落飞机,攻击飞机50%击落飞机
4.世界在30秒后结束
分析:
第一次的功能是比较简单的,主要分为这么几个功能:
1.产生飞机,产生子弹,使用类来创建对象
2.倒计时功能,因为存在3个倒计时,分别是,3秒飞机生成,1秒激光炮生成,30秒世界结束。所以可以使用一个函数来计算。查了一些网上的资料,很多是使用time.sleep()
函数,但是这么做的话,无论time.sleep()
出现在哪一种倒计时中,都会让整个线程暂停,除非使用多线程的编程,但那样未免小题大作了,这里我用了不断获取当前时间与上一次时间的时间差来触发计时。
功能(第二次)
飞机1秒出现2架,且,飞机1在x0y100处,飞机2在x100,y100处,炮台在x50,y0处。
飞机以20/秒的速度飞向y0,(5秒就到达y0),一旦有飞机到达y0,游戏结束。
激光炮会优先攻击距离自己最近的飞机。
下面是代码:
import time
import random
class Plane:
def __init__(self,x,y,speed):
self.x = x
self.y = y
self.speed = speed
def change_position(self):
self.y -= self.speed
#class Pao:
#def __init__(self,x,y):
def calculate_seconds(a,b):
'a>b & a∈ 00:00 pattern'