内容:今天翻到个好玩的视频,教用pygame模块开发一个游戏-坦克大战,然后我就学了一天。。。
一、找对象!!!!
所以说找对象是最最最重要的事情,让我看看谁不找对象。坦克大战中的对象很明显的几个就是,自己控制的坦克和敌人的坦克嘛,他俩都是坦克,那第一个对象就是坦克,它当父类子类就是敌方和我方坦克,然后第二个对象是子弹,第三个墙,最后一个就是爆炸,哦不对音效也算个对象,所以说我有5个对象哇。当然得先要个主函数做对象,要不然什么时候开始什么时候结束呢!!!
先class个最主干的对象 class MainGame(): 主函数对象需要实现的功能:开始游戏,结束游戏,移动,发射子弹,显示敌人个数
然后是tank这个对象 class Tank(self):
tank这个对象还有俩儿子 可以继承这个对象的属性
所以说还得class俩儿子对象 class MyTank(Tank):
class EnemyTank(Tank):
然后是class墙这个对象 class Wall (self):
然后子弹: class Bullet(self):
然后爆炸: class Explode(self):
最后音效:class Music(self):
好了宝子们对象找到了,该写代码了,从最大的框架往细小的框架写的话首先就是得先显示一下游戏界面吧,然后能开始游戏和退出游戏
二、显示游戏窗口
想要创建窗口光说一说就会吗?肯定不会,求人不如求己,pygame是个模块,专门用来游戏开发的,自己不会就多看看官网嘛说不定就有哇
不搜不知道,一搜好家伙我这个英语16级的老同志突然就精神了,pygame.display.set.mode()刚好适合我们。就完美的雅痞
我们只需要定义一下它的长宽就行,其他默认就ok了
以下为实现显示窗口及框架的代码
import pygame
_display = pygame.display
COLOR_BLACK=pygame.Color(0,0,0)
# 主函数
class MainGame():
# 游戏主窗口
window = None
SCREEN_HEIGHT = 500
SCREEN_WIDTH = 800
def __init__(self):
pass
# 开始游戏
def startGame(self):
_display.init()
# 创建窗口加载窗口
MainGame.window = _display.set_mode([MainGame().SCREEN_WIDTH, MainGame().SCREEN_HEIGHT])
_display.set_caption('坦克大战v.1.00')
#保持窗口持续存在(创建一个死循环)
while True:
MainGame.window.fill(COLOR_BLACK)
#持续更新
_display.update()
# 结束游戏
def endGame(self):
print('Game Over')
exit()
# 坦克类
class Tank:
def __init__(self):
pass
# 移动
def move(self):
pass
# 射击
def shot(self):
pass
# 展示
def display(self):
pass
# 我的坦克,继承坦克类
class MyTank(Tank):
def __init__(self):
pass
# 敌方坦克继承坦克类
class EnemyTank(Tank):
def __init__(self):
pass
# 子弹类
class Bullet:
def __init__(self):
pass
# 子弹的移动
def move(self):
pass
# 子弹展示
def displayBullet(self):
pass
# 爆炸类
class Explode:
def __init__(self):
pass
def displayExplode(self):
pass
# 墙壁类
class Wall():
def __init__(self):
pass
def displayWall(self):
pass
# 音效类
class Music():
def __init__(self):
pass
# 开始播放音乐
def playMusic(self):
pass
MainGame().startGame()
结语:
太开心了,我又能水至少俩天了,美滋滋。。。其实今天想做turtle的模块来着,然后画了一上午的像素画-enmm,怎么说呢,一言难尽啊,头一次见着耳朵张脑袋上,鼻子在嘴下面的。。。问题不大!!!