Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Pelin tekeminen

Sivun loppuun

Suominen90 [20.07.2005 19:41:36]

#

Eli miten voisi tehdä skeitti pelin php:lla. Pitäisikö esim tehdä joku tiedosto josta koodi kattoo mitä temppuja on ja katsoisi samalla paljon saa pisteitä jos onnistuu jne

Ideoita kehiin ja jos joku haluu alkaa koodata peliä mun kanssa voi kertoa

hunajavohveli [20.07.2005 23:15:47]

#

Jos ihan reaaliajassa pyörivää peliä meinaat, niin PHP:llä ei onnistu.

wwwapu [20.07.2005 23:31:03]

#

Olisiko kyseessä jonkinlainen vuoroperusteinen roolipeli, jonka aiheena on skeittaus? Kuulostaa erikoiselta...

Joku määrä ominaisuusmuuttujia joilla on pelaajanmukainen perustaso. Tempulla jokin vaikeustaso ja ominaisuusvaatimukset. Ympäristömuuttujista satunnaista haittaa tai etua.

Pelaaja asettaa ominaisuuksitaan pisteitä tempun suorittamiseen ja tempun vaikeus ja ympäristötekijät pienentävät asetettuja pisteitä. Jos tempun onnistumisraja ylittyy, temppu onnistuu, muuten leegot kurkkuun tai kassit kaiteeseen.

Kyllähän tämmöisestä voisi kuvitella jotakin tulevan, tosin skeittaus on aika dynaamista toimintaa ja onkin aika vaikea kuvitella että PHP pelistä voisi tulla hitti. Toki täytyy muistaa että Tetriskin on suosittu ja se sentään on idealtaan äärisimppeli.

Niko [21.07.2005 01:14:30]

#

Jos ihan reaaliajassa pyörivää peliä meinaat, niin PHP:llä ei onnistu. >> PHP:llä onnistuu kyllä ihan normaalien ohjelmien teko (esim. gtk:n avulla http://wiki.mureakuha.com/wiki/Php_ja_Gtk) jos ei siis tartte olla internetissä toimiva

Suominen90 [21.07.2005 11:56:32]

#

Vain sellaista yksin peliä tarkoitin eli että käyttäjä tekee tietyn tempun ja siitä saa tietyn verran pisteitä sitten pitäis olla joku sellanen juttu siinä että kattois millä levelillä tyyppi on ja sen perusteella katsoisi voiko käyttäjä helposti onnistua tempussa

Niko [21.07.2005 17:16:13]

#

lasket tietyllä kaavalla

(([hahmon taso]/100 * (1-[tempun taso])) * rnd[0.1...0.8]) + ([taito pisteet]/100)

JOS [tulos] > 1
PISTEET += [tulos] * [peruspisteet tempulle]
ELSE
[epäonnistui]

tempun taso = esim. 0.0001 - 0.02
hahmon taso 1-60
taito pisteet = 0.1 - 8

Taito pisteisiin voi vaikuttaa esim. lauta, edelliset onnistumiset, kunto sun muut

Edit: voit tallentaa temput sun muut esim arrayhyn

$temppu[] = array('nimi' => 'Perus hyppy', 'taso' => 0.0001, 'pisteet' => 100)
$temppu[] = array('nimi' => 'Kilometrin lento', 'taso' => 0.99, 'pisteet' => 1000000)

Kannattaa käyttäjälle antaa sopiva määrä vaikutus valtaa että ei ole paina nappia ja saat pisteitä

Sweiz [21.07.2005 21:27:59]

#

Et sä kyl ainakaan mitään kunnollista peliä PHP: llä saa, mut tässä on esimerkki pisteenlaskusta...
( No mä oon myös skeittaaja )

<?php

//Nollataan pisteet alkuun...
$pisteet = 0;

//Määritellään, mitä tapahtuu, jos tehdään ollie
if ($temppu == $ollie){
$pisteet = $pisteet + 100;
echo "Teit juuri ollien.";
}

//Määritellään, mitä tapahtuu, jos tehdään flippi
elseif ($temppu == $kickflip){
$pisteet = $pisteet + 250;
echo "Teit juuri flipin"
}
elseif ($pisteet > 1000){
echo "Olet tehnyt jo yli 1000 pistettä"
}
?>

Ja sit sä laitat johonkin nurkkaan sitten:

echo "Sinulla on pisteitä " . $pisteet . ".";

Mut muista, sun pitää määritellä muuttujat...
Ja mä suosittelisin, et ryhtyisit sen pelin tekoon mielummin C/C++ :salla, tai Basicilla...

Bagard [21.07.2005 23:52:47]

#

flip92, eiköhän jokainen PHP:tä harrastava osaa katsoa onko $temppu esim. ollie ja miten nostetaan muuttujan arvoa. Toisinsanoen tuo oli kyllä turhin koodi mitä voi postata :P

Suominen90 [22.07.2005 16:35:42]

#

Miten sitten tehä joku sellanen levelistä kattova järjestelmä että vaikka olis silleen että levelillä 1 olisi aika epätoden näköistä onnistua joissakin tempuissa.

Lebe80 [22.07.2005 16:54:37]

#

Xuvo kirjoitti:

Miten sitten tehä joku sellanen levelistä kattova järjestelmä että vaikka olis silleen että levelillä 1 olisi aika epätoden näköistä onnistua joissakin tempuissa.

// Tempun vaativuus
$vaadittava_level=8;

// Pelaajan taito
$pelaajan_level=12;
$onnistui = false;

if(rand(0,$vaadittava_level) < rand(0,$pelaajan_level) ){
 // temppu onnistui!!
 $onnistui = true;
}

wwwapu [22.07.2005 17:01:29]

#

Oletetaan, että on vaikka 3 ominaisuutta joita käytetään. Kukin temppu vaatii pisteitä jokaisesta ominaisuudesta enemmän tai vähemmän.

Voisi kuvitella jotain tämänkaltaista. Huom. pisteytys on ihan tuulesta temmattua.

<?php
$pelaajan_ominaisuudet=array(omin1=>7, omin2=>5, omin3=>4, maksimi=>12);
// todellisuudessa nuo haettaisiin kannasta tai tiedostosta
// pelaaja asettaa pisteitään peliin
$pelaajan_asettamat_pisteet=array(omin1=>6, omin2=>2.5, omin3=>3.5);

//Temppujen vaatimat keskipisteet
$temppu_helppo=array(omin1=>3, omin2=>3, omin3=>2);
$temppu_vaikea=array(omin1=>9, omin2=>4, omin3=>8);
?>

Pelaaja asettaa ominaisuuksistaan pisteitä peliin maksimimääränsä verran. Maksimia kasvatetaan kokemuksen kautta.
Tempun vaatimat pisteet kussakin ominaisuudessa voivat vaihdella vaikka +-50%, eli $temppu_vaikea vaatii omin1 pisteitä 4,5 - 13,5 jne. Tällöin hyvällä tuurilla 12 pistettä riittää tempun tekoon, mutta mahdollisuus mokaan jää suuremmaksi.

Lebe80 [22.07.2005 17:10:30]

#

wwwapu kirjoitti:

...

Liian vähän satunnaisuutta, tuolleen tehtynä pelaaja onnistuisi _ihan aina_ kun saisi "laitettua" tarpeeksi "pisteitä".
Lisäksi taisit lisätä ylimääräisiä muuttujia sekoittamaan koodia.

Mun laittama koodi on sitä paitsi yksinkertaisempi aloittelijalle (ohjelmoitavaksi), ja vaikeitakin temppuja on mahdollista saada toteutettua vaikka pelaajan taso olisi alhainen. Myös helppojen temppujen epäonnistuminen on mahdollista kokeneilta pelaajilta.

wwwapu [22.07.2005 17:33:52]

#

Tietenkin pelissä pitää olla kämmäämisen mahdollisuus riippumatta pelaajan taidoista. Joskus vaan menee pieleen, vaikka miten hyvät edellytykset onnistumiselle olisi. Eli suoritusympäristö vaikuttaa. "Yleisö melusi ja keskittyminen meni", "liian kova vastatuuli", "väärä voitelu", näitä tavallisia urheilijoiden selityksiä voi silloin soveltaa.

Ideana minulla oli lähinnä, että pelaaja voi kikkailla pisteiden kanssa, jolloin peliin tulee enemmän pelaamisen tuntua. Joskus voi kokeilla laittaa enemmän omin1:tä kuin omin3:a jne.

Ylimääräisiä muuttujia? Missä?

Suominen90 [22.07.2005 17:48:33]

#

Toi Leben koodi oli aika hyvä sitä onkin aika helppoa alkaa sitten muokkaamaan.
Miten kannattais ottaa pelaajan saamat pisteet talteen? Sessioilla?

Edit peli nyt tollasseella mallilla tulee varmaan muuttumaan pois getiltä noi tiedot muutan varmaan sessioilla toimimaan

<?php
// Haetaan tietoja
$pelaajat = file("pelaajat.txt");

// Tunnus
   $tunnus = $_GET["tun"];

   for ($i=0;$i<count($pelaajat);$i++)
{
            $peltiet=explode("|",$pelaajat[$i]);
 if($peltiet[0]==$tunnus)
{
// Pelaajan taito
$pelaajan_level= $peltiet[1];
}
}
// Temppu
   $temput = file("temput.txt");
   $temppu = $_GET["temppu"];

   for ($i=0;$i<count($temput);$i++)
{
            $tempputiet=explode("|",$temput[$i]);
 if($tempputiet[0]==$temppu)
{
// Tempun vaativuus
$vaadittava_level= $tempputiet[1];
}
}

$onnistui = false;

if(rand(0,$vaadittava_level) < rand(0,$pelaajan_level) ){
 // temppu onnistui!!
 $onnistui = true;
 echo "Onnistui";

//Ei tuu mitään
} else {
echo "Ei onnistunu";
}
?>

Bagard [23.07.2005 01:10:50]

#

No onpa melkoista koodia. Huh huh...

Kannattaisi sisentää nuo kunnolla ;-)

Suominen90 [23.07.2005 11:13:55]

#

Se taas ei oo oikein mun alaa. Mulle on aina valitettu siitä mutta pää asia että saan ite selvää siitä tosin sekään ei aina onnistu :D


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta