鱼C论坛

 找回密码
 立即注册

[已解决]请问如何精细改变子弹的位置?

[复制链接]
 楼主| 发表于 2017-7-15 20:04:36 | 显示全部楼层
老甲鱼与小甲鱼 发表于 2017-7-15 19:59
嗯,看了一下,子弹的初始位置应该是飞机顶部的中心也就是midtop,你说的微调是不是指子弹运动过程位置的变 ...

我说的是子弹出现的位置,我把子弹的贴图换了,大小跟原来的不一样,导致位置也偏右了,我想把它正过来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-15 20:07:02 | 显示全部楼层
星空下的舞者 发表于 2017-7-15 19:57
我正是因为看了好久基础一直看不下去所以才直接实践的,事实证明比以前效率高很多了,至少能保证每天都在 ...

从这个报错看,Bullet实例化的时候需要传入midtop作为参数,midtop是一个坐标,有x和y,他应该是一个含有两个元素的列表或者元祖,你要修改他的位置应该midtop[0] += 1,midtop[1] +=1这样修改,然后再执行bullet1.append(bullet.Bullet1(me.rect.midtop)),这样应该不会报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-15 20:07:21 | 显示全部楼层
老甲鱼与小甲鱼 发表于 2017-7-15 20:00
话说小甲鱼的打飞机那课我也没看,感觉学来没啥用

我是打算自己先改改玩玩,实在不会再去看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-15 20:07:45 | 显示全部楼层
星空下的舞者 发表于 2017-7-15 20:04
我说的是子弹出现的位置,我把子弹的贴图换了,大小跟原来的不一样,导致位置也偏右了,我想把它正过来

嗦嘎司涅
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-15 20:10:07 | 显示全部楼层
星空下的舞者 发表于 2017-7-15 20:07
我是打算自己先改改玩玩,实在不会再去看

好饿,我吃饭了,有啥问题一会再说
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-15 20:16:00 | 显示全部楼层
本帖最后由 星空下的舞者 于 2017-7-15 20:19 编辑
老甲鱼与小甲鱼 发表于 2017-7-15 20:07
从这个报错看,Bullet实例化的时候需要传入midtop作为参数,midtop是一个坐标,有x和y,他应该是一个含有 ...


那这里到底应该怎么改呢?是要在bullet1.append(bullet.Bullet1(me.rect.midtop))前面加一行什么代码还是改啥的?

能否麻烦给个直接解决的代码,这里的知识点当时实在没学会,单纯加midtop[0] += 1,midtop[1] +=1又会报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-15 20:22:52 | 显示全部楼层
星空下的舞者 发表于 2017-7-15 20:16
那这里到底应该怎么改呢?是要在bullet1.append(bullet.Bullet1(me.rect.midtop))前面加一行什么代码还 ...

midtop[0] += 1
midtop[1] +=1
bullet1.append(bullet.Bullet1(me.rect.midtop))
如果[0][1]索引不行就改成x和y,试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-15 20:25:36 | 显示全部楼层
老甲鱼与小甲鱼 发表于 2017-7-15 20:22
midtop[0] += 1
midtop[1] +=1
bullet1.append(bullet.Bullet1(me.rect.midtop))

这两种方法都会报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-15 20:27:36 | 显示全部楼层

错误信息贴一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-15 20:28:07 | 显示全部楼层

都是
NameError: name 'midtop' is not defined
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-15 20:32:51 | 显示全部楼层
星空下的舞者 发表于 2017-7-15 20:28
都是
NameError: name 'midtop' is not defined

额,改成
me.rect.midtop[0] += 1
这样子
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-15 20:35:28 | 显示全部楼层
老甲鱼与小甲鱼 发表于 2017-7-15 20:32
额,改成
me.rect.midtop[0] += 1
这样子

这样的话错误就是
TypeError: 'tuple' object does not support item assignment
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-15 20:36:49 | 显示全部楼层
星空下的舞者 发表于 2017-7-15 20:35
这样的话错误就是
TypeError: 'tuple' object does not support item assignment


元组不能修改,让我想想
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-15 20:39:39 | 显示全部楼层
老甲鱼与小甲鱼 发表于 2017-7-15 20:36
元组不能修改,让我想想

这样子
bullet1.append(bullet.Bullet1(me.rect.midtop[0]+1,me.rect.midtop[1]+1))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-15 20:50:56 | 显示全部楼层
老甲鱼与小甲鱼 发表于 2017-7-15 20:39
这样子
bullet1.append(bullet.Bullet1(me.rect.midtop[0]+1,me.rect.midtop[1]+1))

TypeError: __init__() takes 2 positional arguments but 3 were given
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-15 20:51:59 | 显示全部楼层
老甲鱼与小甲鱼 发表于 2017-7-15 20:39
这样子
bullet1.append(bullet.Bullet1(me.rect.midtop[0]+1,me.rect.midtop[1]+1))

我觉得子弹2的方法应该是对的,但是只能持续开始的一次,后面又变回原样了,很奇怪
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-15 20:53:57 | 显示全部楼层
星空下的舞者 发表于 2017-7-15 20:50
TypeError: __init__() takes 2 positional arguments but 3 were given

不对啊,哪有三个参数,明明就两个而已,你打错了?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-15 20:57:07 | 显示全部楼层    本楼为最佳答案   
嗯~~,主函数太多,我没仔细看,如果说只能改第一次,可能是循环的问题,或者其他地方调用了,不改这个了,把Bullet的init方法里面这句self.rect.left, self.rect.top = position改成self.rect.left, self.rect.top = position[0]+1,position[1]+1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-15 21:11:30 | 显示全部楼层
老甲鱼与小甲鱼 发表于 2017-7-15 20:57
嗯~~,主函数太多,我没仔细看,如果说只能改第一次,可能是循环的问题,或者其他地方调用了,不改这个了, ...

非常感谢!已经解决

但还是有点好奇为毛那个地方只实现一次,哪里没循环对...
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-15 21:17:54 | 显示全部楼层
星空下的舞者 发表于 2017-7-15 21:11
非常感谢!已经解决

但还是有点好奇为毛那个地方只实现一次,哪里没循环对...

慢慢分析主函数,祝你进步,骚年
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-28 18:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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