安卓系统python编程怎样,安卓好用的python编辑器

各位读者,小编来为大家解答,安卓python编辑器模块安装不了 安卓版python编辑器安装tkinter,现在让我们一起来看看吧!

大家好,小编为大家解答打地鼠python程序设计说明的问题python语法错误撤回方法,python语法错误怎么解决。很多人还不知道python打地鼠代码详细教程,现在让我们一起来看看吧!

Python打地鼠小游戏源代码,打地鼠游戏是一款具有童年回忆的游戏,不知你是否还记得童年时站在电玩城打地鼠游戏机的前面疯狂的挥动手中的棒槌,一直不停的打地鼠,那个时候是不是觉得很好玩呢。程序运行截图: 核心代码:

'''
Function:
	打地鼠(Whac-A-Mole)小游戏
Author:
	Charles
微信公众号:
	Python代码大全
'''
import cfg
import pygame
import random
from  import *
from modules.sprites.hammer import *
from modules.interfaces.endinterface import *
from modules.interfaces.startinterface import *


'''游戏初始化'''
def initGame():
	()
	()
	screen = pygame.display.set_mode(cfg.SCREENSIZE)
	pygame.display.set_caption('打地鼠-微信公众号:Python代码大全')
	return screen


'''主函数'''
def main():
	# 初始化
	screen = initGame()
	# 加载背景音乐和其他音效
	(cfg.BGM_PATH)
	(-1)
	audios = {
				'count_down': pygame.mixer.Sound(cfg.COUNT_DOWN_SOUND_PATH),
				'hammering': pygame.mixer.Sound(cfg.HAMMERING_SOUND_PATH)
			}
	# 加载字体
	font = (cfg.FONT_PATH, 40)
	# 加载背景图片
	bg_img = (cfg.GAME_BG_IMAGEPATH)
	# 开始界面
	startInterface(screen, cfg.GAME_BEGIN_IMAGEPATHS)
	# 地鼠改变位置的计时
	hole_pos = random.choice(cfg.HOLE_POSITIONS)
	change_hole_event = pygame.USEREVENT
	.set_timer(change_hole_event, 800)
	# 地鼠
	mole = Mole(cfg.MOLE_IMAGEPATHS, hole_pos)
	# 锤子
	hammer = Hammer(cfg.HAMMER_IMAGEPATHS, (500, 250))
	# 时钟
	clock = .Clock()
	# 分数
	your_score = 0
	flag = False
	# 初始时间
	init_time = .get_ticks()
	# 游戏主循环
	while True:
		# --游戏时间为60s
		time_remain = round((61000 - (.get_ticks() - init_time)) / 1000.)
		# --游戏时间减少, 地鼠变位置速度变快
		if time_remain == 40 and not flag:
			hole_pos = random.choice(cfg.HOLE_POSITIONS)
			mole.reset()
			mole.setPosition(hole_pos)
			.set_timer(change_hole_event, 650)
			flag = True
		elif time_remain == 20 and flag:
			hole_pos = random.choice(cfg.HOLE_POSITIONS)
			mole.reset()
			mole.setPosition(hole_pos)
			.set_timer(change_hole_event, 500)
			flag = False
		# --倒计时音效
		if time_remain == 10:
			audios['count_down'].play()
		# --游戏结束
		if time_remain < 0: break
		count_down_text = font.render('Time: '+str(time_remain), True, cfg.WHITE)
		# --按键检测
		for event in ():
			if  == :
				()
				()
			elif  == pygame.MOUSEMOTION:
				hammer.setPosition(pygame.mouse.get_pos())
			elif  == pygame.MOUSEBUTTONDOWN:
				if event.button == 1:
					hammer.setHammering()
			elif  == change_hole_event:
				hole_pos = random.choice(cfg.HOLE_POSITIONS)
				mole.reset()
				mole.setPosition(hole_pos)
		# --碰撞检测
		if hammer.is_hammering and not mole.is_hammer:
			is_hammer = pygame.sprite.collide_mask(hammer, mole)
			if is_hammer:
				audios['hammering'].play()
				mole.setBeHammered()
				your_score += 10
		# --分数
		your_score_text = font.render('Score: '+str(your_score), True, cfg.BROWN)
		# --绑定必要的游戏元素到屏幕(注意顺序)
		(bg_img, (0, 0))
		(count_down_text, (875, 8))
		(your_score_text, (800, 430))
		(screen)
		(screen)
		# --更新
		()
		(60)
	# 读取最佳分数(try块避免第一次游戏无.rec文件)
	try:
		best_score = int(open(cfg.RECORD_PATH).read())
	except:
		best_score = 0
	# 若当前分数大于最佳分数则更新最佳分数
	if your_score > best_score:
		f = open(cfg.RECORD_PATH, 'w')
		f.write(str(your_score))
		f.close()
	# 结束界面
	score_info = {'your_score': your_score, 'best_score': best_score}
	is_restart = endInterface(screen, cfg.GAME_END_IMAGEPATH, cfg.GAME_AGAIN_IMAGEPATHS, score_info, cfg.FONT_PATH, [cfg.WHITE, ], cfg.SCREENSIZE)
	return is_restart


'''run'''
if __name__ == '__main__':
	while True:
		is_restart = main()
		if not is_restart:
			break

'''配置文件'''
import os


CURPATH = os.getcwd()
SCREENSIZE = (993, 477)
HAMMER_IMAGEPATHS = [(CURPATH, ''), (CURPATH, '')]
GAME_BEGIN_IMAGEPATHS = [(CURPATH, ''), (CURPATH, '')]
GAME_AGAIN_IMAGEPATHS = [(CURPATH, ''), (CURPATH, '')]
GAME_BG_IMAGEPATH = (CURPATH, '')
GAME_END_IMAGEPATH = (CURPATH, '')
MOLE_IMAGEPATHS = [(CURPATH, ''), (CURPATH, ''),
                   (CURPATH, ''), (CURPATH, '')]
HOLE_POSITIONS = [(90, -20), (405, -20), (720, -20), (90, 140), (405, 140), (720, 140), (90, 290), (405, 290), (720, 290)]
BGM_PATH = 'resources/audios/bgm.mp3'
COUNT_DOWN_SOUND_PATH = ''
HAMMERING_SOUND_PATH = ''
FONT_PATH = ''
BROWN = (150, 75, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
RECORD_PATH = ''

'''
Function:
    定义锤子
Author:
    Charles
微信公众号:
    Python代码大全
'''
import pygame


'''锤子类'''
class Hammer(pygame.sprite.Sprite):
    def __init__(self, image_paths, position, **kwargs):
        pygame.sprite.Sprite.__init__(self)
        self.images = [(image_paths[0]), (image_paths[1])]
        self.image = self.images[0]
         = self.image.get_rect()
         = .from_surface(self.images[1])
        ,  = position
        # 用于显示锤击时的特效
        self.hammer_count = 0
        self.hammer_last_time = 4
        self.is_hammering = False
    '''设置位置'''
    def setPosition(self, pos):
        .centerx, .centery = pos
    '''设置hammering'''
    def setHammering(self):
        self.is_hammering = True
    '''显示在屏幕上'''
    def draw(self, screen):
        if self.is_hammering:
            self.image = self.images[1]
            self.hammer_count += 1
            if self.hammer_count > self.hammer_last_time:
                self.is_hammering = False
                self.hammer_count = 0
        else:
            self.image = self.images[0]
        (self.image, )

完整程序代码下载:Python打地鼠小游戏源代码 更多Python源代码,请关注公众号:Python代码大全70个python练手项目。


原文地址1:https://blog.csdn.net/nannannanmu/article/details/134971847
python手册 http://www.78tp.com/python/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值