java 上下键_java-同时使用WASD和方向键
我正在开发Processing(在 Java上运行)中的两人游戏.一个用户将使用WASD键控制其角色,而另一个用户将使用箭头键控制移动.我遇到的问题是,当按下箭头时,使用keyPressed会否定WASD,反之亦然.我已经很长时间了.有谁知道解决方法或注意到我做错了什么?
//global variables
int wide = 600; //canvas width
int tall = 600; //canvas height
int s = 50; //player size
float speed = 2.5; //player movement speed
//colors
int redColor = #CB4646; //player 1 color
int blueColor = #4652CB; //player 2 color
int backgroundColor = #DBE3B3; //background color
float player1X = 600/3-s; //HOW COME width/3 DOESN'T WORK??????????
float player2X = 600*2/3;
float playerY = 600/2-(s/2);
//players
Player player1 = new Player(player1X, playerY, s, speed, "wasd", redColor); //player 1
Player player2 = new Player(player2X, playerY, s, speed, "arrows", blueColor); //player 2
//setup
void setup(){
background(backgroundColor);
size(wide, tall);
smooth();
println(player2.controls);
}
//draw
void draw(){
background(backgroundColor);
player1.usePlayer();
player2.usePlayer();
}
class Player{
//class variables
float x; // x position
float y; // y position
int s; //size
float speed; //speed
String controls; //controls
int colors; //player color
char keyControls [] = new char [4];
//construct
Player(float tempX, float tempY, int tempS , float tempSpeed, String tempControls, int tempColors){
x = tempX;
y = tempY;
s = tempS;
speed = tempSpeed;
controls = tempControls;
colors = tempColors;
}
void usePlayer(){
// draw player
fill(colors);
rect(x, y, s, s);
//move player
keyPressed();
//wraparound
boundaries();
}
void keyPressed(){
//sets controls for wasd
if(controls == "wasd"){
if(key == 'w' || key == 'W'){
y -= speed; //move forwards
}
if(key == 's' || key == 'S'){
y += speed; //move backwards
}
if(key == 'd' || key == 'D'){
x += speed; //move right
}
if(key == 'a' || key == 'A'){
x -= speed; //move left
}
}
//sets controls for arrows
if(controls == "arrows"){
if(key == CODED){
if(keyCode == UP){
y -= speed; //move forwards
}
if(keyCode == DOWN){
y += speed; //move backwards
}
if(keyCode == RIGHT){
x += speed; //move right
}
if(keyCode == LEFT){
x -= speed; //move left
}
}
}
}
//pacman style wraparound
void boundaries(){
if(x == width) x = 2;
if(y == height) y = 2;
if(x == 0) x = width-s;
if(y == 0) y = height-s;
}
}
java 上下键_java-同时使用WASD和方向键相关推荐
- java空格键_Java KeyPressed-如果其他键也太旧,则无法检测是否按下了空格键
如标题所示,在我的Java游戏中,无法检测是否同时按下空格键和其他键. 例如,空格键是射击键,而箭头键则使玩家移动.如果我按下向上箭头键,向左箭头键和空格键,那么它应该向左上方发射子弹. 但是,在使用 ...
- java数组键_Java基础之数组
数组 数组就是用于存储相同数据类型数据的一个容器.可以通过有规律的索引来访问没有规律的元素. 一维数组 定义格式:元素的数据类型[ ] 数组名称 = new 元素的数据类型 [ 数组容器大小 ]: 数 ...
- 【源码+图片素材+详细教程】Java游戏开发_Java开发经典游戏飞翔的小鸟_飞扬的小鸟_Java游戏项目Flappy Bird像素鸟游戏_Java课程设计项目
课程目标: 1.通过本课程的学习巩固Java的相关基础知识,例如循环判断,数组和集合的使用,对象的继承,接口的实现,窗口的创建,事件监听,图形绘制. 2.完成小鸟的移动,管道自动生成.碰撞死亡,计分系 ...
- Java心得--键值、枚举器
1. 集(Set):和数学上的"集合"概念相对应,是最简单的一种集合. Set集合中不区分元素的顺序,因此也就不记录元素的加入顺序. Set集合中不包含重复元素,即任意的两个元素e ...
- 用java的io做一个代码计数器,如何制作Java页面计数器_java
大庆采油六厂采油工艺研究所 王兵 王波 常常逛WWW的人,一定对许多起始页上的计数器感兴趣.每当你光临某个站点的起始页时,它的计数器就很亲切地告诉你,从某年某月某日开始,你是第几位光临的人.你可能也想 ...
- java类结构图_java 集合类结构图
接口 实现类 保持插入顺序 可重复 排序 使用说明 List ArrayList Y Y N 长于随机访问元素:但插入.删除元素较慢(数组特性). LinkedList Y Y N 插入.删除元素较快 ...
- 【源码+教程】Java桌球游戏_Java初级项目_Java练手项目_Java项目实战_Java游戏开发
今天分享的Java开源游戏项目是桌球游戏,初学者也可以用来练习喔~课程详细讲解了一个桌球游戏的编写思路和流程,即使你刚学Java没多久,也可以跟随该教程视频完成属于你自己的桌球游戏!同时,还可以加深和 ...
- 【源码+项目部署】Java课程设计项目_Java人力资源管理系统
对就业和毕业都有帮助的Java实战项目来咯--人力资源管理系统! 人力资源管理系统 |Java项目2小时上手编写_源码+数据库拿走不谢!Java实战项目_Java开发https://www.bilib ...
- java list键值_java基础之对List,Map,Set等集合键值对的简单认识
[一.集合] 特征: 数组:定长.可以放基本数据类型. List:变长.只能放对象.有序,可重复. Set :变长.只能放对象.无序,不可重复. Map :变长.只能放对象.无序,键值对. 重要实现类 ...
最新文章
- [bzoj2300] [HAOI2011]防线修建
- 自动调整速率的Actor设计模式
- 急速JavaScript全栈教程
- 【PHP】网络相关封装的函数
- abstract class和interface有什么区别?
- Ubuntu 下安装LEMP环境 实战
- 【渝粤教育】国家开放大学2018年春季 0609-21T中级财务会计(1) 参考试题
- 反射例子(配置文件)
- 进阶攻略|前端最全的框架总结
- xshell下载及连接Linux
- SQlite Android数据库的应用 Android SQLite 简易的学生成绩管理系统
- 新时代的web与app开发
- Python中的unittest模块(入门学习款)
- 7.2.5 dps 测试软件,魔兽7.2.5版本DPS专精Reroll指南视频:近战篇
- 前端web开发培训,HTML表格标签,先收藏了
- mysql数据库重新命名
- 会议论文有影响因子吗_论文投稿——会议论文能否被SCI或EI收录
- php 获取 星期几,php怎么获得星期几
- 京东数据分析工具推荐(京东第三方数据平台)
- 计算机上机考试可以粘贴复制吗,急!高会无纸化考试打字慢 该如何复制粘贴?...
热门文章
- 十四届全国大学生“恩智浦”杯智能汽车竞赛信标组总结(2)
- html腾讯视频组件,3.腾讯视频组件
- Selenium运行IE报错This usually means that a call to the COM method IWebBrowser2::Navigate2() failed.解决方案
- 肖特基二极管与普通二极管的区别
- Linux设置非root用户启动程序
- 自媒体“人工智能小技巧”文章与视频合集(持续更新)
- 66 道前端算法面试题附思路分析助你查漏补缺
- 直播软件源码如何在Android端实现多人视频通话
- url短网址 java_url.cn短网址生成api接口(腾讯短链接url生成)
- 一个坑firewall-cmd: error: unrecognized arguments