鱼C论坛

 找回密码
 立即注册
查看: 2590|回复: 39

[已解决]pygame 模拟车辆移动的问题【高额悬赏】

[复制链接]
发表于 2023-7-28 22:52:33 | 显示全部楼层 |阅读模式
50鱼币
本帖最后由 cjjJasonchen 于 2023-7-30 19:57 编辑

这是我目前正在写的内容:
1.zip (6.38 KB, 下载次数: 5)


零件向y轴负方向偏移

零件向y轴负方向偏移



我希望我在向左或向右的时候轮子在它该待的地方,,。。。而不是莫名其妙的向y轴负方向偏离一些距离


GPT 或其他机器人回答不了的哦!转人工谢谢
最佳答案
2023-7-28 22:52:34
Parceltongue 发表于 2023-7-29 09:16
然后,你知道怎么在mac上安装ursina吗

pip 一下就行了

Snipaste_2023-07-29_13-57-48.png

最佳答案

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
Ewan-Ahiouy + 5 + 5 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-7-30 19:36:46 | 显示全部楼层
hhhhhhhhhh   问题解觉啦!!!!!!!!!  三天了终于!!!!
@歌者文明清理员


问题出在wheel的update方法里面:

这是原先的:

        
def update(self):
             
            
            
            self.angle = self.owner.angle
            if self.steering:
                self.angle += self.owner.turn*10
            self.image = pygame.transform.rotate(self.o,self.angle)
            #self.rect = self.image.get_rect()
            #self.rect = self.orect
            self.rect.centerx, self.rect.centery = self.anchor.update_pos()


这是现在的:
 def update(self):
            
             
            
            
            self.angle = self.owner.angle
            if self.steering:
                self.angle += self.owner.turn*10
            self.image = pygame.transform.rotate(self.o,self.angle)
            self.rect = self.image.get_rect()
            self.rect.centerx, self.rect.centery = self.anchor.update_pos()



哈哈哈哈哈哈哈可以了可以了原来是没有 self.rect = self.image.get_rect() 太高兴啦!!!
1690716977114.jpg
如图!!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 22:52:34 | 显示全部楼层    本楼为最佳答案   
Parceltongue 发表于 2023-7-29 09:16
然后,你知道怎么在mac上安装ursina吗

pip 一下就行了

Snipaste_2023-07-29_13-57-48.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 22:53:01 | 显示全部楼层
很高兴能够帮助您解决pygame模拟车辆移动的问题。根据您提供的信息,您想要实现车辆移动时轮子在应该停留的地方,而不是莫名其妙地向Y轴负方向偏离。

问题描述有些简洁,但缺少具体的代码和问题细节。不过,我会尽力为您提供一般性的解决思路。

在实现车辆移动时,通常需要考虑以下几个方面:

1. 车辆的坐标系统:确保车辆位置的表示和移动使用一致的坐标系统,常见的是使用笛卡尔坐标系,其中X轴表示水平方向,Y轴表示垂直方向。

2. 移动算法:车辆移动可以使用简单的速度和方向来模拟,例如,通过修改车辆的X和Y坐标来实现移动。您可以记录车辆的位置(X和Y坐标),速度和方向,然后在每个时间步骤更新车辆位置。

3. 绘制和动画:使用pygame进行绘制和动画,确保在更新车辆位置后,重新绘制车辆和轮子的图像,以实现平滑的移动效果。

4. 碰撞检测:如果车辆在移动过程中与其他物体有交互,需要进行碰撞检测,防止车辆穿越物体或发生异常情况。

基于上述思路,您可以尝试以下步骤:

1. 定义车辆类:创建一个车辆类,该类包含车辆的位置(X和Y坐标),速度,方向等属性,以及绘制车辆和轮子的方法。

2. 更新车辆位置:在每个时间步骤中,根据车辆的速度和方向,更新车辆的位置(X和Y坐标)。

3. 绘制车辆:使用pygame的绘制功能,在窗口中绘制车辆和轮子的图像,确保图像随着车辆位置的更新而改变,从而实现移动效果。

4. 碰撞检测(如果需要):根据您的游戏逻辑,实现车辆与其他物体之间的碰撞检测,确保车辆在移动时正确响应碰撞情况。

请注意,由于缺乏具体的代码和问题细节,上述步骤仅供参考。如果您能提供更多的代码和问题信息,我将能够更具体地帮助您解决问题。祝您成功实现车辆移动的功能!如果您还有其他问题,请随时向我询问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 23:00:12 | 显示全部楼层
ok,已下载附件,正在分析代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 23:01:32 | 显示全部楼层
你这咋车动不了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-7-28 23:03:56 | 显示全部楼层

要按wasd
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-7-28 23:05:23 | 显示全部楼层

这个比较难,应该是算法问题,找了好久不知道问题出在哪里,effect库是目前没用的,只是恰好放在一起了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 23:05:24 | 显示全部楼层

(狂按 wasd)
wasd 上下左右 整个键盘我都按过了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-7-28 23:05:51 | 显示全部楼层
歌者文明清理员 发表于 2023-7-28 23:05
(狂按 wasd)
wasd 上下左右 整个键盘我都按过了

是不是没有切换输入法?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 23:07:35 | 显示全部楼层
cjjJasonchen 发表于 2023-7-28 23:05
是不是没有切换输入法?

是的

微软你给我出来解释一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-7-28 23:08:13 | 显示全部楼层
歌者文明清理员 发表于 2023-7-28 23:07
是的

微软你给我出来解释一下

明天再想吧,今天太晚了,太晚睡对脑子不好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 23:09:14 | 显示全部楼层
cjjJasonchen 发表于 2023-7-28 23:08
明天再想吧,今天太晚了,太晚睡对脑子不好

你这个程序没有问题呀

另外我大部分编程时间都是在晚上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-7-28 23:10:25 | 显示全部楼层
歌者文明清理员 发表于 2023-7-28 23:09
你这个程序没有问题呀

另外我大部分编程时间都是在晚上

仔细看上面我发的图,轮子像上歪了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 23:10:56 | 显示全部楼层
cjjJasonchen 发表于 2023-7-28 23:10
仔细看上面我发的图,轮子像上歪了

那不就是转弯了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-7-28 23:12:59 | 显示全部楼层

正常情况是左边和右边的轮子都看得见的,但是再横向移动(x轴方向)的时候只能看到更靠近y轴负方向的轮子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 23:15:45 | 显示全部楼层
cjjJasonchen 发表于 2023-7-28 23:12
正常情况是左边和右边的轮子都看得见的,但是再横向移动(x轴方向)的时候只能看到更靠近y轴负方向的轮子 ...

调大轮子位置,轮子都被遮住了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 23:30:07 | 显示全部楼层
解决了,是 carn.py 里 Car -> Body -> __init__ -> wheel_anchors 的 位置设置不当

Snipaste_2023-07-28_23-29-14.png

点评

嘿嘿,我想在linux虚拟机里过日子了  发表于 2023-7-28 23:36
话说,vim 是真好用啊  发表于 2023-7-28 23:36

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
cjjJasonchen + 5 + 5 + 3 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-28 23:40:20 | 显示全部楼层
歌者文明清理员 发表于 2023-7-28 23:30
解决了,是 carn.py 里 Car -> Body -> __init__ -> wheel_anchors 的 位置设置不当

nb
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-29 09:08:59 | 显示全部楼层
天啊,这么细节的吗必须点赞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-29 09:15:54 | 显示全部楼层
请问你用的是ursina吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 08:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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