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. 洛谷P1132 数字生成游戏

    P1132 数字生成游戏 题目描述 小明完成了这样一个数字生成游戏,对于一个不包含0的数字s来说,有以下3种生成新的数的规则: 将s的任意两位对换生成新的数字,例如143可以生成314,413,134 ...

  2. Candies

    Candies Time Limit: 1500MS   Memory Limit: 131072K Total Submissions: 30247   Accepted: 8409 Descrip ...

  3. JDK12下的ArrayList源码解读 与 Vector的对比

    ArrayList源码阅读. //测试代码实现如下 private static void arrayList() { ArrayList<String> list = new Array ...

  4. C 语言实例 - 求两数的最大公约数

    C 语言实例 - 求两数的最大公约数 用户输入两个数,求这两个数的最大公约数. 实例 - 使用 for 和 if #include <stdio.h> int main() { int n ...

  5. Linux常用命令(补充)--其他

    其他1)记录命令历史(1)!! (连续两个”!”),表示执行上一条指令:(2)!n(这里的n是数字),表示执行命令历史中第n条指令,例如”!100”表示执行命令历史中第100个命令:(3)!字符串(字 ...

  6. hdu2510-符号三角形(dfs+打表)

    n只有24 可以写个暴力搜索,然后打表,不然这个很难通过剪枝直接优化到1s以内. #include<bits/stdc++.h> #define inf 0x3f3f3f3f ; usin ...

  7. JS正则改变字符之间文字

    var reg = /([[^[]*])/g; html = html.replace(reg, "<span class=\"bold\">$1</s ...

  8. webpack.config.js====webpack-dev-server开发服务器配置

    1. 安装webpack-dev-server(在指定目录下),一定要先安装完毕webpack webpack-cli之后在安装webpack-dev-server 一个基于expressjs的开发服 ...

  9. 织梦DeDeCMS友情链接文字显示不全

    文件:/include/taglib/flink.lib.php 把下面代码中的24改为合适的值 $attlist=”type|textall,row|24,titlelen|24,linktype| ...

  10. Js中的字符串/数组中常用的操作

    JS为每种数据类型都内置很多方法,真的不好记忆,而且有些还容易记混,现整理如下,以便以后查看: 一.String ①charAt()方法用于返回指定索引处的字符.返回的字符是长度为 1 的字符串. 语 ...