作者toy9986619 (幻飘)
看板GameDesign
标题[程式] Java 2D横向动作(跳跃与落下)撰写请教
时间Wed May 25 16:07:51 2016
各位板友好
小弟目前是大一生,期末有份Java视窗小游戏制作
我们小组讨论出来後,决定制作2D横向动作卷轴游戏(类似越南大战、或是Rabi-Ribi),
只打算做1~3关,可能不会做的很完整
然後我主要是负责程式撰写的部分,我没有带入甚麽引擎,目前都是Java本身的套件
先简述一下目前我所做的部分
我目前绘制画面的方法是
先将角色预先设定好在地图中的位置在哪,然後以角色为中心去绘制画面(包含地图)
地图的部分用阵列储存整数,然後用function去读取数字判断要贴上哪种图片
让物体左右移动也已经做出来了,障碍物判断暂时也已经做好了
然後开了两个执行绪,一个接收键盘指令,一个做画面绘制
然後我现在要做跳跃的部分遇到了困难
我想要达成的效果是:按下按键後,物体会上移两格,但是能看得到上移一格的时候
上移两格後,再开始落下
结果实作後发现,因为我把接收指令跟绘制画面用不同执行绪的关系
所以好像会先计算完毕之後才做绘制画面
(同一时间只会有一个执行绪执行中,没错吧?)
於是我把panel的repaint()方法安插在跳跃的程式码中,但是又好像是计算太快的关系
看不到上移一格的时候,又不知道该怎麽做延迟
还有一个问题是,我想到不能单纯的把落下的部分放在跳跃後面
如果我从高处的平台平移到可以落下的地方,也要做到物体自动落下
所以我想到落下这一部份应该要移到背景永久执行(?
但是这部分不知道该怎麽撰写
尝试撰写了while回圈去做落下的程式码,做跳跃的时候会因为判断到可以落下
所以就执行落下,结果就是物体不断被压着,跳不起来了
也想请教这部分的设计该怎麽处理
附上我的整份code,移动的部分在character.java
绘制画面跟接收键盘在WindowsUI.java
https://goo.gl/kDqDs4
感谢各位!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.137.235.236
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1464163673.A.A9A.html
※ 编辑: toy9986619 (223.137.235.236), 05/25/2016 16:34:42
※ 编辑: toy9986619 (223.137.235.236), 05/25/2016 17:29:52
1F:推 riika: 你跳跃的时候是不是直接把座标加两格? 05/25 19:15
2F:→ riika: 可以贴你目前的写法吗 05/25 19:15
※ 编辑: toy9986619 (114.198.187.84), 05/25/2016 21:27:55