Pham_loi
Chức vụ: 19:43:20, 05-07-2016 |
[Projects Game Fiery Sky - BầuTrời Rực Lửa
Cũng éo biết giới thiệu gì và cũng k có pic nào luôn :3
Game thuộc thể loại pém máy bay cổ điển nhưng mình đã thêm các item như hp, đạn, xu vào game và game còn có thể nâng cấp máy bay như tốc độ, tấn công , hp... Mỗi level lại có 1 boss và nó sẽ mạnh lên theo mỗi level.
* Đồ họa: 90% là mình vẽ tay nhem
* Màn hình: đã test 240x320 ngon còn đâu k biết :
* Tự bắn phím 0
* Số lượng level là: infinite , ai đến lv max thì nt mh nha @@
Update v1.1 fix trắng màn hình khi continue :3
* Jar v1.0: Fiery_Sky.jar
* Source v1.0: Src_Fiery_Sky.zip
* Jar v1.1: Tải xuống FierySky.jar (76.12 KB)
* Source v1.1: Tải xuống Src-FierySky.zip (173.03 KB)
: 0 ♥
Pham_loi
Chức vụ: 19:01:22, 21-06-2016 |
[Project hiệu ứng mưa rơi
Không có năng khiếu vẽ nên hạt mưa hơi xấu tý .
Source nằm trong file jar
Tải xuống mua.jar (3.48 KB)
: 0 ♥
Pham_loi
Chức vụ: 15:43:33, 26-05-2016 |
[Project phần mềm hello
Tự viết trên nền tản hello world. Cũng khá bựa
Tải xuống Hello.zip (3.74 KB)
Nguồn: wtai.
: 0 ♥
Pham_loi
Chức vụ: 15:42:53, 26-05-2016 |
di chuyển chạm vào vật
Tải Về mobileapplication3.jar (3 kb)
đính kèm là code, mình đã nén zip rồi vì thế ae ko phải kêu ca.
ko ai cmt ak mới vọc đc 1 ngày nên chỉ viết đc thế thui, hjx cơ mà ko pit mình đang làm cái j đây, tính viết ứng dụng mà mình ghét viết game.
Nguồn: gocvn
source.zip
: 0 ♥
Pham_loi
Chức vụ: 15:42:12, 26-05-2016 |
canvas di chuyển ảnh
đao về build lại r test vừa viết xong.
đây là ứng dụng test mình đã build.
Tải Về mobileapplication3.jar (3 kb)
code tập tin đính kèm.
Nguồn: gocvn.
src.rar
: 0 ♥
Pham_loi
Chức vụ: 15:41:06, 26-05-2016 |
Code cài đặt tốc độ và ánh sáng lúc khởi động mọi game
Code này mình viết để chèn vào ninjaschool nhưng nó thật sự chèn đc vào mọi game. Bạn chỉ cần chút thủ đoạn nhỏ để copy bytecode để xử lí 2 class 1chính và class cài speed
Source.zip
test.jar
Đã up bản fix tương thích mọi máy ảo kể cả các trình giả lập
Caitocdov31fixall.zip
Để dễ hình dung về cách chèn bytecode hay tải cái game đã chèn về vọoc. Be mình không pro nên không biết hướng dẫn thế nào :brick:
Tải xuống Ninja_999v7_Set_Speed_Server.zip (741.35 KB)
Nguồn: wtai
: 0 ♥
Pham_loi
Chức vụ: 15:40:30, 26-05-2016 |
project hỏi xoáy đáp xoay by NDAK
project build good nhưng so với code hơi chệch 1 tí tí
:hi:
Tải xuống srchoixoaydapxoay.zip (220.63 KB)
: 0 ♥
Pham_loi
Chức vụ: 15:39:37, 26-05-2016 |
soft của 1 bạn trong diển đàn nhưng không có code.
Tải xuống MyMidlet.zip (1.0 KB)
Nguồn: wtai.
: 0 ♥
Pham_loi
Chức vụ: 15:37:02, 26-05-2016 |
Tạo màn hình load game
bài này tôi sẽ hướng dẫn các bạn tạo màn hình loading game trong J2ME
Từ Netbeans các bạn tạo mới Project J2ME, chọn cấu hình CLDC 1.0 , MIDP 2.0 , chọn device là DefaultcldcMsaPhone1
ta xây dựng 3 lớp Point.java ,LoadingScreen.Java, và Midlet : MainMidlet.java
https://i1.wp.com/nzoqla.bay.livefilestore.com/y1pDN__w9A2oZzcNeFugWN0OSYMc83YYIy2qi9IzazO6O0e5Kngb80RBxdkyv-7RYRc5h80iXOZDZ23t4BoplTSfSQ_2eO3E1pO/j2me2.png
Lớp Point.java
<?php
package Zstar;
/**
*
* @author zstar
*/
public class Point {
private int X = 0;
private int Y = 0;
public Point() {
}
public Point(int x, int y) {
this.X = x;
this.Y = y;
}
public int getX() {
return this.X;
}
public int getY() {
return this.Y;
}
}
?>
Copy code
package Zstar;
/**
*
* @author zstar
*/
public class Point {
private int X = 0;
private int Y = 0;
public Point() {
}
public Point(int x, int y) {
this.X = x;
this.Y = y;
}
public int getX() {
return this.X;
}
public int getY() {
return this.Y;
}
}
?>
Copy code
Lớp LoadingScreen.java
<?php
package Zstar;
import java.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.GameCanvas;
/**
* @author ZSTAR
*/
public class LoadingScreen extends GameCanvas {
private Graphics g;
private String logo = "/Images/logo.png";
private String text1 = "Game tiếng việt trên điện thoại";
private String text2 = "Đang tải...";
private Image imageLogo;
private Point root = new Point(30, 50);
private Font fontNormal;
private Font fontBold;
//thanh loading
private int colorBorder = 0x000000;
private int colorLoading = 0xcc3301;
private int loadingLength = 150;
private int loadingHeight = 5;
private int loadingCurrent = 0;
private int h = 10;
private MainMidlet mainMidlet;
public LoadingScreen(MainMidlet main) {
super(false);
this.mainMidlet = main;
this.g = this.getGraphics();
this.fontNormal = g.getFont();
this.fontBold = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_MEDIUM);
setFullScreenMode(true);
try {
imageLogo = Image.createImage(logo);
} catch (IOException ex) {
ex.printStackTrace();
}
this.root = new Point(getWidth() / 2 - imageLogo.getWidth() / 2, root.getY());
}
public void start() {
clearScreen();
draw();
draw_next_loading();
}
public void draw() {
g.setColor(0x000000);
g.drawImage(imageLogo, root.getX(), root.getY(), Graphics.TOP | Graphics.LEFT);
g.drawString(text1, getWidth() / 2 - fontNormal.stringWidth(text1) / 2, root.getY() + imageLogo.getHeight(), Graphics.TOP | Graphics.LEFT);
g.setFont(fontBold);
g.drawString(text2, getWidth() / 2 - fontBold.stringWidth(text2) / 2, root.getY() + imageLogo.getHeight() + 40, Graphics.TOP | Graphics.LEFT);
g.setFont(fontNormal);
//draw loading
g.setColor(colorBorder);
g.drawRect(getWidth() / 2 - loadingLength / 2, root.getY() + imageLogo.getHeight() + 30, loadingLength, loadingHeight);
g.setColor(colorLoading);
g.fillRect(getWidth() / 2 - loadingLength / 2, root.getY() + imageLogo.getHeight() + 30, loadingCurrent, loadingHeight);
g.setColor(colorBorder);
this.flushGraphics();
}
private void draw_next_loading() {
clearLoading();
//timer.schedule(task, interval,interval);
for (int i = 0; i < loadingLength / h; i++) {
if (loadingCurrent < loadingLength) {
loadingCurrent += h;
//draw loading
g.setColor(colorBorder);
g.drawRect(getWidth() / 2 - loadingLength / 2, root.getY() + imageLogo.getHeight() + 30, loadingLength, loadingHeight);
g.setColor(colorLoading);
g.fillRect(getWidth() / 2 - loadingLength / 2, root.getY() + imageLogo.getHeight() + 30, loadingCurrent, loadingHeight);
g.setColor(colorBorder);
this.flushGraphics();
try {
Thread.sleep(100);
} catch (Exception e) {
}
} else {
loadingCurrent = 0;
break;
}
}
}
private void clearLoading() {
g.setColor(0xffffff);
g.fillRect(getWidth() / 2 - loadingLength / 2, root.getY() + imageLogo.getHeight() + 30, loadingLength, loadingHeight);
this.flushGraphics();
}
public void clearScreen() {
g.setColor(0xffffff); // white
g.fillRect(0, 0, getWidth(), getHeight());
this.flushGraphics();
}
}
?>
Copy code
package Zstar;
import java.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.GameCanvas;
/**
* @author ZSTAR
*/
public class LoadingScreen extends GameCanvas {
private Graphics g;
private String logo = "/Images/logo.png";
private String text1 = "Game tiếng việt trên điện thoại";
private String text2 = "Đang tải...";
private Image imageLogo;
private Point root = new Point(30, 50);
private Font fontNormal;
private Font fontBold;
//thanh loading
private int colorBorder = 0x000000;
private int colorLoading = 0xcc3301;
private int loadingLength = 150;
private int loadingHeight = 5;
private int loadingCurrent = 0;
private int h = 10;
private MainMidlet mainMidlet;
public LoadingScreen(MainMidlet main) {
super(false);
this.mainMidlet = main;
this.g = this.getGraphics();
this.fontNormal = g.getFont();
this.fontBold = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_MEDIUM);
setFullScreenMode(true);
try {
imageLogo = Image.createImage(logo);
} catch (IOException ex) {
ex.printStackTrace();
}
this.root = new Point(getWidth() / 2 - imageLogo.getWidth() / 2, root.getY());
}
public void start() {
clearScreen();
draw();
draw_next_loading();
}
public void draw() {
g.setColor(0x000000);
g.drawImage(imageLogo, root.getX(), root.getY(), Graphics.TOP | Graphics.LEFT);
g.drawString(text1, getWidth() / 2 - fontNormal.stringWidth(text1) / 2, root.getY() + imageLogo.getHeight(), Graphics.TOP | Graphics.LEFT);
g.setFont(fontBold);
g.drawString(text2, getWidth() / 2 - fontBold.stringWidth(text2) / 2, root.getY() + imageLogo.getHeight() + 40, Graphics.TOP | Graphics.LEFT);
g.setFont(fontNormal);
//draw loading
g.setColor(colorBorder);
g.drawRect(getWidth() / 2 - loadingLength / 2, root.getY() + imageLogo.getHeight() + 30, loadingLength, loadingHeight);
g.setColor(colorLoading);
g.fillRect(getWidth() / 2 - loadingLength / 2, root.getY() + imageLogo.getHeight() + 30, loadingCurrent, loadingHeight);
g.setColor(colorBorder);
this.flushGraphics();
}
private void draw_next_loading() {
clearLoading();
//timer.schedule(task, interval,interval);
for (int i = 0; i < loadingLength / h; i++) {
if (loadingCurrent < loadingLength) {
loadingCurrent += h;
//draw loading
g.setColor(colorBorder);
g.drawRect(getWidth() / 2 - loadingLength / 2, root.getY() + imageLogo.getHeight() + 30, loadingLength, loadingHeight);
g.setColor(colorLoading);
g.fillRect(getWidth() / 2 - loadingLength / 2, root.getY() + imageLogo.getHeight() + 30, loadingCurrent, loadingHeight);
g.setColor(colorBorder);
this.flushGraphics();
try {
Thread.sleep(100);
} catch (Exception e) {
}
} else {
loadingCurrent = 0;
break;
}
}
}
private void clearLoading() {
g.setColor(0xffffff);
g.fillRect(getWidth() / 2 - loadingLength / 2, root.getY() + imageLogo.getHeight() + 30, loadingLength, loadingHeight);
this.flushGraphics();
}
public void clearScreen() {
g.setColor(0xffffff); // white
g.fillRect(0, 0, getWidth(), getHeight());
this.flushGraphics();
}
}
?>
Copy code
Lớp MainMidlet.java
các bạn thêm 1 midlet vào source package và code như sau
<?php
package Zstar;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.*;
/**
* @author ZSTAR
*/
public class MainMidlet extends MIDlet {
private LoadingScreen loadingScreen;
public void startApp() {
loadingScreen=new LoadingScreen(this);
Display.getDisplay(this).setCurrent(loadingScreen);
loadingScreen.start();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
?>
Copy code
package Zstar;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.*;
/**
* @author ZSTAR
*/
public class MainMidlet extends MIDlet {
private LoadingScreen loadingScreen;
public void startApp() {
loadingScreen=new LoadingScreen(this);
Display.getDisplay(this).setCurrent(loadingScreen);
loadingScreen.start();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
?>
Copy code
Nhấn F6 để chạy ứng dụng ta được kết quả :
: 0 ♥
Pham_loi
Chức vụ: 15:33:41, 26-05-2016 |
Tạo menu lựa chọn game
bài này tôi sẽ hướng dẫn các bạn tạo menu với các lựa chọn trong J2ME
tạo lớp Point.java
<?php
package Zstar;
import javax.microedition.xml.rpc.Operation;
/**
*
* @author zstar
*/
public class Point {
private int X = 0;
private int Y = 0;
public Point() {
}
public Point(int x, int y) {
this.X = x;
this.Y = y;
}
public int getX() {
return this.X;
}
public int getY() {
return this.Y;
}
}
?>
Copy code
package Zstar;
import javax.microedition.xml.rpc.Operation;
/**
*
* @author zstar
*/
public class Point {
private int X = 0;
private int Y = 0;
public Point() {
}
public Point(int x, int y) {
this.X = x;
this.Y = y;
}
public int getX() {
return this.X;
}
public int getY() {
return this.Y;
}
}
?>
Copy code
tạo lớp Menu.java kế thừa từ GameCanvas
<?php
package Zstar.menu;
import Zstar.Point;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
/**
*
* @author ZSTAR
*/
public class Menu extends GameCanvas {
private String[ options = {"New Game", "Map Editor", "High Score", "About", "Exit"};
private Point locationMenu = new Point(30, 30);
private int itemWidth;
private int item_space = 15;
private Image itemSelect;
private Image itemUnselect;
private Graphics g;
private int itemHeight;
private int currentIndex = 0;
private int white = 0xffffff;
private int black = 0x000000;
private Font font;
public Menu() {
super(false);
setFullScreenMode(true);
try {
this.g = this.getGraphics();
itemSelect = Image.createImage("/Images/butoption_Press.png");
itemUnselect = Image.createImage("/Images/butoption_unPress.png");
this.itemHeight = itemSelect.getHeight();
this.itemWidth = itemUnselect.getWidth();
this.font = Font.getFont(Font.STYLE_ITALIC, Font.FACE_SYSTEM, Font.SIZE_SMALL);
this.locationMenu = new Point(this.getWidth() / 2 - this.itemWidth / 2, this.locationMenu.getY());
g.setFont(font);
} catch (Exception e) {
};
}
public void Draw() {
for (int i = 0; i < options.length; i++) {
if (currentIndex == i) {
g.drawImage(itemSelect, locationMenu.getX(), locationMenu.getY() + i * itemHeight + item_space, Graphics.LEFT | Graphics.TOP);
} else {
g.drawImage(itemUnselect, locationMenu.getX(), locationMenu.getY() + i * itemHeight + item_space, Graphics.LEFT | Graphics.TOP);
}
g.drawString((i + 1) + ". " + options[i, locationMenu.getX() + 15, locationMenu.getY() + i * itemHeight + item_space + 5, Graphics.TOP | Graphics.LEFT);
this.flushGraphics();
}
}
private void clear_Item(int i) {
g.setColor(this.white);
g.fillRect(locationMenu.getX(), locationMenu.getY() + i * itemHeight + item_space, itemWidth, itemHeight);
g.drawImage(itemUnselect, locationMenu.getX(), locationMenu.getY() + i * itemHeight + item_space, Graphics.LEFT | Graphics.TOP);
g.setColor(this.black);
g.drawString((i + 1) + ". " + options[i, locationMenu.getX() + 15, locationMenu.getY() + i * itemHeight + item_space + 5, Graphics.TOP | Graphics.LEFT);
flushGraphics();
}
private void Draw_nextItem(int i) {
clear_Item(i);
g.drawImage(itemSelect, locationMenu.getX(), locationMenu.getY() + i * itemHeight + item_space, Graphics.LEFT | Graphics.TOP);
g.drawString((i + 1) + ". " + options[i, locationMenu.getX() + 15, locationMenu.getY() + i * itemHeight + item_space + 5, Graphics.TOP | Graphics.LEFT);
flushGraphics();
}
public void keyPressed(int keyCode) {
switch (getGameAction(keyCode)) {
case UP:
clear_Item(currentIndex);
menuSelectChange(-1);
Draw_nextItem(currentIndex);
break;
case DOWN:
clear_Item(currentIndex);
menuSelectChange(1);
Draw_nextItem(currentIndex);
break;
case FIRE:
//xu ly khi chon
;
break;
}
}
private void menuSelectChange(int h) {
//viec lua chon menu se chay vong tron
currentIndex += h + options.length;
currentIndex = currentIndex % options.length;
}
}
?>
Copy code
package Zstar.menu;
import Zstar.Point;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
/**
*
* @author ZSTAR
*/
public class Menu extends GameCanvas {
private String[ options = {"New Game", "Map Editor", "High Score", "About", "Exit"};
private Point locationMenu = new Point(30, 30);
private int itemWidth;
private int item_space = 15;
private Image itemSelect;
private Image itemUnselect;
private Graphics g;
private int itemHeight;
private int currentIndex = 0;
private int white = 0xffffff;
private int black = 0x000000;
private Font font;
public Menu() {
super(false);
setFullScreenMode(true);
try {
this.g = this.getGraphics();
itemSelect = Image.createImage("/Images/butoption_Press.png");
itemUnselect = Image.createImage("/Images/butoption_unPress.png");
this.itemHeight = itemSelect.getHeight();
this.itemWidth = itemUnselect.getWidth();
this.font = Font.getFont(Font.STYLE_ITALIC, Font.FACE_SYSTEM, Font.SIZE_SMALL);
this.locationMenu = new Point(this.getWidth() / 2 - this.itemWidth / 2, this.locationMenu.getY());
g.setFont(font);
} catch (Exception e) {
};
}
public void Draw() {
for (int i = 0; i < options.length; i++) {
if (currentIndex == i) {
g.drawImage(itemSelect, locationMenu.getX(), locationMenu.getY() + i * itemHeight + item_space, Graphics.LEFT | Graphics.TOP);
} else {
g.drawImage(itemUnselect, locationMenu.getX(), locationMenu.getY() + i * itemHeight + item_space, Graphics.LEFT | Graphics.TOP);
}
g.drawString((i + 1) + ". " + options[i, locationMenu.getX() + 15, locationMenu.getY() + i * itemHeight + item_space + 5, Graphics.TOP | Graphics.LEFT);
this.flushGraphics();
}
}
private void clear_Item(int i) {
g.setColor(this.white);
g.fillRect(locationMenu.getX(), locationMenu.getY() + i * itemHeight + item_space, itemWidth, itemHeight);
g.drawImage(itemUnselect, locationMenu.getX(), locationMenu.getY() + i * itemHeight + item_space, Graphics.LEFT | Graphics.TOP);
g.setColor(this.black);
g.drawString((i + 1) + ". " + options[i, locationMenu.getX() + 15, locationMenu.getY() + i * itemHeight + item_space + 5, Graphics.TOP | Graphics.LEFT);
flushGraphics();
}
private void Draw_nextItem(int i) {
clear_Item(i);
g.drawImage(itemSelect, locationMenu.getX(), locationMenu.getY() + i * itemHeight + item_space, Graphics.LEFT | Graphics.TOP);
g.drawString((i + 1) + ". " + options[i, locationMenu.getX() + 15, locationMenu.getY() + i * itemHeight + item_space + 5, Graphics.TOP | Graphics.LEFT);
flushGraphics();
}
public void keyPressed(int keyCode) {
switch (getGameAction(keyCode)) {
case UP:
clear_Item(currentIndex);
menuSelectChange(-1);
Draw_nextItem(currentIndex);
break;
case DOWN:
clear_Item(currentIndex);
menuSelectChange(1);
Draw_nextItem(currentIndex);
break;
case FIRE:
//xu ly khi chon
;
break;
}
}
private void menuSelectChange(int h) {
//viec lua chon menu se chay vong tron
currentIndex += h + options.length;
currentIndex = currentIndex % options.length;
}
}
?>
Copy code
Tạo 1 Midlet để test menu như sau
<?php
package Zstar;
import Zstar.menu.*;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.*;
/**
* @author ZSTAR
*/
public class MenuMidlet extends MIDlet {
private Menu menu;
public void startApp() {
menu=new Menu();
menu.Draw();
Display.getDisplay(this).setCurrent(menu);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
?>
Copy code
package Zstar;
import Zstar.menu.*;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.*;
/**
* @author ZSTAR
*/
public class MenuMidlet extends MIDlet {
private Menu menu;
public void startApp() {
menu=new Menu();
menu.Draw();
Display.getDisplay(this).setCurrent(menu);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
?>
Copy code
kết quả :
menu sẽ được chọn khi bấm phím up,down
chúc các bạn vui vẻ
: 0 ♥