找回密码
 立即注册!
搜索

小喇叭+ 发布

12-31 23:03
系统消息:尊敬的用户,动象论坛的邮件系统已经完美修复,您现在可以顺利使用自助注册和找回密码功能了。万分感谢你对动象论坛的喜爱与支持~
06-10 15:28
系统消息:很抱歉的通知您,当前论坛的邮件系统暂时出现故障,因此自助注册和找回密码的功能将无法使用。如有任何需要,您可以直接添加客服QQ:230273459进行人工操作。对此给您带来的不便,我们深感歉意。
06-10 09:11
admin动象论坛祝大家端午快乐~悠悠粽草,人间芳华,年年岁岁皆如愿,岁岁年年长安康。
06-10 09:09
系统消息:动象论坛祝大家高考加油~
06-09 15:13
系统消息:各位坛友,由于“两会”封网原因,动象论坛服务中止了约一个星期,对于由此给您造成的麻烦我们感到万分抱歉。
03-18 23:04
admin动象论坛在这里祝大家2024龙年新年快乐~
02-09 14:58
系统消息:论坛端口问题已经解决~您可以直接访问论坛域名mcmc.ltd(www.mcmc.ltd)啦~(Tips:如访问时提示“连接被重置”报错,请清空您的DNS缓存与浏览器缓存。)
02-05 19:14
系统消息:论坛预计今天晚间将端口问题修复完成,请留意论坛动态,感谢您对动象论坛的支持~
02-05 14:06
系统消息:动象论坛目前正在紧急迁移服务器,目前请您先访问https://mcmc.ltd:150。论坛正在全力找CDN以修复端口问题,由此给您造成影响亿常抱歉。。
02-05 11:23
系统消息:动象论坛祝大家2024年新年快乐吖~祝大家前路浩浩荡荡,万事皆可期待~
12-31 22:41
系统消息:动象论坛拟于7月20日至7月21日进行服务器迁移和域名更换,届时论坛服务将暂时不可用。对此给您带来的麻烦,我们感到十分抱歉。
07-18 19:51
Mozillahello world
07-04 17:39
系统消息:高考倒计时2天!动象论坛祝大家2023高考完胜!加油!!!!!!
06-04 23:44
神秘人:
03-21 07:20
系统消息:向各位论坛坛友公开一下,我们现在吸收了@luoying2334 为论坛管理团队成员,管理讨论区、软件分享区和得闲饮茶区。如您有任何质疑,请您在【意见与建议】版块发帖,感谢您的支持~
03-20 23:23
admin论坛没啥人气啊emmm,欢迎大家来推荐退荐~
03-12 22:34
02-05 11:11
luoying2334给我学狗叫啊,三回啊三回
02-05 11:11
Civilmafia追尾黑色高级车
02-04 14:27
查看: 4969|回复: 35

秀 技 术

[复制链接]

54

主题

156

回帖

371

积分

试剑江湖

致敬·Mozilla Firefox

积分
371

最佳新人活跃会员

发表于 2020-7-11 20:10:08 | 显示全部楼层 |阅读模式 IP:江苏苏州
改天我再写个网络爬虫的程序。5 L# g  R" n, X/ P7 p0 ~; A: ?9 E
需要准备:1、至少安装python3.6及以上版本。
8 p. i: P, z" q2、安装完成后直接输入命令行pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame后等待安装完pygame库。& B) N" |# R4 M; G
3、下载帖子附件,解压后请不要对文件夹做任何更改。直接运行那个.py文件即可。
) g+ I, r+ y5 I% J: L接下来是代码:
' q) `+ s$ E0 w: Q0 k+ L
  1. import pygame2 l$ W2 g/ h* Q3 |5 R
  2. import random
    3 @' G) S% t# ~$ s7 n& l6 V
  3. import time, F4 @8 I. Z  s) s( w

  4. 0 J& ~( Z  `! T5 P& |
  5. pygame.init()! n( n' u8 i1 q
  6. screen=pygame.display.set_mode([288,512])  #此为assets/background.png背景图片尺寸
    1 y/ K$ h2 ^5 L: D. u& Z0 C& w
  7.   F) ]7 [" P$ M5 k/ l7 a/ f
  8. background=pygame.image.load('assets/background.png')#背景图片' L- c) {6 t! K7 `/ P6 s
  9. pygame.display.set_caption('Flappy Bird')#标题
    4 ]& J* v7 M/ ^- S

  10. 6 k3 U2 C. ]7 D* D/ F( g2 E
  11. bgm=pygame.mixer.Sound('sound/bgm2.wav')  #mixer专门负责音乐模块的混音器,用Sound拿到一个新的声音文件! C' [5 ?# P# z" m/ q& l/ `
  12. channel_1=pygame.mixer.Channel(1)+ S; b9 p& z/ \) z, I
  13. channel_1.play(bgm)#用频道(channel)1来播放(play)这个声音文件bgm2.wav1 s* u, V/ @8 U( Z& i
  14. # ~+ d9 l  M# |
  15. keep_going=True
    7 \8 S, J. B6 ^/ S
  16. clock=pygame.time.Clock(), k8 V. H3 i( v. [5 @6 A

  17. 0 c6 [: j6 b- \7 K" e; m5 ]
  18. class Bird(pygame.sprite.Sprite):   #pygame.sprite.Sprite包含编写游戏对象时所需的很多功能- ]* f6 }( o: B8 C& S
  19.         def __init__(self):
    5 m5 p7 \% x% T; f" M  ]
  20.                 pygame.sprite.Sprite.__init__(self)  #调用主Sprite类的初始化函数+ W0 b+ d' R' I3 T1 j! T' p
  21.                 self.birdSprites=[pygame.image.load('assets/0.png'),
    $ n4 O7 {) ^# M% d' w
  22.                 pygame.image.load('assets/1.png'),- b/ C8 w! W6 x; w" c
  23.                 pygame.image.load('assets/2.png')]#3个造型
    : ?$ V. G2 Y% x1 r9 j
  24.                 self.a=0  #相当于newBird.birdSprites[0]& Q  K) B) j; ^2 o9 c) U
  25.                 self.birdX=50& n+ K) L- g5 K' B, \
  26.                 self.birdY=100  #初始的XY
    8 h2 R# x* J. _. s+ d
  27.                 self.jumpSpeed=15  #跳跃速度. T6 @, @; m- @2 K( Q
  28.                 self.gravity=0.55  #跳跃重力
    7 z3 G8 y, ]' |- F0 Y1 e
  29.                 #让小鸟图片外接一个矩形7 O! i8 t! y$ R) l4 H8 x) s5 R: O
  30.                 self.rect=self.birdSprites[self.a].get_rect()#get_rect()获得矩形! g- G  ]1 r7 y5 S, u2 ^' ^% q
  31.                 self.rect.center=(self.birdX,self.birdY)#让外接矩形的中心定位到小鸟那里
    1 c. E% h. s; n/ X& i% D* z4 c

  32. / x+ U+ W' F( G9 o- A2 N: S7 k
  33.         def birdUpdate(self):
    / H. v& M) a, R; h
  34.                 self.jumpSpeed-=self.gravity
    : `- T+ a, D+ y
  35.                 self.birdY-=self.jumpSpeed. A  K. M$ e6 E7 l! J) K4 P5 E- s
  36. 1 W7 h1 b# `; ~/ O3 G& n! N! [8 F
  37.                 self.rect.center=(self.birdX,self.birdY)#让外接矩形的中心始终跟着小鸟运动8 c& }1 }1 v$ l6 B4 [0 [- Y7 `# F* K& H
  38. 3 N# Z! A1 ~# |9 @
  39.                 if newBird.jumpSpeed<0:  #下落造型
    9 C8 h+ o* y/ F, E3 s
  40.                         self.a=1
    , z& {. \* w/ l/ k9 Z7 G! W
  41.                 if newBird.jumpSpeed>0:  #上升造型! R/ z( i6 D5 o) F3 `) [9 g
  42.                         self.a=2
    & U" }0 u) _4 y

  43. 5 A) k) ]& [- _' F
  44.         def birdCrush(self):  l- ?* k2 F' _5 g" a0 Q
  45.                 global keep_going& Y" ]5 l- W" M9 ~
  46.                 #调用矩形检测,若撞上水管,返回True
    5 a! w( ^. n  G0 g# F
  47.                 resultU=self.rect.colliderect(newWall.wallUpRect)
    , v' e) ^0 X* J* \& Z! G: ~
  48.                 resultD=self.rect.colliderect(newWall.wallDownRect)
    2 z" B, B: C! n6 X9 v5 ~1 e$ Z

  49. 6 i" |( ~$ g& p6 g1 L
  50.                 if resultU or resultD or newBird.rect.top>512:0 D- x$ J6 j. _) d7 ?
  51.                         hit=pygame.mixer.Sound('sound/hit.wav')
    % K2 e3 K' N( r/ N9 ]
  52.                         channel_3=pygame.mixer.Channel(3)
    6 A6 s0 p" c/ n
  53.                         channel_3.play(hit)3 [5 a* f- D6 `" H6 a/ ^6 V
  54.                         time.sleep(0.3)% h7 Y) _. Y/ a
  55.                         keep_going=False  #撞上/坠地就停止
    : b8 M% j  [! J$ a4 b) A8 N0 P+ v+ P
  56.                         print(er)) x5 I7 \: K/ `6 g- ~6 b+ u+ `- A! p, w

  57. * J% n) ~4 C9 p  y/ f
  58. class Wall():, X) M: M: O2 \: F/ v. m( V: C. N# S
  59.         def __init__(self):4 o; A  z( U$ r' ]8 u( ^8 k- R
  60.                 self.wallUp=pygame.image.load('assets/bottom.png')#上水管图片4 D# V; i, K* P+ [9 I$ G, l
  61.                 self.wallDown=pygame.image.load('assets/top.png')#下水管图片
    + k, q' p) N! w' I7 \3 x- X
  62.                 #水管附上矩形
    ! M1 m. t! _! y9 z4 Z2 C1 T
  63.                 self.wallUpRect=self.wallUp.get_rect()0 P9 e6 Q, d' k" f8 `3 }- m' J
  64.                 self.wallDownRect=self.wallDown.get_rect()
    , y0 a$ i2 r) r5 N4 ?
  65. & h! j+ r( D" t" w- k, H& Q  m
  66.                 self.gap=random.randint(50,100)  #上下水管间隔
    . m  e, b) }/ u. B
  67.                 self.wallx=288  #水管的x坐标* x* O6 B* a" {  T/ L. H
  68.                 self.offset=random.randint(-50,50)  #水管偏移量
    2 J: C" i( h  j; h  v
  69. 7 m1 S4 {: g, `4 a% @4 Z
  70.                 #设置并存储俩水管的Y坐标
    - E1 m) d$ c" _2 ?& a+ {
  71.                 self.wallUpY=360+self.gap-self.offset
    ) N& v" k8 t& {0 `7 s& Q# W
  72.                 self.wallDownY=0-self.gap-self.offset1 l# y1 h. r' N! y2 _
  73.                 #矩形中心跟着水管图像移动
    . X1 k6 s3 V4 e$ ?: E
  74.                 self.wallUpRect.center=(self.wallx,self.wallUpY): u- ?1 N% A5 |) E) @
  75.                 self.wallDownRect.center=(self.wallx,self.wallDownY)
    8 R; {, D0 `4 V  z  P5 ?% W5 e

  76. * k; I7 k" Y/ y7 {9 D! A4 L. K
  77.         def wallUpdate(self):
    % T. T$ b; r+ K, }0 M
  78.                 self.wallx-=2) C' f) P! i* `3 t/ N# }! @4 V
  79.                 #矩形中心重复跟着水管图像移动
    2 U# p+ u( z+ v% e+ r! r3 ?
  80.                 self.wallUpRect.center=(self.wallx,self.wallUpY)
    ' U- W' G, R$ o
  81.                 self.wallDownRect.center=(self.wallx,self.wallDownY)
    . E, B0 i0 ~) {5 A8 z

  82. & `* `# W3 i3 `: B0 U2 n2 [! m5 {
  83.                 if self.wallx<-80:- u: ]$ O# P* b6 }3 W
  84.                         self.wallx=288
    : u/ {( g- t" v. X6 e4 k! k( P
  85.                         self.offset=random.randint(-50,50)1 p6 D: d% }& g, `2 j! P: y
  86.                         #重复设置并存储俩水管的Y坐标
    * d' }. z/ W# d
  87.                         self.wallUpY=360+self.gap-self.offset9 e% \1 B6 h8 I* x
  88.                         self.wallDownY=0-self.gap-self.offset3 G* W+ w) z: C
  89. 3 \* f; K! A3 |2 U: B

  90. * Q9 o/ T! Y2 z! e: o
  91. . s' y! q& M0 P9 K9 X) H
  92. newBird=Bird()  #这个Bird()等于上面的self: r6 f$ z0 U0 R7 ?* X2 |
  93. newWall=Wall()
    , i9 F3 ?9 l+ `

  94. & O2 l$ O2 K6 u5 @+ J
  95. er='{{{Made by Mozilla!!!}}}'
    0 o/ `  P8 @7 h* f$ {& E0 Y1 B

  96. 1 C1 F, R8 }+ F7 l; E* I+ x. Y
  97. while keep_going:
    : l$ c4 J8 i* N2 d" t8 v
  98.         for event in pygame.event.get():+ n; W; f  m8 p8 Q  z
  99.                 if event.type==pygame.QUIT:
    4 l+ t# x) e, M$ x8 ~. [; ?
  100.                         keep_going=False  W% I; v/ Z7 K& S: n, m
  101.                         print(er)
    ! u: i8 X4 ?# r& d, f& R
  102.                 if event.type==pygame.MOUSEBUTTONDOWN:6 x. B! v: F  G4 C8 v
  103.                         newBird.jumpSpeed=7
    ' O/ q' D! w# A$ {2 w% l
  104.                         #用频道2来播放飞行音效fly.WAV
    ) @$ J  T" \) t/ T; q  {/ x
  105.                         channel_2=pygame.mixer.Channel(2)
    4 u: [8 F$ E' [" M/ o
  106.                         fly=pygame.mixer.Sound('sound/fly.WAV')( m7 |: }2 {6 s# c
  107.                         channel_2.play(fly)( |' X" z# K& M% w5 }

  108. ) Y6 n% S( `" N9 b4 U4 Y
  109.         screen.blit(background,(0,0))  c' Q0 Y/ O6 ^5 h* q6 z* S
  110.         screen.blit(newBird.birdSprites[newBird.a],newBird.rect)# i5 j# C: H2 }  \+ u3 ^* U5 E, d
  111.         screen.blit(newWall.wallUp,newWall.wallUpRect)5 X& H0 j/ z9 V2 b9 F) j
  112.         screen.blit(newWall.wallDown,newWall.wallDownRect)
    , p, M* U" [3 i+ F/ w
  113. ( X# b, K% Z. c( d% C6 u
  114.         newWall.wallUpdate()
    6 t" [9 z$ _# g! h
  115.         newBird.birdUpdate()  #运行定义的函数,见Ln22
    + w' R5 i+ h6 [. X8 G/ d5 G0 P
  116.         newBird.birdCrush()) N: r, t5 N$ K2 h: a
  117.         pygame.display.update()
    , K) M8 d& D( @7 }2 t" I
  118.         clock.tick(60)
    + Z/ ]. ~# Q9 L3 C
  119. ) y& A9 A# b9 G  E0 B
  120. pygame.quit
复制代码
独立完成。( a0 I0 Y  F; P2 R  w! r& W1 \
话说@-墟- 你是不是也该多秀秀你过硬的C++算法技术!
9 E( g) m  u- P( P, A! D8 t9 Q
[我是一个默认签名,快去设置里设置一个个性签名吧(*^ワ^*)] 动象论坛欢迎您!(´∇ノ`*)ノ

54

主题

156

回帖

371

积分

试剑江湖

致敬·Mozilla Firefox

积分
371

最佳新人活跃会员

 楼主| 发表于 2020-7-11 20:32:29 | 显示全部楼层 IP:江苏苏州
游戏玩法可以去网上搜搜,很知名的游戏
[我是一个默认签名,快去设置里设置一个个性签名吧(*^ワ^*)] 动象论坛欢迎您!(´∇ノ`*)ノ
回复

使用道具 举报

11

主题

57

回帖

585

积分

清正廉明~版主

风纪委员

积分
585

最佳新人活跃会员

发表于 2020-7-11 20:39:39 | 显示全部楼层 IP:
牛逼了,你这个这么多,我那个太少了,干白皙风。% \- j  @7 b" f2 m3 _
网络爬虫不要太爽!我用他自动抓取妹子涩图

tel:181 5707 6602
回复

使用道具 举报

666

266

主题

1395

回帖

1万

积分

清正廉明~管理员

用心做好论坛,用心创造精品!

积分
11043

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2020-7-11 20:46:32 | 显示全部楼层 IP:
黄蕊小白花 发表于 2020-7-11 20:39! E5 k: a. v! {# a4 B
牛逼了,你这个这么多,我那个太少了,干白皙风。
, l, A& L  i3 U! F/ [网络爬虫不要太爽!我用他自动抓取妹子涩图 ...

+ e5 M% c4 e7 O8 T) Y额~
动象论坛
点滴纯粹 简单自然
动象论坛,用心做好论坛!用心创造精品!
[点我进入]www.mjysd.top
回复

使用道具 举报

111

148

主题

670

回帖

1291

积分

寂寞高手

虽然不怎么在线,但管理还是有一套

积分
1291

最佳新人活跃会员灌水之王

QQ
发表于 2020-7-12 17:30:36 | 显示全部楼层 IP:
@admin 话说你什么时候你也弄个视频链接生成器
使用我的脚本的先安装ybc模块!cmd输入以下内容即可安装:
Python安装位置 -m pip install ybc-speech

想支持我吗?快来!
官方论坛
动象论坛(本坛)
回复

使用道具 举报

666

266

主题

1395

回帖

1万

积分

清正廉明~管理员

用心做好论坛,用心创造精品!

积分
11043

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2020-7-12 19:03:43 | 显示全部楼层 IP:
汪子凯 发表于 2020-7-12 17:30) Q6 S( h: R+ s! P
@admin 话说你什么时候你也弄个视频链接生成器
3 f5 Y2 a; X$ x1 p: s
图床好整,视频不好弄,还没人提供免费视频床呢
动象论坛
点滴纯粹 简单自然
动象论坛,用心做好论坛!用心创造精品!
[点我进入]www.mjysd.top
回复

使用道具 举报

666

266

主题

1395

回帖

1万

积分

清正廉明~管理员

用心做好论坛,用心创造精品!

积分
11043

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2020-7-16 17:57:07 | 显示全部楼层 IP:江西
20.8M,,,我得做个限制了。。。
动象论坛
点滴纯粹 简单自然
动象论坛,用心做好论坛!用心创造精品!
[点我进入]www.mjysd.top
回复

使用道具 举报

54

主题

156

回帖

371

积分

试剑江湖

致敬·Mozilla Firefox

积分
371

最佳新人活跃会员

 楼主| 发表于 2020-7-16 18:51:59 | 显示全部楼层 IP:江苏苏州
admin 发表于 2020-7-16 17:579 g' w6 l* r- z' G) J2 \
20.8M,,,我得做个限制了。。。
6 u; Y: y- n- ]! [$ J
什么?
[我是一个默认签名,快去设置里设置一个个性签名吧(*^ワ^*)] 动象论坛欢迎您!(´∇ノ`*)ノ
回复

使用道具 举报

666

266

主题

1395

回帖

1万

积分

清正廉明~管理员

用心做好论坛,用心创造精品!

积分
11043

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2020-7-16 18:54:32 | 显示全部楼层 IP:江西南昌
Mozilla 发表于 2020-7-16 18:51
0 U$ X) `( K/ d8 ?什么?
: z( F  `* P0 A9 R0 I: _# W2 W# _
(ー_ー)!!您上传的附件大小
动象论坛
点滴纯粹 简单自然
动象论坛,用心做好论坛!用心创造精品!
[点我进入]www.mjysd.top
回复

使用道具 举报

54

主题

156

回帖

371

积分

试剑江湖

致敬·Mozilla Firefox

积分
371

最佳新人活跃会员

 楼主| 发表于 2020-7-16 18:55:16 | 显示全部楼层 IP:江苏苏州
admin 发表于 2020-7-16 18:54
3 k+ j$ @. K" s! D6 i9 s(ー_ー)!!您上传的附件大小
3 n2 b$ Q6 p, t
我换个.7z的试试
[我是一个默认签名,快去设置里设置一个个性签名吧(*^ワ^*)] 动象论坛欢迎您!(´∇ノ`*)ノ
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册!

本版积分规则

QQ|手机版|小黑屋|网站地图|动象论坛

GMT+8, 2025-4-26 21:22 , Processed in 0.279960 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表