package com.swift;

import java.awt.Color;
import java.awt.Point;
import java.awt.event.KeyEvent; import com.rupeng.game.GameCore; public class SpriteCoin implements Runnable { public static void main(String[] args) {
GameCore.start(new SpriteCoin());
} @Override
public void run() {
GameCore.setGameSize(800, 345);
GameCore.setGameTitle("用键盘操控精灵移动的小游戏");
GameCore.loadBgView("bg.jpg");
// 女精灵
int spriteGirl = 0;
GameCore.createSprite(spriteGirl, "guizi");
GameCore.playSpriteAnimate(spriteGirl, "run", true);
GameCore.setSpritePosition(spriteGirl, 140, 190);
// 使用数组放置8个金币
int[] coinNum = { 1, 2, 3, 4, 5, 6, 7, 8 };
int[] coinXDate = { 100, 200, 300, 400, 500, 600, 700, 730 };
int[] coinYDate = { 140, 180, 150, 190, 140, 170, 160, 140 };
//boolean[] coinIsDead = new boolean[8]; GameCore.createImage(0);
GameCore.setImageSource(0, "bigCoin.png");
GameCore.setImagePosition(0, 710, 20);
GameCore.createText(0, "NUM");
GameCore.setTextColor(0, Color.WHITE);
GameCore.setTextPosition(0, 650, 25);
GameCore.createText(1, "0");
GameCore.setTextPosition(1, 760, 25);
GameCore.setTextColor(1, Color.WHITE); // 另一种初始化数组方法 boolean[]
boolean[] coinIsDead={false,false,false,false,false,false,false,false};
for (int i = 0; i < coinNum.length; i++) {
GameCore.createSprite(coinNum[i], "coin");
GameCore.setSpritePosition(coinNum[i], coinXDate[i], coinYDate[i]);
GameCore.playSpriteAnimate(coinNum[i], "rotate", true);
}
for (;;) { int codeNum = GameCore.getPressedKeyCode();
Point position = GameCore.getSpritePosition(spriteGirl);
System.out.println(position.x + " " + position.y); if (codeNum == KeyEvent.VK_UP || codeNum == KeyEvent.VK_W) {
if (position.y > 135) {
System.out.println("up");
GameCore.setSpritePosition(spriteGirl, position.x, --position.y);
GameCore.pause(11);
}
} if (codeNum == KeyEvent.VK_DOWN || codeNum == KeyEvent.VK_S) {
if (position.y < 190) {
System.out.println("down");
GameCore.setSpritePosition(spriteGirl, position.x, ++position.y);
GameCore.pause(11);
}
}
if (codeNum == KeyEvent.VK_LEFT || codeNum == KeyEvent.VK_A) {
if (position.x > 0) {
System.out.println("left");
GameCore.setSpriteFlipX(spriteGirl, true);
GameCore.setSpritePosition(spriteGirl, --position.x, position.y);
GameCore.pause(2);
}
}
if (codeNum == KeyEvent.VK_RIGHT || codeNum == KeyEvent.VK_D) {
if (position.x < 730) {
System.out.println("right");
GameCore.setSpriteFlipX(spriteGirl, false);
GameCore.setSpritePosition(spriteGirl, ++position.x, position.y);
GameCore.pause(1);
}
} Point pGirl = GameCore.getSpritePosition(spriteGirl);
for (int i = 0; i < coinNum.length; i++) {
if(coinIsDead[i]) {
continue;
}
Point pCoin = GameCore.getSpritePosition(coinNum[i]); double distance = Math.sqrt((Math.pow((pCoin.x - pGirl.x), 2) + Math.pow((pCoin.y - pGirl.y), 2)));
if (distance < 30) {
GameCore.hideSprite(coinNum[i]);
coinIsDead[i] = true;
int textNum = 0;//这句含义很大,无限循环每次到这清零,不然数字无限疯长
for(int j=0;j<coinNum.length;j++) {
if(coinIsDead[j]==true){//我把这写成了i,所以只要吃掉一个,就是8了,应该是j
textNum++;
}
}
GameCore.setText(1, Integer.toString(textNum));//这句放在循环外边,不然
}
}
} } }

Java 吃金币游戏设计与制作,下载版后补,代码没问题的更多相关文章

  1. Java第十二次作业:什么是一维数组?什么是对象数组?吃金币游戏2.0版 新增炸弹功能 新增游戏倒计时功能 新增胜利失败检测功能 使用如鹏游戏引擎制作窗体 一维数组设置金币

    什么是数组? 数组的定义:是用统一的名字代表这批数据,用序号来区分各个数据.数组是无序的数据元素按有序的下标组成的集合,分配固定空间大小的一种容器. 如何理解:其实就是一个同时放很多数据的变量. a= ...

  2. 游戏设计艺术 第2版 (Jesse Schell 著)

    第1章 太初之时,有设计师 (已看) 第2章 设计师创造体验 第3章 体验发生于场景 第4章 体验从游戏中诞生 第5章 游戏由元素构成 第6章 元素支撑起主题 第7章 游戏始于一个创意 第8章 游戏通 ...

  3. Java 图形化界面设计(GUI)实战练习(代码)

    关于Java图形化界面设计,基础知识网上可搜,下面简单介绍一下重点概念,然后就由浅入深代码实例. 程序是为了方便用户使用的,Java引入图形化界面编程. 1.JFrame 是容器类 2.AWT 是抽象 ...

  4. Java桌球小游戏(兴趣制作)

    两张图片放在src的同级目录下 版本一.出现窗口package cn.xjion.game;/** * 出现窗口 * @author xjion * */import java.awt.*;impor ...

  5. 【Unity3D】模仿制作“神庙逃亡”吃金币后金币飞出屏幕效果

    [前言] 玩过“神庙逃亡”的应该都知道,这款游戏不论从游戏流畅度.人物动画.场景的管理都很棒. 自己也做了一款简单的跑酷游戏,实现了简单的吃金币效果,但是发现不好看,于是就想模仿“神庙逃亡”中的这个效 ...

  6. Java 课程设计 "Give it up"小游戏设计(个人) 201521123077

    1.团队课程设计博客链接 http://www.cnblogs.com/agts/p/7067948.html 2.个人负责模块或任务说明 个人任务:实现游戏画面的制作,游戏逻辑的编写,以及一些模块与 ...

  7. flappy bird游戏源代码揭秘和下载

    转:http://blog.csdn.net/touchsnow/article/details/19071961 背景: 最近火爆全球的游戏flappy bird让笔者叹为观止,于是花了一天的时间山 ...

  8. Unity游戏设计与实现 南梦宫一线程序员的开发实例

    图灵程序设计丛书 Unity游戏设计与实现:南梦宫一线程序员的开发实例(修订版)     加藤政树 (作者) 罗水东 (译者)  c# 游戏 unity   <内容提要>本书的作者是日本知 ...

  9. [libGDX游戏开发教程]使用libGDX进行游戏开发(1)-游戏设计

    声明:<使用Libgdx进行游戏开发>是一个系列,文章的原文是<Learning Libgdx Game Development>,大家请周知.后续的文章连接在这里 使用Lib ...

随机推荐

  1. codeforces986F Oppa Funcan Style Remastered【线性筛+最短路】

    容易看出是用质因数凑n 首先01个因数的情况可以特判,2个的情况就是ap1+bp2=n,b=n/p2(mod p1),这里的b是最小的特解,求出来看bp2<=n则有解,否则无解 然后剩下的情况最 ...

  2. jdk及tomcat的安装

    Tomcat和JDK安装指南 1  JDK的安装 要运行JAVA程序,必须安装JDK(JAVA 开发包)的支持. 1.1  安装 1.J2SDK的安装比较简单,在安装盘目录下寻找“JDK安装程序”文件 ...

  3. LDAP理论知识

    整理改编自: https://www.cnblogs.com/yjd_hycf_space/p/7994597.html http://blog.51cto.com/407711169/1439623 ...

  4. PAT甲级——1111 Online Map (单源最短路经的Dijkstra算法、priority_queue的使用)

    本文章同步发布在CSDN:https://blog.csdn.net/weixin_44385565/article/details/90041078   1111 Online Map (30 分) ...

  5. list remove元素

    public class TestList { public static void main(String[] args) { List<Integer> list = new Link ...

  6. .Net Core 做请求监控NLog

    使用 NLog 给 Asp.Net Core 做请求监控 https://www.cnblogs.com/cheesebar/p/9078207.html 为了减少由于单个请求挂掉而拖垮整站的情况发生 ...

  7. Win10+VirtualBox+Openstack Mitaka

    首先VirtualBox安装的话,没有什么可演示的,去官网(https://www.virtualbox.org/wiki/Downloads)下载,或者可以去(https://www.virtual ...

  8. 将JWT与Spring Security OAuth结合使用

    1.概述 在本教程中,我们将讨论如何使用Spring Security OAuth2实现来使用JSON Web令牌. 我们还将继续构建此OAuth系列的上一篇文章. 2. Maven配置 首先,我们需 ...

  9. 滚动条美化插件 nicescroll

    这个插件使用起来非常简单,首先下载插件jquery.nicescroll.min.js 然后在页面中引入jquery,再引入这个插件, 然后在页面中需要修改滚动条的地方,例如id为box的div &l ...

  10. 关于dataTable 生成JSON 树

    背景: POSTGRESL + C#  + DHTMLX SUIT 一个表生成一个JSON串,这个不是很麻烦: 1.在数据库(postges)中:  json_agg(row_to_json(t)) ...