[b]sabah sabah kalktım ders hazırlıyorum :D hadi bakalım hayırlısı
Spriteların birbiriyle ilişkileri
örnegin yapıcamız oyunda bir duvar olsun istiyoruz sprite duvara çarpınca bir işlem gercekleşmesini veya duvardan gecememesini istiyoruz o zaman kullanacagımız fonsiyon
int dbSpriteCollision ( int iSprite, int iTarget )
kutunun sprite indexsi 2 - duvarın ise 3 yani burda yapcagımız şey
eğer
dbSpriteCollision(2,3) == 1 // yani sprite duvara carptıysa
// kutuyu sola dogru it yani duvardan gecemesin
if ( dbSpriteCollision(2,3) == 1 ) {
dbText(100,100,"kutuya carptin");
kutuu.sol();
}
Pencere İşlemleri ;
dbSetWindowTitle ; pencerenin başlığını degiştirmek için kullanılır
void dbSetWindowTitle ( char* szString )
dbSetWindowTitle("aboo67");
dbMaximizeWindow ; pencereyi maxsimum büyüklügüne ulaştırır
void dbMaximizeWindow ( void )
dbMaximizeWindow();
dbSetWindowSize ; pencere boyutu ayarlamk için kullanılan fonsiyondur
void dbSetWindowSize ( int iWidth, int iHeight )
[code]dbSetWindowSize(100,100);[/code]
dbShowWindow ; gizlenmiş pencerenin gösterilmesi için kullanılan fonksiyondur
void dbShowWindow ( void )
dbShowWindow ( ) ;
dbHideWindow ; pencereyi gizlemek için kullanılan fonksiyondur gizlendikten sonra dbShowWindow ile görünür hale getirilebilir
Basit 2D Nesneler
dbDot ; nokta cizmemizi sağlayan fonksiyon
void dbDot ( int iX, int iY )
void dbDot ( int iX, int iY, int iColor )
dbLine ; cizgi cizmemize yarayan fonksiyon
void dbLine ( int iX1, int iY1, int iX2, int iY2 )
dbBox ; kutu cizmemizi sağlayan fonksiyon
void dbBox ( int iLeft, int iTop, int iRight, int iBottom )
void dbBox ( int iLeft, int iTop, int iRight, int iBottom, int iCol1, int iCol2, int iCol3, int iCol4 )
dbCircle ; daire cizmemizi sağlayan fonksiyon
void dbCircle ( int iX, int iY, int iRadius )
dbEllipse ; elips cizmemizi sağlayan fonksiyon
void dbEllipse ( int iX, int iY, int iXRadius, int iYRadius )
bu 2d nesnelerden bir crosshair yapalım bakalım :)
void crosshair () {
DWORD kırmızı = dbRGB(255,0,0);
DWORD mavi = dbRGB(0,0,255);
// mousenin X ve Y kordinatlarını alıyoruz
int korx = dbMouseX();
int kory = dbMouseY();
dbInk(kırmızı,mavi); // mevcut renkleri degiştiriyoruz
// mouse'nin bulundugu kordinatı ortalıcak şekilde 2 adet line ve bir daire ciziyoruz
dbLine(korx-10,kory,korx+10,kory);
dbLine(korx,kory-10,korx,kory+10);
dbCircle(korx,kory,20);
}
basit bir oyun yaptım bunuda paylaşayım dedim :) kolay gelsin
#include "DarkGDK.h"
#include <time.h>
class kutu {
public:
void sağ (void){
dbRotateSprite(250,90);
dbMoveSprite(250,3);
dbRotateSprite(250,0);
}
void sol (void){
dbRotateSprite(250,90);
dbMoveSprite(250,-3);
dbRotateSprite(250,0);
}
void alevinkutuyacarpması (void) {
for ( int i = 0 ; i < 10 ; i++ ) {
if ( dbSpriteCollision(i,250) == 1) {
dbSetTextSize(40);
dbText(150,100,"yenildin :( ");
dbText(150,150,"aboo67 project ");
for ( int i = 0 ; i < 260 ; i++) {
dbDeleteSprite(i);
}
}
}
}
}kutuu;
void seviye (int a , int alx , int aly) {
int c = 100;
int d = 1000;
int yps = 0;
dbSprite(c,10,10,2);
for (int i = 0 ; i < a ; i++)
{
yps = dbSpriteY(i) + dbRnd(d);
dbSprite(i,dbRnd(500),yps,1);
dbSizeSprite(i,alx,aly);
}
}
void alev () {
for ( int i = 0; i < 40; i++){
dbMoveSprite(i,-1);
}
}
void alevsil() {
for( int i = 0 ; i < 40 ; i++)
{
if (dbSpriteY(i) > 1000 )
{
dbSprite(i,dbRnd(500),-40,1);
}
}
}
void DarkGDK ( void ) {
dbSetWindowPosition(300,50);
dbSetImageColorKey(255,0,255);
dbSetWindowSize(500,600);
dbSyncOn();
dbSyncRate(60);
dbLoadImage("kutu.bmp",81);
dbLoadImage("zemin.bmp",80);
dbSprite(200,0,440,80);
dbSprite(250,100,405,81);
dbLoadImage("alev.bmp",1);
dbRandomize( dbTimer () );
dbSetWindowTitle("aboo67");
srand(time(NULL));
seviye(10,40,50);
while ( LoopGDK () ) {
if (dbRightKey() == 1){
kutuu.sağ();
}
if (dbLeftKey() == 1) {
kutuu.sol();
}
alev();
alevsil();
dbSync();
kutuu.alevinkutuyacarpması();
}
}
0 yorum:
Yorum Gönder