设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Pygame 第5课】 游戏中的运动

[复制链接]

0

主题

0

好友

200

积分

中级会员

Rank: 3Rank: 3

23#
发表于 2015-12-26 13:47:22 |只看该作者
先生先生看我的\(^o^)/~三行子弹最霸气

77D8.tmp.jpg (85.99 KB, 下载次数: 415)

77D8.tmp.jpg

回复

使用道具 举报

0

主题

0

好友

200

积分

中级会员

Rank: 3Rank: 3

22#
发表于 2015-12-26 13:41:42 |只看该作者
  1. # -*- coding: utf-8 -*-
  2. import pygame
  3. from sys import exit
  4. pygame.init()
  5. screen = pygame.display.set_mode((450,800),0,32)
  6. pygame.display.set_caption('Hello World')

  7. #加载需要的图片
  8. background = pygame.image.load('f:\plane\some.jpg')
  9. plane = pygame.image.load('f:\plane\plane.png').convert_alpha()
  10. bullet = pygame.image.load('f:\plane\sullet.png')

  11. #初始化子弹位置
  12. bullet_x = 0
  13. bullet_y = -1
  14. bullet_left_x = 0
  15. bullet_left_y = -1
  16. bullet_right_x = 0
  17. bullet_right_y = -1

  18. #开始游戏循环
  19. while True:
  20.     for event in pygame.event.get():
  21.         if event.type == pygame.QUIT:
  22.             pygame.quit()
  23.             exit()
  24.     #创建背景窗口
  25.     screen.blit(background,(0,0))
  26.     x,y = pygame.mouse.get_pos()
  27.    
  28.     #获取左、右两个子弹起始点位置
  29.     left_x = x - plane.get_width() / 3
  30.     left_y = y
  31.     right_x = x + plane.get_width() / 3
  32.     right_y = y
  33.    
  34.     if bullet_y < 0:
  35.         bullet_x = x - bullet.get_width() / 2
  36.         bullet_y = y - bullet.get_height() / 2
  37.         #把子弹图片的中心设置为鼠标坐标
  38.     else:
  39.         bullet_y -= 5

  40.     if bullet_left_y < 0:
  41.         bullet_left_x = left_x - bullet.get_width() / 2
  42.         bullet_left_y = left_y - bullet.get_height() / 2
  43.     else:
  44.         bullet_left_y -= 5

  45.     if bullet_right_y < 0:
  46.         bullet_right_x = right_x - bullet.get_width() / 2
  47.         bullet_right_y = right_y - bullet.get_height() / 2
  48.     else:
  49.         bullet_right_y -= 5

  50.    
  51.     #加载3个子弹图片
  52.     screen.blit(bullet,(bullet_x,bullet_y))
  53.     screen.blit(bullet,(bullet_left_x,bullet_left_y))
  54.     screen.blit(bullet,(bullet_right_x,bullet_right_y))
  55.    
  56.     #把飞机图片的中心设置为鼠标坐标
  57.     x-= plane.get_width() / 2
  58.     y-= plane.get_height() / 2
  59.     screen.blit(plane,(x,y))
  60.     pygame.display.update()
复制代码
回复

使用道具 举报

21#
无效楼层,该帖已经被删除

0

主题

0

好友

26

积分

新手上路

Rank: 1

20#
发表于 2015-11-30 21:51:00 |只看该作者
解决了,之前没有转义

捕获5555.JPG (12.09 KB, 下载次数: 367)

捕获5555.JPG

回复

使用道具 举报

0

主题

0

好友

26

积分

新手上路

Rank: 1

19#
发表于 2015-11-30 21:37:07 |只看该作者
子弹的那张图片一直用不了啊。。。。。

捕获11.JPG (20.53 KB, 下载次数: 383)

捕获11.JPG

回复

使用道具 举报

0

主题

0

好友

42

积分

新手上路

Rank: 1

18#
发表于 2015-4-15 19:35:09 |只看该作者
crossin先生 发表于 2015-4-15 13:53
图片位深度
文档里似乎说这个值最好不要给,它会用系统默认的

我查过资料,这个可能玩photoshop的高手更懂些,是图像方面的知识。
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

17#
发表于 2015-4-15 13:53:16 |只看该作者
Jerome 发表于 2015-4-14 22:35
pygame.display.set_mode()
第二个参数是是否全屏,那请问第三个参数代表什么?

图片位深度
文档里似乎说这个值最好不要给,它会用系统默认的
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

42

积分

新手上路

Rank: 1

16#
发表于 2015-4-14 22:35:23 |只看该作者
pygame.display.set_mode()
第二个参数是是否全屏,那请问第三个参数代表什么?
回复

使用道具 举报

0

主题

0

好友

26

积分

新手上路

Rank: 1

15#
发表于 2014-8-13 13:59:42 |只看该作者
Myk_cc 发表于 2013-8-27 22:34
在今天内容的基础上增加一行子弹。ps:两行子弹真霸气

请问第36,37,40行代码是什么作用啊?去掉以后同样能运行。
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

14#
发表于 2014-1-9 11:20:35 |只看该作者
浮生湮灭了美好 发表于 2013-10-19 19:01
先生我想问下 那个坐标为什么是还有子弹上移是我觉得本来应该是+的在第四象限。 ...

因为是要往左上移动,所以是-
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-18 12:02 , Processed in 0.020689 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部