人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

Pygame實(shí)戰(zhàn)練習(xí)之保護(hù)單身狗游戲

發(fā)布日期:2022-01-01 15:21 | 文章來(lái)源:站長(zhǎng)之家

導(dǎo)語(yǔ)

各位戲精大家好!我是木木子,這個(gè)中秋已經(jīng)結(jié)束了,你們都帶著對(duì)象回家了碼?

中秋那幾天朋友圈簡(jiǎn)直是大型秀恩愛現(xiàn)場(chǎng)。

又是一年中秋夜,依舊憑實(shí)力單身!呼吁大家記得保護(hù)下單身狗啊喂!

作為一條人畜無(wú)害可可愛愛的單身狗

每年的假期幾乎都被傷的體無(wú)完膚,今年我們不僅要好好生存,還要勇敢報(bào)復(fù),讓情侶們知道:

單身狗不是這么好欺負(fù)的~單身狗們報(bào)仇吧!今天帶大家寫一款賊有趣的單身狗小游戲~

正文

首先準(zhǔn)備好圖片素材等:

bgm音樂(lè)必備:

import pygame
 
class Sound():
 def __init__(self):
  pygame.mixer.music.load('../sound/baab.mp3')
  pygame.mixer.music.play()

​先上效果圖嘿嘿嘿 看好哈:

游戲界面——

程序運(yùn)行——

(1)設(shè)置滾動(dòng)的背景:

#地圖滾動(dòng)
import pygame
import random
 
class GameBackground(object):
 # 初始化地圖
 def __init__(self, scene):
  # 加載相同張圖片資源,做交替實(shí)現(xiàn)地圖滾動(dòng)
  self.image1 = pygame.image.load("../image/background.png")
  self.image2 = pygame.image.load("../image/background.png")
  # 保存場(chǎng)景對(duì)象
  self.main_scene = scene
  # 輔助移動(dòng)地圖
  self.x1 = 0
  self.x2 = 1280
  self.snowflag=False
 
 # 計(jì)算地圖圖片繪制坐標(biāo)
 def action(self):
  self.x1 = self.x1 - 1
  self.x2 = self.x2 - 1
  if self.x1 <= -1279:
self.x1 = 1279
  if self.x2 <= -1279:
self.x2 = 1279
 
 # 繪制地圖的兩張圖片
 def draw(self):
  self.main_scene.blit(self.image1, (self.x1,0))
  self.main_scene.blit(self.image2, (self.x2,0))
 
 
class Snow():
 # 雪花的豎直速度
 def __init__(self):
  self.x = 0  # 雪花的橫坐標(biāo)
  self.y = 0  # 雪花的縱坐標(biāo)
  self.vx = 0  # 雪花的水平速度
  self.vy = 0
  self.x = random.randint(0,1280)# 初始化雪花橫坐標(biāo)
  self.y = random.randint(0,390)#初始化雪花縱坐標(biāo)
 def getsnowpos(self):
  return self.x,self.y# 返回雪花坐標(biāo)位置

(2)單身狗不能碰到情侶檢測(cè)碰撞:

import pygame
 
 
class Collide():
 def __init__(self):
  self.gamestatus=True
  self.snowflag=False
  self.dogflag=0
  self.score=0
  self.scoreup=200
  self.gameover=False
  self.count=0
 
 def dogs_cpdogs(self,dogs,cpdogs):
  boooooooooooooooool=pygame.sprite.groupcollide(dogs,cpdogs,False,True)
  if boooooooooooooooool:
self.score += self.scoreup
print(self.score)
 
 def dog_cpdog(self,dog,cpdog2s):
  booooooool=pygame.sprite.spritecollide(dog,cpdog2s,True)
  if booooooool:
self.snowflag = True
self.count += 1
if self.count>=3:
 self.gameover=True

​(3)主函數(shù):

import pygame
import sys,os
import random
from background import GameBackground,Snow
from dog import MySprite
from cpdog import Monster,MySprite2
from pygame.sprite import Group
from collidedetection import Collide
from sound import Sound
from score import Fontf
from crydog import MySpritec
 
 
pygame.init()
screen=pygame.display.set_mode((1280,390))
fpsset=pygame.time.Clock()
bgcolor=(255,240,30)
background=GameBackground(screen)
dog=MySprite() 
dog.load("../image/dog.png", 82, 62, 3)
dog.X = 0
dog.Y = 285
dogs = pygame.sprite.Group()
dogs.add(dog)
cpdogs=Group()
lasttimecreat=0
collidetest=Collide()
sound=Sound()
cpdog2s = pygame.sprite.Group()
snowlist = []
for i in range(0, 50):  # 建立50個(gè)雪花
 snow=Snow()
 snowlist.append(snow)
scor=Fontf(screen)
onoff = True
crydog=None
 
 
while 1:
 for event in pygame.event.get():
  if event.type == pygame.QUIT:
sys.exit()
  # player ctrl
  if event.type==pygame.KEYDOWN:
if event.key==pygame.K_RIGHT:
 dog.movieRight=True
if event.key == pygame.K_LEFT:
 dog.movieLeft=True
if event.key==pygame.K_SPACE:
 if not dog.jumping:
  dog.jumping=True
  dog.vUP = -14
  if event.type == pygame.KEYUP:
if event.key == pygame.K_RIGHT:
 dog.movieRight=False
if event.key==pygame.K_LEFT:
 dog.movieLeft=False
  if event.type==pygame.MOUSEBUTTONDOWN:
mousex,mousey=pygame.mouse.get_pos()
if mousex>=540 and mousex<=540 + scor.text_width:
 if mousey>=180 and mousey<=180 + scor.text_height:
  onoff = False
 if dog.jumping:
  if dog.vUP < 0:
dog.vUP += 0.6
  elif dog.vUP >= 0:
dog.vUP += 0.8
  dog.Y += dog.vUP
  if dog.Y >= 290:
dog.jumping = False
dog.Y = 290
dog.vUP = 0.0
 if not collidetest.gameover:
 
  if onoff:
scor.beginpage()
print(onoff)
 
  else:
print(onoff)
  #碰撞檢測(cè)
collidetest.dogs_cpdogs(dogs,cpdogs)
collidetest.dog_cpdog(dog,cpdog2s)
#背景
background.action()
background.draw()
#分?jǐn)?shù)
# scor.beginpage()
collidetest.score+=1
scor.displayScore(collidetest.score)
#時(shí)間控制
ticks = pygame.time.get_ticks()
#player繪制
dogs.update(ticks)
dogs.draw(screen)
 
cpdog2s.update(ticks)
cpdog2s.draw(screen)
if ticks >lasttimecreat  + random.randint(1000,20000):
  #生成障礙物
 cp = Monster(screen)
 cpdogs.add(cp)
 cpdog2 = MySprite2()
 cpdog2.load("../image/cpdogs.png", 113, 62, 3)
 cpdog2.X = 1280
 cpdog2.Y = 285
 cpdog2s.add(cpdog2)
 lasttimecreat=ticks
 
for m in cpdogs:
 m.draw_monster()
 if m.rect.x <=640:
  del m
cpdogs.update()
  #snow
if collidetest.snowflag:
 for snow in snowlist:
  # 每個(gè)雪花位置的變換
  # if random.randint(0,1):
  snow.vx = random.randint(-3,3)  # 雪花的橫向速度
  snow.vy = 1# 雪花的豎直速度
  snow.x += snow.vx# 雪花的橫軸移動(dòng)位置
  snow.y += snow.vy# 雪花的縱軸移動(dòng)位置
  if snow.y > 500:snow.y = 0
  pygame.draw.circle(screen,[255,255,255],snow.getsnowpos(),1)
 else:
  if collidetest.snowflag:
background.action()
background.draw()
for snow in snowlist:
 snow.vx = random.randint(-3, 3)
 snow.vy = 1
 snow.x += snow.vx
 snow.y += snow.vy
 if snow.y > 500:
  snow.y = 0
 pygame.draw.circle(screen, [255, 255, 255], snow.getsnowpos(), 1)
if not crydog:
 crydog=MySpritec()
 crydog.load("../image/crydog.png", 82, 62,3)
 crydog.X = 100
 crydog.Y = 285
 crydogs=Group()
 crydogs.add(crydog)
ticks = pygame.time.get_ticks()
# player繪制
crydogs.update(ticks)
crydogs.draw(screen)
scor.gameoverrrrrrrrr()
if crydog.X>1280:
 sys.exit()
 fpsset.tick(60)
 pygame.display.update()

效果圖:游戲規(guī)則躲避情侶狗,一直奔跑加分!

​總結(jié)

好啦!單身狗大戰(zhàn)即將開始,come on。

哈哈哈哈 這游戲蠻有趣的撒!你們的支持是我最大的動(dòng)力,記得三連哦~木?。?/p>

到此這篇關(guān)于Pygame實(shí)戰(zhàn)練習(xí)之保護(hù)單身狗游戲的文章就介紹到這了,更多相關(guān)Pygame 保護(hù)單身狗游戲內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部